
问题现象:OpenClaw ‘只会说,不会做’
你已成功启动 OpenClaw Gateway 服务,网页界面可正常访问并接收用户输入,但无论输入何种指令(如‘查天气’‘发飞书消息’),系统始终仅返回自然语言回复(例如‘好的,正在为您查询’),完全不触发任何工具调用、API 请求或外部动作——即所谓‘有嘴没手’。该问题在切换为 Qwen-Turbo 等支持 function calling 的模型后仍持续存在,且与飞书连接状态(连不上/连得上但无响应)高度相关。
核心原因:不是模型能力问题,而是执行链路中断
OpenClaw 的技能执行依赖完整闭环:
用户输入 → Gateway 解析意图 → 模型生成含 tool_calls 的结构化响应 → Gateway 调用对应插件/工具 → 插件执行并返回结果 → Gateway 整合输出
任一环节断裂都会导致‘只回复不执行’。常见断点如下:
- Gateway 未正确加载或启用插件:插件配置文件(如
plugins.json或config/plugins.yaml)缺失、路径错误,或插件开关设为false; - 大模型未启用 function calling 支持:Qwen-Turbo 虽支持,但需在 OpenClaw 的 LLM 配置中显式开启
enable_function_calling: true(或等效字段),否则模型默认只输出纯文本; - 模型响应格式不符合 Gateway 解析规范:部分 Qwen 接口返回的
tool_calls字段嵌套层级或字段名(如function.namevsname)与 OpenClaw 期望不一致; - 飞书 Bot 权限或 Webhook 配置错误:即使 Gateway 尝试调用飞书插件,若 Bot 未开通「发送消息」权限、Webhook 地址未填入插件配置、或签名密钥不匹配,插件会静默失败;
- 插件依赖服务未就绪:如飞书插件依赖本地
feishu-auth-service,但该服务未启动或端口被占用。
分步解决方案:从配置到验证
1. 确认插件已启用且配置有效
检查 config/plugins.yaml(或项目根目录下对应插件配置文件):
feishu:
enabled: true # 必须为 true
app_id: "cli_xxx"
app_secret: "xxx"
verification_token: "xxx"
encrypt_key: "xxx"
webhook_url: "https://your-domain.com/api/feishu/webhook" # 确保与飞书后台一致
重启 Gateway 后,查看启动日志是否包含 Loaded plugin: feishu 及 Feishu plugin initialized。若无,检查文件路径、YAML 缩进及语法错误。
2. 强制启用模型的 function calling
在 LLM 配置(如 config/llm.yaml)中,确保包含:
qwen_turbo:
type: "openai"
api_base: "https://dashscope.aliyuncs.com/compatible-mode/v1"
api_key: "sk-xxx"
model: "qwen-turbo"
enable_function_calling: true # 关键!必须显式开启
# 其他参数...
⚠️ 注意:不同 OpenClaw 版本字段名可能为 support_function_calling 或 use_tools,请以你所用版本的 config/schema.yaml 或官方文档为准。
3. 验证模型是否真实返回 tool_calls
临时修改 Gateway 日志级别为 DEBUG,向接口发送测试请求(如 curl -X POST http://localhost:8000/v1/chat/completions),观察原始响应体中是否包含 "tool_calls": [{"function": {"name": "send_feishu_message", ...}}]。若无,说明模型未触发工具调用,需检查 prompt 模板或模型兼容性。
4. 检查飞书 Bot 后台配置
- 登录 飞书开放平台 → 进入对应 Bot 应用 → 「机器人设置」→ 确认「发送消息」权限已勾选;
- 「事件订阅」中,Webhook URL 必须与插件配置中的
webhook_url完全一致(含协议、域名、路径); - 「安全设置」中,
verification_token和encrypt_key必须与插件配置严格匹配(区分大小写)。
如何验证是否修复成功?
执行以下三步验证:
- 日志验证:启动 Gateway 后,搜索关键词
calling tool、send_feishu_message或executed successfully; - 接口验证:使用
curl或 Postman 直接调用 Gateway 的/v1/chat/completions,传入明确含工具意图的 query(如“立刻给张三发条飞书:测试技能”),检查响应中tool_calls是否存在且非空; - 端到端验证:在网页 UI 输入相同指令,观察飞书群/单聊是否收到消息,并检查 Gateway 日志是否有
Feishu message sent成功记录。
如果仍不工作?补充建议
- 降级测试:先禁用飞书插件,启用一个轻量插件(如
calculator或weather),确认基础工具调用链是否通畅; - 检查版本兼容性:OpenClaw 2026.2.6+ 对 Qwen-Turbo 的 function calling 支持可能存在适配差异,建议查阅其 GitHub Issues 中关键词
qwen tool_calls或尝试切换为qwen-plus测试; - 避免依赖豆包建议:豆包对 OpenClaw 内部机制无上下文,其‘升级即可解决’说法不可靠;请始终以 官方 GitHub README 和
config/example/下的配置模板为准。
重要提醒:OpenClaw 各版本配置结构差异较大,本文基于 2026.2.x 主线逻辑编写。具体字段名、文件路径、插件启用方式,请务必以你所安装版本的
config/目录下实际文件及docs/中的最新说明为准。