1. 项目定位

Hermes Agent 是一个通用型 AI Agent 平台,不是单纯的聊天界面,也不是单一的代码助手。它把大模型推理、工具调用、终端执行、文件操作、网页检索、浏览器自动化、长期记忆、定时任务、多平台消息接入和外部系统扩展整合到一个统一框架里。

从仓库结构和主干代码来看,它的目标不是“回答问题”本身,而是让模型具备持续执行任务的能力,并且能在不同入口、不同环境和不同工具集之间稳定运行。

可以把它理解为三层系统:

所以,Hermes Agent 更接近一个“可运行的 Agent Operating Layer”,而不是一个普通的 LLM 应用。

2. 项目主干结构

从代码组织看,几个核心模块职责很清楚:

从规模上看,这已经是一个完整平台:tools/ 下有大量独立工具模块,gateway/platforms/ 下有多种消息平台适配器,tests/ 覆盖面很大。

3. 技术能力解析

3.1 Agent 会话循环

Hermes 的核心是 AIAgent 的 tool-calling loop。基本模式是:

  1. 模型接收消息和可用工具定义。
  2. 模型决定是否调用工具。
  3. Hermes 执行工具,并把结果写回消息历史。
  4. 循环直到模型产出最终答案,或者达到迭代限制。

这个设计的意义在于,Hermes 不是只让模型“建议怎么做”,而是让模型“真的去做”:读取文件、搜索代码、执行命令、查询网页、调用浏览器、写入结果。这使它适合处理多步任务,而不是只做一轮问答。

3.2 工具注册与工具集

Hermes 的工具系统特点包括:

这带来了容易增删工具、可以按平台控制权限边界、不同入口可以有不同能力集合等好处。工具能力覆盖 Web 搜索、终端执行、文件读写、浏览器自动化、图像分析、会话搜索、记忆与 TODO、代码执行沙箱、子代理委派、定时任务、跨平台消息发送、Home Assistant 等。

3.3 终端与多执行环境

tools/terminal_tool.py 表明 Hermes 支持多种命令执行后端:local、docker、ssh、modal、daytona、singularity。这使 Hermes 能适配不同部署模式,确保能在正确环境里做事。

3.4 CLI 交互系统

Hermes 的 CLI 是一个完整的终端交互系统,具备多行输入、slash command、自动补全、tool progress 展示、会话切换和恢复、模型切换、配置修改、交互式 setup、doctor 诊断、皮肤和显示层定制等能力。

3.5 消息网关

gateway/ 模块支持把同一个 agent 接到多种消息平台上,包括 Telegram、Discord、Slack、WhatsApp、Signal、Email、Webhook、Home Assistant 等。Agent 不必绑定在终端里,用户可以从不同平台继续同一个工作流。

3.6 会话持久化与检索

hermes_state.py 使用 SQLite + WAL + FTS5 管理 session 和 message,提供会话持久化、历史消息恢复、全文检索、标题化与检索式恢复、跨会话搜索等能力。

3.7 记忆与技能系统

memory 的作用偏向长期事实沉淀(偏好、约束、常用模式);skills 的作用偏向流程化知识沉淀(某类任务怎么做、哪些步骤固定可复用)。这使 Hermes 更接近“能积累经验的 agent”。

3.8 上下文压缩与长任务支持

agent/context_compressor.py 显示对长对话场景有明确支持:接近上下文上限时自动压缩、旧工具输出裁剪、结构化摘要、保留头尾关键内容。

3.9 子代理与程序化工具调用

支持 delegate_task (子代理委派) 和 execute_code (程序化工具调用)。子代理可以拆分复杂问题并行处理;程序化调用则让模型写脚本批量调用工具,减少回合数,压缩 token 成本。

3.10 定时任务与后台自动化

cron/ 模块使 Hermes 具备调度能力:定时运行 prompt、触发数据收集、保存输出、推送结果到聊天平台。

3.11 MCP 与外部系统扩展

tools/mcp_tool.py 允许通过 stdio 或 HTTP 连接 MCP server,自动发现工具并注入。这让 Hermes 变成“平台型系统”,可以连接公司内部 API、数据平台、工单系统等。

3.12 批处理与研究型能力

batch_runner.py 支持批量运行 agent、保存 trajectory、统计工具调用情况,对做 agent 评测、数据生成、研究实验很有价值。

4. 项目的通用能力画像

Hermes 是一个可长期运行、可跨平台接入、可调用多种工具、可持久化记忆与会话、可调度自动任务、可连接外部系统的通用 Agent 平台。它擅长:

5. 典型使用场景

5.1 个人长期助手

承担日常查询、文件整理、命令执行、提醒和定时任务等,并能跨端继续会话。

5.2 开发与调试助手

适合阅读搜索代码、修改文件、执行测试、分析日志、运行 shell。能在本地环境真实执行和验证。

5.3 研究与资料整理助手

搜索网页、抽取内容、汇总多来源信息、生成摘要、保存结果。

5.4 运维与巡检助手

定时检查服务状态、分析日志、发现异常后推送消息并执行标准化恢复动作。

5.5 团队协作 Agent

成员通过 Slack/Telegram 发起任务,Agent 执行后回传结果。

5.6 文档与知识管理助手

搜索历史会话、归纳结论、生成知识文档、把重复问题沉淀成 skills。

5.7 自动化报告系统

每天整理新闻摘要、每周汇总项目状态、每晚生成进展报告等。

5.8 多系统统一入口

把文档平台、项目管理、CI/CD 等系统通过 MCP 统一接入,作为自然语言入口。

6. 项目的工程价值

7. 适合解决的问题类型

多步骤执行任务、长上下文任务、跨平台访问任务、周期性自动运行任务、连接多系统任务、需要沉淀经验的任务。

8. 不适合解决的问题类型

9. 最适合的落地方式

10. 最终评价

Hermes Agent 的核心价值在于它把一个通用 agent 真正做成了可运行、可扩展、可持续使用的平台。它最突出的点是工具系统完整、多入口统一、长期状态能力强、扩展性好。


本文内容完整参考自:Henry Lin 的 Hermes Agent 深度分析