TGViewer
AI и грабли AI и грабли @oestick · 13.7K subscribers
Post #399 24.8K
Агент или Пайплайн?

Середина 25го года – хайп вокруг агентов начал перерастать в рабочие решения: claude code, perplexity labs, computer use и т.д.

Правда почему-то сейчас любые два запроса к API зовут агентом. А если еще с разными промптами, то, уууууу, аж система агентов.

Это бред. Большая часть того, что называют агентами – просто пайплайны – жестко заданные наборы шагов. Часть из них – запросы к LLM, часть – просто логика, например, запустить код, который сгенерировала LLM на прошлом шаге.

Агентность – способность системы самой принимать решения о типе следующего действия на основе результатов предыдущих.


Агентность – это шкала, а не бинарное значение. У системы ее может быть больше, а можем быть меньше. Как у людей.

Но для простоты, я использую вот такое разделение:

- Если заранее известно, что будет после шага X – это пайплайн.
- Если система сама решит после того, как шаг X выполнится, то это агент.
- Но если алгоритм выбора захардкожен извне – это все еще пайплайн (просто более гибкий).

———

Примеры

Задача – сделать систему, которая будет отвечать на запрос пользователя используя информацию из интернета.


1. Сначала ищем странички, потом делаем запрос к LLM, подставляя их в контекст
relevant_sites = await search_google(query)
response = await generate_response(query, relevant_sites)

Агент? Нет – шаги жестко зафиксированы

———

2. Усложняем. Смотрим, что если нашли слишком мало страниц, то пытаемся поменять запрос пользователя и искать еще

relevant_sites = await search_google(query)
if len(relevant_sites) < 10:
optimized_query = await optimize_user_query(query)
more_sites = await search_google(optimized_query)
relevant_sites.extend(more_sites)

response = await generate_response(query, relevant_sites)

Вооо, теперь агент. Мы же не знаем заранее, по какому пути пойдем, да? Но решение принимает не ИИ, а программист, который написал if. Так что это тоже не агент.

———

3. Пишем агента. Теперь LLM сама определяет в check_enough_info, готовы ли генерировать ответ, или нужно добавить еще результатов.

relevant_sites = await search_google(query)

if not await check_enough_info(query, relevant_sites):
optimized_query = await optimize_user_query(query)
more_sites = await search_google(optimized_query)
relevant_sites.extend(more_sites)

response = await generate_response(query, relevant_sites)


Уже лучше, но на самом деле это еще не полноценный агент. Все равно явная последовательность шагов – модель выбирает только одну ветку, а дальше все снова определено. Но мы уже близко

———

4. Настоящему агенту нужно прописать набор действий и дать их совершать (подсовывая ему после выполнения каждого действия новую информацию в контекст)

state["query"] = query
state["sites"] = []

while "response" not in state:
next_step = await choose_next_step(state)
if next_step == "search_google":
state["sites"].extend(await search_google(query))
elif next_step == "optimize_query":
state["query"] = await optimize_user_query(query)
elif next_step == "generate_response":
state["response"] = await generate_response(query, state["sites"])


А чтобы делать такие системы надежными и масштабируемыми, нужно использовать Structured Output и определять шаги через pydantic/zod классы. Так задаем структуру размышлений для модели, чтобы она хорошо выбирала следующий шаг (SGR).

Почитать:

- Разгоняли с @neuraldeep в комментах про агентность, а через пару часов он сделал свой диприсерч всего в 600 строк кода. Особенно полезно посмотреть на pydantic классы
- База по SGR (structured guided reasoning) от @llm_under_hood
- Моя серия из 3 постов про structured_output
Telegram Валера Ковальский SGR Deep Research А почему бы не взять все лучшие идеи из демо и идей ребят из чата Собрать свои идеи по Deep Research И сделать самый простой инструмент поиска инфы в интернете через Tavlily API? А сделать, вот он https://github.com/vakovalskii/sgr-deep…
  • 🔥 40
  • ❤ 13
  • 🤝 4
More from @oestick
  1. Oct 4, 2026Саша Поляков собрал стату по банам (меня тоже в этот раз задело). Мб кому-то полезно будет…
  2. Oct 4, 2026Собрал статистику по банам Claude из комментариев в канале Пост с разбором телеметрии, кот…
  3. Oct 2, 2026О, мой баг репорт в getbb.app приняли. Приятно быть причастным к развитию того, чем сам по…
  4. Oct 1, 2026А у вас тоже есть задачки, в которых нужно очень много и глубоко думать, но вы их откладыв…
  5. Sep 30, 2026Anthropic > OpenAI, но есть пара но Предпосылки 1. opus-5.5 очень хорош 2. DevDay openai –…
  6. Sep 27, 2026Скоро: видео-монтаж-слоп во всех лентах страны Opus-5.5 теперь сам такое ваншотит на remot…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →