TGViewer
🏆 AIeron | Data Feeling 🏆 AIeron | Data Feeling @datafeeling · 14.2K subscribers
Post #1509 4.43K
Агент или пайплайн? Разбираемся на пальцах 🤌

Понять, чем агент отличается от пайплайна - это первый шаг к созданию ИИ, который действительно умеет думать и принимать решения самостоятельно.

Из каждого утюга мы слышим слово «агент», но далеко не все агенты действительно агентны. Большинство - это просто скам пайплайны.

Агентность - это когда система сама решает, что делать дальше, исходя из результатов предыдущих действий. Это не просто «выполнить шаг 1, потом шаг 2», а гибкий, адаптивный процесс.

Как отличить?

☑️ Если после шага X заранее известно, что будет дальше - это пайплайн.
☑️ Если система сама выбирает следующий шаг - это агент.
☑️ Если выбор алгоритма жёстко прописан извне - это всё ещё пайплайн, пусть и с условиями.

Примеры:
Пайплайн:


sites = await search_google(query)
response = await generate_response(query, sites)
Всё просто и линейно.


Пайплайн с условием:

sites = await search_google(query)
if len(sites) < 10:
query = await optimize_user_query(query)
sites += await search_google(query)
response = await generate_response(query, sites)
Решение о ветвлении принимает программист, не ИИ.


Частичный агент:

sites = await search_google(query)
if not await check_enough_info(query, sites):
query = await optimize_user_query(query)
sites += await search_google(query)
response = await generate_response(query, sites)

Здесь модель решает, искать ли ещё, но порядок шагов фиксирован.

Настоящий агент:

state = {"query": query, "sites": []}

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

Агент сам выбирает, что делать дальше, исходя из текущего состояния.

Как сделать агента надёжным?

Используйте структурированные описания действий и состояния - например, через pydantic. Это помогает модели лучше понимать, что от неё хотят, и выбирать следующий шаг. Такой подход называется Structured Guided Reasoning (SGR).

🔘 Мини-пример pydantic моделей

from pydantic import BaseModel
from typing import List, Literal, Optional, Union

class SearchGoogleAction(BaseModel):
action: Literal["search_google"]
query: str

class OptimizeQueryAction(BaseModel):
action: Literal["optimize_query"]
query: str

class GenerateResponseAction(BaseModel):
action: Literal["generate_response"]
query: str
sites: List[str]

AgentAction = Union[SearchGoogleAction, OptimizeQueryAction, GenerateResponseAction]

class AgentState(BaseModel):
query: str
sites: List[str] = []
response: Optional[str] = None


🔘 Краткий цикл агента с SGR

async def choose_next_step(state: AgentState) -> AgentAction:
if state.response:
return None
if not state.sites:
return SearchGoogleAction(action="search_google", query=state.query)
if len(state.sites) < 5:
return OptimizeQueryAction(action="optimize_query", query=state.query)
return GenerateResponseAction(action="generate_response", query=state.query, sites=state.sites)


Итоги:

✅ Агент - это не просто набор шагов, а система, которая сама выбирает, что делать дальше.
✅ Большинство «агентов» - на самом деле пайплайны.
✅ Структурированный подход с pydantic и SGR помогает создавать настоящих, гибких агентов.

Если интересно - могу поделиться еще более подробными примерами и другими продвинутыми патернами.
  • ❤ 16
  • 👎 11
  • 👍 10
  • 😁 3
  • 🔥 2
More from @datafeeling
  1. Sep 28, 2026Ребята, я и понятия не имел, но управлять пятью SaaS-компаниями, воспитывая дочку и одновр…
  2. Sep 27, 2026Кто ты? - Слева 👍 - Справа 👎 - Что такое Claude? 🤯
  3. Sep 26, 2026Решил собрать немного фидбека со стрима. Насколько имеет вообще смысл иногда проводить так…
  4. Sep 26, 2026Я запустил SaaS сервис для компаний. Наконец-то со мной связалась крупная компания. ФНС чт…
  5. Sep 25, 2026Ты написал задачу в 21:00, так как есть незакрытый баг. На утро проснулся - а фича уже в п…
  6. Sep 24, 2026Наемный работник: $75 тыс., $75 тыс., $75 тыс., $75 тыс.… Фрилансер: $1 тыс., $3 тыс., $2…
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 →