OpenClaw飞书渠道配置问题与解决方案

2026-06-17阅读 0热度 0
OpenClaw

发布时间:2026-04-08,版本记录:基于 1Panel 部署的 OpenClaw 实例,从 3.28(2026.3.28)升级至 2026.4.7。升级后容器启动即卡死并陷入循环重启,日志持续输出以下错误:Config invalidFile: ~/.openclaw/openclaw.json Problem:- channels.feishu: unknown channel id: feishu Run: openclaw doctor --fix。此问题并非个例,大量用户在同一升级过程中遭遇相同故障。

故障根因

问题集中在两个独立维度。

根因一:1Panel 镜像中飞书插件路径配置错误

路径说明
OPENCLAW_BUNDLED_PLUGINS_DIR=/app/extensions容器默认的 bundled 插件目录(未包含飞书插件)
/app/dist/extensions/feishu/飞书插件的实际部署位置(预编译 .js 版本)

1Panel 官方 openclaw:latest 镜像打包时,/app/extensions/ 目录并未放置飞书插件,而其编译产物实际位于 /app/dist/extensions/feishu/。环境变量指向了不存在的路径,导致 OpenClaw 始终无法加载飞书插件。

根因二:旧版配置字段违反新版 schema 校验

旧配置中留存了以下字段,新版本 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"

关键提醒typingIndicatorresolveSenderNamesstreaming 等字段在 2026.4.x 版本中已迁移至插件内部默认值,不再允许在 channel 配置中显式声明。若旧配置仍保留这些字段,升级后必然导致启动失败。


解决步骤

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

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

environment 区块新增一行环境变量,并将镜像版本锁定至 2026.4.7

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,使其能够正确定位到飞书插件。

第二步:重建容器

docker stop 1Panel-openclaw-7tjZ
docker rm 1Panel-openclaw-7tjZ
cd /opt/1panel/apps/openclaw/openclaw
docker compose up -d

或在 1Panel 管理面板保存配置后重启容器,效果相同。

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

容器启动后,执行以下 Python 脚本更新配置文件:

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('配置写入完成')
"

验证成功的标志

容器日志出现以下输出即表明配置生效:

[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 连接成功
在这里插入图片描述

核心问题(两个层面):

镜像路径错误:1Panel 的 openclaw 镜像默认 OPENCLAW_BUNDLED_PLUGINS_DIR=/app/extensions,但飞书插件实际位于 /app/dist/extensions/feishu/,路径不匹配导致持续报错 unknown channel id: feishu

配置字段不兼容:旧配置中 replyInThreadtopicSessionModerenderModetypingIndicator 等字段在新版本 schema 严格校验下已被废弃。

解决方案核心(单行环境变量):

在 docker-compose.yml 的 environment 段添加:

OPENCLAW_BUNDLED_PLUGINS_DIR: /app/dist/extensions

升级要点:每次切换镜像版本时,该环境变量必须保留,同时飞书 channel 配置只使用文档明确支持的字段。

免责声明

本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。

相关阅读

更多
欢迎回来 登录或注册后,可保存提示词和历史记录
登录后可同步收藏、历史记录和常用模板
注册即表示同意服务条款与隐私政策