Technical Guide
20. 总结:读完后你应该能做什么
收束 Hermes 源码教程,回到入口、主循环、能力模块和二开判断。
回到一开始的问题
Hermes 源码最容易看乱。
不是因为它故意复杂,而是它同时承担了几件事:
终端助手
消息平台 Agent
工具调用运行时
Skill 系统
记忆系统
定时任务系统
MCP 客户端
多 Agent 调度入口
如果不分层,一定会乱。
这套教程的主线
整套教程其实只讲一条线:
消息从哪里来
→ 怎么进入 Agent
→ 上下文怎么构建
→ 模型怎么调用
→ 工具怎么执行
→ 结果怎么返回
→ 经验怎么沉淀
→ 任务怎么长期运行
你不需要记住每个文件,但要记住这个流动方向。
现在你应该能分清这些概念
CLI / Gateway / Cron
它们都是入口。
CLI:人从终端发起任务
Gateway:人从飞书、Telegram、Discord 等平台发起任务
Cron:时间到了自动发起任务
最后都会进入 Agent 执行链路。
Agent loop
Agent loop 是核心运行层。
它负责:
构建上下文
调用模型
处理 tool_calls
执行工具
追加工具结果
继续循环或输出最终回复
Tools / Skills / Memory
这三者不要混:
Tool:能做什么
Skill:某类任务应该怎么做
Memory:长期稳定事实
很多 Agent 问题都来自这三者混用。
MCP / Delegation
MCP 扩展工具边界。
Delegation 扩展任务执行边界。
一个是“接更多外部能力”,一个是“拆更多独立工作”。
如果你只记一个判断
想改 Hermes 时,先判断层级:
入口层:CLI / Gateway / Cron
运行层:Agent loop / prompt / provider
能力层:Tools / Skills / Memory / MCP / Delegation
工程层:配置 / 安全 / 日志 / 测试
层级判断对了,源码位置通常就不会差太远。
下一步可以做的实战
如果要把这套教程继续写深,可以加几篇实战:
写一个最小 Tool
写一个最小 Skill
把 Tool + Skill 组合成一个稳定工作流
给这个工作流加 Cron
把结果投递到飞书
接一个 MCP server
排查一次真实 provider 401
这些实战比继续解释概念更有价值。
最后一句
Hermes 的关键不是“它有很多功能”。
关键是这些功能被串成了一条 Agent 工作流:
入口接收任务,Agent 判断步骤,工具执行动作,Skill 稳定方法,Memory 保留长期事实,Cron 和 Gateway 让它持续存在。
读源码时抓住这条线,就不会被目录数量带乱。