mirror of
https://github.com/trustgraph-ai/trustgraph.git
synced 2026-04-25 08:26:21 +02:00
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.
168 lines
9.6 KiB
Markdown
168 lines
9.6 KiB
Markdown
---
|
|
layout: default
|
|
title: "Especificación de Argumentos para la Herramienta MCP"
|
|
parent: "Spanish (Beta)"
|
|
---
|
|
|
|
# Especificación de Argumentos para la Herramienta 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.
|
|
|
|
## Visión General
|
|
**Nombre de la característica**: Soporte para Argumentos de la Herramienta MCP
|
|
**Autor**: Asistente de Código Claude
|
|
**Fecha**: 21/08/2025
|
|
**Estado**: Finalizado
|
|
|
|
### Resumen Ejecutivo
|
|
|
|
Permitir que los agentes ReACT invoquen las herramientas MCP (Protocolo de Contexto del Modelo) con argumentos definidos correctamente, agregando soporte para la especificación de argumentos a las configuraciones de las herramientas MCP, de manera similar a como funcionan actualmente las herramientas de plantillas de prompts.
|
|
|
|
### Declaración del Problema
|
|
|
|
Actualmente, las herramientas MCP en el marco de agentes ReACT no pueden especificar sus argumentos esperados. El método `McpToolImpl.get_arguments()` devuelve una lista vacía, lo que obliga a los LLMs a adivinar la estructura de parámetros correcta basándose únicamente en los nombres y las descripciones de las herramientas. Esto conduce a:
|
|
- Invocaciones de herramientas poco fiables debido a la adivinación de parámetros
|
|
- Mala experiencia de usuario cuando las herramientas fallan debido a argumentos incorrectos
|
|
- Falta de validación de parámetros de la herramienta antes de la ejecución
|
|
- Falta de documentación de parámetros en los prompts del agente
|
|
|
|
### Objetivos
|
|
|
|
- [ ] Permitir que las configuraciones de las herramientas MCP especifiquen los argumentos esperados (nombre, tipo, descripción)
|
|
- [ ] Actualizar el administrador de agentes para exponer los argumentos de las herramientas MCP a los LLMs a través de prompts
|
|
- [ ] Mantener la compatibilidad hacia atrás con las configuraciones existentes de las herramientas MCP
|
|
- [ ] Soporte para la validación de argumentos similar a las herramientas de plantillas de prompts
|
|
|
|
### Objetivos No
|
|
- Descubrimiento dinámico de argumentos de los servidores MCP (mejoras futuras)
|
|
- Validación de tipos de argumentos más allá de la estructura básica
|
|
- Esquemas de argumentos complejos (objetos anidados, arrays)
|
|
|
|
## Antecedentes y Contexto
|
|
|
|
### Estado Actual
|
|
Las herramientas MCP se configuran en el sistema de agente ReACT con metadatos mínimos:
|
|
```json
|
|
{
|
|
"type": "mcp-tool",
|
|
"name": "get_bank_balance",
|
|
"description": "Obtener el saldo de la cuenta bancaria",
|
|
"mcp-tool": "get_bank_balance"
|
|
}
|
|
```
|
|
|
|
El método `McpToolImpl.get_arguments()` devuelve `[]`, lo que significa que los LLMs no reciben ninguna guía de argumentos en sus prompts.
|
|
|
|
### Limitaciones
|
|
|
|
1. **Sin especificación de argumentos**: Las herramientas MCP no pueden definir parámetros esperados
|
|
|
|
2. **Inferencia de parámetros por parte del LLM**: Los agentes deben deducir parámetros a partir de los nombres/descripciones de las herramientas
|
|
|
|
3. **Falta de información en el prompt**: Los prompts de los agentes no muestran detalles de los argumentos para las herramientas MCP
|
|
|
|
4. **Sin validación**: Los parámetros inválidos solo se detectan en el momento de la ejecución de la herramienta MCP
|
|
|
|
### Componentes Relacionados
|
|
- **trustgraph-flow/agent/react/service.py**: Carga de la configuración de las herramientas y creación del AgentManager
|
|
- **trustgraph-flow/agent/react/tools.py**: Implementación de McpToolImpl
|
|
- **trustgraph-flow/agent/react/agent_manager.py**: Generación de prompts con argumentos de las herramientas
|
|
- **CLI tools**: Herramientas de línea de comandos para la gestión de herramientas MCP
|
|
- **Workbench**: Interfaz de usuario externa para la configuración de las herramientas de los agentes
|
|
|
|
## Requisitos
|
|
|
|
### Requisitos Funcionales
|
|
|
|
1. **Argumentos de la Configuración de la Herramienta MCP**: Las configuraciones de las herramientas MCP **DEBEN** soportar un array opcional de `arguments` con campos de nombre, tipo y descripción
|
|
2. **Exposición de Argumentos**: El método `McpToolImpl.get_arguments()` **DEBE** devolver los argumentos configurados en lugar de una lista vacía
|
|
3. **Integración en el Prompt**: Los prompts de los agentes **DEBEN** incluir detalles de los argumentos de las herramientas MCP cuando se especifican
|
|
4. **Compatibilidad hacia atrás**: Las configuraciones existentes de las herramientas MCP sin argumentos **DEBEN** seguir funcionando
|
|
5. **Soporte CLI**: Las herramientas CLI existentes (`tg-invoke-mcp-tool`) soportan argumentos (ya implementado)
|
|
|
|
### Requisitos No Funcionales
|
|
1. **Compatibilidad hacia atrás**: Sin cambios que rompan con las configuraciones existentes de las herramientas MCP
|
|
2. **Rendimiento**: Sin impacto significativo en el rendimiento de la generación de prompts
|
|
3. **Consistencia**: El manejo de argumentos **DEBE** seguir los patrones de las herramientas de plantillas de prompts
|
|
|
|
### Historias de Usuario
|
|
|
|
1. Como **desarrollador de agentes**, quiero especificar argumentos para las herramientas MCP en la configuración, para que los LLMs puedan invocar las herramientas con los parámetros correctos
|
|
2. Como **usuario de Workbench**, quiero configurar argumentos para las herramientas MCP en la interfaz de usuario, para que los agentes usen las herramientas correctamente
|
|
3. Como **LLM en un agente ReACT**, quiero ver las especificaciones de argumentos de las herramientas en los prompts, para poder proporcionar los parámetros correctos
|
|
|
|
## Diseño
|
|
|
|
### Arquitectura de Alto Nivel
|
|
Extender la configuración de las herramientas MCP para que coincidan con el patrón de las plantillas de prompts, agregando:
|
|
1. Un array opcional de `arguments` a las configuraciones de las herramientas MCP
|
|
2. Modificar `McpToolImpl` para aceptar y devolver los argumentos configurados
|
|
3. Actualizar la carga de la configuración de las herramientas para manejar los argumentos de las herramientas MCP
|
|
4. Asegurar que los prompts de los agentes incluyan información sobre los argumentos de las herramientas MCP
|
|
|
|
### Esquema de Configuración
|
|
```json
|
|
{
|
|
"type": "mcp-tool",
|
|
"name": "get_bank_balance",
|
|
"description": "Obtener el saldo de la cuenta bancaria",
|
|
"mcp-tool": "get_bank_balance",
|
|
"arguments": [
|
|
{
|
|
"name": "account_id",
|
|
"type": "string",
|
|
"description": "Identificador de la cuenta bancaria"
|
|
},
|
|
{
|
|
"name": "date",
|
|
"type": "string",
|
|
"description": "Fecha para la consulta de saldo (opcional, formato: YYYY-MM-DD)"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
### Flujo de Datos
|
|
1. **Carga de la configuración**: La configuración de la herramienta MCP con argumentos se carga por `on_tools_config()`
|
|
2. **Creación de la herramienta**: Los argumentos se parsean y se pasan a `McpToolImpl` a través del constructor
|
|
3. **Generación del prompt**: `agent_manager.py` llama a `tool.arguments` para incluirlos en los prompts de los LLMs
|
|
4. **Invocación de la herramienta**: El LLM proporciona los parámetros, que se pasan sin cambios a las herramientas MCP
|
|
|
|
## Consideraciones de Seguridad
|
|
- **Sin nueva superficie de ataque**: Los argumentos se parsean a partir de las fuentes de configuración existentes sin nuevas entradas
|
|
- **Validación de parámetros**: Los argumentos se pasan a las herramientas MCP sin cambios - la validación permanece a nivel de la herramienta MCP
|
|
- **Integridad de la configuración**: Las especificaciones de argumentos son parte de la configuración de la herramienta - el mismo modelo de seguridad aplica
|
|
|
|
## Impacto en el Rendimiento
|
|
- **Sobrehead mínimo**: El análisis de argumentos ocurre solo durante la carga de la configuración, no por solicitud
|
|
- **Aumento del tamaño del prompt**: Los prompts del agente incluirán detalles de los argumentos de las herramientas MCP, aumentando ligeramente el uso de tokens
|
|
- **Uso de la memoria**: Aumento insignificante para almacenar las especificaciones de argumentos en los objetos de la herramienta
|
|
|
|
## Documentación
|
|
|
|
### Documentación del Usuario
|
|
- [ ] Actualizar la guía de configuración de las herramientas MCP con ejemplos de argumentos
|
|
- [ ] Agregar especificación de argumentos a la ayuda de la línea de comandos
|
|
- [ ] Crear ejemplos de patrones comunes de argumentos de la herramienta MCP
|
|
|
|
### Documentación del Desarrollador
|
|
- [ ] Documentar la clase `McpToolImpl` con la lógica de análisis de argumentos
|
|
- [ ] Agregar comentarios en el código para la lógica de análisis de argumentos
|
|
- [ ] Documentar el flujo de argumentos en la arquitectura del sistema
|
|
|
|
## Preguntas Abiertas
|
|
1. **Validación de tipos**: ¿Deberíamos validar los tipos/formatos de los argumentos más allá de una verificación básica de estructura?
|
|
2. **Descubrimiento dinámico**: ¿Una futura mejora para consultar automáticamente los esquemas de las herramientas MCP de los servidores?
|
|
|
|
## Alternativas Consideradas
|
|
1. **Descubrimiento dinámico de esquemas MCP**: Consultar los servidores MCP para obtener los esquemas de las herramientas a tiempo de ejecución - rechazado debido a preocupaciones de complejidad y fiabilidad
|
|
2. **Registro de argumentos separado**: Almacenar los argumentos de las herramientas MCP en una sección de configuración separada - rechazado por mantener la consistencia con el enfoque de las plantillas de prompts
|
|
3. **Validación de tipo**: Validación completa de esquema JSON para los argumentos - aplazado como una mejora futura para mantener la implementación inicial simple
|
|
|
|
## Referencias
|
|
- [Especificación del Protocolo MCP](https://github.com/modelcontextprotocol/spec)
|
|
- [Implementación de las herramientas MCP](./trustgraph-flow/trustgraph/agent/react/service.py#L114-129)
|
|
- [Implementación actual de las herramientas MCP](./trustgraph-flow/trustgraph/agent/react/tools.py#L58-86)
|
|
|
|
## Apéndice
|
|
[Cualquier información, diagramas o ejemplos adicionales]
|