Herm
一个终端原生、默认在容器中运行的 AI 编程代理,无需权限打断即可安全地执行任意任务。
- Star 数
- ★ 231
- 最近更新
- 1 个月前
- License
- MIT
- 主语言
- Go
- FA 评分
- 50/100 · 缺口较多
30 秒速览
- 可在哪里用
- 通用 · 跨平台OpenAI API · Claude API
- 开始前需要
- 典型场景
- 在 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/ 目录。
- 在 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 当前 | 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?
查看各维度的扣分理由
README宣称默认容器隔离、仅限当前工作目录访问,最小权限设计有基本证据;但“无权限提示”意味着默认跳过用户确认,用户确认机制仅得1分;数据流方面多供应商混用模型有一定透明度,但凭据如何传递给容器未说明;依赖数量庞大(含sqlite、grpc等间接依赖)但无安全策略文件;外部效果(安装脚本curl|sh、GitHub Pages部署)可见但安装脚本内容未提供,无法审查;无回滚机制证据;THIRD-PARTY-NOTICES与MIT许可支持来源归属。扣分点均因文件未提供支撑,而非推断问题。
README与go.mod、CI工作流基本自洽(Go 1.24、子模块、测试徽章与test.yml对应);依赖锁定在go.mod中可用性尚可;但失败消息、错误处理在提供的文件中无证据,仅得1分。
目标场景(终端编码代理、macOS/Linux、iOS/macOS应用)与限制描述清晰,环境要求明确(Docker等);但触发精度、命令语义在源文件中无细节,扣分。
项目结构清晰、安装说明多途径(curl/brew/源码)、许可MIT且标注第三方声明、已知限制(iOS应用不可作编码代理、不在App Store)有交代;但LICENSE版权栏为占位符“[Author Name]”,属具体缺陷;无CHANGELOG,版本管理仅靠tags;维护者信息与更新路径依赖未验证的个人,仅1分。
多供应商模型混用、自建Dockerfile环境构成差异化价值,边际价值2分;但输出可用性(输出格式、结果呈现)与成本收益(token成本控制)在文件中无证据,扣分。
README声明可在仓库结构中对应(prompts/、tools/、install.sh等),事实与推断区分清楚;但声明可追溯性受限于仅静态文件、无执行证据,CI徽章结果不可独立验证,扣分。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- 默认无权限提示的容器执行:虽限定了工作目录,但容器可写文件系统与网络,静态审查无法确认其边界强度。
- 安装采用 curl | sh,安装脚本内容未在本次审查文件中提供,执行前应人工审阅 hermagent.com/install.sh。
- LICENSE 版权栏为占位符 '[Author Name]',来源署名不完整。
- 多个 LLM 供应商混用意味着提示与代码内容会流向多家服务商,敏感项目需自行评估数据流向。
- 依赖树庞大且无 SECURITY.md 或依赖审计配置,建议使用者自行运行漏洞扫描。
- 无回滚/撤销机制的文档说明,容器内产生的变更恢复方式不明。