initial commit: slides + practica_resueltos + README
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
---
|
||||
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>
|
||||
Reference in New Issue
Block a user