从零到一:Hermes Agent 七天学习路径
本文与 Hermes 七天子站课表 逐日对齐(CurriculumSection / daysData)。每 Day 含 Morning(理论)→ Afternoon(实践)→ Evening(挑战) 可执行计划、验收标准与常见卡点。动手请在 Code Sandbox 与 Tool Call Inspector 同步进行。
如何使用本文
| 资源 | 用途 |
|---|---|
本站 /docs/hermes/* | 理论深度、代码模板 |
| 子站 #curriculum | 课表可视化、标签筛选 |
| Tool Call Inspector | 每步 tool_call 可回放 |
| Persona Lab | Day 2 多角色切换 |
建议节奏:每天 4–6 小时;Morning 1.5h 阅读+笔记,Afternoon 2h 编码,Evening 1.5h 挑战+验收截图。
总览对照表
| Day | 代号 | 主题 | 实战项目 | 子站标签 |
|---|---|---|---|---|
| 1 | ARCHITECTURE | Agent 架构与工具调用基础 | 天气 Agent + 文件处理 Agent | Tool Calling, JSON Schema, Hermes Format |
| 2 | PERSONA | 角色工程与多 Agent 协作 | 心理咨询工作室 | Persona Engineering, Multi-Agent |
| 3 | TOOLCHAIN | 工具生态与自定义工具 | 自动化 DevOps Agent | Tool Ecosystem, Custom Tools |
| 4 | REASONING | 自主推理与任务规划 | 自主研究 Agent | Autonomous Reasoning, Task Planning |
| 5 | MULTIMODAL | 多模态感知与代码执行 | 智能报销助手 | Multimodal, Code Execution |
| 6 | MEMORY | 记忆系统与长期学习 | 个人成长教练 Agent | Memory Architecture, Continuity |
| 7 | PRODUCTION | 生产部署与安全 | Hermes Agent OS(毕业设计) | Production, Security, Agent Economy |
Day 1 — ARCHITECTURE:天气 + 文件 Agent
目标:建立 Agent 四件套心智模型;掌握 OpenAI Functions 与 Hermes 标签双路径;完成可观测的第一个 tool loop。
Morning:Agent 定义与工具调用协议(≈90min)
学习清单(对照 intro):
- 画出 LLM + Tool Graph + Memory + Persona 四件套数据流
- 对比 OpenAI JSON Schema / Hermes
<tool_call>/ Claude XML 异同 - 理解 LLM-as-Tool-Caller 注意力:描述如何影响选型
- 练习 Active vs Passive 工具描述改写各 2 条
- 参数设计:
enum、default、嵌套 object 各一例 - 在 System Prompt 嵌入 1 组 Few-shot tool 示例
可执行笔记模板:
## Day1 Morning
- 我选的协议:OpenAI / Hermes(circle one)
- 工具描述 Before/After:
- Few-shot 示例(粘贴):
验收:能向同伴解释「为何 Passive 描述导致选错 calculator」;完成 3 道子站自测题(若有)。
常见卡点:
| 卡点 | 现象 | 解决 |
|---|---|---|
| 格式混用 | parser 永远 None | 一条链路只选一种格式 |
| Schema 过宽 | args 胡填 | 加 enum/required |
| 忽视 NOT FOR | 乱 调用 search | Active 描述补边界 |
Afternoon:开发环境与首个 Agent(≈120min)
学习清单(对照 getting-started):
- venv +
langchain-openai/pydantic安装 - 验证 API 或 Ollama
OPENAI_API_BASE -
@tool注册 + Tool Registry 单文件 - 完成 天气查询 Agent:城市 → API → JSON → 自然语言
- 在 Inspector 粘贴一轮完整
model_raw
天气 Agent 最小验收:
| 输入 | 期望行为 |
|---|---|
| 「北京今天天气」 | 调用 weather tool,参数 city=北京 |
| 「1+1」 | 不调用 weather,直接答或 calculator |
| 「巴黎」 | 消歧:问「查询巴黎天气吗?」或调用 |
常见卡点:API Key 未加载;city 写成 location 导致 validation error——练习把 error 喂回模型 self-correct。
Evening:实战挑战 — 文件处理 Agent(≈90min)
挑战:PDF → 提取关键信息 → 计算器 → 生成摘要(子站 Day 1 PROJECT)。
步骤:
read_pdf(path)→ 文本- LLM 或规则提取数字(金额、页数等)
calculator(expression)做简单汇总- 输出结构化摘要(≤200 字)
验收标准:
- 至少 3 个 PDF 样例跑通
- Inspector trace 含 ≥3 次 tool_call,顺序合理
- 实现 Retry≥1 + Fallback(如 PDF 失败改 read_txt)
- 单测:工具失败时 Agent 不 silent hang
常见卡点:
| 卡点 | 解决 |
|---|---|
| PDF 超 context | 分页 read + map-reduce |
| 计算器字符串未 sanitize | 只允许 0-9+-*/(). |
| 无 Fallback | 配置 read_file 备用 |
Day 1 毕业标志:你能独立画出并讲解下面序列图。
Day 2 — PERSONA:心理咨询工作室
目标:五层 System Prompt;多 Agent Handoff;角色记忆与情绪追踪。
Morning:角色一致性(≈90min)
学习清单:
- 五层:Identity / Expertise / Tone / Constraints / Tools
- 角色锚点表:≥5 关键词 → 角色
- 防漂移:每 5 轮角色提醒模板
- 专家委员会 vs 师徒 vs 红蓝对抗 — 各适用场景
- 在 Persona Lab 加载 2 个 persona 对比
验收:写一份「专科咨询师」Constraints(含 不做医疗诊断、不荐药);通过红队 prompt 试图突破约束,失败率 100%。
常见卡点:Constraints 写进 Tone 层 → 易被稀释;应独立短句重复。
Afternoon:角色切换与情感风格(≈120min)
学习清单:
- Intent-based Routing:意图 → 角色选择器
- Contextual Handoff 包字段:
user_goal,do_not_repeat,emotion_timeline - 角色记忆 namespace 隔离设计
- 情绪检测 → 只改 Tone
- 口头禅 / emoji / 术语密度调参
Handoff YAML 练习:见 best-practices。
验收:接待员 → 初评 Handoff 后,初评 不再问姓名;trace 可见 handoff payload hash。
Evening:实战挑战 — 心理咨询工作室(≈120min)
流水线:接待员 → 初评 → 专科咨询师 → 督导(子站 Day 2 PROJECT)。
验收标准:
- 4 角色独立 System Prompt 文件
- 完整走通 1 次模拟来访者(≥10 轮)
- 情绪时间线 ≥3 条写入 episodic
- 督导角色仅点评,不替代专科给方案
- Persona Lab 截图 + Inspector Handoff span
常见卡点:
| 卡点 | 解决 |
|---|---|
| 角色串台 | 硬路由 + 提醒 |
| Handoff 丢信息 | 结构化 packet |
| 过度共情越界 | Constraints 红线 |
Day 3 — TOOLCHAIN:DevOps Agent
目标:工具类型学;自定义工具;工具链编排;DevOps 端到端。
Morning:工具类型学与编排(≈90min)
学习清单:
- 四类工具:信息 / 计算 / 行动 / 感知
- 线性链 A→B→C、条件链、并行 Fan-out/Fan-in
- 画 DevOps 场景工具图(CI→日 志→工单→Slack)
验收:给定「SEO 分析」场景,列出 6 个工具并标注类型与链型。
Afternoon:自定义工具开发(≈120min)
学习清单:
- Pydantic 输入校验 + 超时分级 10/30/60s
- 工具 metrics:成功率、P95、LLM 选中率
- DevOps Pack / SEO Pack 组合包设计
- 从函数签名自动生成 Schema
代码检查项:
class FetchLogsInput(BaseModel):
build_id: int = Field(..., ge=1)
level: Literal["error", "warn", "info"] = "error"
验收:自定义工具单测 ≥5;恶意参数被拒绝。
Evening:实战挑战 — 自动化 DevOps Agent(≈120min)
流程(子站 Day 3 PROJECT):监控告警 → 查日志 → 根因 → Jira Ticket → Slack → (可选)回滚脚本。
验收标准:
- 模拟 CI failed webhook 触发 Agent
- 创建 ticket 走 HITL mock(Day 7 前可用 console approve)
- Slack 通知含 build_id 与摘要链接
- 全链路 trace ≤8 步(或说明为何更多)
- 工具选中率自评 ≥80%
常见卡点:日志过大撑爆 context → tail + filter;Jira/Slack 凭证走环境变量,禁止写进 Prompt。
Day 4 — REASONING:自主研究 Agent
目标:ReAct+ / Plan-and-Execute;动态重规划;循环检测与失败恢复。