Herm

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

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

30 秒速览

运行形态
命令行工具桌面应用
可在哪里用
通用 · 跨平台OpenAI API · Claude API
费用
软件免费,模型调用费用自付
上手难度
中 · 需要几步配置
开始前需要
Docker(Docker Desktop 或 OrbStack)macOS 或 Linux(arm64/amd64)Shell / 命令行网络访问本地文件系统
典型场景
在 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/ 目录。

  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 当前 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?

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

README 说明 CLI 默认在容器中运行且只访问当前工作目录,但同时强调无需审批;这支持了有限的工作区隔离,却缺少针对操作风险的确认机制,故最小权限和用户确认仅得 1。Apple 配置文档具体说明 API 基址、令牌、模型、环境变量及本地 .env 排除规则,并警告客户端编译常量可从二进制提取,数据流和敏感信息处理得 2。依赖清单可见但没有审计或缓解说明,依赖安全得 1。CLI 的容器、模型与 API 能产生外部影响,但材料没有充分说明各影响的授权边界或回滚机制,因此外部影响得 1、回滚得 0。MIT 文件仍写着占位作者名,来源归属不完整,得 1。

可靠稳定8 / 14 · 2.9/5

README、CLI 入口、Go 模块和 CI 文件大体相互吻合,且 CI 声明了若干检查,但静态样本不能证明执行结果,得 2。项目依赖 Docker、模型提供商和多个 Go 模块;材料说明部分环境条件,却没有依赖可用性或故障恢复的全面说明,得 1。调试入口和 CI 工具对部分失败会输出错误或用非零状态退出,得 2;不据此推断未展示的 Agent 错误处理。

适用触发12 / 18 · 3.3/5

README 面向终端编码和多模型使用者,也提到 iOS/macOS 应用的不同用途;适用场景说明尚可,得 2。文档说明容器工作区边界、Apple PCC 条件、回退路径与部分工具预算,帮助界定能力,但样本不足以穷尽边界,得 2。技能 frontmatter 对用途和部分不适用场景有明确触发描述,得 2。README 明确 macOS/Linux、架构与 Docker 要求,Apple 配置文档列出系统、SDK、权限条件,环境适配说明充分,得 2。

规范维护10 / 18 · 2.8/5

README 给出目录结构和文档入口,但完整结构和各目录说明有限,信息架构得 2。安装页提供脚本、Homebrew 和源码构建路径及基础要求,得 2。CLI 与项目名称在材料中一致,得 2。README 有运行示例、技能文件含具体工作流示例,得 2;未见 FAQ,故不满分。Apple 文档说明 PCC 可用条件、配置限制及客户端令牌风险,已知限制得 2。许可证文件采用 MIT 文本,但版权主体仍是占位符,得 1。版本变量存在,CI 和 Pages 工作流可见,但样本没有面向用户的变更日志或稳定版本策略,得 1。仓库和贡献文档给出维护线索,但样本未明确具体责任人或支持承诺,得 1。

有效结果7 / 13 · 2.7/5

终端界面、模型选择、多工具和自建环境的产品目标明确;可用性有合理静态依据,但未执行验证,得 2。多提供商、隔离选项和容器环境构建显示出相对通用 CLI 的附加价值,得 2。Docker、模型 API 和可能的令牌费用带来设置与持续成本,材料未量化成本收益,得 1。

证据核验4 / 8 · 2.5/5

README 中的安装、平台和目录主张可与清单、Go 模块及工作流部分对应;Apple 配置细节也给出具体变量和门槛,得 2。README、源码入口、依赖清单和 CI 提供一些交叉印证,但抽样文件无法全面印证产品安全和运行主张,得 1。文档把 PCC 条件、回退和客户端密钥风险作为明确事实说明,也将路线图标为优先顺序且可能变化,事实与计划的区分良好,得 2。

风险与缓解建议
  • 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
  • README 宣称容器默认只访问当前工作目录且无需审批;本样本不足以核实容器边界实现或所有工具的权限范围。
  • Apple 配置文档明确指出客户端编译的 API 令牌可从应用二进制提取;不要将此配置视为生产环境的密钥管理方案。
  • LICENSE 中的版权作者仍为占位文本;依赖清单本身也不能证明依赖已完成安全审计。
证据充分度:低 评估于 2026年11月8日 审查版本 4bcb16ba05da
查看完整评分方法 →
你是这个项目的维护者?把 FARS 徽章加到 README

徽章显示当前的评审分数和结论,点击回到本页。重新评审后约一小时内更新。

FARS

[![FARS 评测](https://followagents.com/badge/herm.svg?lang=zh)](https://followagents.com/zh/agents/herm)
<a href="https://followagents.com/zh/agents/herm"><img src="https://followagents.com/badge/herm.svg?lang=zh" alt="FARS 评测"></a>

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. v0.8.7
    发布说明摘录
    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 查看 ↗
  2. v0.8.6
    发布说明摘录
    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 查看 ↗
  3. v0.8.5
    发布说明摘录
    Changelog * 15821ed881c2eab5ab36c5f4b4f0da8c826b1a2e Add naked host sandbox mode (#68) * 0516a01dbf5a00ab8bee9d4328ed02e890dd4f6f Improve model display and config wrapping (#69)
    在 GitHub 查看 ↗

常见问题

必须使用某一家模型供应商吗?
不必。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 所属的短名单。