ИИ-агент
| Основа | большая языковая модель |
|---|---|
| Ключевой механизм | цикл «рассуждение — действие — наблюдение» |
| Действия | вызов инструментов (tool use), API, код, браузер, файлы |
| Протоколы | Model Context Protocol (MCP) |
| Примеры | агенты для кода, исследовательские агенты, управление компьютером |
| Риски | ошибки на длинных цепочках, prompt injection, лишние права |
ИИ-агент — система на основе языковой модели, которая не просто отвечает на один вопрос, а сама ведёт многошаговую работу: планирует, вызывает инструменты — поиск, API, выполнение кода, работу с файлами, — смотрит на результаты и решает, что делать дальше, пока задача не будет выполнена. В классическом определении искусственного интеллекта агент — это всё, что воспринимает среду и действует в ней;[6] LLM-агенты используют языковую модель как «мозг», принимающий решения.
Агенты применяются для написания и исправления кода (Агенты для кода), исследования и сбора информации, обработки документов, поддержки клиентов и управления компьютером через интерфейс.
Агентный цикл
В основе почти любого агента — простой цикл:
- Модель получает цель, инструкции, описание доступных инструментов и историю предыдущих шагов.
- Модель рассуждает и выбирает действие — вызов инструмента с аргументами — или решает, что задача выполнена.
- Программа-оркестратор выполняет вызов (Tool use / function calling) и возвращает результат модели.
- Результат добавляется в контекст, и цикл повторяется.
Подход, чередующий рассуждения и действия, описан в работе 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).
- Лишние права. Агенту стоит давать минимальные необходимые полномочия (Принцип наименьших привилегий), выполнять код в изолированной среде и требовать подтверждения человеком для необратимых действий: удаления данных, платежей, отправки сообщений.
- Стоимость и время. Десятки вызовов модели на задачу; помогают кэширование, лимиты шагов и более дешёвые модели для простых подзадач.
См. также
- Tool use / function calling
- Model Context Protocol (MCP)
- Агенты для кода
- Безопасность LLM: prompt injection
- Промпт-инжиниринг
Источники
- Anthropic — Building effective agents (2024)
- S. Yao et al. — ReAct: Synergizing Reasoning and Acting in Language Models (2022)
- T. Schick et al. — Toolformer: Language Models Can Teach Themselves to Use Tools (2023)
- C. Jimenez et al. — SWE-bench: Can Language Models Resolve Real-World GitHub Issues? (2023)
- Model Context Protocol — Specification
- S. Russell, P. Norvig — Artificial Intelligence: A Modern Approach