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 后端运行。
来源: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.txtagent 在复杂任务后会自主创建 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 章节)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 章节)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.mdtools/environments/ 提供 local、docker、ssh、Daytona、Singularity、Modal 六个执行后端。Daytona 和 Modal 这两条 serverless 路径允许 agent 在空闲时让环境进入 hibernate,下次请求时再唤醒,从而把 5 美元 VPS 也能跑住的成本进一步压低。
来源:README + AGENTS.md(tools/environments/)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 章节)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>=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环境层 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 自述中心为项目本体,内环 = 核心功能模块,外环 = 关键技术依赖;按 deep.json 中的 core_features 与 tech_stack.key_deps 自动生成
openai>=2.21anthropic>=0.39httpx[socks]pydantic>=2.12tenacityrichprompt_toolkitedge-tts(默认 TTS,免费)mcp>=1.2croniter(cron 调度)ptyprocess(PTY 桥)atroposlib + tinker(RL 训练,git 引用)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.mdv0.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。
来源:综合分析