Goose vs oh-my-pi vs Hermes Agent:本地 AI Agent 框架架构对比
对比视角:不是「哪个更好」,而是「在什么约束下、各自做出了什么取舍」。三个项目的核心设计哲学截然不同——Goose 追求平台化,omp 追求极致性能,Hermes 追求持续进化。
一句话定位差异
| Goose | oh-my-pi (omp) | Hermes Agent | |
|---|---|---|---|
| 一句话 | 通用型 AI Agent 平台——桌面 + CLI + API 三形态,强调扩展生态和协议标准化 | 极致优化的终端编程代理——砍掉平台广度,把工具层性能做到极致 | 自我进化的 AI Agent 伙伴——内置学习循环,跨平台消息网关,越用越懂你 |
| 核心隐喻 | Agent 即服务 | Agent 即 IDE | Agent 即同事 |
项目元数据
| 维度 | Goose | oh-my-pi | Hermes Agent |
|---|---|---|---|
| GitHub | aaif-goose/goose | can1357/oh-my-pi | NousResearch/hermes-agent |
| Stars | 43.8k | 3k | 144k |
| 组织 | AAIF (Linux Foundation) | 个人项目 | Nous Research |
| 许可证 | Apache-2.0 | MIT | 待确认 |
| 主语言 | Rust (100%) | TypeScript + Rust (N-API) | Python 3.11 |
| Runtime | 原生编译 | Bun 运行时 | Python 原生 + Ink TUI |
| 支持模型 | 15+ Provider | 40+ Provider | 200+ 模型(OpenRouter) |
| 内置工具 | 4 内置 + 70+ MCP | 32 内置 | 自动发现工具集 |
| 核心差异 | 多形态交付 + MCP 生态 | hashline 编辑 + N-API 性能 | 闭环学习 + 消息平台网关 |
架构哲学对比
Goose 的哲学: omp 的哲学: Hermes 的哲学:
平台化优先 性能优先 学习优先
┌──────────┐ ┌──────────┐ ┌──────────┐
│ 桌面/CLI/API│ │ 终端 │ │ 全平台消息 │
└─────┬─────┘ └─────┬─────┘ └─────┬─────┘
│ │ │
┌─────┴──────┐ ┌────┴─────┐ ┌─────┴──────┐
│ Agent 核心 │ │ Agent │ │ AIAgent │
│ (标准协议) │ │ (极致优化)│ │ (持续学习) │
└─────┬──────┘ └────┬─────┘ └─────┬──────┘
│ │ │
┌─────┴──────┐ ┌────┴─────────┐ ┌─────┴──────┐
│ MCP 扩展生态│ │ 进程内原生模块 │ │ 学习系统 │
│ (子进程隔离)│ │ (N-API 零开销)│ │ Memory+Skills│
└──────────┘ └──────────────┘ └────────────┘
三个项目的根本分歧在于 Agent 的本质定位:
- Goose 认为 Agent 是一个可嵌入的服务——通过标准协议(MCP/ACP)连接工具和前端
- omp 认为 Agent 是一个高性能编辑器——通过原生模块消除一切 IPC 开销
- Hermes 认为 Agent 是一个持续进化的伙伴——通过学习循环让 Agent 越来越懂你
八维度架构对比
1. Agent 循环
| 维度 | Goose | oh-my-pi | Hermes |
|---|---|---|---|
| 循环结构 | Agent struct,max_turns=1000 | Agent 类,AgentSession 协调 | AIAgent 类(~12k LOC),max_turns=90 |
| 上下文管理 | 自动 Compaction | 自动 compaction | Memory + Skills + User Profile 三源上下文 |
| 工具调用路由 | 三路分发(frontend/platform/extension) | 统一注册 + 门控 | discover_builtin_tools() + 动态注册 |
| 重试机制 | RetryManager | 回退链 | 待验证 |
| 流式处理 | BoxStream<Message> | OutputSink 流式截断 | 待验证 |
| 子 Agent | SubAgentHandler(独立上下文) | task 工具(进程内) | 内置 Subagent 支持 |
| 学习能力 | ❌ 无 | ❌ 无 | ✅ Skills 自动创建 + Memory nudge 保存 |
关键差异:Hermes 是唯一一个有闭环学习能力的——Agent 不只是执行任务,还在执行过程中积累经验、创建可复用 Skills、主动保存知识到 Memory。这意味着 Hermes 用得越久越强,而 Goose 和 omp 每次启动都是「白纸」。
2. 工具层——最核心的分歧
graph LR
subgraph "Goose: MCP 子进程模型"
G1["Agent"] --> G2["ExtensionManager"]
G2 --> G3["rmcp client"]
G3 --> G4["MCP Server A<br/>(子进程)"]
G3 --> G5["MCP Server B<br/>(子进程)"]
G3 --> G6["内置扩展<br/>(DuplexStream)"]
end
subgraph "omp: N-API 进程内模型"
O1["Agent"] --> O2["createTools()"]
O2 --> O3["read/grep/bash<br/>(Rust N-API)"]
O2 --> O4["edit (hashline)<br/>(Rust N-API)"]
O2 --> O5["lsp/debug<br/>(JSON-RPC)"]
O2 --> O6["MCP 桥接<br/>(子进程)"]
end
subgraph "Hermes: 自动发现 + 多后端"
H1["AIAgent"] --> H2["ModelTools<br/>工具编排"]
H2 --> H3["Toolsets<br/>工具集定义"]
H3 --> H4["Local / Docker<br/>SSH / Modal<br/>Daytona / Singularity"]
H2 --> H5["MCP Servers<br/>Plugin 系统"]
end
| 维度 | Goose (MCP 子进程) | omp (N-API 进程内) | Hermes (多后端) |
|---|---|---|---|
| 工具实现 | 外部 MCP 子进程 | 进程内 Rust 原生模块 | 自动发现 + 可插拔后端 |
| 每次调用开销 | ~10-50ms (IPC) | ~0.1ms (N-API) | 取决于后端(本地/SSH/容器) |
| 隔离性 | 进程级隔离 | 无隔离 | 容器级隔离(Docker/Singularity) |
| 扩展性 | 极好(MCP 生态) | 有限(32 内置为主) | 好(Plugin + MCP + Skills) |
| 执行环境 | 仅本地 | 仅本地 | 7 种后端(含 Serverless) |
判断:
- 生态广度 → Goose(70+ MCP 扩展)
- 执行速度 → omp(N-API 零延迟)
- 环境灵活性 → Hermes(从本地到 GPU 集群到 Serverless,一套工具定义适配 7 种后端)
3. 学习系统——Hermes 的独有能力
这是 Hermes 与其他两个项目最大的结构性差异——Goose 和 omp 都没有等价的学习机制。
Hermes 的闭环学习:
执行任务 ──→ 积累经验 ──→ 提取 Skills ──→ 持久化 Memory
↑ │
└───────────── 下次加载时召回 ←─────────────┘
Goose / omp 的模式:
启动 ──→ 加载工具 ──→ 执行任务 ──→ 结束(无积累)
| 学习维度 | Goose | omp | Hermes |
|---|---|---|---|
| 程序性记忆(Skills) | ❌ | ❌ | ✅ 自动创建 + 使用中改进 |
| 陈述性记忆(Memory) | ❌ | ❌ | ✅ 主动 nudge 保存 |
| 跨会话召回 | ❌ 每次新会话 | ❌ 每次新会话 | ✅ FTS5 全文搜索历史 |
| 用户画像 | ❌ | ❌ | ✅ 自动构建 User Profile |
| 知识共享 | ❌ | ❌ | ✅ Skills Hub (agentskills.io) |
影响:Hermes 用了 100 次之后,它会知道你偏好什么代码风格、常用什么工具链、项目的技术栈是什么。Goose 和 omp 用了 1000 次之后,和第一次启动没有区别。
4. 编辑策略
| 维度 | Goose | oh-my-pi | Hermes |
|---|---|---|---|
| 编辑方式 | MCP 扩展的 shell/文件工具 | hashline 编辑协议 | shell 命令 / 文件操作工具 |
| 编辑冲突 | 无统一处理 | hashline 锚点自动拒绝 stale edit | 待验证 |
| token 效率 | 无特殊优化 | hashline 减少 61% output tokens | 无特殊优化 |
| AST 支持 | tree-sitter 代码解析 | pi-ast(50+ 语法,ast_edit/ast_grep) | 待验证 |
| LSP/DAP | ❌ | ✅ LSP + DAP 集成 | ❌ |
omp 在编辑领域仍然是王者。Goose 和 Hermes 都没有 hashline 这样的编辑创新,也没有 LSP/DAP 集成。
5. 消息平台集成——Hermes 的第二个独有能力
| 维度 | Goose | oh-my-pi | Hermes |
|---|---|---|---|
| Telegram | ✅ Gateway trait | ❌ | ✅ 内置适配器 |
| Discord | ❌ | ❌ | ✅ 内置适配器 |
| Slack | ❌ | ❌ | ✅ 内置适配器 |
| ❌ | ❌ | ✅ 内置适配器 | |
| Signal | ❌ | ❌ | ✅ 内置适配器 |
| ❌ | ❌ | ✅ 内置适配器 | |
| 微信/钉钉 | ❌ | ❌ | ✅ 内置适配器 |
| 桌面 GUI | ✅ Tauri | ❌ | ✅ Ink TUI |
| HTTP API | ✅ goosed | ❌ | ❌(待验证) |
Hermes 是唯一一个真正的「全平台 Agent」——通过 Gateway 消息网关,一套代码同时接入 10+ 消息平台。Goose 有 Gateway trait 但目前只实现了 Telegram;omp 纯终端。
这意味着:如果你想让 Agent 同时在 Telegram、Discord、Slack 上为你服务,Hermes 是唯一选择。
6. 执行环境
| 维度 | Goose | oh-my-pi | Hermes |
|---|---|---|---|
| 本地执行 | ✅ | ✅ | ✅ |
| Docker 容器 | ❌ | ❌ | ✅ |
| SSH 远程 | ❌ | ❌ | ✅ |
| Serverless (Modal) | ❌ | ❌ | ✅ 休眠唤醒 |
| Daytona 沙箱 | ❌ | ❌ | ✅ 休眠唤醒 |
| Singularity (HPC) | ❌ | ❌ | ✅ |
| GPU 集群 | ❌ (需本地 CUDA) | ❌ | ✅ (Modal) |
Hermes 是唯一一个支持非本地执行环境的。这不仅仅是「在哪里跑」的问题——它意味着 Hermes 可以在 $5 VPS 上通过 Modal/Daytona 弹性使用 GPU 算力,闲置时休眠,几乎零成本。Goose 和 omp 都只能在本地跑。
7. LLM Provider 支持
| 维度 | Goose | oh-my-pi | Hermes |
|---|---|---|---|
| Provider 数量 | 15+ | 40+ | 200+(OpenRouter) |
| 模型路由 | 单模型 + fast 降级 | 四角色 + 回退链 | 待验证 |
| 配置发现 | 手动 | 16 个自动发现器 | hermes model 一键切换 |
| 本地推理 | ✅ (llama.cpp + Whisper) | ❌ | 待验证 |
8. 安全模型
| 维度 | Goose | oh-my-pi | Hermes |
|---|---|---|---|
| 权限检查 | 三层 Inspector | ACP 门控 | 命令审批机制 |
| 对抗检测 | AdversaryInspector | ❌ | ❌ |
| 出站审查 | EgressInspector | ❌ | ❌ |
| 工具隔离 | MCP 子进程级 | 无 | 容器级(Docker/Singularity) |
| 签名验证 | Sigstore 验签 | ❌ | ❌ |
| 多用户隔离 | ❌ | ❌ | ✅ Profile 隔离 |
| DM 配对 | ❌ | ❌ | ✅ |
安全模型的哲学差异:
- Goose:纵深防御——三层 Inspector + 子进程隔离 + 签名验证,适合企业合规场景
- Hermes:环境隔离——Docker/Singularity 容器 + Profile 多用户,适合多用户共享场景
- omp:最小权限——依赖 ACP 门控,但进程内执行无隔离,适合个人开发场景
架构师视角:六个值得深思的对比
1. 无状态 vs 有状态——Agent 的本质是什么?
Goose omp Hermes
Agent 有状态? 无 无 有(Memory+Skills+Profile)
越用越强? ❌ ❌ ✅
跨会话记忆? ❌ ❌ ✅
冷启动成本? 低(无状态) 低(无状态) 高(需加载上下文)
这是最深层的哲学分歧:Agent 应该记住你吗?
- Goose / omp 的回答是「不」——每次会话都是干净的,简单可预测
- Hermes 的回答是「是」——Agent 应该像一个长期合作的同事,越来越懂你
各有道理:无状态更可靠(不会因为错误记忆污染后续对话),有状态更高效(不需要每次重新解释项目背景)。
2. 子进程 vs 进程内 vs 容器——安全与性能的三角权衡
隔离性 Hermes ●──────── ○ Goose ○──────── omp
性能 omp ●──────── ○ Goose ○──────── Hermes
灵活性 Hermes ●──────── ○ Goose ○──────── omp
- omp(进程内):最快,零隔离,最不灵活
- Goose(子进程):中等速度,进程级隔离,MCP 生态灵活
- Hermes(容器/SSH/Serverless):最慢(容器启动开销),最强隔离,7 种后端最灵活
3. 编程专用 vs 通用助手
编程深度 omp ●──────── ○ Goose ○──────── Hermes
通用性 Hermes ●──────── ○ Goose ○──────── omp
- omp:为编程而生(hashline、LSP、DAP、AST),做其他事很勉强
- Goose:以编程为核心但可扩展(MCP 生态覆盖非编程工具)
- Hermes:通用助手(研究、写作、自动化、数据分析),编程只是众多能力之一
4. 单入口 vs 多入口——Agent 在哪里等你?
入口数量 Hermes ●──────── ○ Goose ○──────── omp
- omp:只在终端等你
- Goose:在终端、桌面、HTTP API、Telegram 等你
- Hermes:在终端、桌面(TUI)、Telegram、Discord、Slack、WhatsApp、Signal、Email、微信、钉钉等你
5. 本地优先 vs 云端弹性——执行环境的选择
本地性能 omp ●──────── ○ Goose ○──────── Hermes
云端弹性 Hermes ●──────── ○ Goose ○──────── omp
- omp / Goose:一切在本地,延迟最低但受本机资源限制
- Hermes:本地 + Docker + SSH + Modal(Serverless GPU)+ Daytona(休眠沙箱),弹性使用云端算力
6. 技术栈对社区的影响
贡献门槛 Hermes ●── ○ Goose ○──────────── omp
- Hermes(Python):贡献门槛最低,17k+ 测试,社区最大(144k stars)
- Goose(Rust):贡献门槛较高,Feature Flag 矩阵进一步增加复杂度
- omp(TypeScript + Rust N-API):贡献门槛最高,双栈维护,社区最小(3k stars)
决策矩阵
选 Goose 的场景
- ✅ 需要桌面 GUI(非终端用户,团队协作场景)
- ✅ 需要HTTP API(将 Agent 能力嵌入 Web 应用 / 自定义前端)
- ✅ 需要丰富的工具生态(70+ MCP 扩展,Jira/Slack/数据库等集成)
- ✅ 安全要求高(对抗检测 + 出站审查 + 子进程隔离 + Sigstore 验签)
- ✅ 需要Python/Kotlin 嵌入(
goose-sdk的 uniffi FFI) - ✅ 需要本地离线推理(llama.cpp + Whisper feature)
- ✅ 想参与协议标准化(ACP 已提交 Linux Foundation)
选 oh-my-pi 的场景
- ✅ 终端重度用户,追求极致编辑体验
- ✅ 需要高频工具调用(grep/read/edit 循环,omp 的 N-API 比 MCP 子进程快 100x)
- ✅ 弱模型优化(hashline 让便宜模型也能编辑代码,token 成本降低 61%)
- ✅ 需要LSP/DAP 集成(代码智能 + 调试器,不是简单的 grep/regex)
- ✅ 已有
.claude/.cursor/.codex配置,想零迁移切换 Agent - ✅ 需要并行子 Agent(task 工具 + worktree 隔离)
- ✅ 需要模型路由(四角色 + 回退链,成本优化)
- ✅ 纯编程场景,不需要消息平台 / 桌面 GUI 等非编程能力
选 Hermes Agent 的场景
- ✅ 需要 Agent 越用越懂你(Skills + Memory + User Profile 闭环学习)
- ✅ 需要在多个消息平台同时使用 Agent(Telegram + Discord + Slack + WhatsApp 等)
- ✅ 需要容器级隔离(Docker / Singularity),而非进程级
- ✅ 需要非本地执行环境(SSH 远程 / Modal Serverless / Daytona 沙箱)
- ✅ 需要多用户 Profile 隔离(不同场景不同身份)
- ✅ 需要 200+ 模型选择(OpenRouter 聚合)
- ✅ Agent 用途不只是编程(研究、写作、自动化、数据分析)
- ✅ 想参与大社区(144k stars,17k+ 测试)
- ✅ 需要定时任务(Cron Scheduler 内置)
都不选 / 需要额外评估的场景
- ❌ 需要真正的多用户服务端部署:三者都是单用户设计(Hermes 有 Profile 隔离但不是真正的多租户)
- ❌ 需要实时协作:三者都不支持多人同时编辑同一会话
- ❌ 需要企业级审计日志:Goose 有 OpenTelemetry 可选集成,但三者都没有内置审计
推荐使用场景
Goose 推荐场景
场景 1:团队 Agent 平台——把 AI 能力嵌入团队工具链
你是谁:技术团队负责人,想让团队的非终端用户(PM、QA、运营)也能使用 AI Agent
为什么选 Goose:
- 桌面 GUI(Tauri) 让非技术用户无需碰终端
- HTTP Server(
goosed) 可以作为团队内部微服务,多人通过浏览器调用 - ACP 协议 可以嵌入到你的内部工具、IDE 插件、CI 流水线中
- 70+ MCP 扩展 覆盖 Jira / Slack / 数据库 / 文档等常见团队工具
典型配置:
团队内部部署 goosed → 提供 REST API
↓
内部 Web 前端 / Slack Bot / IDE 插件通过 API 调用
↓
Goose Agent 连接 Bedrock / Azure 等企业级 LLM
避坑提醒:Goose 的 goosed 是单用户的,多用户场景需要外部做会话隔离。
场景 2:安全敏感环境——需要对 Agent 行为有审计和管控
你是谁:企业开发者,处理敏感代码 / 客户数据,对 Agent 执行的命令有合规要求
为什么选 Goose:
- 三层 Inspector(Permission + Adversary + Egress)= 每次工具调用前过三道关
- MCP 子进程隔离 = 扩展崩溃不会拖垮 Agent,也不会访问主进程内存
- Sigstore 验签 = 自动更新时验证二进制完整性
- 系统密钥环 = API Key 不存在明文配置文件里
典型配置:
GOOSE_MODE: approve # 所有操作都需确认
GOOSE_PERMISSION_MODE: "strict" # 严格权限模式
避坑提醒:approve 模式下每一步都需要用户确认,体验较慢但最安全。
场景 3:MCP 扩展开发者——想构建自己的工具生态
你是谁:想给自己的产品写一个 Agent 集成,或者想构建通用工具扩展
为什么选 Goose:
- MCP 是一等公民:写一个 MCP Server 就自动获得 Goose CLI + 桌面 + API 三端支持
- ACP 协议:你可以把 Goose 作为 Agent 后端,通过 ACP 接入你的前端
goose-sdk(uniffi):Python / Kotlin FFI 绑定,嵌入到移动端或数据分析流水线
避坑提醒:MCP 协议仍在快速迭代,扩展可能需要跟进 breaking changes。
oh-my-pi 推荐场景
场景 1:终端重度开发者——每天在终端里写代码 8 小时
你是谁:全栈 / 后端开发者,终端是你的主战场,IDE 只是偶尔打开
为什么选 omp:
- 32 个内置工具 全部进程内执行,grep/read/edit 零延迟
- Hashline 编辑 让模型编辑代码又快又准,不需要模型精确复述原文
- LSP 集成 = Agent 能理解代码结构(类型定义、引用查找),不只是文本搜索
- DAP 调试 = Agent 可以直接驱动调试器(lldb/dlv/debugpy),不是 print 大法
- 内嵌 Bash(brush-shell)= 持久化 shell session,不需要每次 fork
典型工作流:
你:重构 src/auth.ts 的登录函数,支持 OAuth2
omp:read → ast_grep(找到函数边界)→ edit(hashline 锚点)→ bash(跑测试)→ lsp(检查类型错误)
避坑提醒:omp 的 32 个工具都在进程内,如果某个工具阻塞(如调试器挂起),整个 Agent 会卡住。
场景 2:成本敏感——用便宜模型也能获得不错的编程体验
你是谁:独立开发者 / 学生,不想花很多钱在 LLM API 上
为什么选 omp:
- Hashline 编辑:Grok Code Fast(便宜模型)的编辑通过率从 6.7% 提升到 68.3%
- 四角色路由:日常对话用便宜模型(
smol),复杂推理用强模型(slow),只在必要时才烧钱 - 40+ Provider + 回退链:某个 Provider 限流/报错时自动切换,不会中断工作
- TTSR(Time-Traveling Stream Rules):规则只在模型偏离时注入,不浪费 context token
典型配置:
# models.yml
default: grok-code-fast
smol: grok-code-fast
slow: claude-sonnet
plan: grok-3-mini
fallbackChains:
default: [grok-code-fast, gpt-4o-mini, claude-haiku]
避坑提醒:便宜模型的理解能力有限,复杂架构任务可能需要手动切到 slow 模式。
场景 3:多 Agent 已有配置——从 Claude Code / Cursor 零迁移切换
你是谁:已经在用 Claude Code 或 Cursor 的 .claude / .cursor 配置,想试试 omp
为什么选 omp:
- 16 个 Provider 发现器:自动读取
.claude/、.cursor/、.codex/、.vscode/等已有配置 - first-win 优先级:已有配置优先,omp 只做补充
- MCP 桥接:已有的 MCP Server 配置直接复用
避坑提醒:first-win 语义意味着同时存在 .claude 和 .cursor 配置时,只有一个会生效。
场景 4:并行开发——同时推进多个独立任务
你是谁:需要同时处理多个不相关的编码任务(修 Bug A + 实现 Feature B + 写测试 C)
为什么选 omp:
task工具:一条指令启动多个子 Agent 并行执行- worktree 隔离:每个子 Agent 在独立的 git worktree 中工作
- 进程内执行:子 Agent 共享
ModelRegistry和 MCP 连接,启动无开销
典型工作流:
你:task ["修复登录页的 CSS 错位", "给 API 层加单元测试", "升级 React 到 v19"]
omp:并行启动 3 个子 Agent → worktree 隔离 → yield 结果 → git merge
避坑提醒:进程内子 Agent 共享内存,一个 OOM 全部阵亡。建议控制在 3-5 个并行。
Hermes Agent 推荐场景
场景 1:全能数字助手——编程只是 Agent 工作的一部分
你是谁:不只需要编程助手,还需要 Agent 帮你做研究、写文档、管理日程、自动化工作流
为什么选 Hermes:
- 闭环学习:用了一段时间后,Hermes 会记住你的偏好、项目上下文、常用工作流
- Skills 系统:复杂任务做一次后自动提取为可复用 Skill,下次直接调用
- Cron 调度器:Agent 可以定时执行任务(每天早上总结昨日 PR、每周五生成周报)
- 200+ 模型:OpenRouter 聚合,
hermes model一键切换,无厂商锁定
典型工作流:
Day 1: 你教 Hermes 做一次代码审查
Day 2: Hermes 自动创建 "code-review" Skill
Day 3+: 你说 "帮我审 PR #42",Hermes 直接用 Skill 执行
同时 Hermes 记住了你关注的安全问题和代码风格
避坑提醒:闭环学习的质量取决于 Memory nudge 机制是否正确触发,错误记忆可能污染后续对话。
场景 2:消息平台全能接入——一个 Agent 覆盖所有沟通渠道
你是谁:在 Telegram、Discord、Slack、WhatsApp 上都有工作群,想让 Agent 同时在这些平台上服务
为什么选 Hermes:
- 10+ 消息平台适配器:一套 Agent 逻辑,同时接入 Telegram / Discord / Slack / WhatsApp / Signal / Email / 微信 / 钉钉
- Gateway 消息网关:单一进程管理所有平台连接
- DM 配对:不同用户和 Agent 的对话互不干扰
- Profile 隔离:不同平台可以有不同的人设和权限
典型配置:
hermes gateway
→ Telegram 适配器:监听 @my_agent_bot
→ Discord 适配器:监听 #ai-assistant 频道
→ Slack 适配器:监听 /hermes 斜杠命令
→ 所有平台共享同一个 Memory 和 Skills
避坑提醒:Gateway 维护成本高——10+ 平台 API 的 breaking changes 需要持续跟进。
场景 3:弹性计算——本地跑不动时自动切到云端
你是谁:本地设备算力有限(笔记本 / 树莓派),但偶尔需要 GPU 算力(模型训练 / 大规模代码分析)
为什么选 Hermes:
- 7 种执行后端:Local / Docker / SSH / Modal / Daytona / Singularity / Vercel Sandbox
- Modal Serverless:按需使用 GPU,闲置时休眠,几乎零成本
- Daytona 沙箱:安全执行不可信代码,休眠唤醒
- Singularity (HPC):在超算集群上运行(学术/科研场景)
典型配置:
# 本地写代码 → Local 后端
# 跑测试 → Docker 后端(隔离)
# 训练模型 → Modal 后端(GPU 按需)
# 执行用户提交的代码 → Daytona 后端(沙箱)
避坑提醒:Modal / Daytona 等云端后端有额外延迟(冷启动 + 网络传输),不适合低延迟场景。
场景 4:社区贡献者 / 研究者——想深入理解 Agent 架构
你是谁:对 Agent 架构感兴趣,想读源码、做实验、贡献代码
为什么选 Hermes:
- Python 主语言:读源码门槛最低
- 17k+ 测试:几乎每个模块都有完整测试覆盖
- 144k Stars 社区:活跃的 Discord 讨论,大量社区贡献
- Atropos RL 训练环境:可以用 RL 方法训练 Agent 行为(独一无二)
- Docusaurus 文档:完整的官方文档
避坑提醒:run_agent.py 单文件 ~12k LOC,入口点过于集中,阅读时建议从 cli.py 和 model_tools.py 开始。
场景速查表
| 我的情况 | 推荐 | 理由 |
|---|---|---|
| 团队内部 AI 平台 | Goose | HTTP Server + GUI + ACP 嵌入 |
| 安全合规要求高 | Goose | 三层 Inspector + 子进程隔离 |
| 终端写代码为主 | omp | N-API 零延迟 + hashline + LSP |
| 预算有限,用便宜模型 | omp | hashline 提升弱模型效果 + 四角色路由 |
| 已有 Claude Code/Cursor 配置 | omp | 零迁移自动发现 |
| 需要写自定义工具扩展 | Goose | MCP 生态 + 标准 Server 协议 |
| 需要桌面 GUI | Goose | Tauri 桌面应用 |
| 需要并行子 Agent(编程) | omp | task 工具 + worktree 隔离 |
| 需要嵌入 Python/Kotlin 应用 | Goose | goose-sdk uniffi FFI |
| 需要 LSP 代码智能 | omp | 内置 LSP + DAP 集成 |
| 需要本地离线推理 | Goose | llama.cpp + Whisper 本地推理 |
| 调试/排查代码问题 | omp | DAP 协议直接驱动调试器 |
| Agent 要记住我 | Hermes | 闭环学习 + Memory + Skills |
| 全平台消息接入 | Hermes | 10+ 消息平台适配器 |
| 需要容器/云端执行 | Hermes | 7 种执行后端(含 Serverless) |
| 多用户/多场景隔离 | Hermes | Profile 隔离 + DM 配对 |
| 不只是编程(研究/写作/自动化) | Hermes | 通用 Agent,非编程专用 |
| 定时任务 | Hermes | 内置 Cron 调度器 |
| 想参与大社区 | Hermes | 144k stars + 17k 测试 |
架构模式的交叉学习
Goose 应该从其他两个项目学什么
- ← omp:Hashline 编辑协议:Goose 的编辑依赖 MCP 扩展,没有统一的编辑冲突处理。引入 hashline 锚点可以显著提升编辑准确性。
- ← omp:Provider 自动发现:16 个 Provider 发现器让用户零迁移切换 Agent。
- ← omp:LSP/DAP 集成:代码智能和调试器是 Goose 完全缺失的能力层。
- ← Hermes:闭环学习:Memory + Skills 让 Agent 越用越强。Goose 每次启动都是白纸。
- ← Hermes:容器级执行环境:7 种后端比纯本地执行更灵活。
omp 应该从其他两个项目学什么
- ← Goose:安全纵深:AdversaryInspector + EgressInspector + 子进程隔离。
- ← Goose:MCP 扩展生态:以 MCP 为核心工具协议获得 70+ 扩展。
- ← Hermes:闭环学习:Skills 自动创建 + Memory 保存,让 Agent 积累经验。
- ← Hermes:消息平台网关:10+ 消息平台适配器,不只限于终端。
- ← Hermes:环境抽象:7 种执行后端,从本地到 Serverless。
Hermes 应该从其他两个项目学什么
- ← Goose:安全纵深:Hermes 没有对抗检测和出站审查,对安全敏感场景不够。
- ← Goose:ACP 协议层:标准化 Agent 交互协议,让 Hermes 可以被嵌入 IDE。
- ← omp:hashline 编辑:Hermes 的编辑策略没有特殊优化,弱模型编辑准确率低。
- ← omp:进程内工具执行:高频工具调用场景下,N-API 比 Hermes 的 Python 工具调用快得多。
- ← omp:LSP/DAP 集成:代码智能是 Hermes 作为编程工具的短板。
关联笔记
- Goose — Goose 架构分析
- oh-my-pi 架构分析 — oh-my-pi 架构分析
- Hermes Agent — Hermes Agent 架构分析
- MCP — Model Context Protocol
- ACP — Agent Client Protocol
- AI Agent — Agent 系统通用架构
- ReAct Pattern — Agent 循环模式
- Feature Flag — Rust 条件编译
- Hashline 编辑协议 — omp 的编辑策略
- N-API — Rust 与 Node.js 的 FFI 桥接
- 闭环学习 — Hermes 的学习循环模式