test_always_include_not_counted_against_max() — langchain Function Reference
Architecture documentation for the test_always_include_not_counted_against_max() function in test_tool_selection.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD 3796c5a1_df9c_31be_045e_7ac76025f521["test_always_include_not_counted_against_max()"] ee17f352_671b_7645_71f1_b7942fb8e4d0["TestAlwaysInclude"] 3796c5a1_df9c_31be_045e_7ac76025f521 -->|defined in| ee17f352_671b_7645_71f1_b7942fb8e4d0 style 3796c5a1_df9c_31be_045e_7ac76025f521 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
libs/langchain_v1/tests/unit_tests/agents/middleware/implementations/test_tool_selection.py lines 395–452
def test_always_include_not_counted_against_max(self) -> None:
"""Test that always_include tools don't count against max_tools limit."""
model_requests = []
@wrap_model_call
def trace_model_requests(
request: ModelRequest, handler: Callable[[ModelRequest], ModelResponse]
) -> ModelResponse:
model_requests.append(request)
return handler(request)
# Selector picks 2 tools
tool_selection_model = FakeModel(
messages=cycle(
[
AIMessage(
content="",
tool_calls=[
{
"name": "ToolSelectionResponse",
"id": "1",
"args": {"tools": ["get_weather", "search_web"]},
}
],
),
]
)
)
model = FakeModel(messages=iter([AIMessage(content="Done")]))
# max_tools=2, but we also have 2 always_include tools
tool_selector = LLMToolSelectorMiddleware(
max_tools=2,
always_include=["send_email", "calculate"],
model=tool_selection_model,
)
agent = create_agent(
model=model,
tools=[get_weather, search_web, calculate, send_email],
middleware=[tool_selector, trace_model_requests],
)
agent.invoke({"messages": [HumanMessage("test")]})
# Should have 2 selected + 2 always_include = 4 total
assert len(model_requests) > 0
for request in model_requests:
assert len(request.tools) == 4
tool_names = []
for tool_ in request.tools:
assert isinstance(tool_, BaseTool)
tool_names.append(tool_.name)
assert "get_weather" in tool_names
assert "search_web" in tool_names
assert "send_email" in tool_names
assert "calculate" in tool_names
Domain
Subdomains
Defined In
Source
Frequently Asked Questions
What does test_always_include_not_counted_against_max() do?
test_always_include_not_counted_against_max() is a function in the langchain codebase, defined in libs/langchain_v1/tests/unit_tests/agents/middleware/implementations/test_tool_selection.py.
Where is test_always_include_not_counted_against_max() defined?
test_always_include_not_counted_against_max() is defined in libs/langchain_v1/tests/unit_tests/agents/middleware/implementations/test_tool_selection.py at line 395.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free