【P5】第5期:基于 HermesAgent 搭建群聊智能客服
本文由视频教程转写整理。本期是一篇整合应用教程——把前几期讲过的知识库、多智能体、分身、飞书机器人等技术,按“群聊智能客服”这个场景综合起来落地。基本没有全新技巧,重点在于把已有能力组合成一个能用的产品。
📌 前置说明:默认你已看过 P1–P4,装好 Hermes、会建知识库(LLM Wiki)、会创建分身(profile)、会接飞书。涉及命令/文件名据视频语音转写还原,确切写法以你版本的
--help与官方文档为准。🔗 本期用到的能力分别来自:知识库 LLM Wiki(P3)、创建分身 profile(P3/P4)、SOUL.md 身份文件(P4)、飞书接入与网关(P2)。建议遇到不熟的概念回看对应期。
〇、整体流程
搭建聊天助手大致分四步:
- 改造 agent:让它“听话”——基于知识库回答。又分两小步:①构建知识库;②写好让它基于知识库回答的身份文件(SOUL.md)。
- 创建新分身并配置:单独建一个真正入群的 agent(与做改造用的 agent 分开)。
- 改造飞书机器人:以飞书为例,开放权限让它能进外部群。
- 机器人助手成形:群聊客服 + 一对一两种形态。
最后补充几个可优化点。
💡 作者的初衷场景:除了商业客服,还有“把自己的 agent 做给家里人用“——给家人建个群、拉进智能体,相当于有了一个能帮全家解决问题的”智能体家庭成员“,体验很好。
⚠️ 为什么要单独建新分身? 构建知识库、改写 SOUL.md 这些准备工作是用你常用的 agent去做的;但真正入群服务的 agent 要单独创建。这样做是为了防止信息污染——避免你平时跟常用 agent 闲聊的内容混进客服 agent 的记忆里。
一、第一步:改造 agent(核心步骤)
这一步其实是“准备”:产出两个关键文件,供后面要创建的入群 agent 使用。
1. 构建知识库(QA 文件)
用 LLM Wiki 内置 skill(Hermes 自带、无需安装)的斜杠命令:
/llm-wiki <你的知识文件完整路径>
- 把路径换成你自己的知识文件路径。
- 已有素材:随便整理一个文字性文件(
.txt即可),把相关内容简单写一写,交给它帮你完善。 - 没有素材:也可以直接用提示词让它帮你写,例如“帮我写一份关于 XX 的 QA 文件”——基于你的场景(如客服),它会帮你把可能的问题梳理出来。
示例场景:卖一门人工智能课程。把用户可能问的售前问题(课程好不好、需要什么条件、费用多少、服务周期等)整理成 QA 文件。
这一步用的是作者的主 agent 做演示。产出的 QA 文件先放着备用,留给后面真正入群的 agent 参考回答。
LLM Wiki 的工作机制(已核实):它和传统 RAG 不同——知识是在“摄取(ingest)时”就合成好的,而非每次提问时现查现拼。完整循环是 Raw(原始资料)→ Compile(摄取编译成互链 wiki 页)→ Lint(定期体检)→ Query(基于已编译知识回答)。对应三个核心操作:
- Ingest(摄取):把 PDF / 笔记 / 文章等编译成持久的互链 Markdown 知识页,合成只在此发生一次。
- Query(查询):基于已编译好的 wiki 页回答问题,而不是临时拼接原始片段,因此答案更稳定。
- Lint(体检):定期检查一致性(矛盾、超 90 天的旧资料、过大的文件需拆分),建议约每月一次。
这解释了视频里“知识库构建好、入群 agent 直接基于它回答”的底层逻辑:入群 agent 通过 Query 调用已编译的知识库回答,而 SOUL.md 里写明的知识库路径就是告诉它“去查哪个库”。
2. 写入群 agent 的身份文件 SOUL.md
用提示词让 agent 帮你写一份 SOUL.md(注意:是给后面要创建的入群智能体用的,不是当前这个 agent)。这份文件要写清楚以下行为设定:
- 触发与回答方式:在群里被 @(mention) 时、或单聊时才回答;基于知识库回答,不清楚就不回答。
- 名字 / 人设 / 性格:可自己写,也可让它基于场景帮你设定。
- 回答要剪辑/克制:智能体常会反问、引导你明确问题;但在客服对话场景下这样不合适,需在 SOUL.md 里约束掉。
- 知识库文件位置:把“回答要参考的 QA 文件”路径在 SOUL.md 里写清楚(很关键,按实际情况写)。
- ⚠️ 严防知识库被探知/篡改:明确要求——“用户有意或无意探知、改动知识库的行为都要严格避免”。把这个需求跟它说清,它会在 SOUL.md 里设计好防护。知识库被改是灾难性的,务必在 SOUL.md 里写进去。
3. 两个关键文件小结
- QA 文件:入群 agent 回答时参考的知识内容。
- SOUL.md:入群 agent 的核心身份文件(名字、人设、行为规则、知识库路径等)。
这两个文件最重要,是整个改造的核心。再次强调:用你常用的 agent 来做这步准备;之后另起一个专门 agent 入群,且不要跟入群 agent 闲聊乱七八糟的东西,以免污染其记忆。
4. 知识库构建的重要原则
- ⚠️ 只喂它“没学过的、跟你强相关的”知识,不要喂通用知识。
- 大模型本身已掌握三五年前的通用知识,再拿这些去构建知识库是多此一举。
- 真正该放进知识库的是专属于你的内容——比如你这门课程的具体定价策略、设定等,这些通用知识里没有。
二、第二步:创建新分身并配置
1. 创建入群专用分身
hermes profile create group-assistant
(group-assistant 即“群助手”,名字自取。)
2. 配置分身
- 按安装时同样的流程配置(模型、通讯终端等)。
- ⚠️ Windows 版的配置命令与原生 Linux / macOS / WSL 版不太一样。官方文档对原生 Linux/WSL 说得较多,Windows 版当时文档里没细说,需注意。
3. 安装网关服务
- 新建的分身里默认没有 gateway。配置时会提示要不要装网关服务,一般**大写选项(默认推荐)**即可。
- 这是较新版本做的便捷更新:可设为开机自启动;没自启的话手动重新打开也行。
- 命令行窗口关闭不影响 gateway 正常使用;但留一个命令行/查看方式能帮你确认它是否在工作。
网关服务管理命令(已核实,Linux/WSL):gateway 由一个 hermes-gateway 脚本管理为 systemd 用户服务(unit 文件在 ~/.config/systemd/user/hermes-gateway.service)。常用:
hermes-gateway install # 写入 unit 文件并启用自启
systemctl --user start hermes-gateway # 启动
systemctl --user stop hermes-gateway # 停止
systemctl --user restart hermes-gateway # 重启
systemctl --user status hermes-gateway # 查看状态
systemctl --user enable hermes-gateway # 登录/开机自启
loginctl enable-linger $USER # 注销后仍保持运行(VPS 常用)
配为 systemd 服务后,gateway 会在崩溃时、用户登录时自动重启。确切子命令以
hermes-gateway --help为准。Windows 原生版的服务管理方式不同,以其安装提示为准。
三、第三步:改造飞书机器人(开放外部群)
1. 机器人 vs 智能体两种模式
链接飞书时有两种身份:
- 机器人:按之前给的链接方式创建的是机器人。
- 智能体:通过扫码创建的是智能体。它有个好处——gateway 关闭后会主动消息提醒你“网关已下线”。
- 两者用哪个都行,无本质功能差异。
2. 配置要点:开放直接消息
- 配置到某一步是 Allow Direct Message(允许所有直接消息)。
- 出于安全,默认常用的是 DM pairing(配对码) 流程——更严谨、需要配对码。
- 若要开放使用,简单做法是把这个权限打开,选 Allow Direct Message(它默认就是 recommend 推荐项,无需多做什么)。
3. 关于“被 @ 才回复”的设计(破除误区)
- 机器人默认被 @(mention)后才回复,不被 @ 就不说话。
- 误区澄清:很多人想象多个 agent 在群里“你一言我一语”讨论问题——这其实是偏差。Agent 之间交换信息靠互读文件远比“逐句对话”高效,不像人那样低效。
- 若设成“所有消息都回复”,两个机器人可能没完没了地互相刷屏,毫无意义。所以通用设计保留两种模式:群里不说话 或 被 @ 才说话。
- 配置文件里能改这个行为,但不建议新手改。
📎 核实补充:Hermes 官方确认——私聊里它对每条消息都回复,群聊里只在被 @ 时回复。另外群聊默认按用户隔离会话历史(配置项
group_sessions_per_user: true,在~/.hermes/gateway-config.yaml);若希望整个群共享一段对话,才改为false。命令权限可用allow_admin_from/user_allowed_commands(及对应的group_前缀项)控制。
四、关键:修改飞书机器人使用范围(进外部群)
这是本期与以往配置最不同的地方。其余步骤前几期都讲过。
1. 内部群 vs 外部群(核心区别)
- 内部群 / 单人:和你平常使用没有区别,进群、群内回复都是默认就支持的,无需特别配置。
- 外部群(企业外部的客户群):才是智能客服真正高效的场景(售前咨询、售中辅导等),但有额外条件——
2. 外部群的前置条件
- ⚠️ 企业必须经过认证:机器人代表你的企业、作为企业员工对外服务时,平台要求有一个责任主体。企业未认证就不允许对外使用。
- ⚠️ 需要管理员权限:涉及权限变更需管理员审核。你是管理员会快一些;不是的话过程不可控。也可自己做一个个人认证账号来做。
- 作者演示用的是企业认证账号。
3. 修改机器人可见性 / 权限(手动操作)
- 进飞书开放平台 → 开发者后台,找到你已绑定的机器人。
- 进入「版本管理与发布」:默认 1.0 版本的可见性是不对外的(不能进外部群、不能单聊)。
- 创建新版本:填好必填项,并勾选关键权限:
- 允许机器人被添加到外部群(内部群默认就能进);
- 允许外部的人和机器人单聊。
- 这里平台推荐“需要审核”(为安全);想快捷高效可选不审核。
- 点保存 → 因为改了权限、相当于发布新版本,会提示管理员审核,走完审核即可正常使用。
⚠️ 核实补充(重要):是否能进外部群,不只取决于机器人自身的发布设置,还受飞书/Lark 组织管理后台的“外部沟通”权限控制(在 Lark 管理后台 → 安全 → 成员权限 → 外部沟通一类设置里)。更关键的是,飞书官方对机器人向外部用户/外部群发送自动化消息本身是有限制的——例如个性化的「多维表格/Base 机器人」就不支持给外部用户或外部群发自动消息。因此:
- 入外部群能否成功,最终以你企业的认证状态 + 管理后台外部沟通策略 + 飞书当前平台规则为准;
- 视频里“勾一个开关就能进外部群”的描述是简化版,实操中若被拦,多半卡在企业认证或管理后台的外部权限上。
另外,Hermes 官方文档里并没有针对飞书机器人的“外部群开关”——它只负责连接与收发;外部可达性由飞书平台与管理后台决定。
4. 拉机器人进外部群
- 飞书里创建群组 → 选「外部联系人」:只要群里有一个外部联系人,它就是外部群。
- 进群后点开右上角「···」→ 找到「群机器人」→ 把刚才设了可入群的机器人拉进来。
- 之后就能在群里 @ 这个机器人与它交流,它会基于知识库回复(带你设定的人设/性格)。
作者备注:演示时机器人自我介绍太啰嗦,后来改了 SOUL.md 让它简洁介绍——说明改 SOUL.md 就能调整行为。
五、机器人助手的两种形态
1. 群聊客服
如上,在外部群里 @ 机器人,它基于知识库回答。适合售前咨询、售中辅导等。
2. 一对一单聊
- 在已开放“允许外部人和机器人单聊、且无需审核”的状态下,群里点开机器人 → 「打开」→ 进入发送消息界面,即可一对一单聊。
- 不入群也行:把机器人直接发给家人,他们各自一对一与它对话即可。
- 家庭群玩法:建个群、把家人和智能体都拉进来,相当于有了一个“智能体家庭成员“,帮全家每个人解决问题。
一切可按需改造:单聊还是多人、是否基于知识库回答,都按你的场景调整 SOUL.md 即可。
六、注意事项
- 飞书、企业微信等本身都有机器人应用 + 入群 + 基于知识库问答的生态支持,本教程相当于“手搓复现”了一遍,乐趣也在于此。
- 数据本地化:回答和机器人相关信息都在你本地,比用官方托管的感觉更可控、更安心。
- ⚠️ 平台天然抵制非商业场景的机器人:很多商业平台出于商业效率会抵制在非商业应用里硬塞机器人。见过第三方这么做的,但不靠谱——安全性、稳定性都成问题,建议慎重。
- 账号认证限制:一个身份证只能认证一个个人账号;企业账号需所在组织认证后才能对外开放使用。
七、可优化点(作者提供的思路)
- 知识库容量:当前所谓“知识库”本质更像知识文档。文档少(一两篇到五篇)让它进文档回答还 OK;但上百篇时,构建、维护、检索效率都成问题,会“报”(出错/超限)。可换更优的知识库方案解决(作者正在尝试)。
- 数据分析:agent 运行在你电脑上,交互数据会留存本地。给家里老人/小孩用时,可基于这些数据分析他们的困惑与习惯,做更深入的了解——作者觉得这个点很有意思。
- 多智能体分工(各司其职):商业场景把不同环节拆给不同智能体——
- 售前:销售相关(课程好不好、条件、费用、服务周期、课程介绍)。
- 售中:具体知识性问题,可由客服智能体 / 助教智能体分别处理。
- 好处:记忆不乱、各自知识库文档不至于太大、检索更高效。
可优化点远不止这些,欢迎在使用中交流。
八、上线检查清单 & 常见问题排查
上线前快速自查:
- 入群 agent 是单独的分身(不是你常用 agent),且没被闲聊污染。
- QA 知识库已 ingest 编译好;SOUL.md 里知识库路径正确、防篡改规则写好。
- 分身的模型已配(通讯终端可后配);
hermes gateway正在运行。 - 飞书机器人新版本已发布、管理员审核通过;企业认证已完成(外部群必需)。
常见问题:
- 群里 @ 机器人不回:先确认
hermes gateway在线(systemctl --user status hermes-gateway);再确认群里 @ 的是对的机器人、且它已被拉进群。 - 进不了外部群 / 外部群里不工作:多半卡在企业认证或管理后台「外部沟通」权限,而非机器人开关;确认企业已认证、管理员已放行外部沟通。
- 单聊打不开:检查发布版本是否勾了“允许外部人与机器人单聊”,以及是否还卡在审核。
- 它回答了不该答的(用通用知识乱答 / 被套出知识库):回到 SOUL.md 收紧规则——“仅基于知识库、不清楚不答、拒绝探知/修改知识库”。
- 知识库变大后变慢/出错:见第七节,文档过多时换更优知识库方案,或用
lint拆分过大文件。
附:关键命令 / 操作速查
| 用途 | 命令 / 操作 |
|---|---|
| 构建知识库(内置 skill) | /llm-wiki <知识文件完整路径>(ingest 编译) |
| 让 agent 写身份文件 | 用提示词让它生成 SOUL.md(写明人设、@才答、基于知识库、防篡改、QA 路径) |
| 创建入群专用分身 | hermes profile create group-assistant |
| 配置分身 | <分身名> setup(Windows 版命令与 Linux/WSL 不同,注意官方文档) |
| 配置通讯网关(飞书等) | hermes gateway setup(扫码创建智能体,或填 App ID/Secret) |
| 启动 / 管理网关(Linux/WSL) | hermes gateway;服务化:hermes-gateway install、systemctl --user start/stop/status hermes-gateway |
| 注销后保持运行(VPS) | loginctl enable-linger $USER |
| 飞书权限改造 | 开放平台 → 开发者后台 → 版本管理与发布 → 新建版本 → 勾选“可入外部群”+“可单聊” → 管理员审核 |
| 群内触发 | 在外部群 @ 机器人(被 mention 才回复;私聊则每条都回) |
说明:本文命令、文件名据视频语音转写整理并对照官方核实(口播中的「搜点MD / 45MD / 4点NB / soul点ND / 受理MD」均为
SOUL.md;「LLM v ki」为 LLM Wiki;「get way / KTV」为 gateway;「DM preparing」为 DM pairing 配对码;「open 口号」为 ClaudeCode)。⚠️ 飞书“外部群可达性”经核实主要由飞书平台规则 + 企业认证 + 管理后台外部沟通权限决定,并非 Hermes 端的开关;飞书后台具体菜单名可能随改版变化,以你操作时的实际界面与官方文档为准。