---
layout: default
---
# Middleware: wrapModelCall
Permite interceptar y modificar la llamada al modelo:
```typescript
import { ChatMistralAI } from "@langchain/mistralai";
import { createAgent, createMiddleware } from "langchain";
const basicModel = new ChatMistralAI({ model: "mistral-small-latest" });
const advancedModel = new ChatMistralAI({ model: "mistral-large-latest" });
const dynamicModelSelection = createMiddleware({
name: "DynamicModelSelection",
wrapModelCall: (request, handler) => {
// Elegir modelo según complejidad de la conversación
const messageCount = request.messages.length;
const model = messageCount > 10 ? advancedModel : basicModel;
return handler({ ...request, model });
},
});
const agent = createAgent({
model: basicModel,
tools: [searchTool],
middleware: [dynamicModelSelection],
});
```