大家好。
今天跟大家分享下如何用Hermes Agent的profile方式来实现多agent的配置,先来看看profile的实现原理。
原理
一个单独的profile就是一个完全隔离的Hermes环境。每个配置文件都有自己的目录,其中包含自己的config.yaml、.env、SOUL.md、内存、会话、技能、定时任务和状态数据库。
实现机制
-
每个Profile本质上是一个独立目录(如 ~/.hermes/profiles/coder/)
-
默认的Profile 就是 ~/.hermes本身
使用方式
hermes profile create coder # 创建Profile
coder setup # 配置API keys
coder chat # 开始对话
coder gateway start # 启动该 Profile 的网关
每个Profile 自动获得命令别名 ~/.local/bin/coder,
底层就是 hermes -p coder。
隔离保证
不同 Profile 间的隔离包括:
- 状态隔离 — 独立的 state.db(记忆数据库)
- 会话隔离 — 独立的 sessions/(会话历史)
- 网关隔离 — 独立的 Gateway 进程 + Bot token
- 配置隔离 — 独立的 config.yaml、.env、SOUL.md
- 技能隔离 — 独立的 skills/目录
- 定时任务隔离 — 独立的 cron/ 目录
如果你有两个 Profile 不小心用了同一个 Bot token,系统会自动阻止第二个 Gateway 启动并报错。
接下来进入实战
创建profile
可以通过和主agent对话(比如飞书通道等)来完成操作,也可以在Hermes Agent的终端中通过命令来完成。
这里我是在终端里来创建的,对话内容如下:
使用Profile方式创建一个agent,coder : 程序员,默认使用主模型。然后引导我设置这个子agent的agents.md,soul.md文件。
profile创建成功后,他会问我coder agent具备哪些核心能力,给我几个选项
然后我选择了全栈开发专家,然后他开始配置agent.md和soul.md文件。
创建过程还是很快的,不到1分钟,基础配置都设置好。
刚才创建的coder子agent的目录已经都创建好,工作区域、技能、config.ymal和.env文件都是独立的。
这里有一个坑,就是需要手动修改下网关的端口,之前介绍原理的时候,有讲过网关是隔离的和独立的,所以需要用跟主agent的不同的端口号;
然后我们启动下子agent来确认是否能正常对话,命令如下:
hermes -p coder
启动之后,让他自我介绍下,可以看到输出的内容就是我们刚才创建的coder对应的全栈开发角色了,到这里coder子agent就创建好了。
然后我在主agent的飞书通道里,让主agent查下目前有几个子agent,他告诉我有两个子agent,一个是coder,一个是juben-rewrite,加上默认的profile(也就是他自己),一共3个独立的agent。(juben-rewrite是之前创建的)
配置子agent的飞书通道
首先我们要去飞书平台创建一个机器人。
飞书机器人创建好之后,获取AppID和App Secret就可以通过如下命令来配置了:
coder gateway setup
选择11 Feishu,然后按照流程输入AppID和App Secret,配置好飞书通道。
然后就可以在飞书中跟全栈开发沟通了,安排他来完成开发任务。
你可以参考这个coder的创建过程,创建多个其他的agent,比如产品经理、代码审核等各种员工了,也可以给不同的员工配置不同的大模型,比如编程任务的员工配置强大的大模型,日常工作的员工配置便宜点的模型。
以上就是今天的分享,希望对大家有所帮助。
我在持续记录 AI Agent 实战开发和行业判断,感兴趣的话搜一下微信公众号:码农的AI客栈,欢迎交流 🍺