Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Definiciones de herramientas
Cuando un LLM recibe una solicitud que no puede gestionar directamente, revisará las herramientas disponibles para ayudarle a completar la solicitud. El LLM selecciona las herramientas en función de su comprensión semántica de los nombres y descripciones de las herramientas proporcionadas y de las instrucciones que figuran en la solicitud. Luego, creará la entrada en función del esquema de entrada definido y esperará la salida en función del esquema de salida. Por lo tanto, crear definiciones de herramientas descriptivas y esquemas de entrada y salida validados es fundamental para ayudar al LLM a seleccionar las herramientas de manera efectiva. En general, existen dos enfoques para crear esta documentación: el enfoque de especificación de herramientas y el enfoque de cadena de documentos.
Enfoque de especificación de herramientas
El enfoque recomendado consiste en seguir directamente la especificación de la herramienta
@tool( name = "search_website", description = "This tool searches the provided website for semantic matches to the query provided", inputSchema = { "json": { "type": "object", "properties": { "url": { "type": "string", "description": "The url of the website to load and search." }, "query": { "type": "string", "description": "The content you want to try and match in the website." } }, "required": ["url", "query"] }, outputSchema = { "json": { "type": "object", "properties": { "results": { "type": "array", "items": { "type": "string" } } } } } ) def search_website: …
Utiliza campos estándar, como,name, descriptioninputSchema, y se outputSchema asegura de que cada herramienta tenga una documentación coherente que tanto el LLM como los humanos puedan entender. Cada herramienta debe definir estos campos como mínimo y, de forma opcional, incluir un título y anotaciones, que son sugerencias opcionales sobre el comportamiento de la herramienta. Cuando sea posible, utilice enumeraciones para los valores de los parámetros para que el LLM pueda seleccionar fácilmente las opciones correctas. Las enumeraciones funcionan mejor para conjuntos finitos, como valores de estado o prioridad, pero no son adecuadas para textos de formato libre, valores dinámicos, números arbitrarios o identificadores de recursos. En esos casos, proporciona descripciones y ejemplos claros en su lugar. Incluya también un valor predeterminado cuando sea posible para que el LLM no tenga que adivinar cuál es la opción correcta. Tenga en cuenta que las definiciones de las herramientas se incluyen en el indicador LLM de cada invocación, lo que consume espacio en la ventana contextual junto con las instrucciones del sistema y el historial de conversaciones.
Enfoque de cadena de documentos
Otro enfoque, si está escribiendo sus herramientas en Python, es usar cadenas de documentación para proporcionar la descripción, el uso y el resultado de la herramienta. A continuación se muestra un ejemplo de este enfoque:
def search_website(url: str, query: str) -> list: """ This tool loads the specified website and then attempts to find content that matches the provided query through semantic search. It provides back a list of strings that are the sentences that match the query. Args: url: the website url to load query: the content you want to semantically match in the website """
Las cadenas de documentos no imponen un esquema o un formato estandarizado. El uso de este enfoque puede producir resultados incoherentes en función de la forma en que los desarrolladores de herramientas decidan documentar cada herramienta. Si se sigue este enfoque, es esencial definir y hacer cumplir un estándar que abarque a toda la organización.
Mejores prácticas para las definiciones de las herramientas MCP
-
Siga las especificaciones de la herramienta MCP: proporcione
namedescriptioninputSchema, youtputSchemacampos para cada herramienta. Para las implementaciones de Python, utilice los modelos de Pydanticpara proporcionar documentación en línea mediante descripciones de campos, validación automática de tipos y valores restringidos mediante enumeraciones. Esto hace que los esquemas se documenten automáticamente y mejora la comprensión del LLM sobre las opciones de parámetros válidas. -
Escriba las descripciones siguiendo las instrucciones: las descripciones de las herramientas son instrucciones que guían la toma de decisiones de LLM. Incluya los componentes esenciales del propósito de la herramienta (qué hace la herramienta), cuándo usarla (patrones o escenarios de intención del usuario), el contexto del resultado (para qué se usa el resultado), los parámetros y las condiciones de error.
-
Proporcione ejemplos concretos: incluir ejemplos de flujos de trabajo con valores reales es la forma más eficaz de guiar a los LLM sobre el uso correcto de las herramientas.
-
Documente las dependencias de forma explícita: incluya los requisitos previos, las secuencias numeradas, los cambios de estado y las acciones de seguimiento.