Vigil 多智能体终端编排器

在原生终端中组织管理者与工作节点,让任务向下分派、结果逐级汇总。

Star 数
★ 28
最近更新
29 天前
License
GPL-3.0
主语言
Swift

30 秒速览

运行形态
桌面应用
可在哪里用
通用 · 跨平台Codex · Claude Code
费用
软件免费,模型调用费用自付
上手难度
中 · 需要几步配置
开始前需要
macOS 14 或更高版本Apple Silicon至少安装一个代理 CLI:Claude Code、Codex 或 OpenCode从源码构建时的 Xcode 26.2 和 Swift 6.2.3Shell / 命令行本地文件系统MCP Server
典型场景
同时处理多个独立 issue 的开发者,可让根管理者为各 issue 创建工作节点,并由子管理者继续拆分复杂任务。
不适合
  • 使用 Windows、Linux 或 Intel Mac 的开发者
  • 需要图形化设置界面、不愿编辑 JSON 配置的用户
  • 无法接受 GPL-3.0 开源许可条款的组织

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

Vigil 是一款面向 macOS 的原生多智能体终端应用,可将 Claude Code、Codex 和 OpenCode 组织成由管理者驱动的树形结构。每个节点运行真实的智能体 CLI 和原生 TUI,并在托管 PTY 中保留完整会话,而不是由应用代替用户处理输入或权限确认。根管理者和子管理者通过 MCP 暴露的 spawn、send、kill 与 report 操作分派任务、传递消息和收集结果,工作节点则将摘要逐级上报。SessionStore 以 Command、Effect 和单向数据流管理状态,跨子树通信必须经过最低共同祖先,从结构上避免循环通信。应用把事件流和各节点终端记录保存在本机,支持只读回放及通过各 CLI 的原生恢复机制继续会话;它适合希望并行使用多个编码智能体、同时接受 Apple Silicon 与 macOS 14+ 限制的开发者。

用户打开项目、选择已检测到的 Claude Code、Codex 或 OpenCode 条目,并在中央原生终端中向根管理者输入任务。Vigil 在托管 PTY 中启动 CLI;根节点可调用 MCP 的 spawn、send 和 kill,子管理者还可调用 report,叶子工作节点仅获得 report。管理者可继续生成子管理者或工作节点,任务细节沿树向下传递,完成结果以摘要形式逐级返回;跨子树消息通过最低共同祖先路由。所有状态变更以 Command 进入单一 SessionStore,并以 Effect 离开,界面只读取该存储。应用把编排事件流与每个节点的 transcript 写入 ~/Library/Application Support/Vigil/sessions/<id>/,可重建历史树、只读查看完整记录,并通过 claude --resume、codex resume 或 opencode --session 恢复。代理注册、角色、提示词、运行时和外观配置分别保存在 ~/.config/vigil/ 下的 JSON 文件中。

  1. 同时处理多个独立 issue 的开发者,可让根管理者为各 issue 创建工作节点,并由子管理者继续拆分复杂任务。
  2. 已经分别使用 Claude Code、Codex 或 OpenCode 的团队,可在同一棵树中混用这些 CLI,同时保留每种工具自己的 TUI 与会话机制。
  3. 需要审计智能体执行过程的维护者,可回放已完成会话的树结构和任意节点的完整终端记录。
  4. 担心长任务撑大根上下文的用户,可让细节留在下层节点,只把完成摘要逐级汇总给管理者。
  5. 需要明确代码隔离策略的项目,可选择共享项目并约定文件所有权,或自行使用 git worktree,而不接受应用强制的隐藏分支方案。

如何安装或部署这个 Agent?

推荐安装方式:从 https://github.com/butterlatte-zhang/vigil/releases/latest/download/Vigil-macos.dmg 下载 DMG,打开后将 Vigil 拖入 Applications;首次启动时如 macOS 提示来自已识别开发者,选择“打开”。运行条件为 macOS 14 或更高版本、Apple Silicon,以及 PATH 中至少一个可用的 claude、codex 或 opencode CLI。

源码运行需要 Xcode 26.2 与 Swift 6.2.3:

git clone https://github.com/butterlatte-zhang/vigil.git
cd vigil/app
swift run Vigil

文档没有规定 Vigil 自身所需的账号或凭据;所选智能体 CLI 的安装和可用性属于前置条件。

如何使用这个 Agent?

首次启动时,Vigil 按 claude、codex、opencode 的顺序探测 PATH,并用检测结果初始化代理注册表;若一个也未找到,启动器会显示警告。添加或打开一个项目,在启动器中选择可用的代理,然后在中央终端输入任务,根管理者即开始工作。通过右上角节点树查看和切换节点,也可以直接进入任一节点的原生 TUI 接管操作。完成的会话会按项目保留在侧栏中:单击进入只读回放,按 Enter 则使用对应 CLI 的原生恢复命令继续会话。要调整代理、角色或默认模型,可编辑 ~/.config/vigil/agents.json、roles.json 和 launcher.json;运行时与外观设置分别位于 runtime.json 和 appearance.json。

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

优点
  • 采用管理者—工作节点树,而非一组平级终端;任务细节向下传递、摘要向上汇总,可控制高层管理者的上下文规模。
  • 同一棵树可混用 Claude Code、Codex 和 OpenCode,并保留各 CLI 的原生 TUI、权限流程及会话恢复方式。
  • 所有节点的 transcript 与 spawn、send、kill、report 事件都会持久化,可重建树并审计每个节点实际执行的内容。
  • MCP 工具按节点身份限制:根管理者、子管理者和叶子节点获得不同操作集合,编排动作由应用实际执行。
  • 配置完全采用本地 JSON 文件,且支持共享项目或 git worktree,不强制隐藏的沙箱、分支或模型选择策略。
局限
  • 只支持 macOS 14+ 与 Apple Silicon,不能按文档直接部署到 Windows、Linux 或 Intel Mac。
  • 产品仍处于 1.0 之前的活跃开发阶段,文档明确提示存在粗糙之处,配置结构和默认值可能继续变化。
  • 必须预先安装至少一个受支持的智能体 CLI,Vigil 不提供独立的模型运行环境;CLI 未被检测到时不会出现在可用列表中。
  • 树结构采用单父节点路由和级联终止,不适合需要任意节点直接互联的开放网状协作模式。
  • 没有图形化设置面板,代理路径、环境变量、模型、角色和运行参数都需要编辑 JSON 文件。
  • GPL-3.0-or-later 可能不符合部分组织的分发要求;文档另行提供商业许可入口。

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

与手工打开多个终端、逐个粘贴任务并在人与智能体之间搬运结果相比,Vigil 自动维护任务树和消息回传。与一组平级、各自携带完整上下文的并排智能体会话相比,它强调纵向编排、单父节点路由和逐级摘要;代价是协作拓扑固定为树,而不是开放网状结构。

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

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
Vigil 多智能体终端编排器 当前 69 · 存在缺口 桌面应用免费 + 模型费 ★ 28 29 天前 Swift Codex · Claude Code
Open Swarm 智能体集群控制台 40 · 缺口较多 — ★ 827 25 天前 JavaScript Claude API
pitwall 70 · 存在缺口 — ★ 18 1 天前 Go Codex · Claude Code
zerostack 57 · 缺口较多 命令行工具免费 + 模型费 ★ 1.7k 2 天前 Rust OpenAI API · Claude API

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
存在缺口
69/ 100 五分制 3.5 / 5
本评测基于 2026年9月17日 的源码;此后该项目发布了 1 个正式版本,尚未复审。分数与结论只代表评测时的版本。 最近版本 ↓
信任安全 14/29
可靠稳定 8/14
适用触发 16/18
规范维护 14/18
有效结果 12/13
证据核验 5/8
查看各维度的扣分理由
信任安全14 / 29 · 2.4/5

README 明确说明按身份限制 MCP 工具:根管理器拥有 spawn/send/kill,子管理器增加 report,叶节点仅有 report;同时声明权限交由各原生 CLI,未检测到的 CLI 不展示,消息无法投递时会报错。配置、会话事件和完整终端记录的本地路径也有说明,因此最小权限、确认路径、数据流和外部效果具备实质支持。扣分在于:agents.json 可存放密钥和环境变量,却没有文件权限、加密、脱敏、保留或清理政策;未提供依赖锁定、安全扫描或 SBOM 证据,工作流 action 仅按版本标签引用;kill/cascade-kill 等编排副作用的逐次确认规则不清楚;回放和恢复只能恢复会话,不能撤销代理已修改的文件或其他外部效果;发布者身份未知,作者及安全联系渠道也未在材料中明确。

可靠稳定8 / 14 · 2.9/5

材料说明 CLI 探测、缺失依赖警告、直接进程启动、原生恢复命令和消息投递失败行为,并提供按 push/PR 运行的确定性 CI 以及发布后的 macOS 14/15 签名和启动检查,因此依赖可用性与失败可见性处理尚可。主要扣分是源码叙述存在明显不一致:README 强调 Vigil 永不代替用户输入或审批,但机制测试展示并描述自动截获、决策和注入批准,Claude hook 也实现自动批准/拒绝;这些文件可能是历史性实验,但材料没有标注其现行地位。错误信息只有部分示例,也没有展示完整恢复策略。

适用触发16 / 18 · 4.4/5

目标用户、并行编码代理场景、树形编排与开放网状结构之间的取舍均阐述清楚。支持 Claude Code、Codex、OpenCode 混用,角色、模型、参数、环境、提示词、运行时及项目级覆盖均可配置;工具能力边界和单父路由也很明确,故受众、能力边界和 macOS 环境适配证据充分。trigger_precision 扣分是因为材料主要描述结构性路由和角色权限,未完整说明代理在什么语义条件下应 spawn、send、kill 或 report,也未给出误触发防护规则。

规范维护14 / 18 · 3.9/5

README 的功能、安装、配置、架构、快捷键、回放、状态、贡献和许可组织良好;DMG 与源码安装步骤、macOS/芯片/工具链/CLI 前提都很具体。GPL-3.0-or-later 声明有完整 GPLv3 LICENSE 支持。扣分在于项目明确处于 pre-1.0 且配置和默认值仍会变化,未提供迁移承诺;示例丰富但没有独立 FAQ 或系统化故障排查;给出的材料没有版本化变更日志;贡献入口存在,但具体维护者、支持承诺、安全报告渠道和发布责任并不清楚。

有效结果12 / 13 · 4.6/5

原生 TUI、实时树、汇总上卷、历史回放、节点恢复、通知导航和文件式配置能形成可直接使用的编排工作流。相较手动在多个终端间复制消息,层级路由、混合 CLI 和审计记录提供明确增量价值。成本收益扣分是因为多代理会放大模型调用、上下文和人工监督成本,发布验证注释也承认 macOS runner 成本较高;材料没有提供资源上限、预算控制、性能数据或规模边界。

证据核验5 / 8 · 3.1/5

README 的若干关键主张能对应到具体配置路径、工具矩阵、持久化目录、CI 和发布验证工作流;测试文件也展示 PTY 审批机制及结构化 Claude hook,形成一定跨文件印证。扣分在于所给材料缺少核心 Swift 实现、测试断言和测试结果,无法逐项追踪诸如单向状态流、最低共同祖先路由、完整历史重建或消息诚实性等主张。营销性陈述与已证事实未始终清晰分开,而测试所示自动审批行为与当前 README 定位之间也未解释。

风险与缓解建议
  • 项目为 pre-1.0,README 明示配置接口和默认值仍会变化;生产采用前应固定版本并审查迁移影响。
  • agents.json 可包含代理密钥、基础 URL 和其他环境变量;材料未说明加密、权限收紧或日志脱敏,应将其视为敏感明文配置。
  • 会话保存完整终端记录和编排事件,可能包含源代码、提示词、密钥或命令输出;材料未给出保留、删除和脱敏政策。
  • README 的“绝不代替用户输入”与测试中的自动审批和按键注入不一致;采用前应确认这些机制是否进入生产构建及其默认状态。
  • 回放和恢复不是事务回滚,无法撤销代理对仓库、网络服务或其他外部系统造成的更改。
  • 仅支持 Apple Silicon 上的 macOS 14+;至少还需自行安装、认证并维护一个受支持的代理 CLI。
证据充分度:低 评估于 2026年9月17日 审查版本 5e69404f87c0 评估后仓库已有新提交,评分可能未覆盖最新改动
查看完整评分方法 →

最近版本

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

  1. v0.1.7 Vigil 0.1.7
    发布说明摘录
    Fixed - A spawned Codex worker's first prompt no longer sits unsubmitted in its composer. Vigil typed the task, waited 150 ms and pressed Enter without ever checking that the Enter took. Codex started on a fresh CODEX_HOME (every Vigil node gets one) draws its composer almost immediately but swallows an Enter that arrives in the first seconds of startup, so the pasted task stayed in the box until a human pressed Enter. Injection is now closed-loop: Vigil waits for the pasted text to land and stop changing, presses Enter, confirms the box emptied, and if not re-presses Enter with back …
    在 GitHub 查看 ↗
  2. v0.1.6 Vigil 0.1.6
    发布说明摘录
    Fixed - Switching to a worker or sub-manager no longer fills Claude Code's input box with an old prompt. A node that was born in the background gets its terminal surface reconstructed from the parser's screen state on first select. That reconstruction carried the alternate screen but not the mouse-tracking, focus-reporting, cursor-key and keypad modes the agent had enabled, so the surface believed mouse tracking was off while the alternate screen was on. In that state the terminal converts every scroll-wheel tick into an Up/Down cursor key, and Claude Code reads Up as history recall. T …
    在 GitHub 查看 ↗
  3. v0.1.5 Vigil 0.1.5
    发布说明摘录
    Fixed - Report watchdog no longer nags workers that are legitimately waiting. A worker whose turn ended with background subagents still running (claude's turn_duration line reports pendingBackgroundAgentCount > 0) is no longer reminded to report; the decision is also deferred by a short grace so it reads the transcript line claude writes *after* the Stop hook fires. In an audit of 142 local sessions about 30% of reminders hit exactly this state and produced "still in progress" filler in the manager's context. …
    在 GitHub 查看 ↗

常见问题

Vigil 会替我确认权限或操作智能体界面吗?
不会。中央区域是真实终端,也是唯一输入界面;审批、对话和方向调整都通过各 CLI 自己的 TUI 与权限机制完成。
如果某个智能体 CLI 没有安装或消息无法送达,会怎样?
未检测到的 CLI 不会显示为可用;无法投递的消息会明确报错,而不会被标记成已发送。若没有检测到任何受支持 CLI,启动器会显示警告。
Vigil 会自动选择模型吗?
不会。模型按 claude、codex 和 opencode 家族分别命名;如果配置链中没有模型,Vigil 不传递模型参数,由 CLI 使用自己的默认值。
会话结束或应用退出后,记录会丢失吗?
不会按文档描述丢失。事件流和节点 transcript 保存在本机;静默会话可被回收进程,但仍能只读回放或通过相应 CLI 的原生机制恢复。
它会强制使用 git worktree 或特定分支策略吗?
不会。节点可以共享同一项目并明确文件所有权,也可以使用 git worktree;隔离策略由用户选择。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

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

相关 Agents