Technical Guide

01. Hermes 是什么:先知道你在读什么

Hermes 不是普通聊天机器人,而是一个带工具、记忆、技能、Gateway 和定时任务的 AI Agent 运行时。

这篇解决什么问题

读 Hermes 源码前,先别急着进目录。

你需要先知道它到底是什么。不然你会把 CLI、Gateway、Tools、Skills、Cron、Memory 当成一堆并列功能,看起来都重要,但不知道主次。

一句话理解 Hermes

Hermes 是一个可以跑在终端和消息平台里的 AI Agent 运行时。

它的核心不是“聊天”,而是:

模型 + 工具 + 上下文 + 记忆 + 技能 + 多入口 + 后台任务

终端只是入口之一。飞书、Telegram、Discord、Slack 这些 Gateway 入口,也会把消息转成一次 Agent 会话。

它和普通 ChatGPT 客户端的区别

普通聊天客户端通常只做:

用户输入 → 模型回复

Hermes 多了几个关键层:

用户输入
→ 构建系统提示词和上下文
→ 加载记忆、技能、项目规则
→ 把可用工具暴露给模型
→ 模型决定是否调用工具
→ 工具执行真实动作
→ 工具结果回到模型
→ 输出最终回复

所以 Hermes 适合做这些事:

  • 修改代码;
  • 查资料;
  • 操作文件;
  • 跑命令;
  • 生成 PDF、图片、音频;
  • 定时推送日报;
  • 从飞书或 Telegram 发起任务;
  • 把复杂任务拆给子 Agent。

源码里最重要的几块

先记这几个目录就够:

cli.py / hermes_cli/       CLI 入口和命令
run_agent.py / agent/      Agent 主体、循环、上下文、模型适配
tools/                    工具实现和工具注册
toolsets.py               工具分组和默认工具集
skills 相关逻辑            Skill 加载、预处理、管理
cron/                     定时任务
gateway/                  飞书、Telegram、Discord 等消息入口

真正的主干是 agent/tools/

gateway/cron/hermes_cli/ 更像不同入口和运行方式。

不要一开始就读哪里

不要一上来读所有工具。

tools/ 里文件很多,但它们大多是具体能力:终端、文件、浏览器、图片、语音、GitHub、飞书等。先看工具系统怎么注册和执行,再挑一个工具读,会顺很多。

也不要一上来读所有平台适配。

Gateway 平台很多,但大体模式一致:收到外部消息,找到会话,调用 Agent,再把结果投递回平台。

这套教程的读法

你可以把 Hermes 当成三层:

入口层:CLI / Gateway / Cron
运行层:Agent loop / prompt / context / model
能力层:Tools / Skills / Memory / MCP / Delegation

源码解读也按这三层走。

下一篇先把 Hermes 跑起来。跑不起来,源码读得再多也没有抓手。