Home / Function/ override() — langchain Function Reference

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

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