Native CLI i18n: The TrustGraph CLI has built-in translation support that dynamically loads language strings. You can test and use different languages by simply passing the --lang flag (e.g., --lang es for Spanish, --lang ru for Russian) or by configuring your environment's LANG variable. Automated Docs Translations: This PR introduces autonomously translated Markdown documentation into several target languages, including Spanish, Swahili, Portuguese, Turkish, Hindi, Hebrew, Arabic, Simplified Chinese, and Russian.
9.8 KiB
| layout | title | parent |
|---|---|---|
| default | Спецификация аргументов для инструмента MCP | Russian (Beta) |
Спецификация аргументов для инструмента MCP
Beta Translation: This document was translated via Machine Learning and as such may not be 100% accurate. All non-English languages are currently classified as Beta.
Обзор
Имя функции: Поддержка аргументов для инструмента MCP Автор: Claude Code Assistant Дата: 21.08.2025 Статус: Завершено
Краткое описание
Позволить агентам ReACT использовать инструменты MCP (Протокол контекста модели) с правильно определенными аргументами, добавив поддержку спецификации аргументов в конфигурацию инструмента MCP, аналогично тому, как работают инструменты с шаблонами запросов.
Проблема
В настоящее время инструменты MCP в фреймворке агента ReACT не могут указывать ожидаемые аргументы. Метод McpToolImpl.get_arguments() возвращает пустой список, заставляя LLM угадывать правильную структуру параметров, основываясь только на именах и описаниях инструментов. Это приводит к:
- Ненадежным вызовам инструментов из-за угадывания параметров
- Плохой пользовательской опыту, когда инструменты не работают из-за неправильных аргументов
- Отсутствию проверки параметров инструментов перед выполнением
- Отсутствия документации параметров в запросах агента
Цели
- Разрешить конфигурации инструментов MCP указывать ожидаемые аргументы (имя, тип, описание)
- Обновить менеджер агентов, чтобы он предоставлял аргументы инструментов MCP LLM через запросы
- Сохранить обратную совместимость с существующими конфигурациями инструментов MCP
- Поддерживать проверку аргументов, аналогичную инструментам с шаблонами запросов
Нецелевые области
- Динамическое обнаружение аргументов от серверов MCP (будущее улучшение)
- Проверка типов аргументов за пределами базовой структуры
- Сложные схемы аргументов (вложенные объекты, массивы)
Предыстория и контекст
Текущее состояние
Инструменты MCP настраиваются в системе агента ReACT с минимальными метаданными:
{
"type": "mcp-tool",
"name": "get_bank_balance",
"description": "Получить баланс банковского счета",
"mcp-tool": "get_bank_balance"
}
Метод McpToolImpl.get_arguments() возвращает [], поэтому LLM не получают никаких указаний по аргументам в своих запросах.
Ограничения
- Отсутствие спецификации аргументов: Инструменты MCP не могут определять ожидаемые параметры
- Угадывание параметров LLM: Агенты должны выводить параметры из имен/описаний инструментов
- Отсутствие информации в запросах: Запросы агента не содержат деталей аргументов для инструментов MCP
- Отсутствие проверки: Неправильные параметры обнаруживаются только во время выполнения инструмента MCP
Связанные компоненты
- trustgraph-flow/agent/react/service.py: Загрузка конфигурации инструментов и создание AgentManager
- trustgraph-flow/agent/react/tools.py: Реализация McpToolImpl
- trustgraph-flow/agent/react/agent_manager.py: Генерация запросов с аргументами инструментов
- tg-invoke-mcp-tool: Клиентские инструменты для управления инструментами MCP
- Workbench: Внешний UI для конфигурации инструментов агента
Требования
Функциональные требования
- Конфигурация аргументов для инструмента MCP: Конфигурации инструментов MCP ДОЛЖНЫ поддерживать необязательный массив
argumentsс полямиname,typeиdescription - Предоставление аргументов:
McpToolImpl.get_arguments()ДОЛЖЕН возвращать сконфигурированные аргументы, а не пустой список - Интеграция с запросами: Запросы агента ДОЛЖНЫ содержать детали аргументов инструментов MCP, когда аргументы указаны
- Обратная совместимость: Существующие конфигурации инструментов MCP без аргументов ДОЛЖНЫ продолжать работать
- Поддержка CLI: Существующие CLI инструменты tg-invoke-mcp-tool поддерживают аргументы (уже реализовано)
Нефункциональные требования
- Обратная совместимость: Без каких-либо изменений для существующих конфигураций инструментов MCP
- Производительность: Отсутствие существенного влияния на генерацию запросов агента
- Согласованность: Обработка аргументов ДОЛЖНА соответствовать шаблонам инструментов с шаблонами запросов
Истории пользователей
- Как разработчик агента, я хочу указывать аргументы инструментов MCP в конфигурации, чтобы LLM могли вызывать инструменты с правильными параметрами
- Как пользователь Workbench, я хочу настраивать аргументы инструментов MCP в UI, чтобы агенты использовали инструменты правильно
- Как LLM в ReACT агенте, я хочу видеть спецификации аргументов инструментов в запросах, чтобы я мог предоставлять правильные параметры
Проектирование
Высокоуровневая архитектура
Расширить конфигурацию инструмента MCP, чтобы соответствовать шаблону инструмента с шаблоном запросов, путем:
- Добавления необязательного массива
argumentsв конфигурацию инструментов MCP - Модификации
McpToolImplдля приема и возврата сконфигурированных аргументов - Обновления загрузки конфигурации инструментов для обработки аргументов инструментов MCP
- Обеспечения включения информации об аргументах инструментов MCP в запросы агента
Схема конфигурации
{
"type": "mcp-tool",
"name": "get_bank_balance",
"description": "Get bank account balance",
"mcp-tool": "get_bank_balance",
"arguments": [
{
"name": "account_id",
"type": "string",
"description": "Bank account identifier"
},
{
"name": "date",
"type": "string",
"description": "Date for balance query (optional, format: YYYY-MM-DD)"
}
]
}
Поток данных
- Загрузка конфигурации: Конфигурация инструмента MCP с аргументами загружается с помощью
on_tools_config() - Создание инструмента: Аргументы парсятся и передаются в
McpToolImplчерез конструктор - Генерация запросов:
agent_manager.pyвызываетtool.argumentsдля включения в LLM запросы - Вызов инструмента: LLM предоставляет параметры, которые передаются инструменту MCP без изменений
Изменения API
Нет изменений API - это чисто внутренняя конфигурация и обработка аргументов