#two feishu agent wrong ,why

1 messages · Page 1 of 1 (latest)

bronze dune
#

"channels": {
"feishu": {
"enabled": true,
"accounts": {
"default": {
"agentId": "main_agent",
"appId": "cli_a9",
"appSecret": "59tmJdrhyHZm2p0",
"domain": "feishu",
"dmPolicy": "open",
"groupPolicy": "open",
"peer": {
"kind": "direct", // 仅匹配飞书群组,不匹配全局
"id": "*"
}
},
"tutule_two": {
"agentId": "main_agent",
"appId": "cli_a914e43a49",
"appSecret": "4vNpdegsl2jjRSjTQZq",
"domain": "feishu",
"dmPolicy": "open",
"groupPolicy": "open",
"requireMention": "false",
// 新增:自定义呼唤bot的名字(支持多个)
"callNames": ["bot", "助手"],
// 新增:消息必须包含的请求类动词(支持扩展,如加"整理""查"等)
"includeKeywords": ["帮", "请", "分析", "总结", "写"],
// 新增:消息必须以?/?结尾
"suffixKeywords": ["?", "?"]
}
}
}
},
"agents": {
"defaults": {
"model": {
"primary": "local_ollama/qwen3:14b",
"fallbacks": []
},
"workspace": "C:\Users\Administrator\clawd",
"compaction": {
"mode": "safeguard"
},
"maxConcurrent": 4
},
"list": [
{
"id": "main_agent",
"name": "兔兔乐",
"model": {
"primary": "local_ollama/qwen3:14b",//sophnet/MiniMax-M2.5 sophnet/MiniMax-M2.5 local_ollama/qwen3:14b
"fallbacks": []
}
},

feishu.default use main_agent , feishu.tutule_two use ui_agent,tutule_two is wrong,why?

jovial hamletBOT
#

To help others find answers, you can mark your question as solved via Right click solution message -> Apps -> ✅ Mark Solution

bronze dune
#

"bindings": [

{
  "agentId": "main_agent",
  "match": {
    "channel": "feishu",
    "accountId": "default"
  }
},
{
  "agentId": "ui_agent",
  "match": {
    "channel": "webchat",
    "accountId": "default"
  }
}

],

feishu.default use main_agent , feishu.tutule_two use ui_agent,tutule_two is wrong,why?

gloomy vigilBOT
#

你这里不是 “tutule_two 配了 agentId: main_agent 但却跑到 ui_agent” 的问题本身,而是 配置方式用错层级了

1) channels.feishu.accounts.<id>.agentId 不是用来选 agent 的(会被忽略/不生效)

OpenClaw 选用哪个 agent,是靠顶层的 bindings 路由规则 来决定的,不是靠 channel account 里塞 agentId

路由优先级里明确有:先 peer 匹配,再 accountId 匹配,再默认 agent(没匹配到就会落到默认 agent,很多人这里就看到它跑去 ui_agent 了)
文档:https://docs.openclaw.ai/channels/channel-routing.md

你想让 feishu.tutule_twomain_agent,应该加类似这样的 binding(关键是 match.accountId):

{
  channels: {
    feishu: {
      enabled: true,
      accounts: {
#
        default: { appId: "cli_xxx", appSecret: "xxx" },
        tutule_two: { appId: "cli_yyy", appSecret: "yyy" },
      },
      // 可选:多账号时建议显式指定默认账号,避免出站消息走错
      defaultAccount: "default",
    },
  },

  bindings: [
    { agentId: "main_agent", match: { channel: "feishu", accountId: "default" } },
    { agentId: "main_agent", match: { channel: "feishu", accountId: "tutule_two" } },
  ],
}

如果你现在有一个更“泛”的 binding(比如 { match: { channel: "feishu" }, agentId: "ui_agent" }),而 没有专门针对 tutule_two 的 binding,那它就会命中 ui_agent ——这就是你看到的现象。

#

2) 你写的 requireMention: "false" 位置也不对 + 类型也不对

官方配置是 针对 group(chat_id) 的,比如:

  • channels.feishu.groups.<oc_xxx>.requireMention = false(布尔值,不是字符串)

文档:https://docs.openclaw.ai/channels/feishu.md (看 “Mention requirement / Group configuration examples” 那段)

所以你放在 accounts.tutule_two.requireMention 里,而且写成 "false" 字符串,基本不会按你想的工作。


3) 你贴出来的 peer, callNames, includeKeywords, suffixKeywords 这些字段也不是官方 Feishu 配置字段

如果你没自己改过插件/分支,这些字段大概率会被忽略,甚至在某些版本里会导致该 account 配置校验失败、被丢弃,最后又回落到默认路由/默认 agent。


#

4) 先做两件事,我就能 100% 给你定位到是哪条规则命中的

  1. 发一下你的 openclaw --version
  2. openclaw logs --follow 里贴一段 收到 feishu 消息时的路由日志(通常会打印匹配到的 accountId/agentId/binding)

安全提醒(很重要)

你把 Feishu appSecret 明文贴在公开 Discord 里了:请立刻去飞书开放平台 重置/轮换 App Secret,并删除/编辑这条消息(避免被人拿去盗用你的 bot)。后续建议用 OpenClaw 的 secrets/环境变量方式来放密钥。

#

你这份 bindings 已经把原因写出来了:你只给 feishu/accountId=default 绑定了 main_agent没有feishu/accountId=tutule_two 做任何绑定。

所以当消息来自 tutule_two 这个 Feishu app 时:

  • 路由规则找不到 bindings 里匹配 channel=feishu + accountId=tutule_two 的项
  • 就会 回落到“默认 agent”(而你那边默认 agent 刚好是 ui_agent,所以你看到它跑去 ui_agent 了)

按文档的路由规则这是正常的:accountId 不匹配 → fallback default agent
https://docs.openclaw.ai/channels/channel-routing.md

修复:给 tutule_two 加一条 binding(或加一个 feishu 通配)

最直接:

bindings: [
  { agentId: "main_agent", match: { channel: "feishu", accountId: "default" } },
#
  { agentId: "main_agent", match: { channel: "feishu", accountId: "tutule_two" } },

  { agentId: "ui_agent", match: { channel: "webchat", accountId: "default" } },
]

或者如果你想 所有 Feishu 账号都进 main_agent,可以用通配(更省事):

{ agentId: "main_agent", match: { channel: "feishu", accountId: "*" } }

另外两点(不影响“选错 agent”的根因,但建议改)

  • channels.feishu.accounts.*.agentId 这个字段不是用来路由的,建议删掉,避免误解。
  • 你又把 appSecret 明文贴出来了:请立刻去飞书开放平台 重置/轮换 secret,然后把 Discord 里的 secret 删/编辑掉(公开频道非常危险)。
#

如果你愿意再贴一下你的 agents.list(包含 ui_agent 那段)以及 openclaw --version,我也可以顺便帮你确认“默认 agent 为啥是 ui_agent”。