Herm
一个终端原生、默认在容器中运行的 AI 编程代理,无需权限打断即可安全地执行任意任务。
- Star 数
- ★ 233
- 最近更新
- 2 个月前
- License
- MIT
- 主语言
- Go
- FA 评分
- 52/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台OpenAI API · Claude API
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 在 macOS 或 Linux 上工作的开发者,想让 AI 直接修改当前项目代码,但不希望授予宿主文件系统全局访问权——容器隔离只暴露工作目录。
- 不适合
- Windows 用户:官方仅支持 macOS 和 Linux
- 不想安装 Docker 或容器运行时的用户
- 需要已上架移动应用或现成性能基准的团队
这个 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/ 目录。
- 在 macOS 或 Linux 上工作的开发者,想让 AI 直接修改当前项目代码,但不希望授予宿主文件系统全局访问权——容器隔离只暴露工作目录。
- 团队希望混用多家模型供应商(例如主代理用 Grok、探索用 Haiku、视觉用 Gemini),而不被单一供应商锁定。
- 对安全敏感的用户,需要容器、进程内沙箱或 sandbox_exec/bubblewrap 等宿主沙箱的执行隔离,且不想频繁点击权限批准。
- 想审计或定制系统提示词、技能和工具的用户——全部开源,可分叉修改。
- 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?
- 安装并确保 Docker 正在运行(默认容器模式需要)。
- 在项目目录中运行:
herm
- 配置所选 LLM 供应商的凭据(支持 Anthropic、OpenAI、Gemini、Grok、OpenRouter、Ollama、Azure OpenAI、Vertex AI、Bedrock 等)。
- 代理在容器内执行,仅能访问当前工作目录的文件;需要额外工具或依赖时,它会动态编写 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 当前 | 52 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 233 | 2 个月前 | Go | OpenAI API · Claude API |
| Warren | 78 · 表现良好 | 自托管服务免费 + 模型费 | ★ 513 | 2 天前 | TypeScript | Claude Code |
| Sandcastle | 63 · 存在缺口 | 代码库 / SDK免费 + 模型费 | ★ 8.9k | 3 天前 | TypeScript | — |
| AgenC Core | 76 · 表现良好 | 命令行工具免费 + 模型费 | ★ 114 | 今天 | TypeScript | — |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
README 说明 CLI 默认在容器中运行且只访问当前工作目录,但同时强调无需审批;这支持了有限的工作区隔离,却缺少针对操作风险的确认机制,故最小权限和用户确认仅得 1。Apple 配置文档具体说明 API 基址、令牌、模型、环境变量及本地 .env 排除规则,并警告客户端编译常量可从二进制提取,数据流和敏感信息处理得 2。依赖清单可见但没有审计或缓解说明,依赖安全得 1。CLI 的容器、模型与 API 能产生外部影响,但材料没有充分说明各影响的授权边界或回滚机制,因此外部影响得 1、回滚得 0。MIT 文件仍写着占位作者名,来源归属不完整,得 1。
README、CLI 入口、Go 模块和 CI 文件大体相互吻合,且 CI 声明了若干检查,但静态样本不能证明执行结果,得 2。项目依赖 Docker、模型提供商和多个 Go 模块;材料说明部分环境条件,却没有依赖可用性或故障恢复的全面说明,得 1。调试入口和 CI 工具对部分失败会输出错误或用非零状态退出,得 2;不据此推断未展示的 Agent 错误处理。
README 面向终端编码和多模型使用者,也提到 iOS/macOS 应用的不同用途;适用场景说明尚可,得 2。文档说明容器工作区边界、Apple PCC 条件、回退路径与部分工具预算,帮助界定能力,但样本不足以穷尽边界,得 2。技能 frontmatter 对用途和部分不适用场景有明确触发描述,得 2。README 明确 macOS/Linux、架构与 Docker 要求,Apple 配置文档列出系统、SDK、权限条件,环境适配说明充分,得 2。
README 给出目录结构和文档入口,但完整结构和各目录说明有限,信息架构得 2。安装页提供脚本、Homebrew 和源码构建路径及基础要求,得 2。CLI 与项目名称在材料中一致,得 2。README 有运行示例、技能文件含具体工作流示例,得 2;未见 FAQ,故不满分。Apple 文档说明 PCC 可用条件、配置限制及客户端令牌风险,已知限制得 2。许可证文件采用 MIT 文本,但版权主体仍是占位符,得 1。版本变量存在,CI 和 Pages 工作流可见,但样本没有面向用户的变更日志或稳定版本策略,得 1。仓库和贡献文档给出维护线索,但样本未明确具体责任人或支持承诺,得 1。
终端界面、模型选择、多工具和自建环境的产品目标明确;可用性有合理静态依据,但未执行验证,得 2。多提供商、隔离选项和容器环境构建显示出相对通用 CLI 的附加价值,得 2。Docker、模型 API 和可能的令牌费用带来设置与持续成本,材料未量化成本收益,得 1。
README 中的安装、平台和目录主张可与清单、Go 模块及工作流部分对应;Apple 配置细节也给出具体变量和门槛,得 2。README、源码入口、依赖清单和 CI 提供一些交叉印证,但抽样文件无法全面印证产品安全和运行主张,得 1。文档把 PCC 条件、回退和客户端密钥风险作为明确事实说明,也将路线图标为优先顺序且可能变化,事实与计划的区分良好,得 2。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- README 宣称容器默认只访问当前工作目录且无需审批;本样本不足以核实容器边界实现或所有工具的权限范围。
- Apple 配置文档明确指出客户端编译的 API 令牌可从应用二进制提取;不要将此配置视为生产环境的密钥管理方案。
- LICENSE 中的版权作者仍为占位文本;依赖清单本身也不能证明依赖已完成安全审计。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
发布说明摘录
Changelog * 06b10f99e05db1c08dcd5bc1c9a1a6b2d23573a4 Add configurable document vision to the CLI and Apple app (#92) * c6fe5301e7849d732a98179c823a33c0276fb36b Add persistent iCloud Drive mounts with RO/RW access (#81) * 5ffeaed81f0c2e328cfa48120abf5a507fab7407 Fix CPSL unsafe pointer handling (#86) * b08537cbccf21268f6c6aafbd4bea741c3aef320 Harden CPSL builds with architecture-aware Xcode caching (#94) * 2518c5034c29a5cac2261544b702570a47af8c9d Polish Apple file, calendar, and attachment UX (#95) …在 GitHub 查看 ↗ -
发布说明摘录
Changelog * a73e77bfd72c07a80a5b3c4e9ced8bea29dbfad7 Add Apple CPSL debug app (#70) * 22655657360bd672f0f35b9f3a26176d59211de7 Add CPSL webbrowser integration (#85) * 56f117d2537e7b64d4d5fe38d16cdd391a0d5e89 Add Herm Apple chat UI with CPSL file browsing (#71) * 2f6f69a764b73d446415416860d2651249113e53 Add Swift agent integration for Apple app (#73) * 209f1178c7e0cdb77a973a1caba2bf7e2c4269a5 Add lazy agent skills support (#78) * acc3067b03cc3dbe924892d33ff7679870504133 Add voice dictation to the composer (#82) * 46889ef060dc8f074f805508348414eafcacaa14 Expand file preview support (#84) …在 GitHub 查看 ↗ -
发布说明摘录
Changelog * 15821ed881c2eab5ab36c5f4b4f0da8c826b1a2e Add naked host sandbox mode (#68) * 0516a01dbf5a00ab8bee9d4328ed02e890dd4f6f Improve model display and config wrapping (#69)在 GitHub 查看 ↗
常见问题
必须使用某一家模型供应商吗?
它能访问我电脑上的所有文件吗?
为什么它不需要反复审批权限?
支持 Windows 吗?
iOS/macOS 应用和 CLI 是同一个东西吗?
谢谢反馈,我们会据此改进页面。