打造你的家庭 AI 助手(四):单 OpenClaw 配置多 Agent、多 QQ、飞书机器人

打造你的家庭 AI 助手(四):单 OpenClaw 配置多 Agent、多 QQ、飞书机器人

打造你的家庭 AI 助手(四):单 OpenClaw 配置多 Agent、多 QQ、飞书机器人

引言

OpenClaw 是一个强大的智能体(Agent)编排框架,它通过统一的架构让开发者可以轻松管理多个聊天机器人,并接入不同的即时通讯平台。在实际应用中,我们往往需要同时运行多个 QQ 机器人(例如个人助手、工作助手),甚至希望同一个智能体既能处理 QQ 消息,也能响应飞书消息。

本文将详细介绍如何在一个 OpenClaw 实例中配置多通道(QQ、飞书)、多 Agent 以及多 QQ 机器人账号,实现资源的高效利用和灵活的消息路由。特别地,我们将阐明飞书通道与 QQ 通道在绑定规则上的差异,避免常见的配置错误。

核心概念回顾

  • Agent(智能体):拥有独立人格、记忆和技能的对话单元。每个 Agent 有自己的工作区(workspace),存放 SOUL.md(人格设定)和 skills/(技能)。
  • Channel(通道):连接外部即时通讯平台的模块,如 qqbot(QQ 官方机器人)、feishu(飞书)。
  • Binding(绑定):定义消息路由的规则,将特定通道的 incoming 消息派发给指定的 Agent 处理。

环境准备

  • 已安装 OpenClaw
  • 拥有至少一个 QQ 机器人(在 QQ 开放平台 创建)和一个飞书应用(在 飞书开放平台 创建),获取各自的 AppID 和 AppSecret

配置多 QQ 机器人账号

OpenClaw 的 qqbot 通道支持同时接入多个 QQ 机器人,只需在 channels.qqbot.accounts 对象中为每个机器人定义一个唯一的 accountId,并填入对应的凭证。

配置文件示例 ~/.openclaw/config.json

{"channels":{"qqbot":{"enabled":true,"accounts":{"personal-bot":{"appId":"QQ_APPID_1","clientSecret":"QQ_SECRET_1"},"work-bot":{"appId":"QQ_APPID_2","clientSecret":"QQ_SECRET_2"}}}}}

这里 personal-botwork-bot 是我们自定义的账号 ID,后续在绑定规则中会用到。

配置多 Agent

每个 Agent 对应一种人格或功能。例如我们可以创建两个 Agent:

  • shuying-finance:金融助手,负责处理投资咨询
  • shuying-general:通用助手,负责日常闲聊

Agent 配置示例:

{"agents":{"list":[{"id":"shuying-finance","name":"金融助手","workspace":"/data/workspace/finance"},{"id":"shuying-general","name":"通用助手","workspace":"/data/workspace/general"}]}}

每个 Agent 的工作区是独立的,可以放置不同的人格设定文件(SOUL.md)和技能代码。

配置绑定规则:将 QQ 账号路由到不同 Agent

现在我们将两个 QQ 机器人分别绑定到不同的 Agent。注意,在匹配 QQ 通道时,我们使用 accountId 字段来指定具体的机器人账号。

{"bindings":[{"agentId":"shuying-finance","match":{"channel":"qqbot","accountId":"work-bot"}},{"agentId":"shuying-general","match":{"channel":"qqbot","accountId":"personal-bot"}}]}
易错提醒:字段名必须是 accountId,而不是 account。如果写成 "account": "..." 会导致 Invalid input 错误。

配置飞书通道与绑定规则

飞书通道的配置与 QQ 略有不同。首先在 channels.feishu 中配置应用账号:

{"channels":{"feishu":{"enabled":true,"accounts":{"finance-feishu":{"appId":"FEISHU_APPID","appSecret":"FEISHU_SECRET"}}}}}

飞书绑定规则的关键区别在于:飞书的消息来源需要指定具体的 peer(对话对象),可以是用户私聊(user)或群聊(group),并给出对应的 ID。

例如,我们希望将某个飞书群的会话路由给金融助手:

{"bindings":[{"agentId":"shuying-finance","match":{"channel":"feishu","accountId":"finance-feishu","peer":{"kind":"group","id":"oc_582b57e290ba8a4d662eedaa0f446eb7"}}}]}

如果需要匹配某个用户的私聊,则将 kind 改为 userid 改为用户的 open_id

为什么飞书不使用 accountId 直接匹配?

因为飞书通道支持在同一应用账号下区分不同的会话来源(群或用户),提供更精细的路由控制。如果你希望某个飞书应用账号的所有消息都交给同一个 Agent,可以省略 peer 字段。

进阶:同一个 Agent 同时处理 QQ 和飞书

如果希望一个 Agent(例如 shuying-finance)既能处理 QQ 消息,也能处理飞书消息,只需添加两条绑定规则,指向同一个 agentId

完整绑定示例:

{"bindings":[// QQ 绑定{"agentId":"shuying-finance","match":{"channel":"qqbot","accountId":"work-bot"}},{"agentId":"shuying-general","match":{"channel":"qqbot","accountId":"personal-bot"}},// 飞书绑定(同一个金融助手){"agentId":"shuying-finance","match":{"channel":"feishu","accountId":"finance-feishu","peer":{"kind":"group","id":"oc_582b57e290ba8a4d662eedaa0f446eb7"}}}]}

现在,无论是通过 work-bot QQ 号发来的消息,还是通过指定飞书群发来的消息,都会交给 shuying-finance 这个 Agent 统一处理。Agent 将使用同一套人格和技能进行回复,实现跨平台的一致性体验。

配置文件完整示例

将以上片段整合成一个完整的配置文件(仅展示关键部分):

{"agents":{"list":[{"id":"shuying-finance","workspace":"/data/workspace/finance"},{"id":"shuying-general","workspace":"/data/workspace/general"}]},"channels":{"qqbot":{"enabled":true,"accounts":{"personal-bot":{"appId":"QQ_APPID_1","clientSecret":"QQ_SECRET_1"},"work-bot":{"appId":"QQ_APPID_2","clientSecret":"QQ_SECRET_2"}}},"feishu":{"enabled":true,"accounts":{"finance-feishu":{"appId":"FEISHU_APPID","appSecret":"FEISHU_SECRET"}}}},"bindings":[{"agentId":"shuying-finance","match":{"channel":"qqbot","accountId":"work-bot"}},{"agentId":"shuying-general","match":{"channel":"qqbot","accountId":"personal-bot"}},{"agentId":"shuying-finance","match":{"channel":"feishu","accountId":"finance-feishu","peer":{"kind":"group","id":"oc_582b57e290ba8a4d662eedaa0f446eb7"}}}]}

验证与重启

修改配置文件后,建议先验证语法:

openclaw config validate 

如果没有错误,重启网关服务使配置生效:

openclaw gateway restart 

之后可以通过 openclaw status 查看 Agent 和通道的运行状态。分别用 QQ 和飞书向对应的机器人/群发送消息,测试是否被正确路由到预期的 Agent。

常见问题

  1. 绑定规则不生效(QQ):检查 accountId 是否与 accounts 中的键名完全一致(区分大小写),且字段名为 accountId 而非 account
  2. 绑定规则不生效(飞书):确认 peer 中的 kindid 正确无误,且该群或用户确实属于配置的飞书应用。
  3. 通道启动失败:确认 appId/appSecret 无误,并且服务器 IP 已在对应平台的白名单中。
  4. Agent 无响应:检查 Agent 的工作区是否存在有效的 SOUL.md 文件,或者是否有技能代码错误。

总结

通过本文的配置,我们实现了在一个 OpenClaw 实例中:

  • 接入多个 QQ 机器人账号
  • 定义多个具有不同人格的 Agent
  • 将不同 QQ 账号的消息精确路由到对应的 Agent
  • 将飞书特定群的消息也路由到其中一个 Agent,实现跨平台统一处理

OpenClaw 的灵活性和扩展性为构建复杂的对话系统提供了坚实的基础。掌握通道、Agent 和绑定规则的关系,你可以轻松扩展更多平台和更多智能体,打造属于自己的机器人矩阵。


相关文章:

Read more

基于30年教学沉淀的清华大学AI通识经典:《人工智能的底层逻辑》

基于30年教学沉淀的清华大学AI通识经典:《人工智能的底层逻辑》

📚 引言:为什么你需要这本书? 在人工智能技术席卷全球的今天,你是否曾好奇: * 机器是如何"看见"世界的? * 算法是如何"理解"人类语言的? * 智能系统背后的基本原理是什么? 《人工智能的底层逻辑》正是为解答这些疑问而生!这本书由清华大学张长水教授基于30年教学与科研经验精心撰写,以通俗易懂的方式揭开AI技术的神秘面纱。 你对AI的好奇 《人工智能的底层逻辑》 理解AI基本原理 应用AI思维解决问题 参与AI技术讨论 基于30年教学沉淀的清华大学AI通识经典:《人工智能的底层逻辑》 * 📚 引言:为什么你需要这本书? * 🏛️ 书籍结构与内容亮点 * 📖 系统化的知识架构 * 🧩 独特的"四维解析"框架 * 🌟 特色教学方式 * 🎯 适合哪些读者? * 📊 为什么这本书与众不同? * ✨ 三大核心优势 * 🆚 同类书籍对比 * 🚀 实际应用案例 * 案例1:智能客服系统 * 案例2:医疗影像分析 * 📖 如何高效阅读本书? * 🔍 阅读路线建议 * 💡 学习

AI的提示词专栏:用 Prompt 进行数据清洗,缺失值、异常值自动标注

AI的提示词专栏:用 Prompt 进行数据清洗,缺失值、异常值自动标注

AI的提示词专栏:用 Prompt 进行数据清洗,缺失值、异常值自动标注 本文围绕 Prompt 在数据清洗中缺失值与异常值自动标注的应用展开,先阐述 Prompt 驱动数据清洗的优势,即降低编程门槛、支持个性化规则与多格式数据适配。接着分两部分详细讲解实践:缺失值标注部分,拆解核心需求要素,提供基础标注(返回数据)与带业务逻辑标注(生成 Python 代码)示例,并给出优化技巧;异常值标注部分,明确判断维度,展示数值范围与逻辑关联类标注示例,附带避坑指南。还介绍了不同工具的 Prompt 适配方式与落地注意事项,最后设计练习题与思考题辅助巩固。整体内容兼具理论指导与实操性,助力读者掌握 Prompt 清洗数据技能。 人工智能专栏介绍     人工智能学习合集专栏是 AI 学习者的实用工具。它像一个全面的 AI 知识库,把提示词设计、AI 创作、智能绘图等多个细分领域的知识整合起来。无论你是刚接触 AI

构建 AI 逆向 MCP - 使用 MCP 辅助 JS 逆向

构建 AI 逆向 MCP - 使用 MCP 辅助 JS 逆向 前言 谷歌出了一个 chrome-dev-mcp,能够自动化浏览器操作。我发现这个 MCP 能抓包,于是想:能不能用于 JS 逆向分析? 但实际用下来发现,常规逆向需要的能力它都不支持: * ❌ 搜索代码 * ❌ 追踪调用栈 * ❌ 打断点调试 * ❌ Hook 函数 * ❌ 查看变量值 那能不能给它打补丁?当然可以。 Chrome DevTools Protocol(CDP)本身支持这些能力,只是谷歌的 MCP 没有封装。于是我基于 CDP 扩展了一套逆向专用工具: 扩展能力对应工具代码搜索search_in_sources、find_in_script调用栈追踪get_request_initiator断点调试set_

人工智能:自然语言处理在医疗健康领域的应用与实战

人工智能:自然语言处理在医疗健康领域的应用与实战

人工智能:自然语言处理在医疗健康领域的应用与实战 学习目标 💡 理解自然语言处理(NLP)在医疗健康领域的应用场景和重要性 💡 掌握医疗健康领域NLP应用的核心技术(如电子病历分析、医学文本分类、疾病预测) 💡 学会使用前沿模型(如BERT、GPT-3)进行医疗健康文本分析 💡 理解医疗健康领域的特殊挑战(如医学术语、数据隐私、数据质量) 💡 通过实战项目,开发一个电子病历分析应用 重点内容 * 医疗健康领域NLP应用的主要场景 * 核心技术(电子病历分析、医学文本分类、疾病预测) * 前沿模型(BERT、GPT-3)在医疗健康领域的使用 * 医疗健康领域的特殊挑战 * 实战项目:电子病历分析应用开发 一、医疗健康领域NLP应用的主要场景 1.1 电子病历分析 1.1.1 电子病历分析的基本概念 电子病历分析是对电子病历文本进行分析和处理的过程。在医疗健康领域,电子病历分析的主要应用场景包括: * 病历结构化:将非结构化的电子病历文本转换为结构化数据 * 病历检索:检索相关的电子病历 * 病历质量评估: