[!NOTE] Автоматический перевод Эта статья была автоматически переведена с оригинальной английской версии.
ИИ-агент Tool Use в 2026 году: MCP, CLI, навыки и выполнение кода
Часть 3 серии «Инженерия стека Агентный»
Часть 1 обрабатывает циклы ризонинг с покрытием, и Часть 2 Покрытая память. В данной статье рассматривается слой действий: способ, с помощью которого агент экспонирует, выбирает и запускает инструменты.
Ситуация с инструментарием изменилась в период 2025–2026 годов. MCP обеспечил поставщикам единый протокол для взаимодействия с внешними сервисами, в то время как агенты, выполняющие код, показали, что модель иногда может создавать небольшие программы более эффективно, чем с помощью длинной последовательности вызовов JSON. Компания Anthropic сообщила о снижении расходов на 98,7% токен в рамках одного из процессов анализа затрат, а статья CodeAct указала на улучшения до 20% в контексте используемой ими бенчмарк инфраструктуры. Указанные результаты касаются конкретных задач и решений, а не универсального преимущества использования такого способа выполнения кода.
Я сравниваю вызов инструмента JSON, MCP, функции Skills, инструменты командной строки и выполнение кода в указанном порядке. В заключительном разделе применяются принципы проектирования интерфейса агента и компьютера (ACI) к Агент аналитика рынка.
Кратко: Пять полезных шаблонов интерфейса покрывают большинство сценариев работы агентов tool use. Скрипты предназначены для хранения инструкций, инструменты командной строки удобны для локальной разработки, MCP обеспечивает взаимодействие с общедоступными сервисами, а выполнение кода позволяет формировать многоэтапные задачи внутри сэндбокс. Использование инструмента JSON остается самым простым решением для небольших атомарных операций. Независимо от протокола, интерфейс агента и компьютера (ACI) должен обеспечивать чёткую передачу действий, краткую обратную связь и возможность восстановления после ошибок.
Пять способов использования инструментов ИИ-агенты
В Часть 1, цикл ризонинга выбрал следующий шаг. Часть 2 Сохраняется состояние, необходимое для его возобновления. Границы инструмента преобразуют это решение в конкретное действие и возвращают результат наблюдения обратно в цикл. Эти пять шаблонов приводят к различным компромиссам с точки зрения стоимости, гибкости и эффективности реализации в токен.
1. Вызов инструмента JSON: базовый уровень
Исходная схема работы заключается в том, что вы определяете схемы инструментов как JSON, а LLM генерирует структурированные вызовы функций, которые затем выполняются вашим кодом. Такой подход хорошо известен и эффективно работает для небольших наборов инструментов.
# Traditional tool definition — each tool consumes ~550-1,400 tokens (Apideck benchmark)
tools = [
{
"name": "get_stock_price",
"description": "Get the current stock price for a ticker symbol",
"input_schema": {
"type": "object",
"properties": {
"ticker": {"type": "string", "description": "Stock ticker (e.g., NVDA)"}
},
"required": ["ticker"]
}
}
]
С 5–10 инструментами всё в порядке. Проблема заключается в масштабируемости: определение каждого инструмента требует затрат 550-1,400 токены. При использовании 20 инструментов вы тратите от 15 до 25 тыс. токены ещё до того, как агент начнёт выполнять свои задачи ризонинг.
2. MCP для совместных интеграций
Модель Протокол контекста является стандартом, который приняли подавляющее большинство поставщиков решений. В декабре 2025 года компания Anthropic передала его в распоряжение Linux Foundation через фонд Агентный AI Foundation (AAIF) совместно с OpenAI и Block; проект получил поддержку от Google, Microsoft и AWS в качестве платиновых членов. OpenAI добавила поддержку MCP в свои механизмы генерации ответов API. В настоящее время существует более 10 000 активных серверов MCP, а количество ежемесячных загрузок SDK превышает 97 млн.
MCP позволяет реализовывать интеграцию SaaS-сервисов разных производителей (Figma, Notion, Salesforce), сервисов, не имеющих аналогов в формате CLI, а также работать с средами, требующими использования механизма OAuth оркестрация. Его ключевая особенность заключается в наличии общего слоя для обнаружения ресурсов и их передачи. Однако управление доступом по‑прежнему определяется механизмами аутентификации, авторизации, логгинга и контроля деплой на уровне сервера.
На практике ситуация сложнее, чем показывают краткие статистические данные в заголовках.
Первой проблемой является площадь уязвимостей. Уязвимый проект MCP Отслеживает 50 уязвимостей на серверах MCP, из которых 13 отнесены к категории «Критические»; информация собрана 32 исследователями в области кибербезопасности. К классам атак относятся спан промпт-инъекция, ошибки проверки входных данных, пробелы в механизмах аутентификации и уязвимости сетевой безопасности. Это первый реальный вредоносный сервер MCP. появился в сентябре 2025 года: пакет под названием postmark-mcp что пересылал каждое отправляемое письмо по адресу BCC злоумышленника, что привело к затронутости примерно 300–500 организаций до момента обнаружения проблемы.
Угроза отравления инструментов — это класс атак, которым я беспокоюсь больше всего. Компания Invariant Labs продемонстрировала Эти заражённые инструменты MCP способны вывозить данные даже в тех случаях, когда они никогда не запускаются. Для запуска атаки модель достаточно лишь прочитать метаданные данного инструмента. MCPTox бенчмарки Проведённые тесты 20 агентов LLM на 45 реальных серверах MCP показали, что уровень успешности атак достигал 72,8%.
Токен нагрузка представляет собой операционную проблему. Одна команда, обслуживающая MCP серверы для GitHub, Slack и Sentry (всего около 40 инструментов), столкнулась с этим явлением 55,000 токены шаблонов определений, вставляемых до того, как пользователь задаст какой-либо запрос. Ещё один зарегистрированный случай 143 000 из 200 000 доступных токены (72%) Полностью занят обработкой определений инструментов.
Компания Anthropic сообщила о сокращении объёма схем на 85% в своём инструменте по поиску инструментов, а также о снижении этого показателя до 96% при загрузке от трёх до пяти релевантных инструментов для рассматриваемых задач. Благодаря избирательной загрузке сохраняется необходимый набор протоколов, при этом удаляются схемы, которые не требуются в текущем запросе.
3. Экспертиза набора навыков, а не их реализация
К концу 2025 года была завершена стандартизация agent skills в качестве открытого формата (проект запущен в октябре 2025 года, а в декабре того же года получил статус открытого стандарта). Это различие имеет важное значение: инструменты обеспечивают функциональные возможности (то, что могут делать агенты), тогда как навыки представляют собой экспертизу (знания, необходимые для выполнения сложных задач).
Стандарт SKILL.md определяет навык как файл Markdown с YAML-фронтматтером:
---
name: deploy
description: Deploy the application to production
argument-hint: "[environment]"
user-invocable: true
---
Deploy the application to the $0 environment (default: staging).
Steps:
1. Run the test suite
2. Build the production bundle
3. Deploy using the deploy script
4. Verify the deployment health check
Эти навыки используют принцип постепенного отображения информации. При запуске загружается примерно 100 токены метаданных; полные инструкции загружаются только тогда, когда навык находится в активном состоянии. Для сравнения, около 40 MCP инструментов способны потреблять примерно 55 000 токены до начала работы ризонинг. К марту 2026 года формат был принят такими инструментами, как Claude Code, OpenAI Codex CLI, Cursor, GitHub Copilot, Gemini CLI, Goose, Windsurf и Roo Code. Виктор Дибия описывает этот сдвиг в направлении действий агента, основанных на коде.
Используйте эти навыки для работы с областными знаниями, многоэтапными процедурами и регулярными задачами, такими как миграции баз данных или интеграция платежных систем. Они подходят для задач, в которых агенту требуются инструкции о том, как использовать уже существующие возможности.
4. Инструменты CLI и оболочки
Интерфейсы CLI могут быть значительно дешевле в данном контексте, когда модель уже знает команду. Компания Scalekit сообщила об этом 4–32× разница токен за период 75 запусков между путями его CLI и MCP. В этом техническом случае исследовании оцениваются используемые инструменты и задачи; однако оно не заменяет собой сравнение ваших собственных манифестов и результатов выполнения команд.
Широко задокументированные команды, такие как git, docker, kubectl, gh, curl, и jq Зачастую достаточно лишь небольшого вступительного описания схемы. Однако для реже используемых или внутренних CLI всё равно требуются доступные справки, примеры использования и стабильный машинно-читаемый формат вывода.
Руководство Уго Эньиохи Разработка инструментов командной строки, которые действительно хочется использовать ИИ-агенты сформулировано восемь правил проектирования:
- Structured output является обязательным — поддержка
--json - Коды выхода представляют собой элемент управления потоком выполнения — следует использовать разные коды для различных типов ошибок.
- Команды должны быть идемпотентными.
- Самодокументирующиеся.
--helpс реалистичными примерами - Проектирование с учётом композиционности —
--quietдля примитивных значений — поддержка ввода из stdin - Обеспечить
--dry-runи--yesflags - Поддержка инспекции версии
- Обработка аутентификации с помощью переменных окружения
Компромиссы здесь реальны. CLI не обеспечивает типобезопасности, встроенной поддержки OAuth оркестрация, механизмов поиска инструментов и функций логирования операций, присущих MCP. Наиболее распространённым подходом среди команд является использование CLI в качестве стандарта для разработки и локальных операций, а MCP — для интеграции с внешними сервисами и реализации корпоративных правил управления.
5. Выполнение кода для многоэтапных задач
Именно изменение в инструментарии агентов кажется мне наиболее значимым. Вместо того чтобы LLM генерировал структурированные JSON для последовательного вызова заранее определённых функций, агент создаёт полный скрипт на Python или bash, который запускает несколько инструментов, обрабатывает результаты с использованием циклов и условий, а затем возвращает в контекст модель только итоговые сводки.
Anthropic сформализовал это с помощью Программное вызов инструментов (PTC), теперь GA в Claude API. Академической основой является статья CodeAct (Ванг и др., ICML 2024), которые провели тестирование на 17 LLMs и обнаружили, что методы код-действий позволяют достигать на 20% более высоких показателей успешности выполнения задач и на 30% меньшего количества шагов по сравнению с альтернативами типа JSON.
Три кейс-стади от первых производителей демонстрируют сферы применения данной паттерны. Используйте их в качестве подтверждений от поставщиков и повторите сравнение для собственных задач.
-
Vercel перепроектировал свой агент d0 для преобразования текста в SQL путем удаления 80 % своих инструментов (с 15 до 2)
ExecuteCommandиExecuteSQL). Уровень успешности выполнения задачи вырос с 80% до 100%, время её выполнения сократилось в 3,5 раза, а использование токен уменьшилось на 40%. Их формулировка: «Лучшими агентами могут оказаться те, у которых наименьше инструментов». -
Cloudflare разработал функцию «Code Mode». Это позволяет агентам, занимающимся работой с недвижимостью, использовать TypeScript для вызова их API вместо того, чтобы определять схемы инструментов, что снижает нагрузку на обработку контекста. Их ризонинг гласит: «В наборах данных, используемых для обучения LLMs, присутствует огромное количество реальных примеров кода на TypeScript, однако лишь небольшое количество искусственно созданных примеров tool calls».
Вот шаблон из Документация Anthropic по PTC. Традиционные инструменты для анализа расходов требуют проведения более 20 отдельных вызовов инференс — по одному на каждого сотрудника команды — причём вся промежуточная информация передаётся через контекст. Рабочий процесс, потреблявший около 150 000 токены при прямом вызове инструмента, был переписан с использованием всего ~2 000 токены, что соответствует сокращению на 98,7%. Благодаря выполнению кода агент генерирует лишь один скрипт:
# Agent generates this code, executes in sandbox
import json
members = get_team_members("engineering")
over_budget = []
for m in members:
expenses = get_expenses(m["id"], "Q3")
total = sum(e["amount"] for e in expenses)
if total > 5000:
custom = get_custom_budget(m["id"])
limit = custom["limit"] if custom else 5000
if total > limit:
over_budget.append({"name": m["name"], "spent": total, "limit": limit})
# Only this final summary returns to the LLM context
print(json.dumps(over_budget))
LLM видит лишь итоговое резюме JSON, а не тысячи статей расходов, обработанных в сэндбокс. Благодаря высокой Токен эффективности, встроенной возможности композиции (циклы и условные операторы реализуются без дополнительных усилий) и надёжной обработке ошибок,try/except Вместо обработки ошибок с использованием естественного языка ризонинг, а также благодаря защите конфиденциальности (чувствительные данные остаются внутри сэндбокс), все эти аспекты улучшаются одновременно.
Когда использование инструмента JSON всё ещё оправдано: при выполнении одиночных атомарных операций, в средах без инфраструктуры сандбоксинга, при работе с небольшими модели, где качество генерации кода низкое, или при наличии требований к аудиту, предусматривающих необходимость логирования каждого отдельного вызова инструмента.
Таблица сравнения способов вызова инструментов ИИ-агент
| Размерность | Вызов инструмента JSON | MCP | Навыки (SKILL.md) | CLI/Bash | Выполнение кода (PTC) |
|---|---|---|---|---|---|
| Лучше всего подходит для | Простые одноэтапные операции | Мультипроизводительские SaaS-решения | Практический опыт в конкретной области | Рабочие процессы разработчиков, локальные операции | многократный оркестрация |
| Токен накладные расходы | Средний (шаблоны на запрос) | Очень высокий (550–1 400/инструмент) | Очень низкий (~100 токены) | Почти нулевой | Низкий (2 мета-инструмента) |
| Доказательства выполнения задачи | Базовый уровень в цитируемых исследованиях | Зависит от сервера и задачи. | Измерять на задачах, нативно реализованных в CLI. | CodeAct показывает прирост до +20% | |
| Композиционность | Низкий (последовательный) | Низкий (последовательный) | Высокий уровень (процедурных знаний) | Высокий уровень (трубопроводы, цепочка обработки) | Очень высокий (нативный код) |
| Поверхность безопасности | Умеренный | Высокий (50+ CVE) | Низкий (основанный на промпт) | Высокий (доступ к оболочке) | Высокий (требуется сандбоксинг) |
| Сложность настройки | Низкий | Средний (сервер деплой) | Очень низкий (markdown) | Очень низкий (существующие CLI) | Medium (сэндбокс инфраструктура) |
| Латентность за операцию | 1 инференс/call | 1 инференс + механизм передачи | 0 (внедрение контекста) | 1 инференс/call | 1 проход для N вызовов |
| Отладка | Хорошо (структурированный ввод/вывод) | Умеренный (слоя транспортировки) | Отлично (видимая часть) | Хороший (читаемый код) |
Композибельность в данном контексте характеризует степень простоты объединения нескольких операций в более крупный рабочий процесс. Низкий уровень означает, что каждая tool call обычно требует дополнительной поездки туда-обратно модель; высокий уровень подразумевает возможность передачи промежуточных результатов через пайпы, переменные или процедурные шаги. Ячейки Токен и task-success содержат краткое описание приведённых примеров, а не один единственный контролируемый бенчмарк для всех пяти столбцов.
Интерфейс агента и компьютера (ACI) для инструментов ИИ-агент
Термин «Agent-Computer Interface» (ACI) был введён Джоном Янгом, Карлосом Э. Хименесом и их коллегами из Принстона в их Статья о SWE-agent (NeurIPS 2024). Идея довольно проста: так же, как люди получают выгоду от хорошо спроектированных интерфейсов (HCI), агенты на основе языковых моделей представляют собой «новую категорию конечных пользователей с собственными потребностями и возможностями, которые также могут извлечь пользу из специально разработанных для них интерфейсов».
Этот результаты абляции Я провёл резервное копирование этих результатов. Агент SWE-agent с полноценной реализацией механизма ACI показал результат 18,0% на тестовой среде SWE-bench Lite, тогда как при использовании лишь стандартной оболочки Linux этот показатель составил 7,3%. Таким образом, только за счёт оптимизации интерфейса было достигнуто улучшение на 10,7 процентных пунктов. Одна лишь функция проверки кода гардрейл принесла ещё 3 процентных пункта: 51,7% всех изменений, внесённых агентом, содержали хотя бы одну ошибку, обнаруженную инструментом проверки до того, как она смогла распространиться дальше.
Anthropic взяла ACI в качестве фундаментальной концепции в своих «Разработка эффективных агентов» Рекомендуется рассматривать это как один из трёх основных принципов: «Тщательно проектируйте интерфейс агента и компьютера с помощью подробной документации инструментов и их тестирования». Практический совет заключается в следующем: «Хорошим ориентиром служит учёт того объёма усилий, который вкладывается в разработку интерфейсов человека и компьютера; планируйте вложить столько же усилий в создание качественных интерфейсов агента и компьютера».
Четыре принципа ACI на практике
1. Действия должны быть простыми и понятными. Самая распространённая ошибка заключается в однозначном сопоставлении эндпоинтов API друг с другом. Вместо того чтобы list_users, list_events, create_event, реализовать schedule_event который определяет наличие ресурсов и планирует задачи в одном вызове. Вместо того чтобы read_logs, реализовать search_logs который возвращает только соответствующие строки вместе с контекстом.
2. Действия должны быть компактными и эффективными. Объединяйте важные операции в минимальное количество действий. В данном случае Агент аналитика рынка, Я объединяю получение цен с базовыми метриками в единый get_stock_snapshot инструмент, позволяющий избежать необходимости отдельных запросов для получения данных о цене, объёме торгов, рыночной капитализации и коэффициенте P/E.
3. Обратная связь от среды должна быть информативной, но краткой. Избегайте возврата необработанного HTML или полных данных вида API. Заменяйте туманные идентификаторы на семантически понятные названия. тестирование в Anthropic показало, что добавление response_format enum, позволяющий агентам запрашивать краткие (~72 токены) или подробные (~206 токены) ответы (с разницей в стоимости в 3 раза из-за токен), существенно улучшивший производительность в реальных условиях.
4. Гардрейлы должен снижать вероятность распространения ошибок. Автоматическое обнаружение ошибок позволяет агентам быстро выявлять и устранять недостатки. В SWE-agent, специализированный редактор файлов с встроенной проверкой соответствия стилю автоматически отклоняет синтаксические ошибки, выявляя 51,7% ошибок, возникающих при редактировании агентом, ещё до того, как они смогут привести к серьёзным последствиям. Я применяю тот же принцип в агенте Market Analyst Agent, проверяя аргументы инструментов с помощью схем Pydantic перед их выполнением:
from pydantic import BaseModel, Field, field_validator
class StockQuery(BaseModel):
"""Validated input for stock queries.
Pydantic catches malformed tickers before the API call,
preventing error propagation through the reasoning loop.
"""
ticker: str = Field(description="Stock ticker symbol (e.g., NVDA)")
period: str = Field(default="1mo", description="Time period: 1d, 5d, 1mo, 3mo, 1y")
@field_validator("ticker")
@classmethod
def validate_ticker(cls, v: str) -> str:
v = v.upper().strip()
if not v.isalpha() or len(v) > 5:
raise ValueError(f"Invalid ticker format: {v}")
return v
@field_validator("period")
@classmethod
def validate_period(cls, v: str) -> str:
valid = {"1d", "5d", "1mo", "3mo", "6mo", "1y", "5y"}
if v not in valid:
raise ValueError(f"Invalid period: {v}. Must be one of {valid}")
return v
Рабочие шаблоны проектирования инструментов ИИ-агент
Anthropic’s Разработка эффективных инструментов для агентов Инструменты guide frames описываются как «новый тип программного обеспечения, отражающий контракт между детерминированными системами и недетерминированными агентами». Ниже приведены закономерности, сформировавшиеся в ходе практического использования.
Считайте описания инструментов как промпт-инжиниринг
Описания должны быть более подробными. При реализации таких архитектурных решений критически важно учитывать особенности производительности при работе с большими объёмами данных. Эффективное управление памятью и оптимизация потока выполнения кода позволяют снизить нагрузку на системные ресурсы в условиях высокой интенсивности обработки информации. Таким образом, тщательная настройка параметров пар, Описание сценариев применения инструмента, требуемых и факультативных параметров, формата вывода, а также крайних случаев. Нормы пространственного именинга с использованием префиксовasana_search, jira_searchЭто оказывает «значимое влияние» на точность выбора инструментов. В экспериментах компании Anthropic описания инструментов, оптимизированные для Claude, показали лучшие результаты по сравнению с описаниями, написанными экспертами вручную, при оценке бенчмарки.
# Bad: vague, no context for when to use
tools = [{
"name": "search",
"description": "Search for items",
}]
# Good: specific, with input examples and edge cases
tools = [{
"name": "stock_search_news",
"description": (
"Search for recent news articles about a specific stock or company. "
"Use this tool when the user asks about recent events, earnings, "
"announcements, or market-moving news for a specific ticker. "
"Returns up to 10 articles sorted by relevance. "
"For broad market news (not ticker-specific), use market_overview instead."
),
"input_schema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Search query. Examples: 'NVDA earnings Q3 2025', 'Tesla delivery numbers'"
},
"max_results": {
"type": "integer",
"description": "Max articles to return (1-10, default 5)",
"default": 5
}
},
"required": ["query"]
}
}]
Внутренние тестирования было показано, что примеры входных данных (input_examples Этот метод значительно повысил точность при обработке сложных параметров.
Возвращать высокосигнальный вывод, пригодный для обработки машинами
Избегайте использования идентификаторов низкого уровня.uuid, mime_type). Преобразуйте туманные идентификаторы в семантические названия. Сформируйте ответ таким образом, чтобы агент мог логически работать с ним, не разбирая шаблонный текст:
# Bad: raw API response dumped to agent
def get_stock_price(ticker: str) -> dict:
response = api.get(f"/v1/quotes/{ticker}")
return response.json() # 500+ tokens of nested JSON
# Good: high-signal summary the agent can immediately reason about
def get_stock_price(ticker: str) -> dict:
data = api.get(f"/v1/quotes/{ticker}").json()
return {
"ticker": ticker,
"price": data["regularMarketPrice"],
"change_pct": round(data["regularMarketChangePercent"], 2),
"volume": data["regularMarketVolume"],
"market_cap_b": round(data["marketCap"] / 1e9, 1),
"pe_ratio": data.get("trailingPE"),
"summary": f"{ticker} at ${data['regularMarketPrice']:.2f} "
f"({'up' if data['regularMarketChangePercent'] > 0 else 'down'} "
f"{abs(data['regularMarketChangePercent']):.1f}%)"
}
Возврат ошибок, с которыми может работать цикл
Используйте четыре отдельных механизма, поскольку они обрабатывают разные категории сбоев:
- Повторная попытка с экспоненциальным откладыванием времени для временных ошибок
- Цепочки резервного восстановления Модель при простоях поставщика
- Классификация ошибок роутинг — повторные попытки для временных ошибок, возврат информации об LLM к агенту с дополнительными данными для случаев ошибок, требующих вмешательства человека, и передача ошибок на более высокий уровень обработки
- Чекпоинт механизмы восстановления после сбоев системы
Упомянутый руководство Anthropic способствует четкой идентификации ошибок инструментов и их проектированию на основе оценочных показателей. В нем не указан единый стандарт для снижения уровня сбоев, поэтому необходимо самостоятельно измерять скорость восстановления работы, количество повторных попыток и механизмы передачи задач на более высокий уровень обработки.
from tenacity import retry, stop_after_attempt, wait_exponential
@retry(
stop=stop_after_attempt(3),
wait=wait_exponential(multiplier=1, min=2, max=10),
)
def call_stock_api(ticker: str) -> dict:
"""Fetch stock data with automatic retry on transient failures.
Layer 1: Exponential backoff handles rate limits and network blips.
If all retries fail, the error propagates to the agent with
enough context to decide whether to try a different approach.
"""
response = httpx.get(
f"https://api.example.com/v1/quotes/{ticker}",
timeout=10.0,
)
response.raise_for_status()
return response.json()
Применение этих шаблонов к агенту аналитика рынка
Этот Агент аналитика рынка из Часть 1 позволяет визуализировать эффект работы интерфейса.
Консолидация инструментов
В статье первой части показана упрощённая модель поверхности с 5 инструментами после данной рефакторизации. До этой оптимизации исходный дизайн включал более 10 инструментов: get_stock_price, get_company_metrics, get_market_cap, get_pe_ratio, get_volumeИ так далее. Каждый из них представлял собой тонкий обёрток вокруг одного конечной точки API. Агенту необходимо было определять, какую комбинацию вызовов использовать для каждого запроса.
Я объединил их в 5 инструментов высокого уровня, следуя принципу ACI, предусматривающему компактные и эффективные действия:
| До использования (более 10 инструментов) | Почему? | |
|---|---|---|
get_stock_price + get_company_metrics + get_pe_ratio | get_stock_snapshot | Один вызов возвращает всё необходимое для базового анализа. |
get_price_history + get_volume_history | get_price_history | В сочетании с настраиваемым периодом и индикаторами |
search_news + search_press_releases | search_news | Единый поиск с фильтрацией исходных данных |
search_competitors + get_sector_data | search_competitors | Возвращает конкурентов вместе с их относительными метриками |
get_financials + get_balance_sheet + get_cash_flow | get_financials | Объединено с параметром statement_type |
Это существенно снизило нагрузку на схему инструментов и повысило надёжность выбора инструментов агентом, поскольку уменьшилось количество неоднозначных вариантов принятия решений.
Structured outputs для результатов инструмента
Каждый инструмент в агенте Market Analyst возвращает ответ, прошедший валидацию с помощью Pydantic. Это обеспечивает применение принципа ACI гардрейлы на границе взаимодействия с инструментом:
class StockSnapshot(BaseModel):
"""Structured tool response — the agent never sees raw API noise."""
ticker: str
price: float
change_pct: float
volume: int
market_cap_b: float
pe_ratio: float | None
summary: str # Human-readable one-liner for direct use in reports
class NewsResult(BaseModel):
"""Each news item is pre-processed for agent consumption."""
headline: str
source: str
date: str
relevance_score: float # Pre-ranked so the agent doesn't waste tokens sorting
key_points: list[str] # Extracted by the tool, not the agent
Этот summary field именно тот элемент, который имеет наибольшее значение. Он предоставляет агенту готовую к использованию строку, которую можно сразу включить в отчёт без дополнительной обработки. key_points в NewsResult Они извлекаются на стороне сервера, что позволяет агенту избежать затрат на инференс токены обработку тел статей.
Компромиссы и аспекты, которые необходимо учитывать
Помимо вышеуказанных ограничений, связанных с конкретными модальностями, на выбор влияют ещё несколько общих факторов:
-
Размеры влияют на операционные затраты. Выполнение кода позволяет сократить токены, но увеличивает расходы на латентность при первом запуске из-за сэндбокс. MCP экономит время на разработке интеграций для SaaS, однако создаёт дополнительную нагрузку на серверы из-за деплой. Использование CLI не требует начальных затрат, но затрудняет управление в крупном масштабе. Оптимизируйте решение с учётом ваших реальных показателей боттлнек — будь то стоимость токен, латентность или уровень операционной сложности.
-
Навыки команды играют ключевую роль. Для выполнения кода необходимо, чтобы ваши агенты (а также модели, стоящий за ними) умели генерировать надёжный код на Python или TypeScript. Работа с CLI предполагает знакомство с конвенциями Unix. Для работы с MCP требуется понимание протоколов передачи данных и схем OAuth. Подбирайте способ взаимодействия в соответствии с сильными сторонами вашей команды.
-
Консолидация инструментов может зайти слишком далеко. Если один инструмент накапливает несвязанные режимы и аргументы, агент сталкивается с другой проблемой выбора внутри схемы. Для определения оптимального подхода к обработке задачи используйте механизмы выбора инструментов и оценку успеха выполнения задач.
-
Навыки основаны на промпт, но их соблюдение не является обязательным. Навык представляет собой набор инструкций, которым агент должен следовать, а не гардрейлы, которым он обязан следовать в любом случае. Для критически важных рабочих процессов рекомендуется сочетать навыки с методами детерминистичной верификации.
-
Требования к аудиту определяют выбор инструментов. Если необходим полный журнал каждого вызова инструмента и его результата, функции вызова инструментов MCP и JSON обеспечивают структурированные аудиторские треки из коробки. Выполнение кода генерирует скрипт и его вывод, что полезно, но затрудняет разбиение процесса на отдельные действия для составления отчетов по соответствию стандартам.
Выбор инструментов в крупном масштабе
Стоит отслеживать три направления.
Первым является инструмент RAG для масштабирования. По мере того как наборы инструментов увеличиваются до сотен или тысяч элементов, точность примитивного выбора инструментов снижается до уровня 13,62%. RAG-MCP статья Было показано, что применение генерации с усилением с помощью retrieval к процессу выбора инструментов (индексация описаний инструментов в векторной базе данных и извлечение только релевантных инструментов для каждого запроса) позволяет достичь точности 43,13%, что на 3,2 раза лучше исходных показателей, при этом сокращая объём промпт токены примерно на 50%.
Второй подход заключается в том, что агенты создают собственные инструменты. LATM фреймворк “@@LLMs@@ в качестве разработчиков инструментов"" определили двухэтапную парадигму, при которой мощный LLM генерирует повторно используемые функции на Python, а легковесный LLM задействует их в своей работе. ToolMaker (ACL 2025) автономно преобразует репозитории GitHub в инструменты, совместимые с LLM, с коэффициентом успеха 80%. Современные исследования смещаются от tool use к созданию таких инструментов, а затем — к управлению библиотеками инструментов.
Третьим является стек дуальных протоколов A2A + MCP. Протокол Agent2Agent от Google (A2A) решает те задачи, которые MCP не может решить — а именно обеспечивает коммуникацию между агентами. MCP отвечает за интеграцию агентов с инструментами, в то время как A2A занимается обнаружением агентов, ведением переговоров между ними и делегированием задач. Общая формула работы такова: создавайте на основе своего фреймворк, оснащайте его средствами MCP и осуществляйте взаимодействие с помощью A2A.
Основные выводы
- Выбирайте подходящий интерфейс в зависимости от задачи: JSON — для небольших типизированных операций, MCP — для общедоступных сервисов, модуль Skills — для выполнения процедур, CLI — для стандартных команд, а код в изолированной среде — для локальной разработки.
- Сохраняйте связанные с результатом бенчмарк условия. Системы CodeAct, Anthropic, Vercel, Cloudflare, Apideck и Scalekit анализировали различные модели, задачи, инструменты и платформы.
- Качество ACI остаётся неизменным при смене протоколов. Чёткие действия, краткая обратная связь, механизмы верификации и информативные сообщения об ошибках способствуют эффективной работе любого формата.
- Объединяйте дублирующие инструменты только тогда, когда оценки показывают, что упрощение структуры улучшает процесс выбора или повышает шансы на успешное выполнение задачи.
- Уровень безопасности определяется возможностями выполнения кода. Интерфейсы в виде оболочек и программного кода требуют использования изолированных сред; MCP нуждается в строгом контроле идентичности пользователей и политик серверов; модуль Skills продолжает выполнять роль инструкций, а не механизма принудительного соблюдения правил.
Следующий уровень — это политика
Часть 4, ИИ-агент Безопасность в 2026 году, Между предложенным tool call и его выполнением внедряется проверка соответствия установленной политике. В пятой части инструмент вместе с его сэндбокс помещается внутрь восстанавливаемого рантайм. Шестая часть возвращает пользователя к интерфейсу с точки зрения харнесс: показывает, как трейсы, эвалуаторы, правила повторных попыток и проверки приемлемости превращают обратную связь от инструмента в структурированный цикл улучшений.
Список литературы
Статьи
- Действия с исполняемым кодом способствуют формированию более качественных LLM агентов (CodeAct). — Wang и др., ICML 2024 — Действия, основанные на коде, обеспечивают на 20% более высокий уровень успешного выполнения задач по сравнению с JSON SWE-agent: Интерфейсы агента и компьютера обеспечивают автоматизацию процессов разработки программного обеспечения — Yang, Jimenez и др., NeurIPS 2024 — Принципы проектирования ACI и оценка с помощью SWE-bench (18,0% против 7,3%, разница в 10,7 п.п. обусловлена проектированием интерфейса)
- RAG-MCP: Снижение уровня Промпт «загрязнения» при выборе инструментов из категории LLM — Инструмент RAG, повышающий точность селекции с 13,62% до 43,13% LLMs в качестве создателей инструментов (LATM) — Cai et al., 2023 — Двухфазная парадигма для создания инструментов агентов ToolMaker: LLM Агенты, создающие инструменты для других агентов — Wolflein и др., ACL 2025 — уровень успеха при преобразовании репозиториев в инструменты составляет 80%
- MCPTox: Всесторонний инструмент для оценки MCP токсичности Бенчмарк — Уровень успешности атаки составляет 72,8% при использовании 20 агентов LLM и 45 серверов MCP.
Инженерия Anthropic
- Продвинутые методы Tool Use / программной интеграции с инструментами — Поиск инструментов (сокращение схемы на 85%), примеры PTC и tool use Выполнение кода с MCP — сокращение на 98,7% токен (от 150 тыс. до 2 тыс. токены) благодаря инструменту оркестрация на основе кода
- Разработка эффективных инструментов для агентов — Инженерная спецификация инструмента; примеры входных данных повышают точность; перечисление response_format (72 против 206 токены) Создание эффективных агентов — ACI как основополагающий принцип проектирования
Примеры реализации в отрасли
- Vercel: Мы удалили 80% инструментов нашего агента — от 15 до 2 инструментов, уровень успеха от 80% до 100%, скорость выполнения в 3,5 раза выше, на 40% меньше токены Cloudflare: режим кода — Вызовы, реализованные с использованием TypeScript и API, заменяющие схемы инструментов
- Apideck: MCP сервер, который «съедает» ваш Контекстное окно — 550–1 400 токены/tool, 55 K токены для примерно 40 MCP инструментов, потребляется 143 K/200 K контекста
- Scalekit: MCP против CLI Токен Бенчмарк — дополнительная нагрузка в размере 4–32 раз токен при использовании MCP по сравнению с CLI в ходе 75 запусков бенчмарк
Безопасность
- Уязвимый проект MCP — 50 отслеживаемых уязвимостей, из которых 13 имеют критический уровень, сообщены 32 исследователями AuthZed: Хронология инцидентов утечек MCP — 9 крупных инцидентов безопасности MCP (апрель–октябрь 2025 г.)
- Invariant Labs: атаки отравления инструментов MCP — Отравление инструментов, внезапное прекращение работы сервисов и эскалация прав доступа между доменами Безопасность точек поворота: анализ безопасности MCP — 43% — инъекции команд, 43% — уязвимости аутентификации OAuth
Проектирование CLI
- Разработка инструментов командной строки, которые ИИ-агенты действительно хочется использовать — Ugo Enyioha — Восемь правил проектирования CLI, ориентированных на агенты
Проект-демонстрация
- Агент аналитика рынка — Полная реализация с объединением инструментов и использованием шаблонов ACI.
на GitHub-репозитории, указанном в этой статье GitHub._
Серия: Проектирование стека Агентный
- Часть 1: ИИ-агент Ризонинг Циклы в 2026 году — ReAct, ReWOO и подход «планирование — выполнение» Часть 2: ИИ-агент Архитектура памяти в 2026 году — чекпоинты, векторные хранилища и память документов
- Часть 3: ИИ-агент Tool Use в 2026 году (эта статья)
- Часть 4: ИИ-агент Безопасность в 2026 году — гардрейлы, права доступа, сэндбоксы, HITL и ограничение диапазона MCP
- Часть 5: Долгосрочная работа ИИ-агент Рантайм в 2026 году — сессии, сэндбоксы, чекпоинты, механизмы интеграции и деплой формирования структур
- Часть 6: Харнесс-инжиниринг для ИИ-агенты (вскоре выйдет) — проверки приемки, трейсы, повторные попытки, передача задач и циклическая обработка в рамках модель