ИИ-агент

Материал из llmdocs — справочник разработчика
ИИ-агент
Основабольшая языковая модель
Ключевой механизмцикл «рассуждение — действие — наблюдение»
Действиявызов инструментов (tool use), API, код, браузер, файлы
ПротоколыModel Context Protocol (MCP)
Примерыагенты для кода, исследовательские агенты, управление компьютером
Рискиошибки на длинных цепочках, prompt injection, лишние права

ИИ-агент — система на основе языковой модели, которая не просто отвечает на один вопрос, а сама ведёт многошаговую работу: планирует, вызывает инструменты — поиск, API, выполнение кода, работу с файлами, — смотрит на результаты и решает, что делать дальше, пока задача не будет выполнена. В классическом определении искусственного интеллекта агент — это всё, что воспринимает среду и действует в ней;[6] LLM-агенты используют языковую модель как «мозг», принимающий решения.

Агенты применяются для написания и исправления кода (Агенты для кода), исследования и сбора информации, обработки документов, поддержки клиентов и управления компьютером через интерфейс.

Агентный цикл

В основе почти любого агента — простой цикл:

  1. Модель получает цель, инструкции, описание доступных инструментов и историю предыдущих шагов.
  2. Модель рассуждает и выбирает действие — вызов инструмента с аргументами — или решает, что задача выполнена.
  3. Программа-оркестратор выполняет вызов (Tool use / function calling) и возвращает результат модели.
  4. Результат добавляется в контекст, и цикл повторяется.

Подход, чередующий рассуждения и действия, описан в работе ReAct (2022).[2] Ранее Toolformer показал, что модели могут научиться сами решать, когда вызывать внешние инструменты.[3]

messages = [{"role": "user", "content": task}]
while True:
    resp = client.messages.create(model=MODEL, tools=TOOLS, messages=messages, max_tokens=4096)
    messages.append({"role": "assistant", "content": resp.content})
    if resp.stop_reason != "tool_use":
        break                                         # модель дала финальный ответ
    results = [
        {"type": "tool_result", "tool_use_id": b.id, "content": run_tool(b.name, b.input)}
        for b in resp.content if b.type == "tool_use"
    ]
    messages.append({"role": "user", "content": results})

Агенты и рабочие процессы

Anthropic в руководстве «Building effective agents» разделяет два типа систем:[1]

  • Рабочие процессы (workflows) — шаги заранее заданы кодом: цепочка запросов, маршрутизация по типу задачи, параллельная обработка, схема «исполнитель и проверяющий». Предсказуемы и дёшевы.
  • Агенты — модель сама решает, какие шаги делать и в каком порядке. Гибки, но дороже, медленнее и менее предсказуемы.

Главный совет — начинать с самого простого решения: часто одного хорошо составленного запроса с RAG достаточно, рабочий процесс нужен для чётко структурированных задач, а агент — когда шаги невозможно предсказать заранее.

Составные части

Компонент Назначение
Модель рассуждение и выбор действий
Инструменты поиск, чтение и запись файлов, выполнение команд, API, браузер
Память контекст диалога, заметки в файлах, базы знаний
Оркестратор цикл вызовов, ограничения, обработка ошибок
Окружение песочница, где выполняются действия
Ограждения права доступа, подтверждения, лимиты шагов и бюджета

Подключать инструменты и источники данных к разным агентам позволяет открытый протокол MCP: один сервер — например, доступ к базе данных или документации — работает с любым совместимым клиентом.[5]

Мультиагентные системы

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

Оценка

Качество агентов измеряют на задачах с проверяемым результатом. Бенчмарк SWE-bench предлагает исправлять реальные ошибки из открытых репозиториев на GitHub, а правильность проверяется тестами проекта.[4] Для своих агентов собирают набор характерных задач и отслеживают долю успешных выполнений, число шагов и стоимость (см. Оценка LLM (evals)).

Риски и ограничения

  • Накопление ошибок. Каждый шаг может ошибиться, и на длинных цепочках ошибки складываются; агенту нужна возможность проверять себя — тесты, линтеры, сверка с источником.
  • Prompt injection. Агент читает внешние данные — веб-страницы, письма, документы, — в которых могут быть вредоносные инструкции (см. Безопасность LLM: prompt injection).
  • Лишние права. Агенту стоит давать минимальные необходимые полномочия (Принцип наименьших привилегий), выполнять код в изолированной среде и требовать подтверждения человеком для необратимых действий: удаления данных, платежей, отправки сообщений.
  • Стоимость и время. Десятки вызовов модели на задачу; помогают кэширование, лимиты шагов и более дешёвые модели для простых подзадач.

См. также

Источники

  1. Anthropic — Building effective agents (2024)
  2. S. Yao et al. — ReAct: Synergizing Reasoning and Acting in Language Models (2022)
  3. T. Schick et al. — Toolformer: Language Models Can Teach Themselves to Use Tools (2023)
  4. C. Jimenez et al. — SWE-bench: Can Language Models Resolve Real-World GitHub Issues? (2023)
  5. Model Context Protocol — Specification
  6. S. Russell, P. Norvig — Artificial Intelligence: A Modern Approach