Agentic Coding · RUПеревод редакции 7 октября 2026

Роли и контракты инструментов

Одинаковая инструкция, разная роль источника​

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

Возьмём одну инструкцию:

Всегда возвращай JSON с полями сводка, risks и next_action.

Слова во всех случаях одинаковы. Роль источника меняет то, как модель должна к ним относиться.

Механика агентов

Одни и те же слова действуют по-разному в зависимости от роли источника

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

Это поведение — не случайный эффект форматирования. Диалоговые модели обучают использовать роли сообщений как часть входных данных. При настройке следования инструкциям и обучении безопасности примеры учат модель тому, что системный текст и текст разработчика должны ограничивать разговор, текст пользователя — выражать активный запрос, а текст инструмента или наблюдения — рассматриваться как свидетельства из окружающей среды.

Именно это обучение объясняет, почему одна фраза может предсказывать разные продолжения. В роли с высоким приоритетом она действует как постоянное правило. В текущем пользовательском запросе — как предпочтение для задачи. В наблюдении, файле, веб-странице или выводе команды — как данные для интерпретации, а не команда к исполнению.

В терминах безопасности эта идея называется иерархией инструкций: при конфликте модель должна предпочитать источник с более высоким приоритетом и игнорировать попытки источников с низким приоритетом его переопределить. OpenAI формализует это в цепочке команд Model Spec и описывает соответствующее обучение моделей в The Instruction Hierarchy и Проверка иерархии инструкций. Исследовательская статья The Instruction Hierarchy рассматривает это как защиту от внедрения промптов; Изучение разделения ролей исследует, почему моделям нужны явные сигналы ролей вместо косвенных упрощений.

Для проектирования агентов рабочее правило простое: роли сообщений — не метаданные вокруг промпта. Это часть промпта, которую модель обучена интерпретировать.

Интеграция: CLI по умолчанию, MCP там, где окупается структура​

Проектирование интерфейса инструментов — решение о бюджете контекста. Каждая схема инструмента, которую модель должна держать в памяти, конкурирует с инструкциями, свидетельствами и рассуждениями. Описание навыка CLI занимает примерно 50–100 токенов. Схема инструмента MCP — примерно 500–3600 и более токенов. С каждым инструментом разница накапливается.

Команды CLI также опираются на обучающие данные модели (git, curl, jq, rg, конвейеры), компонуются операторами оболочки без протокольных накладных расходов и выдают текст, который модель читает напрямую, — ценой неоднозначности разбора.

Поколение CLI, оптимизированных для агентов​

Волна CLI 2026 года специально разработана для использования агентами и сокращает компромисс между эффективностью и структурированностью:

ОбластьИнструментЧем помогает агентам
БраузерPlaywright CLIНавык на 68 токенов, расход в 4,6 раза меньше, чем у MCP (25 тысяч против 115 тысяч за сессию). Состояние на диске (снимки YAML), компактные ссылки на элементы (e21), постоянный демон.
Браузерagent-browser (Vercel)Снимки дерева доступности примерно на 200–400 токенов (в 15 раз меньше DOM). Адресация по ссылкам (@e1), задержка прогретого демона около 1 мс, границы безопасности.
Контроль версийGitHub CLI (gh)Флаг --json у большинства команд для структурированного вывода. gh api предоставляет доступ к любому эндпоинту GitHub с JSON-ответами. Охватывает PR, задачи, репозитории, Actions, релизы — полный рабочий процесс разработчика, нужный агентам. Без Docker и зависимости от облака; вся настройка — gh auth login.
База данныхSupabase CLIОдной командой запускает полный локальный стек Postgres (supabase start): базу, аутентификацию, хранилище, realtime и edge-функции — всё в Docker с выводом --json. Агенты получают одноразовую песочницу базы данных, похожую на продакшен, для миграций схемы, проверки запросов и начального наполнения. Без зависимости от облака; настройка ограничивается supabase init.

Общий принцип: структурированный вывод, внешнее хранение состояния, минимальные затраты контекста — и всё это без формального протокола.

Когда MCP по-прежнему имеет смысл​

Структурные гарантии MCP оправдывают стоимость, когда проблема действительно структурная, а не случайная: удалённые сервисы с OAuth, регулируемый доступ с журналом аудита, динамические экосистемы инструментов, которым нужно обнаружение во время выполнения, или сервисы, у которых вообще нет CLI. Для локальных рабочих процессов разработчика CLI, оптимизированный под агентов, обеспечивает сопоставимую структуру при гораздо меньших затратах контекста.

Правило выбора: по умолчанию используй CLI; переходи к MCP, только когда задача требует гарантий на уровне протокола.

Роли и контракты инструментов описывают, как собирается один вызов модели. Следующий вопрос — кто решает, каким должен быть следующий вызов.