openclaw实现工作流自动调用工具需三步:一是显式注册工具至tool registry并在config.yaml中配置路径;二是llm输出严格符合action schema的json格式;三是启用enable_auto_tool_call、设置max_iterations≥2并开启observability模块。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

让工作流自动调用工具是OpenClaw实现任务闭环的关键能力,它依赖于明确的工具注册、结构化动作输出和调度器对Observation的响应机制。
确认工具已正确注册到Tool Registry
OpenClaw不会自动识别任意函数为可用工具,必须显式注册。在tools/目录下新增Python文件(如web_search.py),定义函数并用@tool装饰器标记,函数文档字符串需包含清晰的参数说明和用途描述。
注册后需在config.yaml中将该模块路径加入tool_configs列表,否则调度层无法加载。
这一步漏掉会导致后续所有调用都返回“Tool not found”错误,且无明确提示——【工具未出现在registry中时,LLM仍会按计划输出调用语句,但执行层直接跳过,不报错也不重试】。
确保LLM输出符合Action Schema规范
规划层(Planner)必须生成严格遵循OpenClaw Action格式的JSON片段,例如:
{"action": "web_search", "args": {"query": "OpenClaw 0.3.1 release date"}}
不能混用自然语言描述,也不能省略action字段或拼写错误。模型若输出{"tool": "web_search", ...}或Call web_search with...,调度器将完全忽略该行。
建议在system prompt中强制要求:“仅输出纯JSON格式Action,不加任何前导/尾随文本,不使用Markdown代码块包裹。”
配置调度器启用自动工具触发
第一步:打开openhands/config/agent_config.yaml,定位agent节下的enable_auto_tool_call字段,将其值设为true。
第二步:检查max_iterations是否≥2。若设为1,Agent在首次规划后即终止,无法进入“执行→观察→再规划”循环。
第三步:确认observability模块已启用,因为工具调用后的返回结果(Observation)必须被注入上下文,否则下次推理无法基于实际结果调整策略。










