Herm

一个终端原生、默认在容器中运行的 AI 编程代理,无需权限打断即可安全地执行任意任务。

Star 数
★ 231
最近更新
1 个月前
License
MIT
主语言
Go

30 秒速览

可在哪里用
通用 · 跨平台OpenAI API · Claude API
开始前需要
Docker (Docker Desktop or OrbStack)macOS or Linux (arm64/amd64)Shell / 命令行网络访问本地文件系统
典型场景
在 macOS 或 Linux 上工作的开发者,想让 AI 直接修改当前项目代码,但不希望授予宿主文件系统全局访问权——容器隔离只暴露工作目录。
主要局限
默认模式依赖 Docker(Docker Desktop 或 OrbStack),无容器运行时则需改用其他隔离方式。

这个 Agent 能做什么,适合哪些场景?

Herm 是一个模型无关的通用 AI 代理,仓库地址为 aduermael/herm,采用 MIT 许可证。它原生支持多种隔离方式:Docker 容器(CLI 默认)、进程内类 Unix 沙箱,以及宿主沙箱(macOS 的 sandbox_exec、Linux 的 bubblewrap)。CLI 以容器为默认执行环境,代理只能访问当前工作目录的文件,因此无需逐条审批权限。Herm 支持多家模型供应商——Anthropic、OpenAI、Gemini、Grok、OpenRouter、Ollama、Azure OpenAI、Vertex AI、Bedrock——并且可以在同一会话中混搭模型。它还会动态编写 Dockerfile 来按项目自建开发环境。除 CLI 外,仓库还在开发原生 iOS/macOS 应用(SwiftUI),内置类 Unix 沙箱和可用 Luau 脚本扩展的运行时,可完全在设备端完成任务。系统提示词、技能和工具全部开源,无隐藏指令。

运行 herm 命令后,CLI 在宿主机上运行,而代理本身在 Docker 容器内执行,只能读取当前工作目录下的文件。它会按需动态编写 Dockerfile 来扩展容器环境,环境按项目(当前工作目录)划分作用域。代理调用由用户配置的 LLM 供应商 API(如 Anthropic、OpenAI、Gemini、Grok、OpenRouter、Ollama、Azure OpenAI、Vertex AI、Bedrock),可为主代理、探索和视觉任务分配不同模型。隔离由外部子模块 langdag(LLM 客户端/编排)和 cpsl(原生沙箱后端)支撑。安装通过 install.sh 脚本或 Homebrew 完成,代码用 Go 编写(仓库含 go.mod),iOS/macOS 应用位于 app/apple/ 目录。

  1. 在 macOS 或 Linux 上工作的开发者,想让 AI 直接修改当前项目代码,但不希望授予宿主文件系统全局访问权——容器隔离只暴露工作目录。
  2. 团队希望混用多家模型供应商(例如主代理用 Grok、探索用 Haiku、视觉用 Gemini),而不被单一供应商锁定。
  3. 对安全敏感的用户,需要容器、进程内沙箱或 sandbox_exec/bubblewrap 等宿主沙箱的执行隔离,且不想频繁点击权限批准。
  4. 想审计或定制系统提示词、技能和工具的用户——全部开源,可分叉修改。
  5. iOS/macOS 开发者,关注完全在设备端运行、带 Luau 脚本运行时的代理应用(尚在开发中,未上架 App Store)。

如何安装或部署这个 Agent?

前置要求:macOS 或 Linux(arm64/amd64);使用默认容器隔离时需要 Docker(通过 Docker Desktop 或 OrbStack)。安装方式任选其一:

sh

curl -fsSL https://hermagent.com/install.sh | sh

或通过 Homebrew:

sh

brew tap aduermael/herm
brew install herm

也可按 CONTRIBUTING.md 中的 Setup 说明从源码构建。

如何使用这个 Agent?

  1. 安装并确保 Docker 正在运行(默认容器模式需要)。
  2. 在项目目录中运行:

herm

  1. 配置所选 LLM 供应商的凭据(支持 Anthropic、OpenAI、Gemini、Grok、OpenRouter、Ollama、Azure OpenAI、Vertex AI、Bedrock 等)。
  2. 代理在容器内执行,仅能访问当前工作目录的文件;需要额外工具或依赖时,它会动态编写 Dockerfile 自建环境,无需逐条审批。注意:CLI 的具体供应商凭据配置命令在 README 中未列出,需查阅仓库文档或 CONTRIBUTING.md。

这个 Agent 有哪些优点和局限?

优点
  • 默认容器化执行,代理只能访问当前工作目录,无需权限提示 interruptions,安全模型清晰。
  • 真正的多供应商支持:可在同一会话中混搭 Anthropic、OpenAI、Gemini、Grok 等模型,按任务分配不同模型。
  • 自建环境:动态编写 Dockerfile,环境按项目作用域,减少手工环境配置。
  • 多层隔离可选:容器、进程内类 Unix 沙箱、sandbox_exec/bubblewrap 宿主沙箱。
  • 完全透明:系统提示词、技能、工具全部开源,可审计、可分叉。
局限
  • 默认模式依赖 Docker(Docker Desktop 或 OrbStack),无容器运行时则需改用其他隔离方式。
  • 仅支持 macOS 和 Linux(arm64/amd64),无 Windows 支持。
  • iOS/macOS 应用尚未上架 App Store,且在该形态下不能用作编程代理。
  • README 中的基准测试(与 Claude Code、Codex、Grok Build 对比)仍列在路线图中,尚无公开性能数据佐证。
  • 供应商凭据的具体配置步骤在 README 中未文档化,新用户需额外查阅文档。

这个 Agent 与同类方案有什么区别?

README 的路线图明确将 Herm 与 Claude Code、Codex、Grok Build 等编程代理进行基准对比列为计划项,说明这些是其直接参照的同类产品。与它们相比,Herm 的差异化在于默认容器化执行、无需权限打断,以及完全开源的提示词、技能和工具。

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 Star 最近更新 主语言 完整支持的平台
Herm 当前 50 · 缺口较多 ★ 231 1 个月前 Go OpenAI API · Claude API
The Pope Bot 68 · 存在缺口 ★ 1.9k 4 个月前 JavaScript Codex · Claude Code · OpenAI API · Claude API
智坤代码 (ZhikunCode) 56 · 缺口较多 ★ 497 4 天前 Java OpenAI API · Claude API
Codeg 多智能体协作编程工作台 45 · 缺口较多 ★ 3.7k 今天 Rust Codex · Claude Code · OpenAI API · Claude API

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
缺口较多
50/ 100 五分制 2.5 / 5
信任安全 12/29
可靠稳定 8/14
适用触发 10/18
规范维护 10/18
有效结果 6/13
证据核验 4/8
查看各维度的扣分理由
信任安全12 / 29 · 2.1/5

README宣称默认容器隔离、仅限当前工作目录访问,最小权限设计有基本证据;但“无权限提示”意味着默认跳过用户确认,用户确认机制仅得1分;数据流方面多供应商混用模型有一定透明度,但凭据如何传递给容器未说明;依赖数量庞大(含sqlite、grpc等间接依赖)但无安全策略文件;外部效果(安装脚本curl|sh、GitHub Pages部署)可见但安装脚本内容未提供,无法审查;无回滚机制证据;THIRD-PARTY-NOTICES与MIT许可支持来源归属。扣分点均因文件未提供支撑,而非推断问题。

可靠稳定8 / 14 · 2.9/5

README与go.mod、CI工作流基本自洽(Go 1.24、子模块、测试徽章与test.yml对应);依赖锁定在go.mod中可用性尚可;但失败消息、错误处理在提供的文件中无证据,仅得1分。

适用触发10 / 18 · 2.8/5

目标场景(终端编码代理、macOS/Linux、iOS/macOS应用)与限制描述清晰,环境要求明确(Docker等);但触发精度、命令语义在源文件中无细节,扣分。

规范维护10 / 18 · 2.8/5

项目结构清晰、安装说明多途径(curl/brew/源码)、许可MIT且标注第三方声明、已知限制(iOS应用不可作编码代理、不在App Store)有交代;但LICENSE版权栏为占位符“[Author Name]”,属具体缺陷;无CHANGELOG,版本管理仅靠tags;维护者信息与更新路径依赖未验证的个人,仅1分。

有效结果6 / 13 · 2.3/5

多供应商模型混用、自建Dockerfile环境构成差异化价值,边际价值2分;但输出可用性(输出格式、结果呈现)与成本收益(token成本控制)在文件中无证据,扣分。

证据核验4 / 8 · 2.5/5

README声明可在仓库结构中对应(prompts/、tools/、install.sh等),事实与推断区分清楚;但声明可追溯性受限于仅静态文件、无执行证据,CI徽章结果不可独立验证,扣分。

风险与缓解建议
  • 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
  • 默认无权限提示的容器执行:虽限定了工作目录,但容器可写文件系统与网络,静态审查无法确认其边界强度。
  • 安装采用 curl | sh,安装脚本内容未在本次审查文件中提供,执行前应人工审阅 hermagent.com/install.sh。
  • LICENSE 版权栏为占位符 '[Author Name]',来源署名不完整。
  • 多个 LLM 供应商混用意味着提示与代码内容会流向多家服务商,敏感项目需自行评估数据流向。
  • 依赖树庞大且无 SECURITY.md 或依赖审计配置,建议使用者自行运行漏洞扫描。
  • 无回滚/撤销机制的文档说明,容器内产生的变更恢复方式不明。
证据充分度: 评估于 2026年9月12日 审查版本 4bcb16ba05da
查看完整评分方法 →

常见问题

必须使用某一家模型供应商吗?
不必。Herm 是模型无关的,支持 Anthropic、OpenAI、Gemini、Grok、OpenRouter、Ollama、Azure OpenAI、Vertex AI、Bedrock,且可在会话中混搭,例如主代理用 Grok、探索用 Haiku、视觉用 Gemini。
它能访问我电脑上的所有文件吗?
不能。默认容器模式下,代理只能访问当前工作目录中的文件;此外还可选用进程内类 Unix 沙箱或 sandbox_exec(macOS)/bubblewrap(Linux)宿主沙箱。
为什么它不需要反复审批权限?
因为执行默认隔离在 Docker 容器内,文件访问范围被限制在工作目录,安全边界由隔离层保证,因此无需逐条权限提示。
支持 Windows 吗?
目前 README 仅列出 macOS 和 Linux(arm64 和 amd64)为受支持平台,未提及 Windows。
iOS/macOS 应用和 CLI 是同一个东西吗?
不是。iOS/macOS 应用是独立的原生应用(SwiftUI),带进程内沙箱和 Luau 可脚本化运行时,可完全在设备端运行,但在该形态下不能用作编程代理;它尚未上架 App Store,仍在开发中。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents