test_kwargs_tool_runtime_injection.py — langchain Source File
Architecture documentation for test_kwargs_tool_runtime_injection.py, a python file in the langchain codebase. 6 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR 82e4d6f1_511f_c784_3db5_46de2562046f["test_kwargs_tool_runtime_injection.py"] feec1ec4_6917_867b_d228_b134d0ff8099["typing"] 82e4d6f1_511f_c784_3db5_46de2562046f --> feec1ec4_6917_867b_d228_b134d0ff8099 9444498b_8066_55c7_b3a2_1d90c4162a32["langchain_core.messages"] 82e4d6f1_511f_c784_3db5_46de2562046f --> 9444498b_8066_55c7_b3a2_1d90c4162a32 121262a1_0bd6_d637_bce3_307ab6b3ecd4["langchain_core.tools"] 82e4d6f1_511f_c784_3db5_46de2562046f --> 121262a1_0bd6_d637_bce3_307ab6b3ecd4 dd5e7909_a646_84f1_497b_cae69735550e["pydantic"] 82e4d6f1_511f_c784_3db5_46de2562046f --> dd5e7909_a646_84f1_497b_cae69735550e d9a6942a_c37a_07f8_ed13_74d0fdc117be["langchain.agents"] 82e4d6f1_511f_c784_3db5_46de2562046f --> d9a6942a_c37a_07f8_ed13_74d0fdc117be 069947d2_727b_035a_0691_c12203e2f5a6["tests.unit_tests.agents.model"] 82e4d6f1_511f_c784_3db5_46de2562046f --> 069947d2_727b_035a_0691_c12203e2f5a6 style 82e4d6f1_511f_c784_3db5_46de2562046f fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
"""Test that config/runtime in args_schema aren't injected to **kwargs functions."""
from __future__ import annotations
from typing import Any
from langchain_core.messages import HumanMessage, ToolMessage
from langchain_core.tools import StructuredTool
from pydantic import BaseModel, Field
from langchain.agents import create_agent
from tests.unit_tests.agents.model import FakeToolCallingModel
class ArgsSchema(BaseModel):
"""Args schema with config and runtime fields."""
query: str = Field(description="The query")
config: dict | None = Field(default=None)
runtime: dict | None = Field(default=None)
def test_config_and_runtime_not_injected_to_kwargs() -> None:
"""Config/runtime in args_schema are NOT injected when not in function signature."""
captured: dict[str, Any] = {}
def tool_func(**kwargs: Any) -> str:
"""Tool with only **kwargs."""
captured["keys"] = list(kwargs.keys())
captured["config"] = kwargs.get("config")
captured["runtime"] = kwargs.get("runtime")
captured["query"] = kwargs.get("query")
return f"query={kwargs.get('query')}"
tool = StructuredTool.from_function(
func=tool_func,
name="test_tool",
description="Test tool",
args_schema=ArgsSchema.model_json_schema(),
)
agent = create_agent(
model=FakeToolCallingModel(
tool_calls=[[{"name": "test_tool", "args": {"query": "test"}, "id": "c1"}], []]
),
tools=[tool],
system_prompt="",
)
result = agent.invoke({"messages": [HumanMessage("hi")]})
tool_msgs = [m for m in result["messages"] if isinstance(m, ToolMessage)]
assert len(tool_msgs) == 1
assert tool_msgs[0].content == "query=test"
# Only query passed - config/runtime NOT injected since not in function signature
assert captured["keys"] == ["query"]
assert captured["query"] == "test"
assert captured["config"] is None
assert captured["runtime"] is None
Domain
Subdomains
Classes
Dependencies
- langchain.agents
- langchain_core.messages
- langchain_core.tools
- pydantic
- tests.unit_tests.agents.model
- typing
Source
Frequently Asked Questions
What does test_kwargs_tool_runtime_injection.py do?
test_kwargs_tool_runtime_injection.py is a source file in the langchain codebase, written in python. It belongs to the LangChainCore domain, Runnables subdomain.
What functions are defined in test_kwargs_tool_runtime_injection.py?
test_kwargs_tool_runtime_injection.py defines 1 function(s): test_config_and_runtime_not_injected_to_kwargs.
What does test_kwargs_tool_runtime_injection.py depend on?
test_kwargs_tool_runtime_injection.py imports 6 module(s): langchain.agents, langchain_core.messages, langchain_core.tools, pydantic, tests.unit_tests.agents.model, typing.
Where is test_kwargs_tool_runtime_injection.py in the architecture?
test_kwargs_tool_runtime_injection.py is located at libs/langchain_v1/tests/unit_tests/agents/test_kwargs_tool_runtime_injection.py (domain: LangChainCore, subdomain: Runnables, directory: libs/langchain_v1/tests/unit_tests/agents).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free