必须使用支持tool use的模型(如claude 3.5 sonnet、gpt-4o等),并在输入中明确写“调用xxx工具”且工具名与注册表严格一致(全小写+下划线),才能触发openclaw解析json并执行真实工具调用。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你在OpenClaw对话中想让AI直接调用工具执行操作,比如查天气、读文件、运行代码,而不是只返回文字描述,必须让模型生成符合框架解析规范的结构化函数调用指令。
确认模型支持函数调用能力
OpenClaw底层依赖LLM的function calling能力,不是所有模型都原生支持。Claude 3.5 Sonnet、GPT-4o、Llama 3.1 70B等明确标注支持tool use的模型才能触发真实调用。本地部署的Ollama模型需确认是否启用--enable-tool-calling参数启动。
若使用不支持的模型(如基础版Qwen或未配置的Llama 3 8B),即使你写“调用search_web”,模型只会输出字符串,不会生成可解析的JSON结构,OpenClaw将跳过执行直接返回文本。
在用户输入中嵌入明确的工具调用意图
不要说“帮我查一下北京今天天气”,而要写成:“请调用weather_api工具,查询location=北京, unit=celsius”。关键词“调用xxx工具”是OpenClaw识别动作意图的强信号。
工具名必须与注册表中完全一致,大小写、下划线都不能错。例如注册的是execute_python,写成run_python或executePython都会失败。
【工具名必须全小写且带下划线,与config中tool_registry定义严格一致】
等待模型输出结构化Action并由Runtime执行
第一步:模型收到指令后,会生成类似这样的响应:
{"name": "weather_api", "arguments": {"location": "北京", "unit": "celsius"}}
第二步:OpenClaw的AgentController捕获该JSON,匹配tool_registry中对应函数;
第三步:Runtime组件执行函数,获取返回值(如{"temp": 32.1, "condition": "晴"});
第四步:结果被封装为Observation事件,注入EventStream,供模型下一步推理使用。
整个过程无需人工干预,但若工具执行报错(如API密钥失效、网络超时),错误信息会原样返回给模型,它可能重试或换工具——这取决于你配置的retry策略和prompt中的容错指令。










