--- layout: default --- # Combinando Middleware
```typescript import { createAgent, summarizationMiddleware, humanInTheLoopMiddleware, toolCallLimitMiddleware, modelRetryMiddleware, } from "langchain"; import { MemorySaver } from "@langchain/langgraph"; const agent = createAgent({ model: "mistral:mistral-large-latest", tools: [searchTool, sendEmailTool, databaseTool], checkpointer: new MemorySaver(), middleware: [ modelRetryMiddleware({ maxRetries: 3, backoffFactor: 2 }), summarizationMiddleware({ model: "mistral:mistral-small-latest", trigger: { tokens: 4000 } }), toolCallLimitMiddleware({ toolName: "search", runLimit: 5 }), humanInTheLoopMiddleware({ interruptOn: { send_email: { allowedDecisions: ["approve", "reject"] } }, }), ], }); ```
El orden de los middleware importa: se ejecutan en secuencia