- 修复 configureFeishuAccount 函数,同时设置顶层和账户级配置 - 原因:default 账户不会合并 accounts.default 的覆盖值 - 新增 --allow-from 和 --group-policy 参数 - 默认 dmPolicy 改为 allowlist(安全优先) - 更新 SKILL.md 文档,添加配置层级说明 - 新增 FIXES.md 记录修复详情
2.7 KiB
2.7 KiB
agent-creator-with-binding 修复说明
修复的问题
问题 1:配置层级错误导致 dmPolicy 不生效
原因:
- Skill 只在
channels.feishu.accounts.<accountId>中设置dmPolicy和allowFrom - OpenClaw 的
getLarkAccount函数在处理accountId === "default"时,不会合并accounts.default中的覆盖值 - 导致 default 账户读取不到 dmPolicy 配置,始终使用默认的
pairing模式
表现:
- 用户已在配置中设置
dmPolicy: allowlist - 但机器人仍然回复配对提示,而不是拒绝访问
修复:
// 如果是第一个账户或 default 账户,设置顶层配置
if (isFirstAccount || isDefaultBot) {
config.channels.feishu.dmPolicy = options.dmPolicy || 'allowlist';
config.channels.feishu.allowFrom = options.allowFrom || ['*'];
config.channels.feishu.groupPolicy = options.groupPolicy || 'open';
config.channels.feishu.groupAllowFrom = options.groupAllowFrom || [];
}
正确的配置结构
{
"channels": {
"feishu": {
"enabled": true,
"appId": "cli_a93dc207e1f89bcb",
"appSecret": "xxx",
"dmPolicy": "allowlist",
"allowFrom": ["ou_xxx", "ou_yyy"],
"groupPolicy": "open",
"groupAllowFrom": [],
"accounts": {
"default": {
"appId": "cli_a93dc207e1f89bcb",
"appSecret": "xxx",
"dmPolicy": "allowlist",
"allowFrom": ["ou_xxx", "ou_yyy"]
},
"coding-expert-bot": {
"appId": "cli_a9320c94f23a1bd6",
"appSecret": "yyy",
"dmPolicy": "allowlist",
"allowFrom": ["ou_xxx", "ou_yyy"]
}
}
}
}
}
新增参数
--allow-from: 白名单用户,逗号分隔(如:ou_xxx,ou_yyy)--group-policy: 群聊策略:open/allowlist/disabled(默认 open)
默认行为变更
| 参数 | 修复前默认值 | 修复后默认值 | 说明 |
|---|---|---|---|
--dm-policy |
open |
allowlist |
安全优先,默认白名单模式 |
--allow-from |
['*'] |
从顶层配置继承 | 确保一致性 |
验证方法
# 1. 创建新 Agent 后检查配置
openclaw agents list --bindings
# 2. 查看飞书配置
cat ~/.openclaw/openclaw.json | jq '.channels.feishu | {dmPolicy, allowFrom, accounts}'
# 3. 测试机器人响应
# 向机器人发送消息,确认不会收到配对提示(如果已配置 allowlist)
相关文件
/home/admin/.openclaw/workspace/skills/agent-creator-with-binding/index.js- 主要修复/home/admin/.openclaw/workspace/skills/agent-creator-with-binding/SKILL.md- 文档更新