跳转至

工具调用修复

ToolCallRepairMiddleware 是一个用于自动修复大模型无效工具调用的中间件。

大模型在输出符合 JSON Schema 的工具调用参数时,有时会因模型能力限制生成格式错误的 JSON 内容(错误通常出现在 arguments 字段)。这类解析失败的调用会被 LangChain 标记并存入 invalid_tool_calls 字段中。ToolCallRepairMiddleware 会自动检测该字段,并调用 json-repair 库尝试修复格式,使工具调用能够正常执行。

使用须知

使用本中间件前,请确保已安装 langchain-dev-utils[standard],详见安装指南

参数说明

该中间件设计为零配置开箱即用,实例化时无需传入任何参数。

使用示例

标准用法

from langchain_dev_utils.agents.middleware import ToolCallRepairMiddleware

agent = create_agent(
    model="vllm:qwen2.5-7b",
    tools=[run_python_code, get_current_time],
    middleware=[
        ToolCallRepairMiddleware()
    ],
)

便捷用法(推荐)

由于 ToolCallRepairMiddleware 实例化时无需配置参数,本库预置了一个全局实例 tool_call_repair,推荐直接使用以简化代码:

from langchain_dev_utils.agents.middleware import tool_call_repair

agent = create_agent(
    model="vllm:qwen2.5-7b",
    tools=[run_python_code, get_current_time],
    middleware=[tool_call_repair],
)

注意事项

本中间件无法保证 100% 修复所有无效工具调用,实际修复效果取决于 json-repair 库的能力;此外,它仅作用于 invalid_tool_calls 字段中的无效调用内容。