Product

Hermes Agent

Jimmy 自建的个人 AI agent 框架:profile + auth pool + IM gateway + skill plugin,作为 review-agent / personal-ai-delegate 等自家产品的运行时底座。

1. 核心产品 / 服务

Hermes 是一个本地 + VPS 双部署的 agent 运行时,上游 fork 自 NousResearch 的 hermes-agent。Jimmy 把它当作"自家所有 AI 工作流的容器"来用。

核心架构

  • CLI 入口hermes wrapper,背后跑 hermes_cli.main(Python venv);本地装在 ~/.hermes/,VPS 上独立 user 跑 systemd --user 服务。
  • Profile 系统hermes profile create/use/alias 管理多个独立配置,支持 --clone-all 复制凭据,用来做"OAuth 订阅 vs 便宜 provider"的隔离。
  • Auth pool:所有 provider 凭据集中存在 ~/.hermes/auth.json,单一 source of truth;支持 API key / OAuth / PKCE 多种类型。
  • Model routing 分层config.yaml):
    • model: 主对话模型(hermes chat 和 IM gateway 走这个)
    • auxiliary.* 小任务(approval / compression / flush_memories / mcp / session_search / skills_hub / web_extract / vision)各自指定 provider+model
    • delegation.* subagent 调用单独路由
    • compression.* 历史压缩单独路由
  • IM Gateway:原生 Lark/Feishu 集成(~/.hermes/.env 配 FEISHU_APP_ID/SECRET/DOMAIN),Telegram、Slack 通过 channel adapter 接入。allowlist + pair 流程 + admin notify 三层 access control 已经 patch 进 gateway/run.py。
  • Cron~/.hermes/cron/jobs.json 支持 per-job provider/model/base_url override(CLI 不暴露这几个字段,要直接改 JSON)。
  • Skill plugin~/.hermes/skills/<category>/<name>/SKILL.md 注册本地 skill;scanner 不 follow symlink,必须 rsync 真实拷贝。

Provider 覆盖:原生支持 Anthropic(含 OAuth 订阅 token)、Moonshot Kimi(kimi-coding / kimi-coding-cn,K2.5/K2.6 已在内置 model list)、DeepSeek 直连、openrouter 接所有其余模型。

2. 服务对象 & 痛点

主要"用户":Jimmy 本人——一个 crypto 退出后做 AI 自动化的连续创业者,每天要跑多个 cron、多个 IM channel、多个 sub-agent,需要一个能把这些都装进同一个壳的工具。

潜在外延用户personal-ai-delegate 把 Hermes 当 SDK,目标是 senior 管理 junior 的工作场景;review-agent 把 Hermes 当 host runtime,公开 release 后任何 hermes 用户都能装。

痛点 / 设计动机

  • Claude Code、OpenClaw 这类 CLI 是单 session、单 channel、单 model 的;Jimmy 的工作流是多 channel + 多 cron + 多 model
  • 订阅 OAuth quota(Anthropic Pro/Max)和按量计费要分开烧——主对话用订阅,subagent 和压缩走便宜 provider
  • 多个 IM bot 共用一套 auth pool 和 skill 库,避免每个 channel 重复配
  • 上游 patch 容易被 hermes update 冲掉——所以 Jimmy 的 patch 都写成幂等 Python 脚本,带 backup + marker

3. 竞争格局

维度 Hermes (Jimmy) Claude Code OpenClaw Anthropic Claude Agent SDK Cursor agents Aider
定位 个人多 channel agent 运行时 终端 coding CLI 多 user 协作 agent 平台 嵌入式 SDK IDE 内 coding agent git-aware coding CLI
部署 本地 + VPS systemd 本地 CLI 本地 + VPS daemon 嵌入式 lib IDE 本地 CLI
Channel Lark / TG / Slack 终端 only Lark / WhatsApp / WeCom 调用方自己接 IDE 内 终端 only
Provider 多家 + OAuth + auth pool Anthropic only 多家 Anthropic Anthropic / OpenAI / 自家 多家
Profile / 多账号 原生 部分 N/A 单一 单一
Skill plugin 原生 Skills (近期) Skill 用户自己实现 Composer
Cron / 定时 内置 内置 N/A
适用场景 自动化工作流 写代码 团队 IM agent 集成到产品里 IDE 写代码 改 repo

差异化关键:多 IM channel + cron + 多 model routing 三件事捏一起,并且对个人订阅 OAuth quota 做了细粒度路由。Claude Code 和 Aider 没有这个抽象层;OpenClaw 更偏团队多用户场景;Anthropic Agent SDK 是 lib 级别,需要自己组装。

4. 独特观察

  • OAuth 订阅 + auxiliary 分离是省钱关键:主 model 接 Anthropic OAuth(吃订阅额度),auxiliary/delegation/compression 全指向 openrouter 上的 deepseek / minimax-m2.7 这种便宜模型。subagent 8 并发 × OAuth = 容易撞 rate limit,所以 delegation 走便宜 provider 是必要防护。
  • Cron 默认跑主 model 的陷阱:如果主 model 是 OAuth,每日 cron 会烧订阅 quota 而且容易触发 Anthropic 异常检测——必须在 jobs.json 里显式 override provider/model(CLI 不暴露这几个字段)。这是个隐式风险,没踩过坑发现不了。
  • PKCE state = code_verifier 的小 trick:hermes 把 PKCE code_verifier 直接塞到 OAuth state 参数里(agent/anthropic_adapter.py),所以授权回调粘贴回的 state == verifier。中途死掉还能手动调 token endpoint 换 token——少见但聪明的实现。
  • Skill scanner 不 follow symlink:开发中 skill 想被识别必须 rsync 真实拷贝到 ~/.hermes/skills/<category>/<name>/ln -s 会被静默忽略。开发流程要 edit dev path → sync → 验证。
  • Kimi 接入零改源码:Moonshot Kimi 已经原生支持,包括自动 base-URL 切换(看 key 前缀 sk-kimi-api.kimi.com/coding,普通 sk- → 配置 base_url),tool schema sanitize 也自动跑。hermes auth add kimi-coding 一行就接上 K2.5/K2.6。
  • 上游 patch 会被冲:hermes-agent 是 NousResearch 上游 repo,本地 patch(DeepSeek thinking disable / Feishu allowlist / admin notify)都会被 hermes update 覆盖——所以 Jimmy 的所有 patch 都写成幂等脚本放 VPS 上,带 marker + backup,update 后重跑即可。
  • vs OpenClaw 的取舍:OpenClaw 是 Jimmy 早期主力,更适合"团队多用户协作"的场景(dmPolicy / allowFrom / 多用户隔离);Hermes 是后来发现"我自己一个人用其实更需要 profile + auth pool + cron"才转过去的。两个都在用,分工不同——见 openclaw-hermes-updates。
  • Kimi 在 Hermes 路径:直连 Moonshot 比走 openrouter 更便宜(OpenRouter 不一定 pass-through prompt-caching 折扣),但 OpenRouter 上的 Kimi 也比直连 Moonshot 便宜(第三方 provider 内卷)——具体看 workload 是不是 cache 友好。

5. Financials

N/A — 个人内部工具,不收费、不融资、不商业化。仅作为 review-agent / personal-ai-delegate 等可能商业化产品的底层 runtime。

6. People & Relationships

  • Builder: Jimmy(个人项目)
  • Upstream: NousResearch hermes-agent(fork,本地 patch 用幂等脚本维护)
  • Hosted at: 本地 macOS(dev)+ 个人 VPS(systemd --user 跑 gateway / cron)
  • Models routed:
    • 主对话:Anthropic Claude(OAuth 订阅)
    • 辅助 / subagent:deepseek / minimax / glm 等 via openrouter
    • 直连:kimi (Moonshot) for coding / 长上下文
  • Built on top:
  • 生态对照: tinyfish(如果不想自建 web automation 的对照选项)

Sources

  • local: memory/reference_hermes_config.md — Hermes 配置架构、profile、auth pool、OAuth PKCE、cron override 风险
  • local: memory/reference_hermes_kimi_provider.md — Kimi/Moonshot 原生支持,base-URL 自动切换,tool schema sanitize
  • local: memory/reference_hermes_feishu_allowlist.md — Feishu gateway 三层 allowlist + admin-notify patch + 上游 update 覆盖问题
  • local: memory/feedback_hermes_skill_install.md — Skill scanner 不 follow symlink,必须 rsync
  • local: 2026-04-20-summary.md(原 wiki 引用,raw/ 里未找到,存疑)
Last compiled: 2026-05-09