Home / Class/ ToolFilteringMiddleware Class — langchain Architecture

ToolFilteringMiddleware Class — langchain Architecture

Architecture documentation for the ToolFilteringMiddleware class in test_tools.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  89d098ea_5f4d_da21_9f80_e8b591806e1e["ToolFilteringMiddleware"]
  949c7cf4_56fe_f3b4_cd89_9631a7e9cb1e["AgentMiddleware"]
  89d098ea_5f4d_da21_9f80_e8b591806e1e -->|extends| 949c7cf4_56fe_f3b4_cd89_9631a7e9cb1e
  18e85ff8_9a5d_f800_f722_027398dc89e7["BaseTool"]
  89d098ea_5f4d_da21_9f80_e8b591806e1e -->|extends| 18e85ff8_9a5d_f800_f722_027398dc89e7
  5e05f5a6_3c9a_6b02_08a5_596bf1a6469a["test_tools.py"]
  89d098ea_5f4d_da21_9f80_e8b591806e1e -->|defined in| 5e05f5a6_3c9a_6b02_08a5_596bf1a6469a
  ae17189e_bd91_c921_d9b9_73a242000716["wrap_model_call()"]
  89d098ea_5f4d_da21_9f80_e8b591806e1e -->|method| ae17189e_bd91_c921_d9b9_73a242000716

Relationship Graph

Source Code

libs/langchain_v1/tests/unit_tests/agents/middleware/core/test_tools.py lines 91–103

    class ToolFilteringMiddleware(AgentMiddleware):
        def wrap_model_call(
            self,
            request: ModelRequest,
            handler: Callable[[ModelRequest], ModelResponse],
        ) -> ModelCallResult:
            # Only allow tool_a and tool_b
            filtered_tools: list[BaseTool | dict[str, Any]] = []
            for t in request.tools:
                assert isinstance(t, BaseTool)
                if t.name in {"tool_a", "tool_b"}:
                    filtered_tools.append(t)
            return handler(request.override(tools=filtered_tools))

Frequently Asked Questions

What is the ToolFilteringMiddleware class?
ToolFilteringMiddleware is a class in the langchain codebase, defined in libs/langchain_v1/tests/unit_tests/agents/middleware/core/test_tools.py.
Where is ToolFilteringMiddleware defined?
ToolFilteringMiddleware is defined in libs/langchain_v1/tests/unit_tests/agents/middleware/core/test_tools.py at line 91.
What does ToolFilteringMiddleware extend?
ToolFilteringMiddleware extends AgentMiddleware, BaseTool.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free