文章目录
- 路径 说明 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 配置中手动指定。
- 文件路径:/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,使其能正确找到 feishu 插件。
- docker stop 1Panel-openclaw-7tjZ docker rm 1Panel-openclaw-7tjZ cd /opt/1panel/apps/openclaw/openclaw docker compose up -d 或在 1Panel 管理面板中保存配置后重启。
- 容器启动后执行: 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(‘配置写入完成’) “
- environment: HOME: /home/node TERM: xterm-256color OPENCLAW_BUNDLED_PLUGINS_DIR: /app/dist/extensions image: 1panel/openclaw:2026.4.7
- “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 镜像的飞书插件路径问题
- 原因二:旧版配置字段不兼容
- 解决方案
- 步骤一:修改 docker-compose.yml(需要 root 权限)
- 步骤二:重建容器
- 步骤三:写入正确的飞书 channel 配置
- 验证成功的标志
- 最终配置状态
- docker-compose.yml 关键配置
- openclaw.json 飞书 channel 配置(2026.4.x 兼容版)
- 问题根因(两个)
- 解决方案核心(一行环境变量)
日期: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
| 路径 | 说明 |
|---|---|
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 配置中手动指定。
文件路径:/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,使其能正确找到 feishu 插件。
docker stop 1Panel-openclaw-7tjZ
docker rm 1Panel-openclaw-7tjZ
cd /opt/1panel/apps/openclaw/openclaw
docker compose up -d
或在 1Panel 管理面板中保存配置后重启。
容器启动后执行:
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连接成功
environment:
HOME: /home/node
TERM: xterm-256color
OPENCLAW_BUNDLED_PLUGINS_DIR: /app/dist/extensions
image: 1panel/openclaw:2026.4.7
"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 配置只保留文档明确支持的字段。

到此这篇关于OpenClaw飞书渠道的配置问题排查与解决指南的文章就介绍到这了,更多相关OpenClaw飞书渠道配置内容请搜索风君子博客以前的文章或继续浏览下面的相关文章,希望大家以后多多支持风君子博客!