OpenAIToolsAgent
⚠️ 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.
Este componente actúa como un asistente inteligente avanzado diseñado para resolver tareas complejas aprovechando la potencia de los modelos de OpenAI. Piensa en él como un “cerebro” digital que no solo responde preguntas, sino que también puede usar herramientas externas (como calculadoras, buscadores o APIs de datos) para obtener la información necesaria y realizar acciones específicas.
Es ideal para automatizar flujos de trabajo en Nappai donde necesitas que un agente tome decisiones dinámicas, consulte datos en tiempo real o ejecute procesos basándose en el contexto de la conversación.
¿Cómo funciona?
El componente funciona como un orquestador que une el modelo de lenguaje con las herramientas que le proporciones. Al recibir una solicitud, el agente analiza el mensaje y decide automáticamente si necesita usar alguna herramienta para completarla.
- Análisis: Recibe tu instrucción y verifica el contexto de la conversación.
- Decisión: Determina si debe responder directamente o llamar a una herramienta externa.
- Ejecución: Si usa una herramienta, ejecuta la acción y recibe el resultado.
- Respuesta: Genera una respuesta final clara, basada en los datos obtenidos, y actualiza el historial de la conversación para mantener la coherencia en el diálogo.
Además, permite transmitir la respuesta en tiempo real (streaming) para una experiencia más fluida o deshabilitarlo si prefieres que se muestre todo junto.
Conexión y Credenciales
Este componente no requiere la configuración directa de credenciales en su nodo. Sin embargo, para que funcione correctamente, el Model que conectes debe estar configurado con las credenciales necesarias de OpenAI en Nappai.
Entradas
Los siguientes campos están disponibles para configurar este componente.
- Chat History: Historial de conversaciones anteriores que se utiliza para mantener el contexto y la coherencia del diálogo.
- Model: Modelo de lenguaje que procesará las solicitudes y generará las respuestas.
- Tools: Herramientas externas (como APIs o calculadoras) que el agente puede usar para realizar acciones.
- Disable Streaming: Deshabilita la transmisión de la respuesta en tiempo real; el agente esperará a tener toda la respuesta antes de mostrarla.
- Handle Parse Errors: Activa el manejo automático de errores de análisis para que el agente siga funcionando incluso si encuentra datos mal formados.
- Input: Mensaje o instrucción principal del usuario que el agente debe procesar.
- Max Iterations: Número máximo de pasos que el agente puede dar antes de detenerse y devolver una respuesta.
- System Prompt: Instrucciones que definen el comportamiento y el rol del agente.
- Prompt: Plantilla del mensaje que contiene la consulta principal. Debe incluir la variable
{input}. - Verbose: Muestra detalles adicionales del proceso de ejecución para depuración.
Salidas
El componente produce los siguientes resultados que puedes utilizar en tu flujo de trabajo:
- Agent: Agente ejecutable que puede ser conectado a otros componentes para continuar el procesamiento.
- Response: La respuesta final generada por el modelo, junto con el historial actualizado de la conversación.
Ejemplo de Respuesta JSON
json { “output”: “El total de ventas de enero fue de $15,000.”, “chat_history”: [ { “role”: “user”, “content”: “¿Cuál fue la venta total de enero?” }, { “role”: “assistant”, “content”: “El total de ventas de enero fue de $15,000.” } ], “tool_calls”: [ { “name”: “sales_api”, “args”: “get_sales_total(‘january’)” } ], “status”: “success”, “metadata”: { “iterations”: 1, “tokens_used”: 120 } }
Conectividad
Este componente se conecta lógicamente a nodos de salida o de procesamiento posterior:
- Chat Output: Para mostrar la respuesta generada directamente en la interfaz de chat del usuario.
- Tools: El agente consume herramientas conectadas a sus entradas de herramientas para realizar acciones.
- Otro Agente: Puedes conectar la salida a otro agente para tareas de orquestación más complejas o multietapa.
Ejemplo de Uso
Imagina que estás creando un asistente para tu equipo de ventas en Nappai.
- Conectas este componente a una Herramienta de Base de Datos que permite consultar ventas.
- En el campo Prompt, configuras la plantilla:
"Responde a la pregunta del usuario sobre las ventas. Usa la herramienta si necesitas datos." - Cuando un usuario escribe
"¿Cuánto vendimos en enero?", el agente usa la herramienta para obtener el dato exacto y responde:"Las ventas de enero fueron $15,000." - Si el usuario pregunta
"¿Y febrero?"a continuación, el agente recuerda el contexto y responde apropiadamente.
Notas Importantes
🔒 Sensitive data handling 🟡 Todo el contenido del prompt se envía a la API de OpenAI. Evita incluir información personal, financiera o sensible a menos que hayas asegurado el cumplimiento con las políticas de manejo de datos de tu organización.
⚠️ Prompt must include an ‘input’ placeholder 🟡
El componente requiere que la plantilla del prompt del usuario contenga la clave input. Si falta, el componente generará un error y se detendrá. Asegúrate de incluir {input} en tu prompt.
📋 Provide a compatible Language Model 🟡
Debes proporcionar una instancia de LanguageModel o ToolEnabledLanguageModel como entrada para llm. El modelo será utilizado para guiar las respuestas del agente.
📋 Add tools as BaseToolkit, BaseTool, or Tool objects 🟡
Si el agente debe usar herramientas externas, proporciónalas como instancias de BaseToolkit, BaseTool o Tool. El componente extraerá automáticamente las herramientas utilizables.
💡 Use concise system and user prompts 🟢
Mantén el prompt del sistema corto y claro (el valor predeterminado es "You are a helpful assistant"). Para el prompt del usuario, usa una plantilla simple que solo haga referencia a {input}; evita lógica compleja que pueda confundir al agente.
⚙️ Optional chat history input 🟢
Puedes suministrar turnos anteriores de la chat vía la entrada chat_history. Proporciona una lista de objetos Data que representen mensajes pasados para dar contexto al agente.
Consejos y Mejores Prácticas
- Mantén los prompts del sistema breves y enfocados en el rol del agente para mejorar la claridad de las respuestas.
- Siempre verifica que
{input}esté presente en tu prompt personalizado para evitar errores de ejecución. - Usa herramientas externas cuando necesites obtener datos en tiempo real o realizar cálculos precisos.
- Configura
Max Iterationssi esperas consultas complejas para evitar bucles infinitos. - Revisa la sección de seguridad de Nappai para asegurar que el flujo cumple con las normativas de tu empresa.
Consideraciones de Seguridad
Al utilizar este componente, ten en cuenta que la interacción ocurre con la API de OpenAI. Asegúrate de cumplir con las normativas de protección de datos de tu empresa. No envíes contraseñas, información personal identificable o datos sensibles a menos que esté estrictamente permitido y seguro según las políticas de tu organización. Configura adecuadamente los permisos de las herramientas conectadas para limitar el alcance de las acciones que el agente puede realizar.