OpenClaw 飞书渠道配置问题解决备忘录

张开发
2026/4/11 21:28:24 15 分钟阅读

分享文章

OpenClaw 飞书渠道配置问题解决备忘录
问题背景日期2026-04-08版本1Panel 部署的 OpenClaw从3.282026.3.28升级至2026.4.7现象容器启动后卡住循环重启日志反复出现Config invalid File: ~/.openclaw/openclaw.json Problem: - channels.feishu: unknown channel id: feishu Run: openclaw doctor --fix根本原因原因一1Panel 镜像的飞书插件路径问题路径说明OPENCLAW_BUNDLED_PLUGINS_DIR/app/extensions容器默认的 bundled 插件目录不含 feishu/app/dist/extensions/feishu/feishu 插件的实际位置编译好的.js版本结论1Panel 的openclaw:latest镜像打包时/app/extensions/目录里没有包含 feishu 插件但 feishu 的编译版本存在于/app/dist/extensions/feishu/。环境变量指向错误导致 openclaw 始终找不到 feishu 插件。原因二旧版配置字段不兼容旧配置中包含以下字段在新版本 schema 严格校验下不被支持会导致must NOT have additional properties错误replyInThread:disabled,topicSessionMode:disabled,reactionNotifications:own,renderMode:card,actions:{reactions:true},typingIndicator:true,resolveSenderNames:true,streaming:true,blockStreaming:true,textChunkLimit:2000,mediaMaxMb:30,webhookPath:/feishu/events注意typingIndicator、resolveSenderNames、streaming等字段在 2026.4.x 版本中已移至插件内部默认值不再允许在 channel 配置中手动指定。解决方案步骤一修改 docker-compose.yml需要 root 权限文件路径/opt/1panel/apps/openclaw/openclaw/docker-compose.yml在environment下添加一行环境变量并将镜像版本指定为2026.4.7environment:HOME:/home/nodeTERM:xterm-256colorOPENCLAW_BUNDLED_PLUGINS_DIR:/app/dist/extensions# ← 新增此行image:1panel/openclaw:2026.4.7# ← 指定版本作用将 openclaw 的 bundled 插件目录覆盖为/app/dist/extensions使其能正确找到 feishu 插件。步骤二重建容器dockerstop 1Panel-openclaw-7tjZdockerrm1Panel-openclaw-7tjZcd/opt/1panel/apps/openclaw/openclawdockercompose up-d或在 1Panel 管理面板中保存配置后重启。步骤三写入正确的飞书 channel 配置容器启动后执行dockerexec1Panel-openclaw-7tjZ python3-c import json with open(/home/node/.openclaw/openclaw.json, r) as f: config json.load(f) # 添加 feishu 插件 plugins config.setdefault(plugins, {}) allow plugins.setdefault(allow, []) if feishu not in allow: allow.append(feishu) plugins.setdefault(entries, {})[feishu] {enabled: True, config: {}} # 写入 feishu channel 配置仅使用 2026.4.x 支持的字段 config[channels][feishu] { enabled: True, defaultAccount: main, accounts: { main: { appId: cli_a94ba863b9f9dcb1, appSecret: DWJWRZMIqMRIXriLsxNBYfTw }, hoare: { appId: cli_a948989a8879dcd3, appSecret: z2Xj6thGjUzHccuFDwBfCjbN8 } }, domain: feishu, connectionMode: websocket, dmPolicy: open, allowFrom: [*], groupPolicy: open, requireMention: True } with open(/home/node/.openclaw/openclaw.json, w) as f: json.dump(config, f, indent2, ensure_asciiFalse) print(配置写入完成) 验证成功的标志容器日志出现以下内容即为成功[gateway] feishu_doc: Registered feishu_doc, feishu_app_scopes [gateway] feishu_chat: Registered feishu_chat tool [gateway] feishu_wiki: Registered feishu_wiki tool [gateway] feishu_drive: Registered feishu_drive tool [gateway] feishu_bitable: Registered bitable tools [gateway] ready (4 plugins, 1.4s) ← 插件数从3变4 [feishu] feishu[main]: bot open_id recovered: ou_xxx ← WebSocket连接成功最终配置状态docker-compose.yml 关键配置environment:HOME:/home/nodeTERM:xterm-256colorOPENCLAW_BUNDLED_PLUGINS_DIR:/app/dist/extensionsimage:1panel/openclaw:2026.4.7openclaw.json 飞书 channel 配置2026.4.x 兼容版feishu:{enabled:true,defaultAccount:main,accounts:{main:{appId:cli_a94ba863b9f9dcb1,appSecret:DWJWRZMIqMRIXriLsxNBYfT},hoare:{appId:cli_a948989a8879dcd3,appSecret:z2Xj6thGjUzHccuFDwBfCjbN8}},domain:feishu,connectionMode:websocket,dmPolicy:open,allowFrom:[*],groupPolicy:open,requireMention:true}问题根因两个镜像路径问题1Panel 的 openclaw 镜像默认 OPENCLAW_BUNDLED_PLUGINS_DIR/app/extensions但 feishu 插件实际在 /app/dist/extensions/feishu/路径对不上所以始终报 unknown channel id: feishu配置字段不兼容旧配置里的 replyInThread、topicSessionMode、renderMode、typingIndicator 等字段在新版本 schema 严格校验下不被支持解决方案核心一行环境变量在 docker-compose.yml 的 environment 下加OPENCLAW_BUNDLED_PLUGINS_DIR: /app/dist/extensions升级时记住每次换新镜像版本这个环境变量必须保留且 feishu channel 配置只保留文档明确支持的字段。

更多文章