Concepto de herramientas
Una herramienta permite que un agente realice una operación que no puede resolver únicamente generando una respuesta de texto. Mientras que una base de conocimiento permite al agente consultar información, una herramienta permite ejecutar una acción: consultar un sistema externo o modificarlo.
Cómo interpreta el agente una herramienta
Cada herramienta tiene un nombre y una descripción que explican al agente qué hace y cuándo usarla. Esta descripción es tan determinante como cualquier instrucción: un agente no puede usar bien una herramienta cuya descripción es vaga.
es mucho más útil que:
Parámetros de entrada
Cada herramienta define qué información necesita para ejecutarse. Estos son datos que el agente inferirá del contexto o solicitará al usuario durante la conversación cuando lo considere más pertinente. El nombre y la descripción de cada parámetro deben ser suficientemente claros para que el agente determine qué valor pedirle al usuario.
Si al usuario le falta un dato necesario, el agente lo pedirá antes de ejecutar la herramienta.
Herramientas de lectura y de escritura
No todas las herramientas tienen el mismo impacto. Una herramienta que solo consulta información no modifica ningún dato; una que crea, modifica o elimina información sí cambia el estado de un sistema externo.
Para una operación de escritura, es especialmente importante que las instrucciones del agente definan cuándo puede ejecutarse y qué debe confirmarse antes de hacerlo. Un agente no debería ejecutar una acción irreversible basándose en información incompleta.
Mantener herramientas simples
Cuando una herramienta necesita demasiados parámetros o intenta resolver operaciones muy distintas, suele ser una señal de que conviene dividirla en varias herramientas más pequeñas. Es preferible tener consultar_pedido y cancelar_pedido como herramientas separadas, en lugar de una única herramienta genérica como gestionar_pedido. Un diseño simple es más fácil de probar y reduce la posibilidad de que el agente elija la operación incorrecta.