Главная / Статьи / Практические заметки: Что происходит, когда у ИИ-агента есть 1000 инструментов MCP?

Практические заметки: Что происходит, когда у ИИ-агента есть 1000 инструментов MCP?

Пошаговое руководство по практическим заметкам: что происходит, когда у ИИ-агента есть 1 000 инструментов MCP?: контракты, проверки и слоты для вставки кода для команд, использующих эту модель.

1464 слов

В этом руководстве пошагово показан путь от сырья до рабочей системы для проекта «Что происходит, когда у ИИ-агента есть 1 000 инструментов MCP?». Основное внимание уделяется выполнимым шагам, четким проверкам и коду, который можно просто добавить в репозиторий без необходимости догадываться о его назначении. Для получения обзора определите входные данные, ответственного за шаг и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Документируйте как успешный, так и восстановительный пути выполнения. Повторные попытки, проверки человеком и обработка неработоспособных сообщений являются частью продукта, а не последующими улучшениями.

MCP облегчает предоставление инструментов

При работе с MCP, которая позволяет легко предоставлять инструменты, сначала необходимо определить контракт: требуемые входные данные, сигнал о успешном выполнении и что происходит при частичной неудаче. Такой чек-лист помогает сохранять честность при последующих изменениях кода. Лучше использовать небольшие, тестируемые единицы кода вместо обширных скриптов. Когда какой-то шаг терпит неудачу, ошибка должна указывать на конкретную ответственность, а не на запутанную цепочку операций. Для каждого вызова записывайте название инструмента, хеш аргументов, время задержки и результат. Без такой информации отладка циклов агента занимает часы.

Проблема «взрыва» инструментов

При решении задачи, связанной с эксплозией количества инструментов, сначала запишите контракт: необходимые входные данные, сигнал о успешном выполнении и то, что происходит при частичной неудаче. Такой список помогает избегать недобросовестных изменений в коде позже. Рассматривайте этот этап как контракт между входными данными и проверенными выходными результатами. Дайте названия соответствующим элементам, определите критерии успешности и не допускайте молчаливого частичного выполнения задачи. Записывайте название инструмента, хеш аргументов, время задержки и результат каждого вызова. Без такой записи отладка занимает гораздо больше времени.

Контекст становится проблемой

Когда работа с контекстом становится проблемой, сначала запишите условия использования: необходимые входные данные, сигнал о успешном выполнении и действия при частичной неудаче. Такой список помогает сохранять честность при последующих изменениях кода. Записывайте время выполнения и стоимость токенов или запросов рядом с функциональными результатами. Очевидность затрат с самого начала предотвращает неожиданные расходы при переходе с демо-среды в общедоступные среды. Фиксируйте название инструмента, хеш аргументов, время задержки и результат каждого вызова. Без такой записи отладка занимает часы. Когда работа с контекстом становится проблемой, сначала запишите условия использования: необходимые входные данные, сигнал о успешном выполнении и действия при частичной неудаче. Такой список помогает сохранять честность при последующих изменениях кода. Документируйте как успешный, так и восстановительный пути работы. Повторные попытки, проверки человеком и обработка неработающих сообщений являются частью продукта, а не элементами последующей доработки.

create_invoice
Creates an invoice for a customer.Parameters:
- customer_id
- amount
- currency
- due_date

Выбор инструментов становится настоящей проблемой

Этот подход работает лучше всего, когда выбор инструментов рассматривается как измеримая характеристика. Соберите один идеальный пример работы, один случай сбоя и записку о возврате к предыдущему состоянию перед расширением объема работ. Предпочитайте небольшие, тестируемые единицы кода вместо обширных скриптов. Когда какой-то шаг срабатывает некорректно, причина сбоя должна указывать на конкретный элемент ответственности, а не на запутанную цепочку операций. Используйте инструменты с узкими схемами и четкими метками о побочных эффектах. У операторов должна быть возможность узнать, какие вызовы изменяют состояние, прежде чем они автоматически одобрят действия.

get_customer
get_customer_details
lookup_customer
search_customer
find_customer

Больше инструментов также может означать больше ошибок

Большее количество инструментов также может привести к большему количеству ошибок; лучше всего рассматривать их как измеримую среду. Соберите один эталонный пример работы, один случай сбоя и записку о возврате к предыдущему состоянию перед расширением объёма работ. Рассматривайте этот этап как контракт между входными данными и проверенными результатами. Дайте названия создаваемым объектам, определите критерии успеха и не соглашайтесь на молчаливое частичное выполнение задачи. Используйте инструменты с узкими схемами и чёткими метками о побочных эффектах. У операторов должна быть возможность узнать, какие вызовы изменяют состояние, прежде чем они автоматически одобрят их.

search_orders
get_order
list_orders
find_order_by_customer

Значит ли это, что нам следует дать агентам меньше инструментов?

Так стоит ли давать агентам меньше инструментов? Этот подход работает лучше всего, когда его рассматривают как измеримую поверхность. Соберите один идеальный пример работы, один случай сбоя и записку о возврате к предыдущему состоянию перед расширением объёма задачи. Записывайте время выполнения и стоимость токенов или запросов рядом с функциональными результатами. Очевидность затрат с самого начала предотвращает неожиданные счёты при переходе от демо-среды к общедоступным средам. Раскрывайте информацию о инструментах с узкими схемами и чёткими метками побочных эффектов. Хостам необходимо знать, какие вызовы изменяют состояние, прежде чем они автоматически одобрят их. Так стоит ли давать агентам меньше инструментов? Этот подход работает лучше всего, когда его рассматривают как измеримую поверхность. Соберите один идеальный пример работы, один случай сбоя и записку о возврате к предыдущему состоянию перед расширением объёма задачи. Документируйте одновременно успешный путь выполнения и путь восстановления. Повторные попытки, проверки человеком и обработка неработающих сообщений являются частью продукта, а не элементами последующей доработки.

Именно здесь Skills становятся интересными

Именно здесь навыки становятся полезными: необходимо определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Лучше использовать небольшие, тестируемые единицы вместо обширных скриптов. При сбое шага он должен указывать на конкретную ответственность, а не на запутанную цепочку операций. Аутентификация происходит на шлюзе, а повторная авторизация — на уровне данных. Одного только токена-носителя недостаточно для обозначения границы тенантности.

Agent
 ↓
1,000 tools
Agent
 ↓
Relevant Skill
 ↓
Relevant tools
 ↓
MCP
 ↓
API / System

Шлюзы MCP также могут стать важными

Для шлюзов MCP также может оказаться важным определить входные данные, ответственного за выполнение шага и критерии завершения перед изменением кода. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Рассматривайте этот этап как контракт между входными данными и проверенными выходными результатами. Укажите названия элементов, определите критерии успеха и не допускайте молчаливого частичного завершения работы. Аутентифицируйтесь у шлюза и повторно авторизуйтесь на уровне передачи данных. Одного только токена-носителя недостаточно для обозначения границы тенантности.

Agent
 ↓
MCP Gateway
 ↓
MCP Servers
 ↓
APIs / Systems

Большая проблема — не в 1000 инструментах

Более серьезная проблема заключается не в наличии 1000 инструментов: перед изменением кода необходимо определить входные данные, ответственного за выполнение шага и критерии завершения. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Рядом с функциональными результатами следует записывать время выполнения, а также стоимость токенов или запросов. Отображение затрат с самого начала предотвращает неожиданные счета при переходе от демо-среды к общедоступным средам. Аутентификация происходит на шлюзе, а повторная авторизация — на уровне данных. Один только токен-носитель не является границей между тенантами. Более серьезная проблема заключается не в наличии 1000 инструментов: перед изменением кода необходимо определить входные данные, ответственного за выполнение шага и критерии завершения. Операторы должны иметь возможность перезапустить шаг с известной точки контроля, не догадываясь о скрытом состоянии. Необходимо одновременно задокументировать успешный сценарий выполнения и сценарий восстановления. Повторные попытки, человеческое вмешательство и обработка некорректных сообщений являются частью продукта, а не элементами, добавляемыми позже.

Чек-лист операций

Чек-лист операций наиболее эффективен, когда рассматривается как измеримая основа. Соберите один эталонный пример работы, один случай сбоя и запись о возврате к предыдущему состоянию перед расширением объема работ.

Храните конфигурацию отдельно от кода приложения. Файлы среды, хранилища секретов и флаги функций должны находиться в одном месте, чтобы операторы могли их проверять, не читая весь код.

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

Внедряйте ручное утверждение для операций, связанных с тратой денег или изменением производственных данных. Компиляционная связка не гарантирует полноты бизнес-логики.

Напишите краткую инструкцию: как обновлять ключи, как опустошать очередь, как возвести к последнему состоянию.

Рассматривайте этот этап как контракт между входными данными и проверенными выходными результатами. Дайте названия результатам работы, определите критерии успешности и не соглашайтесь на молчаливое частичное выполнение задачи.

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

Примечание для bd9115b02932: не храните ключи поставщика в репозитории, установите лимит токенов на сессию и сохраняйте отчеты рядом с фикстурами для оценки, чтобы последующие замены моделей оставались сопоставимыми.