Перейти к содержанию

agents — агенты: модель, которая вызывает инструменты

Клиент, который гоняет модель в цикле и сам дёргает тулы. Архитектурно — это всё ещё слой 3 (клиент), а не что-то «над» ним.

Обычный клиент: вы спросили — модель ответила — всё, разговор закончился.

Агент — это когда модель может сама ходить и что-то делать, а не только говорить. Примерно так:

  1. Вы: «Добавь логирование в файл X».
  2. Агент думает: «Надо открыть файл, посмотреть что там, добавить строчку».
  3. Агент берёт инструмент «открыть файл» и смотрит.
  4. Агент берёт инструмент «редактировать файл» и пишет туда код.
  5. Агент берёт инструмент «запустить тесты» и проверяет, что ничего не сломалось.
  6. Агент: «Готово, тесты зелёные».
flowchart TB
    U["👤 «Добавь логирование в файл X»"] --> A["🤖 Агент"]
    A -->|"что делать дальше?"| M["LLM-сервер"]
    M -->|"«открой файл X»"| A
    A -->|"выполняет"| T["🔧 Инструменты<br/>файлы · команды · интернет"]
    T -->|"результат"| A
    A -->|"вот что получилось, дальше?"| M
    M -->|"«готово, тесты зелёные»"| U

Ключевое отличие от чата: у агента есть «руки» — он может дёргать настоящие функции в вашем компьютере: читать файлы, запускать команды, делать HTTP-запросы, кликать в браузере. А LLM-мозг решает, какой инструмент и когда взять.

Важно: агент — это всё ещё тот же клиент к LLM-серверу. Он не «повыше» клиента, а просто клиент, который умеет гонять модель в цикле и сам дёргать тулы. Claude Code, Cursor Agent, Zed Agent — все они шлют запросы на api.anthropic.com или api.openai.com, ровно как обычный чат.

Когда клиент умеет не только слать текст и показывать ответ, а ещё и сам в цикле:

  1. спросить модель: «что делать дальше?»;
  2. выполнить действие в реальном мире (прочитать файл, запустить тест, дёрнуть API);
  3. скормить результат обратно в модель;
  4. повторить, пока модель не скажет «готово»,

— это уже агент. И архитектурно это тот же слой 3, что и обычный клиент — он так же ходит к LLM-серверу по тому же API, просто в цикле и с вызовом тулов.

flowchart LR
    subgraph loop["Агентный цикл (ReAct)"]
        direction TB
        TH["Thought: модель решает шаг"] --> AC["Action: tool call<br/>read_file · run_command · http"]
        AC --> OB["Observation: результат тула<br/>→ обратно в контекст"]
        OB --> TH
    end
    loop -->|"пока модель не скажет stop"| DONE["Финальный ответ"]

Примеры:

  • Claude Code, Cursor Agent, Zed Agent, GitHub Copilot (agent mode) — кодинг-агенты: редактируют код, гоняют тесты, делают коммиты.
  • Computer Use от Anthropic, Operator от OpenAI — агенты, которые управляют браузером/компьютером.
  • Devin, Replit Agent — агенты, которые берут тикет и пилят его до PR.

Архитектурно у любого агента есть:

  • Мозг — LLM-модель через сервер (страницы llm-model.md и llm-server.md). Та же модель, тот же сервер, что и у обычного чата.
  • Инструменты (tools) — функции, которые модель может попросить вызвать: read_file, edit_file, run_command, grep, ...
  • Цикл рассуждений — обычно вариант ReAct: модель генерирует Thought → Action → Observation → Thought → ....
  • Политика и safety — лимиты на вызовы, песочница для shell, требования на подтверждение деструктивных действий.

То есть агент — это клиент из client.md + способность гонять модель в цикле с реальными эффектами, а не отдельный слой над клиентом.

Связанные страницы

  • overview.md — слоистая картина целиком
  • agent-loop.md — как агент работает под капотом: запросы, tool calls, цикл
  • client.md — обычный клиент
  • mcp.md — как агент получает инструменты стандартным способом
  • ../practices/install-agents.md — какие агенты бывают и как их поставить
  • further-reading.md — что почитать