知识模块
🔮 Hermes Agent
一、架构设计

一、架构设计

Hermes Agent 的系统架构、目录结构、数据流和入口点


系统总览

┌─────────────────────────────────────────────────────────────────────┐
│ Entry Points                                                        │
│  CLI (cli.py)    Gateway (gateway/run.py)    ACP (acp_adapter/)     │
│  Batch Runner    API Server    Python Library                       │
└──────────┬──────────────┬───────────────────────┬───────────────────┘
           │              │                       │
           ▼              ▼                       ▼
┌─────────────────────────────────────────────────────────────────────┐
│ AIAgent (run_agent.py)                                              │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐              │
│  │ Prompt       │  │ Provider     │  │ Tool         │              │
│  │ Builder      │  │ Resolution   │  │ Dispatch     │              │
│  └──────┬───────┘  └──────┬───────┘  └──────┬───────┘              │
│         │                 │                 │                       │
│  ┌──────┴───────┐  ┌──────┴───────┐  ┌──────┴───────┐              │
│  │ Compression  │  │ 3 API Modes  │  │ Tool Registry│              │
│  │ & Caching    │  │ chat_compl.  │  │ 47 tools     │              │
│  │              │  │ codex_resp.  │  │ 19 toolsets  │              │
│  │              │  │ anthropic    │  │              │              │
│  └──────────────┘  └──────────────┘  └──────────────┘              │
└─────────────────────────────────────────────────────────────────────┘
           │                        │
           ▼                        ▼
┌───────────────────┐  ┌──────────────────────┐
│ Session Storage   │  │ Tool Backends        │
│ (SQLite + FTS5)   │  │ Terminal (6 backends)│
│ hermes_state.py   │  │ Browser (5 backends) │
│ gateway/session.py│  │ Web (4 backends)     │
└───────────────────┘  │ MCP (dynamic)        │
                       │ File, Vision, etc.   │
                       └──────────────────────┘

目录结构

目录/文件说明
run_agent.pyAIAgent 核心对话循环(~10,700 行)
cli.py交互式终端 UI(~10,000 行)
model_tools.py工具发现、Schema 收集、分发
toolsets.py工具分组和平台预设
hermes_state.pySQLite 会话/状态数据库(含 FTS5)
agent/Agent 内部组件(Prompt 构建、上下文压缩、缓存等)
hermes_cli/CLI 子命令和设置向导(~6,000 行)
tools/工具实现(每个工具一个文件)
gateway/消息平台网关(~9,000 行)
gateway/platforms/18 个平台适配器
cron/定时任务调度器
skills/内置技能
plugins/插件系统(记忆、上下文引擎)
acp_adapter/VS Code / Zed / JetBrains 适配器
tests/Pytest 测试套件(3,000+ 测试)

数据流

CLI 会话流程

  1. 用户输入 → CLI 解析
  2. Prompt Builder 组装系统提示 + 记忆 + 上下文
  3. Provider Resolution 解析模型端点和 API 模式
  4. 调用 LLM → 获取响应和工具调用
  5. Tool Dispatch 执行工具 → 结果返回 LLM
  6. 循环直到完成 → 保存到 SQLite

网关会话流程

  1. 平台消息 → GatewayRunner 接收
  2. SessionStore 加载会话历史
  3. 调用 AIAgent 处理
  4. Delivery 发送响应到目标平台

入口点

入口用途
hermes交互式 CLI 对话
hermes gateway start启动消息网关
hermes chat -q "任务" -Q单次非交互任务
hermes batch批量轨迹生成
hermes acpACP 服务器(IDE 集成)