Trinity 三层委托 + Signal-driven 轮询
Trinity 架构:Strategist 以用户身份自主拆解/监控/验收。Lieutenant (dispatch.mjs) 自动调度 Builder。Signal-driven 轻量轮询保护上下文。Codex / Claude Code 混合引擎,实时 Dashboard。
FEATURES
Commander(用户) → Strategist(你) → Lieutenant(dispatch.mjs) → Builder(Codex/Claude)。Strategist 以用户身份自主决策。
通过 cat signal (~20 tokens) 获取状态。RUNNING/COMPLETED/ATTENTION/FAILED/FATAL 五种信号。保护上下文不被爆。
每个任务可独立选择 Codex 或 Claude Code 引擎。Task Spec 中 engine 字段指定,未指定则继承全局默认值。
POLLING → EVALUATING → DECIDING → ACTING。检测到完成立即评估+决策+行动,从不停止等待指令。
--resume 恢复上次运行,--retry-failed 仅重跑失败任务。Lieutenant 内置 429/超时自动重试。
DAG 依赖图(SVG)、Agent 事件流、Token 用量追踪、进度条。默认自动打开浏览器。
启动前验证 API Key、Git 工作区干净度。问题前置暴露。
REFERENCE
dispatch.mjs — 任务调度
| 命令 | 说明 | 示例 |
|---|---|---|
--dry-run | 预览执行计划 | node scripts/dispatch.mjs ./tasks/ --dry-run |
--parallel | 并行调度 | node scripts/dispatch.mjs ./tasks/ --parallel --approval-mode full-auto |
--engine | 默认引擎(任务可覆盖) | node scripts/dispatch.mjs ./tasks/ --engine claude |
--resume | 从断点恢复 | node scripts/dispatch.mjs ./tasks/ --resume |
--resume --retry-failed | 仅重试失败 | node scripts/dispatch.mjs ./tasks/ --resume --retry-failed |
--status | 查看状态 | node scripts/dispatch.mjs ./tasks/ --status |
轻量级状态读取 (保护上下文)
| 命令 | 说明 | 示例 |
|---|---|---|
signal | ~20 tokens,首选 | cat {taskDir}/.dispatch-logs/{runId}/signal |
digest.txt | ~80 tokens,状态变更时 | cat {taskDir}/.dispatch-logs/{runId}/digest.txt |
status.txt | ~500 tokens,需详细信息 | cat {taskDir}/.dispatch-logs/{runId}/status.txt |
summary.json | 完成后结构化报告 | cat {taskDir}/.dispatch-logs/{runId}/summary.json |
用户 (Commander) ─── 给出初始需求 + 约束 ─── 可随时介入
│
▼
你 (Strategist) ── 用户的战略代理 ── 拆解/监控/验收/决策
│
▼
Lieutenant (dispatch.mjs) ── 自动重试/恢复/调度
│
▼
Builder (Codex/Claude) ── 执行原子任务 ── 不做架构决策Strategist 行为准则:
用户需求 → Analyze → Decompose → Dispatch → Autonomous Loop
↓
全部成功 → 最终报告
部分失败 → resume --retry-failed
需要更多 → 规划下一批次 → Decompose读取 domain.md + AGENTS.md + 目录结构,产出需求分析摘要。
粒度阈值:
| 维度 | 阈值 | 超出则拆分 |
|---|---|---|
| 文件变更数 | ≤ 8 个文件 | 按模块边界拆 |
| 代码行数 | ≤ 500 行 | 按功能切片拆 |
| 依赖深度 | ≤ 2 层 | 先交付底层 |
| 验收点 | ≤ 3 个 | 功能过于复杂 |
| 上下文复杂度 | ≤ 200 字 | 描述不清 = 范围太大 |
三种策略: 垂直切片 (Feature-based) | 水平分层 (Layer-based) | 契约先行 (Contract-first)
# 安装依赖
cd agent-task-orchestration && npm install
# 并行调度,全自动模式
node scripts/dispatch.mjs ./tasks/ --parallel --approval-mode full-auto
# 查询状态 (零开销)
cat ./tasks/.dispatch-logs/{runId}/signalLieutenant 自动处理 (无需 Strategist 介入):
ATTENTION token_budget_exceededSignal-driven 轮询协议:
1. cat signal
├─ RUNNING → sleep 60s → 回到 1
├─ COMPLETED → cat digest.txt → 进入 EVALUATING
├─ ATTENTION (failed) → cat digest.txt → 评估: retry/skip/report
├─ ATTENTION (token) → 决策: 等待/终止
├─ FAILED → cat digest.txt → 决策: resume/skip/report
└─ FATAL → cat digest.txt → 报告用户轮询节奏: 刚启动 30s → 运行中 60s → 接近完成 30s
上下文保护:
command_status 读终端输出state.json events 数组signal 文件 (~20 tokens)digest.txt (~80 tokens)| 检查项 | 何时执行 |
|---|---|
| 构建 | 每批次完成后 |
| Lint | 代码变更批次 |
| 测试 | 功能实现批次 |
| diff 范围 | 每批次完成后 |
审计/文档类批次可跳过构建检查。
| CLI 模式 | Codex approvalPolicy | Codex sandboxMode | Claude permissionMode |
|---|---|---|---|
| suggest | on-request | workspace-write | default |
| auto-edit | on-failure | workspace-write | acceptEdits |
| full-auto | never | workspace-write | bypassPermissions |
| 文档 | 用途 | 何时读取 |
|---|---|---|
| trinity-protocol.md | 三层委托完整规格 | 首次使用或决策不确定时 |
| task-decomposition.md | 拆解方法论深入指南 | Phase 2 |
| codex-patterns.md | Codex CLI 配置 | Phase 3 |
| quality-gate.md | 质量门禁模板 | EVALUATING 阶段 |
INSTALL