---
layout: default
---

# Middleware: wrapToolCall

<div class="mt-4 text-xs">

<v-click>

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

```typescript
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],
});
```

</v-click>

</div>
