hermes-agent 是什么?

hermes-agent 是 Nous Research 推出的「自我进化」AI 命令行代理:通过任务后自动沉淀技能、跨会话搜索 SQLite FTS5 历史、统一 Anthropic / OpenAI / Bedrock 等多家 Transport,并把同一份 agent 同时挂到 Telegram、Discord、Slack、WhatsApp、Signal 等 17 个消息平台上,可在 5 美元 VPS、Docker、SSH、Modal、Daytona 等多种 Terminal 后端运行。

⭐ 152,216 Stars 🍴 24,187 Forks Python MIT 作者: NousResearch
来源:README + AGENTS.md + RELEASE_v0.11.0.md 查看 GitHub 仓库 →

为什么值得关注

项目从 v0.9.0 到 v0.11.0 在大约两周内合入 1556 个 commit、761 个 PR,规模约 22 万行新增,主要原因有三:一是把生成、转换和 HTTP 传输从巨型 run_agent.py 中抽出来变成 agent/transports/ 抽象层,正式接入原生 AWS Bedrock Converse API 与 GPT-5.5 Codex OAuth;二是用 React/Ink 重写整套 TUI(hermes --tui),并通过 newline-delimited JSON-RPC 与 Python 后端 tui_gateway 通信,让仪表盘 /chat 直接通过 PTY+xterm.js 复用同一份 TUI;三是新增 QQBot 这个第 17 个消息平台、五个新推理路径,以及大幅扩展插件接口(register_command、dispatch_tool、transform_tool_result、shell hooks 等)。MIT 许可、用 Python 3.11+ 实现,对国内开发者天然兼容飞书、企业微信、QQBot、钉钉、微信、元宝等多个本地化平台。

来源:RELEASE_v0.11.0.md + tree.txt

核心功能

自我进化的技能与记忆闭环

agent 在复杂任务后会自主创建 skill(Markdown 形式落到 ~/.hermes/skills/),并在使用过程中通过 manual_compression_feedback 不断改进;记忆方面提供 honcho、mem0、supermemory、byterover、hindsight、holographic、openviking、retaindb 八个可插拔 MemoryProvider,由 agent/memory_manager.py 统一调度,支持 sync_turn、prefetch、shutdown 生命周期。

来源:README + AGENTS.md(agent/memory_provider.py 章节)
Transport ABC 与多家原生 API 接入

agent/transports/ 下分别有 AnthropicTransport、ChatCompletionsTransport、ResponsesApiTransport、BedrockTransport,每个 transport 自己负责消息格式转换和 HTTP 形态。这一层让 OpenAI、Anthropic、AWS Bedrock Converse、OpenAI Responses API、Codex OAuth 共用同一套 agent loop,添加新厂商不再需要改 run_agent.py。

来源:AGENTS.md + RELEASE_v0.11.0.md(Transport Layer 章节)
17 平台统一消息网关

gateway/platforms/ 内含 telegram、discord、slack、whatsapp、signal、matrix、mattermost、email、sms、homeassistant、bluebubbles、webhook、api_server,以及国内的 dingtalk、wecom、weixin、feishu、qqbot、yuanbao 等适配器,全部由单一 gateway 进程托管,slash 命令通过 COMMAND_REGISTRY 在 CLI / Telegram / Slack / 帮助文本之间自动同步。

来源:tree.txt(gateway/platforms/)+ AGENTS.md
六种 Terminal 后端 + 无服务器待机

tools/environments/ 提供 local、docker、ssh、Daytona、Singularity、Modal 六个执行后端。Daytona 和 Modal 这两条 serverless 路径允许 agent 在空闲时让环境进入 hibernate,下次请求时再唤醒,从而把 5 美元 VPS 也能跑住的成本进一步压低。

来源:README + AGENTS.md(tools/environments/)
Ink TUI + JSON-RPC 双进程架构

hermes --tui 由 Node 端的 Ink(React for terminal)渲染界面,Python 端 tui_gateway 通过 newline-delimited JSON-RPC over stdio 处理会话、工具调用、模型请求;同一套 TUI 还能被 hermes_cli/pty_bridge.py 包进 WebSocket,让 web/src/pages/ChatPage.tsx 用 xterm.js + ptyprocess 把终端嵌入仪表盘,避免重复实现两套对话界面。

来源:AGENTS.md(TUI Architecture 章节)
插件四层(plugins / memory / context_engine / image_gen)

PluginManager 从 ~/.hermes/plugins、./.hermes/plugins、pip entry point 三处发现普通插件,提供 pre_tool_call / post_tool_call / pre_llm_call / post_llm_call / on_session_start / on_session_end 六个生命周期 hook,并允许插件 register_command 注册 slash 命令、dispatch_tool 直接派发工具、transform_tool_result 改写工具结果。Memory、Context Engine、Image Gen 三种特殊插件各有独立的 ABC 与 manager。

来源:AGENTS.md(Plugins 章节)+ RELEASE_v0.11.0.md
MCP 集成与 cron 调度

依赖 mcp>=1.2.0 接入任意 Model Context Protocol 服务器扩展工具能力;cron/scheduler.py + cron/jobs.py 提供 croniter 驱动的内建调度器,可把日报、夜间备份、周审计等自然语言任务定时投递到任一消息平台,配合 webhook direct-delivery 还能跳过 LLM 直接转发告警。

来源:pyproject.toml + README + RELEASE_v0.11.0.md
RL 训练与轨迹生成

环境层 environments/ 通过 atroposlib 与 tinker 集成 Atropos RL 训练框架,hermes_swe_env、terminal_test_env、yc_bench、tblite、terminalbench_2 等基准环境直接复用 agent 的工具调用循环;batch_runner.py 与 trajectory_compressor.py 支持批量轨迹生成与压缩,用于训练下一代 tool-calling 模型。

来源:tree.txt(environments/)+ pyproject.toml [rl] extra

技术架构

代码组织围绕一个超大的同步主循环展开:run_agent.py 里 AIAgent.run_conversation() 维护 OpenAI 风格 messages 列表,循环里检查中断、扣预算、调用对应 Transport、执行 handle_function_call() 并把结果回填,遇到 max_iterations 或 budget 耗尽时还会留一次 grace call。tools/registry.py 是依赖底座,所有 tools/*.py 在 import 时调 registry.register() 完成自注册,model_tools.py 触发自动发现。CLI 层用 prompt_toolkit + Rich 维护输入与渲染,slash 命令通过 hermes_cli/commands.py 的 COMMAND_REGISTRY 单点定义,CLI、Gateway、Telegram BotCommand、Slack 子命令、自动补全全部由这一份 registry 派生。Gateway 是另一进程,platforms/ 下每个适配器对接一种消息平台,hooks/builtin_hooks 与 mirror.py 处理跨平台会话连贯性。Ink TUI 与 Python 通过 stdio JSON-RPC 异步通信,Web 仪表盘通过 PTY 桥嵌入同一份 TUI 而不是重写。整体上偏向「单仓重核心、多插件薄外围」:run_agent.py 与 cli.py 各约 11–12k 行,承担大量分支与状态,但绝大部分新增能力(messaging 平台、memory provider、image gen、context engine、shell hook)都走插件化或注册表,避免再继续往核心文件堆代码。明显的设计权衡是把整个 agent loop 保持同步,靠中断标志和 budget grace 来处理交互,换来调试可读性,但也让流式与并行优化必须显式建模(subagent file-coordination、activity heartbeat 等都是因此而生)。

来源:AGENTS.md + RELEASE_v0.11.0.md + run_agent.py / cli.py LOC 自述

项目知识图谱

知识图谱:项目核心节点(中心)+ 核心功能(内环六边形)+ 关键技术依赖(外环 chip) openai>=2.21 anthropic>=0.39 httpx[socks] pydantic>=2.12 tenacity 自我进化的技能与记忆闭环自我进化的技能与记忆闭… Transport ABC 与多家原生 API 接入Transport ABC 与多… 17 平台统一消息网关 六种 Terminal 后端 + 无服务器待机六种 Terminal 后端 +… Ink TUI + JSON-RPC 双进程架构Ink TUI + JSON-RPC… 插件四层(plugins / memory / context_engine / image_gen)插件四层(plugins /… MCP 集成与 cron 调度 RL 训练与轨迹生成 hermes-agent 项目本体 核心功能 关键依赖

中心为项目本体,内环 = 核心功能模块,外环 = 关键技术依赖;按 deep.json 中的 core_features 与 tech_stack.key_deps 自动生成

技术栈

语言Python 3.11+(核心),TypeScript / React Ink(TUI),Nix(打包)框架Rich + prompt_toolkit(CLI),Ink + Vitest(TUI),FastAPI + uvicorn(Web/Dashboard,可选),Pydantic 2(数据模型)
openai>=2.21anthropic>=0.39httpx[socks]pydantic>=2.12tenacityrichprompt_toolkitedge-tts(默认 TTS,免费)mcp>=1.2croniter(cron 调度)ptyprocess(PTY 桥)atroposlib + tinker(RL 训练,git 引用)
SQLite + FTS5(hermes_state.py 会话存储),~/.hermes/ 作为 profile 化运行时根目录(config.yaml + .env + skills + plugins + logs),Docker / docker-compose、Nix flake、Modal / Daytona / Singularity 提供 serverless / 容器化执行后端
来源:pyproject.toml + AGENTS.md

快速上手

# Quick Install(官方 install.sh) curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash # 安装完成后 source ~/.bashrc # reload shell (or: source ~/.zshrc) hermes # start chatting! # 常用入口 hermes # Interactive CLI — start a conversation hermes model # Choose your LLM provider and model hermes tools # Configure which tools are enabled hermes config set # Set individual config values hermes gateway # Start the messaging gateway (Telegram, Discord, etc.) hermes setup # Run the full setup wizard hermes claw migrate # Migrate from OpenClaw (if coming from OpenClaw) hermes update # Update to the latest version hermes doctor # Diagnose any issues # 贡献者本地开发 git clone https://github.com/NousResearch/hermes-agent.git cd hermes-agent ./setup-hermes.sh # installs uv, creates venv, installs .[all], symlinks ~/.local/bin/hermes ./hermes # auto-detects the venv # 等价手动路径 curl -LsSf https://astral.sh/uv/install.sh | sh uv venv venv --python 3.11 source venv/bin/activate uv pip install -e ".[all,dev]" scripts/run_tests.sh
来源:README

使用场景

1) 个人开发者把 hermes 部署到 5 美元 VPS 上,本地用 Telegram / Discord / 飞书做主要入口,让 agent 24 小时挂机执行长任务;2) 团队搭一个 hermes gateway 同时连接 Slack 和 WhatsApp,把日报、夜间备份、周审计写成自然语言 cron job 投递到对应频道;3) 国内用户通过 dingtalk / wecom / weixin / feishu / qqbot / yuanbao 适配器把 hermes 接入企业内部 IM,配合 GLM、Kimi、MiMo 等国内模型实现自部署、私有化的 AI 助手;4) 研究者用 environments/ 里的 Atropos RL 环境与 batch_runner.py 跑大规模 trajectory 采集,再用 trajectory_compressor 训练新一代 tool-calling 模型。

来源:README + tree.txt + RELEASE_v0.11.0.md

优势与局限

优势

  • 可扩展性:Transport ABC + 注册表式工具发现 + 四类插件接口(plugin / memory / context_engine / image_gen)+ shell hook,意味着新增模型厂商、新平台、新工具都不需要改核心文件,PR #5295 还专门把 honcho 的硬编码从 main.py 删除以巩固这一原则。
  • 完整度:从 CLI、Ink TUI、Web 仪表盘到 17 个消息平台、6 个 Terminal 后端、内建 cron、MCP、ACP(VS Code/Zed/JetBrains)、TTS / STT、Skills Hub 一应俱全,且 README 显示每一项都有对应文档页。
  • 稳定性投入明显:v0.11.0 修复列表里覆盖了流式 cursor sanitization、压缩死循环、interrupt 响应、subagent 文件协作、stale agent timeout 等真实生产问题,配合 ~700 个测试文件 / ~15k 测试用例(AGENTS.md 自述)。
  • 国内可用性高:dingtalk / wecom / weixin / feishu / qqbot / yuanbao 适配器一应俱全,且支持 GLM、Kimi/Moonshot、Xiaomi MiMo 等国内模型,对私有化部署友好。
  • 依赖卫生良好:核心依赖以 SemVer 上限做了显式锁定(openai<3、anthropic<1、requests>=2.33 显式标注 CVE-2026-25645、PyJWT 标注 CVE-2026-32597),并通过 [voice]、[modal]、[matrix]、[termux] 等 extras 隔离平台不兼容依赖(如 ctranslate2 在 Termux/Android 上不可用)。

局限

  • 可维护性风险:run_agent.py 约 12k LOC、cli.py 约 11k LOC、AIAgent.__init__ 接受约 60 个参数,单文件复杂度极高,新人上手成本高;尽管已经把 transports / commands 抽离,主循环仍承担大量分支与状态。
  • 可测试性局限:核心 agent loop 保持同步并通过中断标志、budget grace、activity heartbeats 处理交互,集成测试很难复现真实并发场景;插件 hook 链路(pre/post tool、transform_tool_result)一旦交叉作用,调试只能靠日志。
  • 稳定性表面隐患:v0.11.0 changelog 自身揭示了大量并发与资源相关 bug(subagent 文件冲突、压缩-死循环、空响应过早退出、MCP wait 中断),说明系统在边角场景仍在快速演化,生产部署需要持续跟进版本。
  • 可扩展性的隐性耦合:'plugins MUST NOT modify core files' 是 Teknium 2026 年 5 月才立的规则,说明此前 main.py 里有过 honcho 之类的硬编码,未来若再有同类捷径出现,规则需要靠人工 review 维护。
  • 运行时面广带来的兼容性负担:6 个 Terminal 后端 + 17 个 messaging 平台 + 多家 LLM 厂商意味着任何依赖升级都可能在某一组合下崩,README 已经为 Termux 单独列了 [termux] extra、为 macOS 排除 [matrix]、为 Windows 显式不支持原生路径并要求 WSL2。
  • 性能可观测性较弱:cron 调度、subagent、并发工具执行等链路都已合入,但 RELEASE 中没有提到统一的 tracing / metrics 落地,目前主要靠 ~/.hermes/logs/ 下的 agent.log / errors.log / gateway.log 与 hermes logs 工具排查。
来源:AGENTS.md + RELEASE_v0.11.0.md + pyproject.toml

最新版本

v0.11.0(v2026.4.23),发布于 2026 年 4 月 23 日。距 v0.9.0 共 1556 commit / 761 PR / 1314 文件变更 / 224174 行新增 / 29 位社区贡献者。主要内容:① Ink-based TUI 全量重写并嵌入 Web 仪表盘;② Transport ABC(Anthropic / ChatCompletions / Responses / Bedrock)抽象层落地,原生 AWS Bedrock Converse 上线;③ 五条新推理通路(NVIDIA NIM、Arcee AI、Step Plan、Gemini CLI OAuth、Vercel ai-gateway)+ GPT-5.5 通过 Codex OAuth;④ QQBot 成为第 17 个消息平台;⑤ 插件系统大幅扩展(register_command / dispatch_tool / transform_tool_result / shell hook / image_gen 后端 / dashboard 自定义 tab);⑥ /steer 中途纠偏、subagent orchestrator role 与 max_spawn_depth、并发 subagent 文件协作。

来源:GitHub Releases(接口返回为空,本结论来自仓库内 RELEASE_v0.11.0.md + pyproject.toml version 字段)

总结评价

hermes-agent 在 2026 年 4 月这次 v0.11.0 之后,已经从「Nous Research 的实验性 CLI」长成一个完成度很高的多端 AI 代理框架——同一份 agent 可以同时通过 CLI、Ink TUI、Web 仪表盘和 17 个消息平台暴露,工具、模型、记忆、上下文引擎、图像生成全部走插件 ABC,且对国内 IM 和模型供应链原生友好。它最适合两类人:一是想把 AI 助手 24 小时部署在 5 美元 VPS / Docker / Modal 上、并通过 Telegram、飞书、QQBot 等消息平台远程操作的开发者;二是研究团队,希望基于一个真实在用的 agent 框架去做 trajectory 收集与 RL 训练(atroposlib + tinker 已经接好)。务实建议:① 第一次安装直接用 hermes setup 走完向导,再按 hermes model 选模型,比手动改 config.yaml 安全;② 生产环境锁定具体 release tag,因为 v0.11.0 changelog 暴露了大量并发与流式相关修复,意味着主线仍在快速变化;③ 想私有化部署的国内团队,可以先用 [feishu]/[dingtalk]/[wecom] extras 评估,搭配 GLM、Kimi、MiMo 等国内模型;④ 不建议试图自己 fork 修改 run_agent.py / cli.py 来增加新能力,正确做法是写插件或 transport,否则上游变化会很快让你 rebase 痛苦;⑤ 仅需要简单一次性问答、对消息平台和定时调度都没有需求的个人用户,用一个轻量 CLI(如 free-claude-code)反而更省事,这套 hermes 的复杂度对他们是 overkill。

来源:综合分析
透明度声明
本页内容由 AI(大语言模型)基于以下公开材料自动生成:GitHub README、代码目录结构、依赖文件、Release 信息。 分析时间: 2026-04-28 01:41. 质量评分: 100/100.

数据来源:README、GitHub API、依赖文件