Warren
把编码 Agent 从终端会话变成可管理的基建:隔离运行、生命周期、花费控制、故障恢复与 Git 交付,全部跑在你自己的机器上。
- Star 数
- ★ 503
- 最近更新
- 2 天前
- License
- MIT
- 主语言
- TypeScript
- FA 评分
- 76/100 · 表现良好
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台Claude Code
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 低 · 几分钟可跑通
- 开始前需要
- 典型场景
- 独自维护多个仓库的开发者,想让编码 Agent 在无人值守下过夜跑任务,而不是占用终端
- 不适合
- 需要多用户、RBAC 或按用户归因的团队
- 希望使用托管 SaaS、不愿自建基础设施的用户
- 依赖 GitLab 或 Azure DevOps 为主仓库平台且不愿启用 WARREN_FORGE 的团队
- 源码审查
- 76/100 · 表现良好
这个 Agent 能做什么,适合哪些场景?
Warren 是一个自托管的控制平面,把 Claude Code、Pi 等编码 Agent 的运行当作基础设施工作负载来管理,而不是一次性的终端会话。每次运行都在独立的工作区(worktree/clone)和沙箱边界内启动,Warren 负责派发、监控、转向、取消、恢复与清理。它强制执行花费与并发上限,持久化运行状态、事件、成本与令牌用量,并保证核心产出:一条被推送的工作分支,可选自动创建 PR。运行时提供 local(bwrap/sandbox-exec)、docker(兄弟容器)和 k8s(每运行一个 Pod)三种提供者,实现同一套生命周期。快速上手只需两步安装脚本加 warren up,状态 0.19.3,MIT 许可,并已在 GKE 上对其自身仓库持续运行。
Warren 接收一个仓库加一个任务,派发一个隔离的 Agent 工作负载:每次运行从全新的 worktree 或 clone 开始,使用自己的分支,并被限制在操作者选择的沙箱内(bwrap/sandbox-exec、Docker 兄弟容器或每运行一个 K8s Pod)。运行期间它持续输出实时事件流,实施花费与并发上限,支持对受支持 harness 的转向(steering)与取消;watchdog 会找回丢失的进程或 Pod,并在销毁前尽量抢救工作成果。Agent 提交变更后,Warren 管理 Git 凭据、分支构建、推送与配置的 PR 创建。全部运行历史通过一个 HTTP API(含 OpenAPI 规范)、CLI 和 Web UI 暴露,并附带 TypeScript SDK。当前发行版内置 Pi 与 Claude Code 两个 harness 适配器,以及 planner、healer、PR fixer 等角色;forge 默认通过 GitHub App 或静态令牌对接 GitHub,Azure DevOps Repos 与 GitLab 通过 WARREN_FORGE 启用。可选扩展(audit-log、judge、campaign-controller、tracker-jira、tracker-ado)以独立进程通过 HTTP 接口运行。
- 独自维护多个仓库的开发者,想让编码 Agent 在无人值守下过夜跑任务,而不是占用终端
- 小型可信工程团队共享一个 Warren 部署,在统一的信任边界内集中查看每个运行的时长、成本与 Git 交付
- 需要把代码、模型凭据、计算与运行历史全部留在自己控制的基础设施上的组织
- 运维团队希望在 Docker 或 Kubernetes 集群中调度 Agent 运行,并使用准入控制与告警处置手册(RUNBOOK-K8S)
- 想按计划定时或长周期运行贡献活动的维护者,通过 campaign-controller 扩展在操作者批准的策略下执行
如何安装或部署这个 Agent?
在全新的 macOS 或 Linux 机器上,两步即可启动:
curl -fsSL https://warren.run/install | sh
warren up安装脚本会在缺失时自动安装 Bun 和 warren CLI。warren up 检测机器的沙箱运行时,索要仍缺的一项凭据并启动服务器,浏览器会以已登录状态打开。
若以团队方式部署在 Linux Docker 主机上,可用 Compose:
git clone https://github.com/jayminwest/warren
cd warren
cp .env.example .env
$EDITOR .env # set two secrets plus WARREN_GIT_AUTHOR_NAME/EMAIL
docker compose up -d
docker compose logs warren | grep mintedOperatorToken然后打开 http://localhost:8080,粘贴铸造的令牌,连接 GitHub 仓库即可。
如何使用这个 Agent?
启动后,在 Web UI 中连接 GitHub、选择仓库并派发预填的入门运行。典型流程:仓库加任务 → 隔离工作负载(实时事件、花费与并发上限、转向与取消、恢复与清理)→ 推送分支 → 可选 PR。数据全部存放在 ~/.warren/,Ctrl-C 停止后用 warren up 重启。也可通过 HTTP API、CLI 或 TypeScript SDK 查询历史运行。运维路径包括 Docker 自托管指南、Kubernetes 运维手册(docs/RUNBOOK-K8S.md)与带注释的 .env.example 环境参考。
这个 Agent 有哪些优点和局限?
- 数据主权明确:代码、模型凭据、计算与运行历史全部留在操作者控制的基础设施上
- 完整生命周期由软件保证:watchdog 找回丢失的进程/Pod,销毁前抢救工作,核心承诺是推送的工作分支
- 三种运行时(local/docker/k8s)实现同一生命周期,
warren up自动探测,迁移拓扑无需改变运行模型 - 自带完整可观测性面:实时事件流、成本与令牌统计、HTTP API + OpenAPI、CLI、Web UI 和 TypeScript SDK
- 信任模型刻意受限:一个部署只服务一个操作者或可信团队,单一 bearer 凭据,无命名用户、RBAC 或按用户归因
- 需要自建基础设施(本机、Docker 主机或 K8s 集群),不是托管 SaaS;团队级部署涉及 Compose 密钥配置或集群运维
- pre-1.0(0.19.3),Forge 支持以 GitHub 为主,GitLab 与 Azure DevOps 需启用 WARREN_FORGE
- 需要模型凭据(订阅或 API key)与 GitHub App/静态令牌才能实际运行 Agent 任务
这个 Agent 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Warren 当前 | 76 · 表现良好 | 自托管服务免费 + 模型费 | ★ 503 | 2 天前 | TypeScript | Claude Code |
| Coder — 自托管云端开发环境与 AI 编码代理平台 | 62 · 存在缺口 | 自托管服务免费版 + 付费版 | ★ 17k | 今天 | Go | OpenAI API · Claude API |
| Codeg 多智能体协作编程工作台 | 45 · 缺口较多 | 桌面应用免费 + 模型费 | ★ 4k | 今天 | Rust | Codex · Claude Code · OpenAI API · Claude API |
| Kandev | 74 · 存在缺口 | 命令行工具免费 + 模型费 | ★ 974 | 今天 | Go | Codex · Claude Code |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
SECURITY.md 详述了最小权限设计:run 级回调令牌、沙箱不持操作员令牌、凭据 0600 存储、仓库代码不进控制面,给满分;扣分点在依赖安全(仅列依赖清单,无锁文件审计或漏洞缓解证据)与回滚(只有 salvage/watchdog 描述,无撤销已推送变更的机制);共享无过期令牌与无 RBAC 是文档自认的信任边界限制。
文档与配置互相一致(0.19.3 贯穿 README 与 package.json,lint 有版本同步脚本),给 3;依赖可用性给 2,因 Bun、Postgres、可选 forge 均有说明但锁定策略未见;失败信息给 2,warren doctor、boot fails loud、401 处理有据,但错误路径覆盖不完整。
受众与边界描述极其明确(单人/受信小队、无 RBAC、自托管),给 3;运行环境矩阵(local/docker/k8s、macOS/Linux)完整;触发精度只给 2,因运行时自动探测与 agent 调度选择逻辑仅在文档层面描述,未见实现细节。
信息架构(README→docs→RUNBOOK→OpenAPI)与安装说明非常完整,给 3;已知限制一节坦诚列出共享令牌、无 RBAC、pre-1.0;扣分点:无独立 CHANGELOG 文件证据、命名含 wr/warren 双入口、维护响应时间仅为承诺且发布者未经验证。
输出可用性强:推送分支 + 可选 PR、HTTP API/SDK/UI/CLI 多通道,给 3;边际价值清晰(终端会话→可观测工作负载);成本收益给 2,因有 spend caps 但自托管运维成本与资源占用无量化证据。
文档用 warren-xxxx 标识符将声明回链到具体变更,可追溯性尚可(2);跨源印证给 1,因 CI 徽章、GKE 实际运行、app.warren.run 公开实例等关键声明无法在提供文件内验证;事实与推断区分尚可,测试声明明示未经执行。
- 共享操作员令牌无过期、无作用域、无独立吊销,泄露即等同完全接管,务必置于身份代理之后。
- docker 运行时把 Docker socket 挂载进控制面容器,等同 root 权限,绝不可暴露给 agent 容器或外部网络。
- WARREN_AUTH=public 会向未认证访客暴露运行记录投影,仅在所有注册仓库与提示词都可公开时启用。
- 隔离不等于安全:在不受信仓库代码上运行仍可能带凭据与网络访问,派发前需审查运行时能力。
- 无用户级归因与回滚机制,团队共享部署时操作不可追责、误推送分支需靠 Git 手工恢复。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
发布说明摘录
The hardening patch. Local runs get a narrowed git-metadata sandbox, the run-scoped API token leaves every sandbox, and a batch of community fixes closes reap, dispatch, and stream gaps. Adds the GitLab forge arm, automatic-run admission limits, and stalled-turn detection. Added - Automatic run admission (#1297). WARREN_AUTOMATIC_MAX_CONCURRENT_RUNS (default 1) caps non-terminal automatic runs per instance: cron, scheduled seeds, the CI fixer, and plan-run coordination. WARREN_AUTOMATIC_RUN_WINDOW (HH:MM-HH:MM@IANA/Zone) limits automatic dispatch and retries to a local …在 GitHub 查看 ↗ -
发布说明摘录
The auto-merge release. A project can now let warren arm GitHub auto-merge on the PRs it opens, with one pr.autoMerge block in .warren/config.yaml and a fail-closed policy that keeps protected paths in front of a human. That replaces the per-repo auto-merge.yml workflow and its secrets. The feature is off until a project opts in. The rest of the release is reliability work from three weeks of dogfood and contributor reports: a poison event can no longer kill a healthy run, harness files stay out of run branches, the judge stops wasting …在 GitHub 查看 ↗ -
发布说明摘录
The upstream-loop release. The campaign controller closes its response loop (Phase 3, pl-096b): it reads review-bot findings, checks, and merge outcomes on the PRs it opened and turns them into bounded follow-up runs, body refreshes, and comment replies, each behind its own policy flag. Warren core learned to dispatch a run onto an existing branch to serve that loop. Azure DevOps arrived on both seams at once as the second in-core forge and the second external tracker. The dogfood deployment moved from Supabase to in-cluster Postgres with …在 GitHub 查看 ↗
常见问题
Warren 本身收费吗?
它支持哪些编码 Agent?
运行失败或进程丢失会怎样?
多人团队怎么使用权限?
必须用 GitHub 吗?
WARREN_FORGE 启用。