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

问题背景

日期 :2026-04-08
版本 :1Panel 部署的 OpenClaw,从 3.28(2026.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 错误:

json 复制代码
"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"

注意:typingIndicatorresolveSenderNamesstreaming 等字段在 2026.4.x 版本中已移至插件内部默认值,不再允许在 channel 配置中手动指定。


解决方案

步骤一:修改 docker-compose.yml(需要 root 权限)

文件路径:/opt/1panel/apps/openclaw/openclaw/docker-compose.yml

environment 下添加一行环境变量,并将镜像版本指定为 2026.4.7

yaml 复制代码
environment:
    HOME: /home/node
    TERM: xterm-256color
    OPENCLAW_BUNDLED_PLUGINS_DIR: /app/dist/extensions  # ← 新增此行
image: 1panel/openclaw:2026.4.7                         # ← 指定版本

作用 :将 openclaw 的 bundled 插件目录覆盖为 /app/dist/extensions,使其能正确找到 feishu 插件。

步骤二:重建容器

bash 复制代码
docker stop 1Panel-openclaw-7tjZ
docker rm 1Panel-openclaw-7tjZ
cd /opt/1panel/apps/openclaw/openclaw
docker compose up -d

或在 1Panel 管理面板中保存配置后重启。

步骤三:写入正确的飞书 channel 配置

容器启动后执行:

bash 复制代码
docker exec 1Panel-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, indent=2, ensure_ascii=False)
print('配置写入完成')
"

验证成功的标志

容器日志出现以下内容即为成功:

log 复制代码
[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 关键配置

yaml 复制代码
environment:
    HOME: /home/node
    TERM: xterm-256color
    OPENCLAW_BUNDLED_PLUGINS_DIR: /app/dist/extensions
image: 1panel/openclaw:2026.4.7

openclaw.json 飞书 channel 配置(2026.4.x 兼容版)

json 复制代码
"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 配置只保留文档明确支持的字段。

相关推荐
jinanwuhuaguo4 小时前
OpenClaw工程解剖——RAG、向量织构与“记忆宫殿”的索引拓扑学(第十三篇)
android·开发语言·人工智能·kotlin·拓扑学·openclaw
熊猫钓鱼>_>7 小时前
当“虾”遇上“马”:QClaw 融合 Hermes 背后的智能体进化论
人工智能·ai·腾讯云·agent·openclaw·qclaw·hermes
羑悻的小杀马特8 小时前
零成本搞定!异地访问 OpenClaw 最简方案:SSH 端口映射组网!
运维·服务器·人工智能·docker·自动化·ssh·openclaw
jinanwuhuaguo8 小时前
OpenClaw协议霸权——从 MCP 标准到意图封建化的政治经济学(第十八篇)
android·人工智能·kotlin·拓扑学·openclaw
AC赳赳老秦11 小时前
网安工程师提效:用 OpenClaw 实现漏洞扫描报告生成、安全巡检自动化、日志合规审计
java·开发语言·前端·javascript·python·deepseek·openclaw
jinanwuhuaguo11 小时前
OpenClaw执行奇点——因果链折叠与责任悬置的时间哲学(第十九篇)
前端·人工智能·安全·重构·openclaw
Swift社区12 小时前
AI 为什么需要“确认”?OpenClaw 的安全启示
人工智能·安全·openclaw
jinanwuhuaguo12 小时前
反熵共同体——OpenClaw的宇宙热力学本体论(第十七篇)
大数据·人工智能·安全·架构·kotlin·openclaw
七夜zippoe13 小时前
OpenClaw 节点管理:设备与远程控制
人工智能·远程控制·设备·openclaw·节点管理
草履虫君14 小时前
wsl的装龙虾方式,接入飞书的时候需要在wsl环境装飞书插件,那么node模式接入飞书,需要怎么装飞书插件?
服务器·经验分享·飞书