Files
docs/build/snippets/python/code-samples/models-runtime-configurable-py.mdx
T
2026-07-29 10:28:19 +00:00

37 lines
887 B
Plaintext

```python
from dataclasses import dataclass
from typing import Callable
from langchain.agents.middleware import ModelRequest, ModelResponse, wrap_model_call
from langchain.chat_models import init_chat_model
from deepagents import create_deep_agent
@dataclass
class Context:
model: str
@wrap_model_call
def configurable_model(
request: ModelRequest,
handler: Callable[[ModelRequest], ModelResponse],
) -> ModelResponse:
model_name = request.runtime.context.model
model = init_chat_model(model_name)
return handler(request.override(model=model))
agent = create_deep_agent(
model="google_genai:gemini-3.6-flash",
middleware=[configurable_model],
context_schema=Context,
)
# Invoke with the user's model selection
result = agent.invoke(
{"messages": [{"role": "user", "content": "Hello!"}]},
context=Context(model="openai:gpt-5.5"),
)
```