Tool Use y Function Calling
Cómo hacer que los agentes actúen en el mundo
Las herramientas permiten a los agentes:
- Leer archivos y bases de datos
- Ejecutar código
- Llamar APIs
- Modificar el entorno
Fundamentos de Function Calling
javascript
const response = await openai.chat.completions.create({
model: "gpt-4",
messages: [{ role: "user", content: "Busca en la web..." }],
tools: [
{
type: "function",
function: {
name: "web_search",
parameters: {
type: "object",
properties: {
query: { type: "string" }
}
}
}
}
]
});El modelo decide cuándo y con qué argumentos llamar la herramienta.
Principios de Diseño de Herramientas
✓
Simples
Una tarea por herramienta. Evitar herramientas demasiado complejas.
📦
Auto-contenidas
No dependen de estado externo ni de otras herramientas.
📝
Contexto claro
Nombres y descripciones que el LLM pueda entender fácilmente.
🔒
Type-safe
Schemas JSON estrictos para evitar errores de parseo.
Manejo de Errores
typescript
async function executeTool(tool: Tool, args: any) {
try {
return await tool.execute(args);
} catch (error) {
// Registrar el error
logger.error(`Tool ${tool.name} failed:`, error);
// Devolver un resultado que el agente pueda procesar
return {
success: false,
error: error.message,
recoverable: isRecoverable(error)
};
}
}El agente debe poder interpretar errores y decidir si reintentar.
Resumen
- Function Calling permite a los LLMs invocar herramientas
- Diseña herramientas simples y bien documentadas
- Maneja errores gracefully para que el agente pueda recuperarse
- Usa JSON schemas estrictos para los argumentos
Próximo módulo: Orquestación Multi-Agente