0aff31e2d3
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
49 lines
992 B
Markdown
49 lines
992 B
Markdown
---
|
|
layout: default
|
|
---
|
|
|
|
# toolCallLimitMiddleware: Limitar Tools
|
|
|
|
<div class="mt-4 text-xs">
|
|
|
|
<v-click>
|
|
|
|
```typescript
|
|
import { createAgent, toolCallLimitMiddleware } from "langchain";
|
|
|
|
const agent = createAgent({
|
|
model: "mistral:mistral-large-latest",
|
|
tools: [searchTool, databaseTool, scraperTool],
|
|
middleware: [
|
|
// Límite global: máx 20 por thread, 10 por run
|
|
toolCallLimitMiddleware({ threadLimit: 20, runLimit: 10 }),
|
|
|
|
// Límite específico para búsquedas
|
|
toolCallLimitMiddleware({
|
|
toolName: "search",
|
|
threadLimit: 5,
|
|
runLimit: 3,
|
|
}),
|
|
|
|
// Límite estricto para scraping (lanza error si excede)
|
|
toolCallLimitMiddleware({
|
|
toolName: "scrape_webpage",
|
|
runLimit: 2,
|
|
exitBehavior: "error", // "continue" | "error" | "end"
|
|
}),
|
|
],
|
|
});
|
|
```
|
|
|
|
</v-click>
|
|
|
|
<v-click>
|
|
|
|
<div class="mt-3 text-xs opacity-80">
|
|
Requiere checkpointer para `threadLimit`. `runLimit` se resetea en cada invocación.
|
|
</div>
|
|
|
|
</v-click>
|
|
|
|
</div>
|