Hermes-Agent-完整指南

张开发
2026/5/31 16:01:46 15 分钟阅读
Hermes-Agent-完整指南
Hermes Agent 完整指南信息来源:官方文档、GitHub、官方网站官方文档:https://hermes-agent.nousresearch.com/docs/📋 目录第一部分:Hermes Agent 介绍第二部分:Hermes Agent 与 OpenClaw 对比第三部分:从 OpenClaw 迁移到 Hermes Agent第一部分:Hermes Agent 介绍1. 产品概述1.1 什么是 Hermes AgentHermes Agent 是由Nous Research开发的一款自我改进型 AI Agent,具有内置的学习闭环系统。它的核心理念是"一个与你共同成长的 Agent"。“An agent that grows with you”开源协议:MITGitHub Stars:35.7k ⭐GitHub Forks:4.5k主要语言:Python (93.6%)最新版本:v0.8.0 (2026.4.8)1.2 核心特性特性描述🧠自我改进能从经验中创建技能,在使用过程中持续优化💾跨会话记忆三层记忆架构,持久化用户偏好和项目上下文🔧自动技能创建复杂任务后自动生成可复用技能📱多渠道接入Telegram、Discord、Slack、WhatsApp、Signal、Email、CLI⏰定时自动化自然语言描述的 Cron 任务调度🐳容器隔离Docker/SSH/Singularity/Modal/Daytona 多后端支持🔌MCP 集成连接任何 MCP 服务器扩展能力🔍会话搜索FTS5 全文搜索 + LLM 总结🤖ACP 集成VS Code、Zed、JetBrains 编辑器原生支持📊RL 研究工具批量轨迹生成、Atropos RL 环境2. 系统架构2.1 整体架构图┌─────────────────────────────────────────────────────────────────────┐ │ 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 │ │ │ │ (prompt_ │ │ (runtime_ │ │ (model_ │ │ │ │ builder.py) │ │ provider.py) │ │ tools.py) │ │ │ └──────┬───────┘ └──────┬───────┘ └──────┬───────┘ │ │ │ │ │ │ │ ┌──────┴───────┐ ┌──────┴───────┐ ┌──────┴───────┐ │ │ │ Compression │ │ 3 API Modes │ │ Tool Registry │ │ │ │ Caching │ │ chat_compl. │ │ (registry.py)│ │ │ │ │ │ codex_resp. │ │ 47+ tools │ │ │ │ │ │ anthropic │ │ 20+ toolsets │ │ │ └─────────────┘ └──────────────┘ └──────────────┘ │ └─────────────────────────────────────────────────────────────────────┘ │ │ ▼ ▼ ┌───────────────────┐ ┌──────────────────────┐ │ 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. │ └──────────────────────┘2.2 目录结构hermes-agent/ ├── run_agent.py # AIAgent — 核心对话循环 (~9,200 行) ├── cli.py # HermesCLI — 交互式终端 UI (~8,500 行) ├── model_tools.py # 工具发现、模式收集、调度 ├── toolsets.py # 工具分组和平台预设 ├── hermes_state.py # SQLite 会话/状态数据库 (含 FTS5) ├── hermes_constants.py # HERMES_HOME、profile 路径 ├── batch_runner.py # 批量轨迹生成 │ ├── agent/ # Agent 内部模块 │ ├── prompt_builder.py # 系统提示词组装 │ ├── context_compressor.py # 对话压缩算法 │ ├── prompt_caching.py # Anthropic 提示词缓存 │ ├── auxiliary_client.py # 辅助 LLM (视觉、总结) │ └── memory_manager.py # 记忆管理器编排 │ ├── hermes_cli/ # CLI 子命令 │ ├── main.py # 入口点 (~5,500 行) │ ├── setup.py # 交互式设置向导 (~3,100 行) │ ├── config.py # 配置管理 │ ├── commands.py # 命令注册表 │ └── gateway.py # 网关启动/停止 │ ├── tools/ # 工具实现 │ ├── registry.py # 中心化工具注册表 │ ├── terminal_tool.py # 终端编排 │ ├── file_tools.py # 文件操作 │ ├── web_tools.py # Web 搜索/提取 │ ├── browser_tool.py # 浏览器自动化 (11 个工具) │ ├── delegate_tool.py # 子 Agent 委托 │ ├── mcp_tool.py # MCP 客户端 (~2,200 行) │ └── environments/ # 终端后端 (local, docker, ssh, modal, daytona, singularity) │ ├── gateway/ # 消息平台网关 │ ├── run.py # 消息调度 (~7,500 行) │ ├── session.py # 会话持久化 │ ├── delivery.py # 出站消息投递 │ ├── pairing.py # DM 配对授权 │ └── platforms/ # 14 个平台适配器 │ ├── acp_adapter/ # ACP 服务器 (VS Code / Zed / JetBrains) ├── cron/ # 调度器 ├── plugins/ # 插件系统 │ └── memory/ # 记忆提供商插件 ├── skills/ # 内置技能 ├── optional-skills/ # 官方可选技能 └── tests/ # 测试套件 (~3,000+ 测试)3. 核心子系统详解3.1 Agent 循环 (AIAgent)核心同步编排引擎 (run_agent.py),处理:提供商选择提示词构建工具执行重试和回退回调压缩持久化支持三种 API 模式:chat_completions、codex_responses、anthropic_messages3.2 提示词系统模块功能prompt_builder.py从 personality、memory、skills、context files 组装系统提示词prompt_caching.py应用 Anthropic 缓存断点实现前缀缓存context_compressor.py当上下文超过阈值时总结中间对话轮次3.3 工具系统中心化工具注册表:47+ 注册工具,分布在20+ 工具集中3.4 会话持久化基于 SQLite 的会话存储,带 FTS5 全文搜索:会话血缘追踪(压缩后的父子关系)平台隔离原子写入和争用处理4. 记忆系统4.1 三层记忆架构┌─────────────────────────────────────────────────────────────┐ │ System Prompt │ ├─────────────────────────────────────────────────────────────┤ │ MEMORY.md (~800 tokens) │ USER.md (~500 tokens) │ │ Agent 个人笔记 │ 用户画像 │ │ - 环境事实 │ - 偏好 │ │ - 项目约定 │ - 沟通风格 │ │ - 工具技巧 │ - 期望 │ ├─────────────────────────────────────────────────────────────┤ │ Session Search (FTS5 + LLM) │ │ - 所有历史会话 │ └─────────────────────────────────────────────────────────────┘4.2 记忆文件文件用途字符限制MEMORY.mdAgent 个人笔记2,200 chars (~800 tokens)USER.md用户画像1,375 chars (~500 tokens)4.3 记忆操作memory(action="add",target="memory",content="新的记忆内容")memory(action="replace",target=

更多文章