昨天写了 Hermes 的安装入门教程,今天接着聊下Hermes 的 多 Profile , 也就是多 Agent。目前我还没把完整的多 Agent 体系搭好,正在一步步的弄, 但是多 Profile 这块已经配置完成了,建立不同的飞书机器人,从而让各个应用只做和这个Agent 相关的事情。所以今天这篇文章主要是分享下多Profile 的配置过程、踩过的坑。后续还会继续分享如何让这些多 Agent 去介入实际的工作流,成为我真正的助手。为什么要做多 Agent 系统这个概念对我来说不算陌生,之前用 OpenClaw 的时候也折腾过类似的东西,但那时候没真正用起来。这次换到 Hermes,才算真正理解了它到底解决什么问题。刚开始用 Agent 写公众号,我犯了一个很典型的错误:把什么都往一个 Agent 里塞。写文案让它做,热点追踪让它做,画图提示词也让它做。结果就是——它什么都做,但什么都做得不够专业,还很容易产生混乱。让它写文案,它脑子里还装着刚搜来的热点;让它分析热点,它又忍不住想直接给你出稿。Prompt 越写越长,效果反而越来越差。这就像一个人他什么都会,就是都不精, 所以有时候我们需要的不是一个全能的人,而是一个能配合默契的团队。Hermes 的 Profile 是什么在说多 Agent 之前,得先搞清楚 Hermes 的 Profile 机制。Profile 是完全隔离的配置上下文。可以理解成:Python 的虚拟环境、浏览器的多用户模式,但它是给 AI Agent 用的。每个 Profile 有自己独立的:
- 模型配置和 API Key
- 系统提示词(SOUL.md)
- 技能库(skills/)
- 记忆和对话历史
- 飞书/钉钉等通讯配置
在同一台机器上,我们可以跑多个独立 Agent,互不干扰, 因为都是隔离的。Hermes 官方文档的核心说明:
“Profile 是完全隔离的配置上下文,让我们在同一台机器上运行多个独立的 Agent 实例。每个 Profile 有自己独立的配置、API Key、技能库、记忆和对话历史。
这意味着我们不需要为了跑多个 Agent 就使用多台服务器,一台普通机器就够了。我的多 Agent 规划结合我的内容生产流程,我暂时先规划了4个独立的 Profile, 后续有需要再加,主要还是先把系统搭建起来 :1. video_agent(视频助手)负责视频内容相关的,比如生成视频脚本,封面和标题等信息2. content_curation(内容选题)使用 Skill 做热点追踪和选题分析。它会自动拉取 AI 圈的最新动态,根据我的用户画像评估每个热点的爆款潜力,给出选题建议和评分。3. content_creative(内容创作助手)这是最终输出文案的那个 Agent。主要是根据选题,结合Skill 和 Obsidian 知识库, 参考我的个人上下文和文案风格,生成初稿。4 . knowledge_collect(素材收集整理)这个打算后续用来收集一些文章、资料或者需要同步保存的信息到Obsidian 中配置步骤下面是我的完整配置过程,建议先跑通一个,再批量复制, 就我实际操作下来,感觉比 Openclaw 简单多了,各 Profile 配置特别清晰,也不会出现一些莫名其妙的错误。第一步:确认基础配置默认的.env文件需要有飞书、模型等基础配置。
~/.hermes/.env
建立多Profile ,需要保证至少有一个默认的 Profile ,防止后续有问题可以直接通过默认的来解决问题。第二步:创建第一个 Profile不要一上来就建多个,可以先建一个跑通流程。在飞书里直接问 Hermes:
我想创建一个profile ,用于隔离的,这是文档 :[https://hermes-agent.nousresearch.com/docs/zh-Hans/user-guide/profiles] ,你看下
飞书的appid: XXXX , appsecrect :XXXX, 会话id:XXXX , profile名字: video_agent
Profile 创建后,网关是单独启动的:
hermes -p video_agent gateway start
创建 profile 后,会在~/.hermes/profiles/video_agent创建目录, 同时hermes 会自动创建一个命令别名, 路径在~/.local/bin/, 它支持所有的的hermes 子命令,底层实际上是hermes -p 。比如我创建名为video_agent的 profile,立即就拥有了video_agent chat、video_agent setup、video_agent gateway start等命令。
video_agent chat
video_agent setup
第三步:启动网关profile 创建成功后,网关有可能不会自动启动,可以通过飞书发消息来启动,或者在终端输入命令启动。
hermes -p video_agent gateway start
查看网关状态(video_agent 是 profile 名字):
hermes -p video_agent gateway status
测试没问题之后,也可以把它安装成服务,用 systemctl 管理,机器重启也能自动启动:
hermes -p video_agent gateway install
后续就可以直接用管理服务的方式管理了
hermes -p video_agent gateway start
hermes -p video_agent gateway stop
Profile 的网关启动之后,配置文件里的飞书配置才生效,这时候才可以在飞书开放平台配置长链接第四步: 配置飞书这里的飞书配置如果用过 Openclaw 的朋友应该会很熟悉,因为都是一样的。打开飞书开发者后台: https://open.feishu.cn , 进入开发者平台,「创建企业自建应用」

添加机器人的应用能力

添加权限,这里的权限有点多,使用批量添加JSON的方式, 「权限管理」-「批量导入/导出权限」
{
"scopes": {
"tenant": [
"im:chat:read",
"im:chat:update",
"im:message.group_at_msg:readonly",
"im:message.p2p_msg:readonly",
"im:message.pins:read",
"im:message.pins:write_only",
"im:message.reactions:read",
"im:message.reactions:write_only",
"im:message:readonly",
"im:message:recall",
"im:message:send_as_bot",
"im:message:send_multi_users",
"im:message:send_sys_msg",
"im:message:update",
"im:resource",
"contact:contact.base:readonly"
],
"user": [
"contact:user.employee_id:readonly"
]
}
}
设置飞书机器人事件与回调,使用长链接注意:这里一定要保证在 hermes 先配置好飞书,网关正常启动,不然这里会连接不上。

连接成功之后,点保存,在添加事件中,选择「消息与群组」,选择要开通的事件,可以选择性开启,但是接收消息这个是一定要开启的,否则无法正常收发消息。

另外还有一个回调配置,这个是用于卡片消息的配置,就是有时候在飞书发送消息的时候,hermes 会发一个卡片消息,用于确认一些操作,如果这里没开启,有时候卡片消息会操作不了。

经过以上的配置,飞书机器人应用就配置好了, 就可以在飞书发送消息测试了。第五步:解决白名单问题配置好之后能正常通信了,感觉比 OpenClaw 方便很多。如果需要配对指令,就直接就去终端执行配对指令即可。但我在安装的时候遇到过一个坑:我配置了 4 个, 有 3 个都是通的,但是有一个飞书发消息死活没反应,而且配置也都差不多,也没收到配对码。后面在飞书发消息后,查了网关日志:
profiles/video_agent/logs/gateway.log
发现发送者 ID 用的是用户 ID , 而不是 OpenID,导致鉴权失败:
Unauthorized user: 16ec7fbg (老梁) on feishu
解决办法:把用户 ID 也加到 profile 的 .env 配置文件白名单中。批量创建多个 Profile一个跑通之后,批量创建就很简单了,唯一麻烦的就是需要在飞书中创建应用开权限。我们可以在飞书中输入:
我想创建3个profile ,用于隔离的,这是文档:[文档链接] ,你看下
1,视频助手:
appid:cli_a9379e8822a19bc2 ,appsecret:XXX,会话id:oc_xxx
profile名字: video_agent
2,内容选题:
appid:cli_a939058477799cc4 ,appsecret:XXX,会话id:oc_xxx
profile名字: content_curation
3,内容创作助手:
appid:cli_a93936b9103adcb6 ,appsecret:XXX,会话id:oc_xxx
profile名字: content_creative
Profile 的目录结构每个 Profile 在~/.hermes/profiles/下有自己的目录,包含:
config.yaml— 模型、工具配置.env— API KeySOUL.md— Agent 人格/系统提示skills/— 技能库- 独立的记忆文件和会话存储
这是最核心的部分。你可以给每个 Agent 配置不同的 SOUL.md,让它有不同的”性格”和专长。多 Agent 之间的协作方式Hermes 支持两种协作机制:1. delegate_task(临时子 Agent)任何 Agent 可以临时派生一个子 Agent 处理特定任务,结果直接返回。这个适合快速的会话内任务,不需要额外配置。2. Kanban 看板基于共享 SQLite 数据库,所有 Profile 可读写。一个 Agent 创建任务并分配给另一个,Hermes 调度器自动在后台启动对应 Profile 完成任务,完成后标记结果返回,不需要手动传递上下文。这就很像真正的工作流了——选题 Agent 找到好选题,创建任务丢给创作 Agent,创作 Agent 自动开工。一些经验总结先单个再批量:第一个 Profile 可能会遇到白名单、配置路径等各种小问题,跑通之后再批量建效率高很多。模型能力: 模型能力还是挺影响的,我开始创建profile的时候,网关没启动,它告诉我可能是端口冲突了,后面用claude 查询后证实不会出现这种情况。SOUL.md:这是你定义 Agent”性格”的核心文件,决定了它的输出风格、专业方向、行为边界。配置独立:每个 Profile 可以绑定不同的飞书应用、不同的会话群组,实现真正的隔离。系统服务:装成 systemctl 服务之后,机器重启自动拉起,不用手动盯着。写在最后整个配置跑下来,最大的感受是:Hermes 的 Profile 机制设计得很清晰。每个 Agent 职责单一、配置独立、互不干扰。想加新能力就新建一个 Profile,不用担心改一个地方影响其他地方。OpenClaw 我折腾过一段时间,经常遇到莫名其妙的问题。Hermes 这次配置4个 Profile,基本没踩什么大坑,最麻烦的就是白名单那个坑,其他都是一次过。如果你也在考虑多 Agent 方案,Hermes 是一个值得尝试的选择。
