☰
Hermes Agent 多智能体怎么用?三种方式一文讲透(含 TaoToken 配置)
2026/9/29 6:16:07 网站建设 项目流程

1. 为什么单个 Agent 总在关键时刻掉链子

如果你已经在用 Hermes Agent 处理日常任务,大概率遇到过这种场景:上午让它帮你梳理一份数据分析思路,下午再问它写周报,结果它把上午的数据字段名带进了周报模板里。上下文串台、记忆污染、任务边界模糊,这些问题在单 Agent 模式下几乎无解。

Hermes Agent 给出的答案是多智能体。具体落地路径有三条:Profile 分身、SUB Agent 临时调度、以及基于 soul.md 的团队协同。三条路径的复杂度、持久性和适用场景完全不同,但很多教程只讲概念不讲配置,看完还是不知道怎么下手。

这篇内容面向已经用统一 Key/API 通道接入模型的开发者,把三种方式的 config.toml、settings.json 骨架、CC Switch/Cline 配置片段全部给出来,并且附上验证多智能体路由是否真正生效的命令和排查步骤。你不需要重新注册任何账号,只需要在现有通道上把多智能体的配置补全。

先说清楚三种方式的核心差异,方便你判断该从哪个入手。Profile 是给同一个 Hermes 创建多个完全独立的分身,每个分身有自己的 soul.md、会话历史和模型配置,互不干扰。SUB Agent 是在单次任务中临时组建子 Agent 团队,任务结束自动回收,不留下持久化痕迹。团队协同则是通过 soul.md 定义主 Agent 和子 Agent 的职责边界与协作流程,让它们形成长期稳定的分工关系。

我试过把三种方式混用:日常写作走 Profile 分身,数据分析走团队协同,临时调研走 SUB Agent。下面按接入顺序逐个拆解。

2. TaoToken 前置:统一 Key 与 API 通道准备

三种多智能体方式都依赖同一个底层模型通道。如果你还在每个 Agent 里单独填不同厂商的 Key,多智能体路由会变得非常难排查——你分不清是 Agent 调度出了问题,还是某个 Key 额度耗尽或限流。

TaoToken 在这里的角色是统一入口:一个 Key 覆盖多种模型,API 地址固定,方便在 config.toml 和 settings.json 里做统一引用。官网地址是 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API 端点是 https://taotoken.net/api 。

你需要先拿到 API Key。进入控制台创建密钥,建议按用途命名,比如hermes-main、hermes-sub,方便后续在配置里区分。创建入口在 https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite ,密钥管理页面在 https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite 。

拿到 Key 之后,先做一次最小连通性验证,确认通道本身没问题,再去配多智能体。这一步很关键,因为后面如果多智能体路由不生效,你可以快速排除是通道问题还是配置问题。

curl -X POST https://taotoken.net/api/v1/chat/completions \ -H "Authorization: Bearer sk-你的Key" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-sonnet-4-20250514", "messages": [{"role": "user", "content": "ping"}], "max_tokens": 16 }'

返回里能看到choices[0].message.content就说明通道正常。如果返回 401,检查 Key 是否复制完整;如果返回 404,检查 API 地址是否漏了/v1路径。这一步过了再往下走,能省掉大量排查时间。

模型选择上,主 Agent 建议用推理能力强的模型,子 Agent 可以用响应更快的轻量模型。具体模型列表和可用性以接入文档为准:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite 。

3. 方式一:Profile 分身配置与 config.toml 骨架

Profile 是最容易上手的方式。核心操作就是给 Hermes 创建多个分身,每个分身独立配置模型和 soul.md。

创建分身的命令在 WSL 和 Windows 下略有差异。WSL 版直接:

hermes profile create work-coding hermes profile create study hermes profile create media2026

Windows 版需要在命令前加--profile参数:

hermes --profile create work-coding

创建完成后,每个分身会在 profiles 目录下生成独立文件夹。Windows 路径通常是:

C:\Users\<你的用户名>\AppData\Local\hermes\hermes-agent\profiles\<分身名>\

WSL 路径在~/.hermes/profiles/<分身名>/下。每个分身目录里会有自己的config.toml和soul.md。

config.toml 的关键字段是模型通道配置。把 TaoToken 的统一地址和 Key 写进去,所有分身共用同一个通道,但可以指定不同模型:

[model] provider = "openai-compatible" base_url = "https://taotoken.net/api/v1" api_key = "sk-你的Key" model = "claude-sonnet-4-20250514" max_tokens = 8192 temperature = 0.7 [agent] name = "work-coding" soul_file = "soul.md" session_dir = "./sessions"

如果你想让某个分身用更快的模型处理简单任务,只改model字段即可,base_url 和 api_key 保持不变。这样多智能体路由的底层通道是统一的,排查问题时只需要关注 Agent 层。

soul.md 是分身的“岗位职责书”。一个最小可用的 soul.md 长这样:

# 角色 你是一个专注编程工作的助手,只处理代码相关任务。 # 边界 - 不处理生活琐事、不写营销文案 - 遇到非编程问题,直接说明不在职责范围 # 工作方式 - 先确认需求再动手 - 代码必须可运行,附上依赖说明

启动分身时,WSL 版用hermes work-coding,Windows 版用hermes --profile work-coding。进入后可以用/sessions查看该分身的历史会话,确认上下文是独立的。

验证分身是否真正隔离,可以做一个简单测试:在work-coding分身里说“记住一个变量名 foo_bar”,然后切到study分身问“刚才记住了什么”。如果 study 分身完全不知道 foo_bar,说明 Profile 隔离生效。

4. 方式二:SUB Agent 临时调度与 settings.json 配置

SUB Agent 适合一次性复杂任务。你不需要提前创建分身,只需要给主 Agent 一段提示词,它会在执行过程中临时组建子 Agent 团队,任务完成后自动回收。

在 Hermes 里启用 SUB Agent 需要在 settings.json 里打开对应开关。配置文件位置通常在 Hermes 安装目录的settings.json,或者在分身目录下覆盖全局配置:

{ "sub_agent": { "enabled": true, "max_children": 4, "recycle_after_task": true, "model": "claude-haiku-3-5-20241022", "base_url": "https://taotoken.net/api/v1", "api_key": "sk-你的Key" }, "routing": { "strategy": "task-based", "fallback_to_main": true } }

几个参数说明。max_children控制同时存在的子 Agent 上限,设太大容易触发限流,建议从 2 到 4 开始。recycle_after_task设为 true 表示任务结束立即回收,不保留会话。model可以单独指定子 Agent 用的模型,通常选响应快的轻量模型,主 Agent 仍然用强推理模型。

配置好之后,用一段提示词触发 SUB Agent。通用模板如下:

你是一个任务调度器。请把下面的任务拆解为若干子任务, 为每个子任务创建一个临时子 Agent 并行执行,最后汇总结果。 任务:<把你的具体任务贴在这里> 要求: 1. 每个子 Agent 只负责一个子任务 2. 子任务之间不要有依赖 3. 汇总时标注每个子任务的来源

把这段提示词和具体任务一起发给主 Agent,它就会自动拆分、分配、执行、汇总。你可以在会话历史里看到子 Agent 的创建和回收记录。

验证 SUB Agent 是否真正工作,可以查看会话日志里的子 Agent 调用记录。如果 settings.json 里配了session_dir,日志会落在对应目录。搜索sub_agent_spawn关键字,能看到子 Agent 的创建时间和任务分配。

SUB Agent 的局限也很明显:子 Agent 是一次性的,用完即回收,无法积累经验。下次遇到类似任务,还得重新拆分。所以它适合探索性任务和偶发性复杂任务,不适合重复性工作。

5. 方式三:soul.md 团队协同与 CC Switch/Cline 配置

团队协同是三种方式里最复杂的,但也是长期收益最高的。核心思路是用 soul.md 定义主 Agent 和子 Agent 的职责,让它们形成稳定的分工关系。

先创建主 Agent 和子 Agent 的 Profile:

hermes profile create team-lead hermes profile create># 角色 你是数据分析团队的主协调人,负责接收任务、拆分、分配、汇总。 # 子 Agent 清单 -># 角色 你是数据分析师,只负责数据清洗、指标计算和异常检测。 # 输入 接收主 Agent 分配的数据任务描述。 # 输出 - 清洗后的数据摘要 - 关键指标计算结果 - 异常点列表 # 边界 - 不写报告正文 - 不做最终结论

如果你用 CC Switch 或 Cline 作为前端,需要在它们的配置里指向对应的 Hermes Profile。CC Switch 的配置片段:

{ "profiles": { "team-lead": { "command": "hermes", "args": ["team-lead"], "env": { "HERMES_API_BASE": "https://taotoken.net/api/v1", "HERMES_API_KEY": "sk-你的Key" } } } }

Cline 的配置类似,在settings.json里指定 Hermes 的可执行路径和 Profile 参数。关键是HERMES_API_BASE和HERMES_API_KEY两个环境变量,它们让所有 Profile 共用同一个 TaoToken 通道。

验证团队协同是否生效,进入主 Agent 后发一个测试任务,然后查看子 Agent 的会话历史:

hermes profile list hermes data-analyst /sessions

如果子 Agent 的会话里能看到主 Agent 分配的任务记录,说明调度链路通了。如果子 Agent 没有任何记录,检查主 Agent 的 soul.md 里命令是否写对,以及子 Agent 的 Profile 是否存在。

6. 多智能体路由验证与常见错排查

三种方式配好之后,最容易出问题的地方是路由不生效。下面是我踩过的坑和对应的排查步骤。

第一个常见错误是 API Key 权限不足。多智能体场景下,主 Agent 和子 Agent 可能同时发起请求,如果 Key 的并发额度不够,子 Agent 会静默失败。排查方法是单独用子 Agent 的配置发一次请求,看是否返回 429。如果是,需要在 TaoToken 控制台调整额度或换用支持更高并发的 Key。

第二个错误是 config.toml 和 settings.json 的字段冲突。比如 config.toml 里写了model = "claude-sonnet-4-20250514",settings.json 里又写了sub_agent.model = "claude-haiku-3-5-20241022",子 Agent 会优先用 settings.json 的值。如果你发现子 Agent 用的模型不对,先检查两个文件的优先级。

第三个错误是 soul.md 路径不对。Profile 目录下的 soul.md 必须和 config.toml 里的soul_file字段一致。如果文件名写错,Agent 会加载默认 soul,调度逻辑完全不生效。排查方法是进入 Profile 目录,确认 soul.md 存在且内容正确。

第四个错误是 SUB Agent 的max_children设太大导致超时。子 Agent 并行执行时,如果数量超过通道的并发限制,部分请求会排队甚至超时。建议从 2 开始,逐步往上加,观察响应时间。

验证多智能体路由是否真正生效,可以用一个带标记的测试任务。在主 Agent 里发:

请把任务“统计以下数据的平均值”分配给 data-analyst, 并在结果里标注“来自 data-analyst”。

如果返回结果里带有“来自 data-analyst”标记,说明路由生效。如果没有标记,说明主 Agent 自己处理了任务,没有调用子 Agent。这时候检查主 Agent 的 soul.md 里调度规则是否写清楚,以及子 Agent 的 Profile 是否可访问。

对于 SUB Agent,验证方法是查看会话日志里的sub_agent_spawn记录。如果日志里没有这条记录,说明 SUB Agent 没有触发。检查 settings.json 里sub_agent.enabled是否为 true,以及提示词是否明确要求了“创建子 Agent”。

如果你在排查过程中需要确认模型本身是否可用,可以直接用模型对话页面发一条测试消息:https://taotoken.net/models?utm_source=taotoken_aicg_blog_end&utm_content=models&utm_campaign=rewrite 。如果模型对话正常但多智能体路由不生效,问题就在 Agent 配置层,不在通道层。

长期做编码和 Agent 开发的,建议把主 Agent 的配置固定下来,用 Coding Plan 管理多智能体的模型额度和路由策略:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite 。这样主 Agent 和子 Agent 的模型调用都在同一个计划下,排查问题时只需要关注 Agent 层逻辑。

接入文档里有完整的 config.toml 字段说明和 settings.json 示例,配之前建议对照一遍:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite 。API Key 管理在 https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite ,建议给主 Agent 和子 Agent 分别建 Key,方便单独排查和限额。

三种方式并不互斥。Profile 解决场景隔离,SUB Agent 解决临时调度,soul.md 团队协同解决长期分工。你可以先从 Profile 开始,把不同场景分开;遇到重复性复杂任务时再上团队协同;临时调研用 SUB Agent 兜底。配置过程中如果遇到路由不生效,优先检查 Key 并发、文件路径和 soul.md 内容这三项,大部分问题都出在这里。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询