override() — langchain Function Reference
Architecture documentation for the override() function in types.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD e2585731_77e3_b7bd_6c0a_772b884fe839["override()"] f413466f_6fee_56c2_0df7_03cfa4e2b92a["ModelRequest"] e2585731_77e3_b7bd_6c0a_772b884fe839 -->|defined in| f413466f_6fee_56c2_0df7_03cfa4e2b92a 908b36dd_dc6d_a5b3_4e91_fb69f2583c51["__setattr__()"] 908b36dd_dc6d_a5b3_4e91_fb69f2583c51 -->|calls| e2585731_77e3_b7bd_6c0a_772b884fe839 cee459c1_eb7f_c7cc_29a3_dacfd8fe243b["wrap_tool_call()"] cee459c1_eb7f_c7cc_29a3_dacfd8fe243b -->|calls| e2585731_77e3_b7bd_6c0a_772b884fe839 cc21f5b2_88ac_d6c2_a6d7_9d2aea234b1d["dynamic_prompt()"] cc21f5b2_88ac_d6c2_a6d7_9d2aea234b1d -->|calls| e2585731_77e3_b7bd_6c0a_772b884fe839 500f1e07_60be_163a_141c_779d2c09ffd2["wrap_model_call()"] 500f1e07_60be_163a_141c_779d2c09ffd2 -->|calls| e2585731_77e3_b7bd_6c0a_772b884fe839 0c14e03a_0bf4_13ec_9acc_ac8d8e0eed8d["wrap_tool_call()"] 0c14e03a_0bf4_13ec_9acc_ac8d8e0eed8d -->|calls| e2585731_77e3_b7bd_6c0a_772b884fe839 style e2585731_77e3_b7bd_6c0a_772b884fe839 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
libs/langchain_v1/langchain/agents/middleware/types.py lines 202–268
def override(self, **overrides: Unpack[_ModelRequestOverrides]) -> ModelRequest[ContextT]:
"""Replace the request with a new request with the given overrides.
Returns a new `ModelRequest` instance with the specified attributes replaced.
This follows an immutable pattern, leaving the original request unchanged.
Args:
**overrides: Keyword arguments for attributes to override.
Supported keys:
- `model`: `BaseChatModel` instance
- `system_prompt`: deprecated, use `system_message` instead
- `system_message`: `SystemMessage` instance
- `messages`: `list` of messages
- `tool_choice`: Tool choice configuration
- `tools`: `list` of available tools
- `response_format`: Response format specification
- `model_settings`: Additional model settings
- `state`: Agent state dictionary
Returns:
New `ModelRequest` instance with specified overrides applied.
Examples:
!!! example "Create a new request with different model"
```python
new_request = request.override(model=different_model)
```
!!! example "Override system message (preferred)"
```python
from langchain_core.messages import SystemMessage
new_request = request.override(
system_message=SystemMessage(content="New instructions")
)
```
!!! example "Override multiple attributes"
```python
new_request = request.override(
model=ChatOpenAI(model="gpt-4o"),
system_message=SystemMessage(content="New instructions"),
)
```
Raises:
ValueError: If both `system_prompt` and `system_message` are provided.
"""
# Handle system_prompt/system_message conversion
if "system_prompt" in overrides and "system_message" in overrides:
msg = "Cannot specify both system_prompt and system_message"
raise ValueError(msg)
if "system_prompt" in overrides:
system_prompt = cast("str | None", overrides.pop("system_prompt")) # type: ignore[typeddict-item]
if system_prompt is None:
overrides["system_message"] = None
else:
overrides["system_message"] = SystemMessage(content=system_prompt)
return replace(self, **overrides)
Domain
Subdomains
Source
Frequently Asked Questions
What does override() do?
override() is a function in the langchain codebase, defined in libs/langchain_v1/langchain/agents/middleware/types.py.
Where is override() defined?
override() is defined in libs/langchain_v1/langchain/agents/middleware/types.py at line 202.
What calls override()?
override() is called by 5 function(s): __setattr__, dynamic_prompt, wrap_model_call, wrap_tool_call, wrap_tool_call.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free