💎 Hermes Agent

1. 概述

Hermes Agent 是由 Nous Research 开发的开源通用智能Agent框架。 它的核心理念是"技能化"(Skill-based)——将Agent的每一项能力封装为独立的技能模块(SKILL.md), 通过统一的工具系统、记忆系统和子Agent委托机制,构建出高度可扩展的智能体。

💡 Hermes Agent 设计哲学

"模块化、可组合、可扩展" —— 不像其他框架将能力硬编码在Agent内部,Hermes Agent通过技能系统将能力外置化,每个技能独立定义、独立维护、按需加载。

2. 整体架构

🏗️ Hermes Agent 架构分层

层级组件职责
🎯 交互层 多平台连接器 对接 WeChat、Discord、Telegram、Terminal 等平台,统一消息收发
🧠 核心层 Agent Core LLM推理引擎、对话管理、任务路由、子Agent调度
🔧 能力层 技能系统 + 工具系统 技能按需加载,工具统一注册与调度
💾 记忆层 Honcho记忆集成 短期会话记忆 + 长期持久化记忆 + 用户画像
⚙️ 基础设施层 配置管理、模型路由、日志监控 底层支撑:模型切换、成本控制、可观测性

🔄 请求处理流程

  1. 消息接入:用户消息通过连接器进入系统
  2. 上下文组装:从Honcho加载用户记忆和会话历史
  3. 技能匹配:根据用户意图匹配相关技能,注入 SKILL.md 到System Prompt
  4. 工具注册:加载技能关联的工具定义,注入到LLM的工具列表中
  5. LLM推理:模型根据System Prompt + 工具列表 + 记忆上下文进行推理和决策
  6. 工具执行:LLM决定调用的工具被执行,结果返回模型
  7. 子Agent委托:复杂任务可创建子Agent委托执行
  8. 记忆更新:对话结束后更新Honcho中的用户记忆
  9. 响应返回:最终回复通过连接器返回用户

3. 技能系统(SKILL.md)

技能系统是Hermes Agent最核心的创新。每个技能由一个SKILL.md文件定义, 包含了该技能的元信息、使用说明、关联工具和示例。Agent启动时扫描技能目录,按需加载。

📝 SKILL.md 结构

字段说明示例
name技能唯一标识"file-manager"
description技能描述,用于Agent自动匹配"Manage files and directories: read, write..."
tools该技能提供的工具列表[read_file, write_file, search_files]
instructions注入System Prompt的详细指令文件操作的最佳实践、安全限制等
examples使用示例展示典型任务的处理方式
dependencies依赖的其他技能["system-monitor"]
🎯 技能系统的设计优势
  • 热插拔:新增技能只需创建目录和SKILL.md,无需修改Agent核心代码
  • 按需加载:只有当任务匹配时才将对应技能注入到上下文,节省Token
  • 可组合:技能可以声明依赖,Agent自动加载依赖链
  • 社区友好:技能可以像插件一样分享和复用
  • 版本管理:每个技能独立维护,互不干扰

4. 工具系统

Hermes Agent的工具系统采用统一注册-动态发现模式。工具定义遵循标准的 Function Calling 规范(JSON Schema),支持从多个来源注册工具:

🔧 技能内置工具

技能SKILL.md中声明的工具,由技能模块自动注册。如文件操作技能提供的 read_file、write_file、search_files 等。

🔌 MCP协议工具

通过Model Context Protocol接入的外部工具服务,支持标准的MCP客户端连接。

🛠️ 自定义工具

开发者通过简单的API注册自定义函数,自动生成JSON Schema并注入到工具列表。

🔧 核心内置工具一览

工具名功能所属技能
read_file读取文件内容,支持分页和行号file-manager
write_file写入文件(覆盖模式),自动创建父目录file-manager
patch精确的查找替换编辑,支持9种匹配策略file-manager
search_files文件内容搜索(ripgrep)和文件名查找file-manager
terminal执行Shell命令,支持前台/后台/PTY模式terminal
process管理后台进程(启动/轮询/终止/写入stdin)terminal
vision_analyze图像分析和视觉理解vision
web_search联网搜索最新信息web-search

5. 记忆系统(Honcho集成)

Hermes Agent集成了 Honcho —— 一个专门为AI Agent设计的记忆管理系统。 它支持多层次的记忆存储和检索:

🧠 Honcho 记忆层次

层次存储内容生命周期检索方式
💬 会话记忆 当前对话的完整历史 单次会话 直接上下文注入
📝 短期记忆 用户最近的关键信息和偏好 数天到数周 按时间衰减检索
📚 长期记忆 用户画像、知识、重要事件 持久化 语义向量检索
🏷️ 情景记忆 特定事件和经验的完整记录 持久化 关键词+语义混合检索
💡 Honcho的工作方式

每次对话结束后,Hermes Agent自动将关键信息写入Honcho。下次对话时,Agent从Honcho检索相关记忆注入到上下文。用户可以随时查看、编辑或删除自己的记忆数据,完全掌控隐私。

6. 多平台连接

Hermes Agent支持通过统一的连接器接口接入多个消息平台, 使得同一个Agent可以同时服务不同平台的用户。

💬 WeChat / 微信

支持公众号和个人微信接入,适配微信消息格式限制(Markdown渲染、图片发送、消息长度限制处理)。

🎮 Discord

通过Discord Bot API接入,支持频道消息、私信、Slash命令等交互形式。

📱 Telegram

通过Telegram Bot API接入,支持富文本消息、内联按钮、文件收发。

🖥️ Terminal

原生终端CLI支持,适合开发和调试场景。

7. 子Agent委托

当任务过于复杂或需要特定领域知识时,Hermes Agent可以创建子Agent(Sub-agent) 来委托执行子任务。这是Hermes Agent实现多Agent协作的核心机制。

🔀 子Agent委托模式

模式说明适用场景
🎯 任务委派 主Agent将子任务分派给子Agent,子Agent独立完成后返回结果 代码审查、数据分析、文档生成
🔄 迭代协作 主Agent与子Agent多轮交互,子Agent持续反馈进展 复杂研究、多步调试
👥 并行委派 同时创建多个子Agent并行处理不同子任务,汇总结果 大规模代码重构、批量文件处理
🌐 层级委派 子Agent可以再创建子Agent,形成任务分解树 超大型复杂项目
⚠️ 子Agent注意事项
  • Token消耗:每个子Agent都有独立的上下文窗口,复杂委派会显著增加Token消耗
  • 错误传播:子Agent的错误可能被主Agent误信并放大
  • 收敛控制:需要设置最大委派深度和总Token预算,防止无限递归
  • 结果验证:主Agent应对子Agent的输出进行合理性检查

8. 配置与扩展

8.1 模型配置

Hermes Agent支持多模型后端,通过配置文件灵活切换:

🤖 支持的模型后端

  • OpenAI 兼容 API:GPT-4o、GPT-4、o3/o4-mini 等
  • Anthropic API:Claude 3.5/4 系列
  • DeepSeek API:DeepSeek-V3、DeepSeek-R1 等
  • OpenRouter:统一的模型路由,支持80+模型
  • 本地模型:通过Ollama接入本地运行的模型

8.2 扩展开发

开发者可以通过以下方式扩展Hermes Agent:

  1. 创建新技能:编写 SKILL.md + 实现工具函数,放入技能目录即可
  2. 注册自定义工具:通过工具注册API添加业务特定工具
  3. 接入新平台:实现平台连接器接口,支持新的消息平台
  4. 配置模型策略:按任务类型路由到不同模型(简单任务用小模型,复杂任务用大模型)
💎 Hermes Agent 的核心优势总结
  • 技能化架构:能力外置,热插拔,易于维护和扩展
  • 真正的记忆系统:Honcho集成提供短期+长期+情景记忆,而非简单的滑动窗口
  • 原生多平台:同一Agent无缝服务多个平台
  • 子Agent委派:灵活的多Agent协作,支持任务分解和并行执行
  • 模型无关:支持多家厂商和本地模型,避免供应商锁定
  • 开源透明:完全开源,代码可审计,数据可自主控制

9. 与其他框架的对比

维度Hermes AgentLangChainCrewAIOpenAI Assistants
核心理念技能化模块化抽象层组合角色驱动托管服务
扩展方式SKILL.md 技能自定义Chain/Agent自定义Agent/ToolAPI配置
记忆系统Honcho(分层记忆)多种Memory类内置记忆Thread托管
多Agent子Agent委派需自行编排顺序/层级流程不支持原生多Agent
模型支持多厂商+本地多厂商(集成多)多厂商仅OpenAI
多平台原生支持需自行开发需自行开发需自行开发
学习曲线中(概念清晰)高(抽象层多)低(直觉化)低(API简单)
开源✅ 完全开源✅ 开源✅ 开源❌ 闭源服务