第一章 认识 Hermes Agent
1.1 什么是 Hermes Agent
Hermes Agent 是由 Nous Research 开发的自改善 AI 代理(Self-improving AI Agent)。它不仅仅是一个聊天机器人,而是一个能够持续学习、积累经验、并自动进化的智能代理框架。
核心特性
| 特性 | 说明 |
|---|---|
| Learning Loop(学习循环) | 从每次交互中提取经验,自动转化为可复用的技能 |
| Skills(技能系统) | Markdown 格式的可分享技能包,支持 Hub 分发 |
| Cross-Platform(跨平台) | 统一接口接入 Telegram / Discord / Slack / WhatsApp / Signal / Matrix 等十余个平台 |
| Multi-Model(多模型) | 通过 OpenRouter 支持 200+ 模型,也可直连 Anthropic / Gemini / Bedrock / Ollama 等 |
| TUI with Ink | 基于 Node/Ink 的终端界面,提供图形化交互体验 |
| Scheduled Automations | 内置 Cron 调度器,支持自然语言定义定时任务 |
| Subagent Delegation | 子 Agent 隔离执行,支持并行批处理 |
1.2 五分钟体验
安装
bash
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash启动
bash
# 启动交互式 TUI
hermes
# 查看可用模型
hermes model
# 切换模型
hermes model anthropic/claude-sonnet-4-20250514常用命令速查
| 命令 | 功能 |
|---|---|
hermes | 启动 TUI 交互界面 |
hermes model | 列出可用模型 |
hermes gateway | 启动消息网关 |
hermes skills list | 列出已安装技能 |
hermes doctor | 诊断环境配置 |
/help | 在 TUI 中查看帮助 |
/reset | 重置当前会话 |
/model <name> | 在会话中切换模型 |
/skills | 查看技能列表 |
/cron | 管理定时任务 |
1.3 项目全景图
目录结构
| 路径 | 说明 |
|---|---|
run_agent.py | 核心入口 — AIAgent 类定义,主循环,工具调用编排 |
model_tools.py | 工具编排层 — schema 收集、dispatch、类型转换、async bridging |
toolsets.py | 工具集定义 — TOOLSETS 字典,组合/递归解析 |
cli.py | CLI 入口 — 命令行参数解析,Fire 集成 |
agent/ | Agent 核心模块 — prompt_builder, context_engine, memory_manager 等 |
tools/ | 工具实现 — registry.py + 各工具实现文件 |
gateway/ | 消息网关 — run.py, platforms/, session.py |
ui-tui/ | Ink 前端 — Node.js/TypeScript TUI 界面 |
tui_gateway/ | TUI 后端 — Python JSON-RPC server |
hermes_cli/ | CLI 命令 — commands.py, config.py, skin_engine.py 等 |
cron/ | 定时任务 — scheduler.py, jobs.py |
skills/ | 内置技能 — 按 category 组织的 SKILL.md |
tests/ | 测试套件 — 单元测试和集成测试 |
1.4 架构总览
请求处理流程
Hermes Agent 的架构遵循管道式处理模式:用户输入经过多个处理阶段,最终返回响应。
模块依赖关系
设计哲学
Hermes Agent 的架构遵循以下原则:
- Singleton Registry(单例注册):
ToolRegistry使用单例模式 +threading.RLock保证线程安全 - Import-Time Registration(导入时注册):每个工具文件在模块级别调用
registry.register(),无需手动维护导入列表 - AST Discovery(AST 发现):
discover_builtin_tools()通过 AST 扫描自动发现工具,无需导入即可检测 - Progressive Disclosure(渐进式披露):技能索引只注入 Tier 1 元数据到 system prompt,减少 token 开销
- Pluggable Context(可插拔上下文引擎):
ContextEngine抽象基类支持第三方替换 - Cross-Platform Adapter(适配器模式):每个消息平台实现
BasePlatformAdapter接口
下一章:第二章 Agent 核心循环 — 深入 AIAgent 的主循环机制