test_clear_tool_outputs_and_inputs_async() — langchain Function Reference
Architecture documentation for the test_clear_tool_outputs_and_inputs_async() function in test_context_editing.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD c9a2a1b3_55e2_12af_55a1_5303ed394152["test_clear_tool_outputs_and_inputs_async()"] 95bc2c91_0832_8fb7_f8e0_c4d613e022d3["test_context_editing.py"] c9a2a1b3_55e2_12af_55a1_5303ed394152 -->|defined in| 95bc2c91_0832_8fb7_f8e0_c4d613e022d3 d0fac9a0_048c_c4bc_10f5_307a81af0095["_make_state_and_request()"] c9a2a1b3_55e2_12af_55a1_5303ed394152 -->|calls| d0fac9a0_048c_c4bc_10f5_307a81af0095 style c9a2a1b3_55e2_12af_55a1_5303ed394152 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
libs/langchain_v1/tests/unit_tests/agents/middleware/implementations/test_context_editing.py lines 312–362
async def test_clear_tool_outputs_and_inputs_async() -> None:
"""Test async version of clearing tool outputs and inputs."""
tool_call_id = "call-2"
ai_message = AIMessage(
content=[
{"type": "tool_call", "id": tool_call_id, "name": "search", "args": {"query": "foo"}}
],
tool_calls=[{"id": tool_call_id, "name": "search", "args": {"query": "foo"}}],
)
tool_message = ToolMessage(content="x" * 200, tool_call_id=tool_call_id)
_state, request = _make_state_and_request([ai_message, tool_message])
edit = ClearToolUsesEdit(
trigger=50,
clear_at_least=10,
clear_tool_inputs=True,
keep=0,
placeholder="[cleared output]",
)
middleware = ContextEditingMiddleware(edits=[edit])
modified_request = None
async def mock_handler(req: ModelRequest) -> ModelResponse:
nonlocal modified_request
modified_request = req
return ModelResponse(result=[AIMessage(content="mock response")])
# Call awrap_model_call which creates a new request with edits
await middleware.awrap_model_call(request, mock_handler)
assert modified_request is not None
cleared_ai = modified_request.messages[0]
cleared_tool = modified_request.messages[1]
assert isinstance(cleared_tool, ToolMessage)
assert cleared_tool.content == "[cleared output]"
assert cleared_tool.response_metadata["context_editing"]["cleared"] is True
assert isinstance(cleared_ai, AIMessage)
assert cleared_ai.tool_calls[0]["args"] == {}
context_meta = cleared_ai.response_metadata.get("context_editing")
assert context_meta is not None
assert context_meta["cleared_tool_inputs"] == [tool_call_id]
# Original request should be unchanged
request_ai_message = request.messages[0]
assert isinstance(request_ai_message, AIMessage)
assert request_ai_message.tool_calls[0]["args"] == {"query": "foo"}
assert request.messages[1].content == "x" * 200
Domain
Subdomains
Defined In
Source
Frequently Asked Questions
What does test_clear_tool_outputs_and_inputs_async() do?
test_clear_tool_outputs_and_inputs_async() is a function in the langchain codebase, defined in libs/langchain_v1/tests/unit_tests/agents/middleware/implementations/test_context_editing.py.
Where is test_clear_tool_outputs_and_inputs_async() defined?
test_clear_tool_outputs_and_inputs_async() is defined in libs/langchain_v1/tests/unit_tests/agents/middleware/implementations/test_context_editing.py at line 312.
What does test_clear_tool_outputs_and_inputs_async() call?
test_clear_tool_outputs_and_inputs_async() calls 1 function(s): _make_state_and_request.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free