Перейти к содержимому

Инструменты агента: контракты и ограничения

Инструменты — функции, которые агент может вызвать: чтение файлов, запуск команд, поиск, работа с API, браузером, базой данных. Без них модель остаётся «говорящей головой»: она рассуждает, но ничего не проверяет и не меняет.

Разница между демо и production здесь видна сразу. Демо показывает, что агент умеет вызвать инструмент. Production определяется тем, что именно ему разрешено и как ограничен вызов.

Харнесс — среда вокруг модели, которая организует цикл работы, выдаёт инструменты и управляет контекстом и разрешениями. У разных харнессов набор называется по-разному, но роли совпадают.

ОперацияДля чегоПримеры в харнессах
ReadЧитать код, документы, конфигурацию, в том числе по диапазону строкClaude Code Read; OpenCode read
Edit / apply patchМенять фрагменты, не перезаписывая файл целикомClaude Code Edit; OpenCode edit, apply_patch
Bash / execТесты, сборка, CLI, скриптыClaude Code Bash; OpenCode bash
WriteСоздавать файлы и результатыClaude Code Write; OpenCode write
Glob / listНаходить файлы по имени и маскеOpenCode glob
GrepИскать символы, ошибки, фрагменты текстаClaude Code Grep; OpenCode grep
Web fetchЧитать известную страницу по URLClaude Code WebFetch; OpenCode webfetch
Web searchНаходить актуальные источники и примерыClaude Code WebSearch; OpenCode websearch
Subagent / delegateПередать задачу агенту с отдельным контекстомClaude Code Agent
Ask user / approvalУточнить требование или остановить опасное действиеClaude Code AskUserQuestion; OpenCode question

Список — по роли в работе, а не рейтинг популярности. Названия, доступность и права зависят от версии, платформы и конфигурации; сравнение конкретных ассистентов — в Харнессы и код-ассистенты.

Харнесс расширяется сервисами, которые дают специализированные возможности. «Внешний» не значит облачный: MCP-сервер может работать локально.

ИнструментЧто добавляет
TavilyВеб-поиск и извлечение контента для ИИ-приложений
ExaПоиск веб-материалов и получение содержимого по URL
FirecrawlОбход сайтов, скрейпинг, преобразование страниц в Markdown
Playwright MCPУправление браузером: навигация и взаимодействие со страницей
Browserbase / StagehandОблачные браузерные сессии и автоматизация действий
GitHub MCP ServerКод, issues, pull requests, GitHub Actions
SQLDatabaseToolkitПросмотр схемы, проверка и выполнение SQL-запросов

Дальше — узкие функции поверх конкретной системы: get_order_status, create_ticket, save_draft. Это прикладные операции, а не универсальные названия.

Важно не путать операцию и её реализацию: web_search — то, что видит модель; Tavily или Exa могут быть её исполнителем. Браузер может быть встроен в харнесс или подключаться отдельно через Playwright. Не каждый харнесс поддерживает любой вариант без адаптера.

Надёжность зависит не от числа инструментов, а от их ограничений:

  • Разрешённые каталоги и ресурсы. Агент читает и пишет только там, где это ожидается.
  • Права. Для аналитики SQL — доступ только на чтение; для GitHub — только нужные репозитории и операции.
  • Таймауты и лимиты вывода. Один find / или гигантский лог съедают контекст и бюджет.
  • Подтверждение опасных действий. Запись, публикация, отправка сообщений, изменение данных — отдельный контур.
  • Разделение чтения и записи. Действия с внешними последствиями не должны быть доступны в том же режиме, что чтение.

Особый случай — shell. Ограничения файловых инструментов сами по себе не ограничивают команды терминала: если агенту разрешён bash, каталог «только для чтения» перестаёт быть ограничением. Это самая частая ошибка в настройке прав.

  • Что агент может испортить. Пройдите по списку инструментов и ответьте: какое худшее изменение возможно без подтверждения человека.
  • Не подменяет ли подтверждение вопрос. Уточняющий вопрос пользователю не заменяет политику: авторизация — свойство среды, а не вежливость модели.
  • Логируются ли вызовы. Без трассировки вызовов (см. Наблюдаемость) инцидент не разобрать.
  • Сколько инструментов реально нужно. Десяток узких функций с ясными контрактами работает лучше сотни универсальных.