Files
openclaw b5bf96e882 fix: 修复飞书配置层级问题,确保 dmPolicy 正确生效
- 修复 configureFeishuAccount 函数,同时设置顶层和账户级配置
- 原因:default 账户不会合并 accounts.default 的覆盖值
- 新增 --allow-from 和 --group-policy 参数
- 默认 dmPolicy 改为 allowlist(安全优先)
- 更新 SKILL.md 文档,添加配置层级说明
- 新增 FIXES.md 记录修复详情
2026-03-17 22:17:10 +08:00

2.7 KiB
Raw Permalink Blame History

agent-creator-with-binding 修复说明

修复的问题

问题 1配置层级错误导致 dmPolicy 不生效

原因:

  • Skill 只在 channels.feishu.accounts.<accountId> 中设置 dmPolicyallowFrom
  • 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 - 文档更新