Files
2026-05-29 11:50:55 +02:00

834 B

layout
layout
default

Middleware: wrapToolCall

Intercepta la ejecución de tools para manejo de errores:

import { createAgent, createMiddleware, ToolMessage } from "langchain";

const handleToolErrors = createMiddleware({
  name: "HandleToolErrors",
  wrapToolCall: async (request, handler) => {
    try {
      return await handler(request);
    } catch (error) {
      // Devolver mensaje de error al modelo para que reintente
      return new ToolMessage({
        content: `Error en tool: ${error}. Por favor revisa los parámetros.`,
        tool_call_id: request.toolCall.id!,
      });
    }
  },
});

const agent = createAgent({
  model: "mistral:mistral-large-latest",
  tools: [databaseTool, apiTool],
  middleware: [handleToolErrors],
});