Tool Calling Agent
⚠️ ADVERTENCIA DE DEPRECACIÓN
Este componente está deprecado y será eliminado en una versión futura de Nappai. Por favor, migra a los componentes alternativos recomendados.
El Tool Calling Agent es un asistente inteligente que puede usar una variedad de herramientas externas para responder a las preguntas o tareas del usuario. En lugar de limitarse a generar texto, el agente decide cuándo y qué herramienta necesita llamar, lo que permite automatizar procesos complejos dentro de Nappai.
¿Cómo funciona?
El componente crea un AgentExecutor que combina un modelo de lenguaje (LLM) con un conjunto de herramientas. Cuando el usuario envía una solicitud, el LLM analiza el mensaje y, si lo considera necesario, genera una llamada a una herramienta específica (por ejemplo, obtener la fecha actual, buscar en la web, etc.). La herramienta se ejecuta y su resultado se devuelve al LLM, que produce la respuesta final. El proceso se repite hasta que el agente decide que ya no necesita más acciones o alcanza el número máximo de iteraciones.
El componente también incluye una herramienta predefinida llamada GetCurrentDatetime, que devuelve la fecha y hora actual. Esta herramienta se añade automáticamente a la lista de herramientas disponibles.
Entradas
- Chat History: Almacena el historial de conversación entre el usuario y el agente. Se utiliza para mantener contexto.
- Model: Selecciona el modelo de lenguaje que el agente usará para generar respuestas y decidir qué herramienta usar.
- Tools: Lista de herramientas que el agente puede llamar, como buscar en la web, leer archivos, etc.
- Disable Streaming: Si se activa, el modelo no enviará la respuesta en partes, sino que la entregará completa de una vez.
- Early Stopping Method: Define cuándo el agente debe detenerse antes de alcanzar el número máximo de iteraciones.
- Executor Name: Nombre que identifica la ejecución del agente, útil para trazabilidad.
- Handle Parse Errors: Si se activa, el agente intentará manejar errores de análisis de la respuesta del modelo.
- Input: Entrada principal que el usuario proporciona al agente.
- Max Iterations: Número máximo de ciclos que el agente puede ejecutar antes de detenerse.
- System Prompt: Mensaje inicial que se envía al modelo para establecer el tono y las reglas del agente.
- Prompt: Plantilla que el usuario debe completar con la clave
input
. - Verbose: Si se activa, el agente mostrará información detallada de su proceso interno.
Salidas
- Agent: Objeto
AgentExecutor
que representa al agente configurado. Se puede usar en flujos posteriores para ejecutar el agente con nuevas entradas. - Response: Mensaje generado por el agente después de procesar la entrada. Contiene la respuesta final que se mostrará al usuario.
Ejemplo de Uso
Supongamos que quieres que el agente programe una reunión en tu calendario.
- Model: Selecciona
OpenAI GPT-4
. - Tools: Añade la herramienta
CalendarTool
(para crear eventos). - System Prompt:
You are a helpful assistant that schedules meetings.
- Prompt:
Please schedule the following meeting: {input}
- Input:
Schedule a meeting with John at 3pm next week.
- Disable Streaming:
False
(para ver la respuesta en tiempo real). - Max Iterations:
5
(para evitar bucles infinitos).
Al ejecutar el flujo, el agente analizará la solicitud, llamará a CalendarTool
para crear el evento y devolverá una confirmación como:
“He programado la reunión con John el 15 de noviembre a las 3:00 PM.”
Componentes Relacionados
- LCToolsAgentComponent: Versión base de la que hereda este componente.
- GetCurrentDatetime: Herramienta predefinida que devuelve la fecha y hora actual.
- CalendarTool (ejemplo): Herramienta que permite crear eventos en Google Calendar.
Consejos y Mejores Prácticas
- Usa un modelo actualizado: Los modelos más recientes ofrecen mejor comprensión y generación de texto.
- Limita el número de herramientas: Añade solo las necesarias para evitar confusión y reducir el tiempo de respuesta.
- Activa
Verbose
solo cuando necesites depurar: Muestra información detallada del proceso interno. - Configura
Early Stopping Method
: Si tu tarea es simple, usaforce
para detener el agente tan pronto como haya completado la acción.
Consideraciones de Seguridad
- El parámetro
allow_dangerous_code
está activado por defecto, lo que permite que el agente ejecute código potencialmente peligroso. - Revisa las herramientas que añades: asegúrate de que no expongan datos sensibles o permitan acciones no autorizadas.
- Monitorea las salidas: Si el agente genera contenido inesperado, revisa el historial de chat y ajusta el
System Prompt
o las herramientas disponibles.