Vigil 多智能体终端编排器
在原生终端中组织管理者与工作节点,让任务向下分派、结果逐级汇总。
按维度查看评分与理由
README 明确说明按身份限制 MCP 工具:根管理器拥有 spawn/send/kill,子管理器增加 report,叶节点仅有 report;同时声明权限交由各原生 CLI,未检测到的 CLI 不展示,消息无法投递时会报错。配置、会话事件和完整终端记录的本地路径也有说明,因此最小权限、确认路径、数据流和外部效果具备实质支持。扣分在于:agents.json 可存放密钥和环境变量,却没有文件权限、加密、脱敏、保留或清理政策;未提供依赖锁定、安全扫描或 SBOM 证据,工作流 action 仅按版本标签引用;kill/cascade-kill 等编排副作用的逐次确认规则不清楚;回放和恢复只能恢复会话,不能撤销代理已修改的文件或其他外部效果;发布者身份未知,作者及安全联系渠道也未在材料中明确。
材料说明 CLI 探测、缺失依赖警告、直接进程启动、原生恢复命令和消息投递失败行为,并提供按 push/PR 运行的确定性 CI 以及发布后的 macOS 14/15 签名和启动检查,因此依赖可用性与失败可见性处理尚可。主要扣分是源码叙述存在明显不一致:README 强调 Vigil 永不代替用户输入或审批,但机制测试展示并描述自动截获、决策和注入批准,Claude hook 也实现自动批准/拒绝;这些文件可能是历史性实验,但材料没有标注其现行地位。错误信息只有部分示例,也没有展示完整恢复策略。
目标用户、并行编码代理场景、树形编排与开放网状结构之间的取舍均阐述清楚。支持 Claude Code、Codex、OpenCode 混用,角色、模型、参数、环境、提示词、运行时及项目级覆盖均可配置;工具能力边界和单父路由也很明确,故受众、能力边界和 macOS 环境适配证据充分。trigger_precision 扣分是因为材料主要描述结构性路由和角色权限,未完整说明代理在什么语义条件下应 spawn、send、kill 或 report,也未给出误触发防护规则。
README 的功能、安装、配置、架构、快捷键、回放、状态、贡献和许可组织良好;DMG 与源码安装步骤、macOS/芯片/工具链/CLI 前提都很具体。GPL-3.0-or-later 声明有完整 GPLv3 LICENSE 支持。扣分在于项目明确处于 pre-1.0 且配置和默认值仍会变化,未提供迁移承诺;示例丰富但没有独立 FAQ 或系统化故障排查;给出的材料没有版本化变更日志;贡献入口存在,但具体维护者、支持承诺、安全报告渠道和发布责任并不清楚。
原生 TUI、实时树、汇总上卷、历史回放、节点恢复、通知导航和文件式配置能形成可直接使用的编排工作流。相较手动在多个终端间复制消息,层级路由、混合 CLI 和审计记录提供明确增量价值。成本收益扣分是因为多代理会放大模型调用、上下文和人工监督成本,发布验证注释也承认 macOS runner 成本较高;材料没有提供资源上限、预算控制、性能数据或规模边界。
README 的若干关键主张能对应到具体配置路径、工具矩阵、持久化目录、CI 和发布验证工作流;测试文件也展示 PTY 审批机制及结构化 Claude hook,形成一定跨文件印证。扣分在于所给材料缺少核心 Swift 实现、测试断言和测试结果,无法逐项追踪诸如单向状态流、最低共同祖先路由、完整历史重建或消息诚实性等主张。营销性陈述与已证事实未始终清晰分开,而测试所示自动审批行为与当前 README 定位之间也未解释。
- 项目为 pre-1.0,README 明示配置接口和默认值仍会变化;生产采用前应固定版本并审查迁移影响。
- agents.json 可包含代理密钥、基础 URL 和其他环境变量;材料未说明加密、权限收紧或日志脱敏,应将其视为敏感明文配置。
- 会话保存完整终端记录和编排事件,可能包含源代码、提示词、密钥或命令输出;材料未给出保留、删除和脱敏政策。
- README 的“绝不代替用户输入”与测试中的自动审批和按键注入不一致;采用前应确认这些机制是否进入生产构建及其默认状态。
- 回放和恢复不是事务回滚,无法撤销代理对仓库、网络服务或其他外部系统造成的更改。
- 仅支持 Apple Silicon 上的 macOS 14+;至少还需自行安装、认证并维护一个受支持的代理 CLI。
这个 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 文件中。
- 同时处理多个独立 issue 的开发者,可让根管理者为各 issue 创建工作节点,并由子管理者继续拆分复杂任务。
- 已经分别使用 Claude Code、Codex 或 OpenCode 的团队,可在同一棵树中混用这些 CLI,同时保留每种工具自己的 TUI 与会话机制。
- 需要审计智能体执行过程的维护者,可回放已完成会话的树结构和任意节点的完整终端记录。
- 担心长任务撑大根上下文的用户,可让细节留在下层节点,只把完成摘要逐级汇总给管理者。
- 需要明确代码隔离策略的项目,可选择共享项目并约定文件所有权,或自行使用 git worktree,而不接受应用强制的隐藏分支方案。
这个 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?
推荐安装方式:从 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 与同类方案有什么区别?
与手工打开多个终端、逐个粘贴任务并在人与智能体之间搬运结果相比,Vigil 自动维护任务树和消息回传。与一组平级、各自携带完整上下文的并排智能体会话相比,它强调纵向编排、单父节点路由和逐级摘要;代价是协作拓扑固定为树,而不是开放网状结构。