feat(org): add standard parallel v0.1 blueprint, dispatch rules, and acceptance checklist
This commit is contained in:
@@ -0,0 +1,158 @@
|
|||||||
|
# 标准并行 v0.1 实施蓝图
|
||||||
|
|
||||||
|
版本:v0.1
|
||||||
|
日期:2026-03-09
|
||||||
|
负责人:Val(提交谷老板拍板)
|
||||||
|
|
||||||
|
## 1) 目标与范围
|
||||||
|
|
||||||
|
### 目标
|
||||||
|
在不追求全角色一次性上线的前提下,先完成最小可用标准并行闭环:
|
||||||
|
|
||||||
|
**Helix(规划)→ Sentinel(审计)→ Anvil(执行)**
|
||||||
|
|
||||||
|
### 本期范围
|
||||||
|
- 角色实例化:Helix / Sentinel / Anvil
|
||||||
|
- 调度规则:路由、并发、门禁、失败升级
|
||||||
|
- 可观测:任务日志字段统一 + 每日摘要
|
||||||
|
|
||||||
|
### 非范围(后续迭代)
|
||||||
|
- 全角色实例化(Vector / Quanta / Bastion / Prism / Catalyst / Echo)
|
||||||
|
- 自动预算调优
|
||||||
|
- 自动策略学习
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2) 设计原则
|
||||||
|
|
||||||
|
1. **安全与可控 > 吞吐速度**
|
||||||
|
2. **先跑通闭环,再扩并发规模**
|
||||||
|
3. **默认可追溯(无日志即视为未执行)**
|
||||||
|
4. **高风险动作必须可上报、可暂停、可回滚**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3) 角色职责(v0.1)
|
||||||
|
|
||||||
|
## 3.1 Helix(Architect)
|
||||||
|
- 输入:用户意图/需求
|
||||||
|
- 产出:结构化任务单(目标、范围、步骤、风险、验收)
|
||||||
|
- 允许工具:read / web_search / web_fetch / memory_search / sessions_spawn / sessions_send
|
||||||
|
- 禁止:直接执行高风险动作(外发、不可逆变更)
|
||||||
|
|
||||||
|
## 3.2 Sentinel(Auditor)
|
||||||
|
- 输入:Helix 任务单
|
||||||
|
- 产出:PASS / SOFT_BLOCK / HARD_BLOCK(含审计理由)
|
||||||
|
- 审计维度:安全、逻辑、成本
|
||||||
|
- 允许工具:read / memory_search / session_status
|
||||||
|
- 禁止:直接执行工程动作
|
||||||
|
|
||||||
|
## 3.3 Anvil(Works)
|
||||||
|
- 输入:已放行任务单
|
||||||
|
- 产出:执行记录、产物、复验证据
|
||||||
|
- 允许工具:read / write / edit / exec / process
|
||||||
|
- 约束:未放行不得执行;失败必须先归档证据
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4) 调度链路与状态机
|
||||||
|
|
||||||
|
状态流:
|
||||||
|
|
||||||
|
Intake → Draft(Helix) → Audit(Sentinel) → Dispatch → Execute(Anvil) → Verify → Report → Archive
|
||||||
|
|
||||||
|
### 审计决策语义
|
||||||
|
- PASS:进入 Dispatch/Execute
|
||||||
|
- SOFT_BLOCK:补充信息后可重审
|
||||||
|
- HARD_BLOCK:直接回收并上报
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 5) 并发策略(v0.1)
|
||||||
|
|
||||||
|
- 全局并发上限:`3`
|
||||||
|
- 单角色并发上限:`2`
|
||||||
|
- 排队策略:优先级 + FIFO
|
||||||
|
- 优先级:urgent > high > normal > low
|
||||||
|
|
||||||
|
### 触发保护
|
||||||
|
- 任务队列长度 > 20:触发节流(只收不发)
|
||||||
|
- 任一角色连续失败 >= 2:自动降并发为 1,并上报
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 6) 门禁与升级规则
|
||||||
|
|
||||||
|
### 强制上报谷老板(任一命中)
|
||||||
|
- 对外发送
|
||||||
|
- 不可逆操作
|
||||||
|
- 隐私边界跨越
|
||||||
|
- 预算超阈
|
||||||
|
- 审计高不确定
|
||||||
|
|
||||||
|
### 双签规则(沿用组织约束)
|
||||||
|
- 生产级工程执行需满足:Sentinel + Bastion 双签
|
||||||
|
- v0.1 若 Bastion 未实例化:由 Val 代行安全签,并记录 `security_sign_proxy_by=Val`
|
||||||
|
|
||||||
|
### 失败处理
|
||||||
|
- 所有失败进入 Failure 模板:
|
||||||
|
- 失败阶段
|
||||||
|
- 根因定位
|
||||||
|
- 修复方案 A/B
|
||||||
|
- 回滚策略
|
||||||
|
- 是否升级
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 7) 可观测与日志规范
|
||||||
|
|
||||||
|
每个任务必须具备字段:
|
||||||
|
- task_id
|
||||||
|
- role
|
||||||
|
- status
|
||||||
|
- start_ts / end_ts
|
||||||
|
- input_summary
|
||||||
|
- tool_calls
|
||||||
|
- artifacts
|
||||||
|
- audit_decision
|
||||||
|
- risk_level
|
||||||
|
- token_cost
|
||||||
|
- failure_reason
|
||||||
|
- rollback_action
|
||||||
|
- final_report
|
||||||
|
|
||||||
|
建议落盘:`org/logs/tasks/YYYY-MM-DD/<task_id>.json`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 8) 验收标准(v0.1)
|
||||||
|
|
||||||
|
- [ ] 可并发处理 >= 3 条任务流且无串线
|
||||||
|
- [ ] 每条任务可追溯决策/执行/审计责任
|
||||||
|
- [ ] 任一失败可在 2 分钟内定位
|
||||||
|
- [ ] 高风险动作 100% 命中上报门禁
|
||||||
|
- [ ] 汇报格式统一:结论 + 证据 + 风险 + 选项
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 9) 实施节奏(3天)
|
||||||
|
|
||||||
|
### Day 1
|
||||||
|
- 角色配置定稿(Helix/Sentinel/Anvil)
|
||||||
|
- 工具白名单与禁止动作锁定
|
||||||
|
|
||||||
|
### Day 2
|
||||||
|
- 调度器规则落地
|
||||||
|
- 门禁/升级逻辑接入
|
||||||
|
|
||||||
|
### Day 3
|
||||||
|
- 日志与看板打通
|
||||||
|
- 并发压测 + 验收
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 10) v0.2 预告(可选)
|
||||||
|
|
||||||
|
- 新增 Vector(调度实例化)
|
||||||
|
- 新增 Quanta(预算硬阈值自动刹车)
|
||||||
|
- 新增 Bastion/Prism(安全签与失败收敛实例化)
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
# 标准并行 v0.1 验收清单
|
||||||
|
|
||||||
|
日期:2026-03-09
|
||||||
|
|
||||||
|
## A. 并发能力
|
||||||
|
- [ ] 同时提交 3 个任务,全部进入状态机
|
||||||
|
- [ ] 无 task_id 冲突
|
||||||
|
- [ ] 无跨任务日志串线
|
||||||
|
|
||||||
|
## B. 路由正确性
|
||||||
|
- [ ] 新任务先到 Helix
|
||||||
|
- [ ] Helix 完成后进入 Sentinel
|
||||||
|
- [ ] Sentinel PASS 才可进入 Anvil
|
||||||
|
- [ ] SOFT_BLOCK 能回流 Helix
|
||||||
|
- [ ] HARD_BLOCK 直接触发 Val 汇报
|
||||||
|
|
||||||
|
## C. 审计与门禁
|
||||||
|
- [ ] Sentinel 每次都有明确审计结论
|
||||||
|
- [ ] 外发动作均触发上报
|
||||||
|
- [ ] 不可逆动作均触发上报
|
||||||
|
- [ ] 预算超阈均触发上报
|
||||||
|
|
||||||
|
## D. 失败处理
|
||||||
|
- [ ] 任一失败均记录阶段与根因
|
||||||
|
- [ ] 任一失败均有修复 A/B
|
||||||
|
- [ ] 连续两次失败自动升级
|
||||||
|
- [ ] 回滚动作可复验
|
||||||
|
|
||||||
|
## E. 可观测性
|
||||||
|
- [ ] 每任务日志字段完整(task_id/role/status/tool_calls/artifacts...)
|
||||||
|
- [ ] 每条任务有最终报告
|
||||||
|
- [ ] 2 分钟内可定位失败根因
|
||||||
|
|
||||||
|
## F. 汇报质量
|
||||||
|
- [ ] 汇报包含:结论 / 证据 / 风险 / 选项
|
||||||
|
- [ ] 建议项明确且可执行
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 验收结论
|
||||||
|
- 结果:PASS / PARTIAL / FAIL
|
||||||
|
- 结论说明:
|
||||||
|
- 待修复项:
|
||||||
|
- 下阶段建议:
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
{
|
||||||
|
"version": "v0.1",
|
||||||
|
"updated_at": "2026-03-09T11:40:00+08:00",
|
||||||
|
"global": {
|
||||||
|
"max_concurrency": 3,
|
||||||
|
"queue_limit": 20,
|
||||||
|
"failure_streak_degrade_to": 1
|
||||||
|
},
|
||||||
|
"roles": {
|
||||||
|
"helix": {
|
||||||
|
"stage": "draft",
|
||||||
|
"max_concurrency": 2,
|
||||||
|
"allowed_tools": ["read", "web_search", "web_fetch", "memory_search", "sessions_spawn", "sessions_send"],
|
||||||
|
"forbidden_actions": ["external_send", "irreversible_change"]
|
||||||
|
},
|
||||||
|
"sentinel": {
|
||||||
|
"stage": "audit",
|
||||||
|
"max_concurrency": 2,
|
||||||
|
"allowed_tools": ["read", "memory_search", "session_status"],
|
||||||
|
"audit_decisions": ["PASS", "SOFT_BLOCK", "HARD_BLOCK"]
|
||||||
|
},
|
||||||
|
"anvil": {
|
||||||
|
"stage": "execute",
|
||||||
|
"max_concurrency": 2,
|
||||||
|
"allowed_tools": ["read", "write", "edit", "exec", "process"],
|
||||||
|
"requires_audit": "PASS"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"routing": [
|
||||||
|
{ "when": "new_task", "to": "helix" },
|
||||||
|
{ "when": "helix.done", "to": "sentinel" },
|
||||||
|
{ "when": "sentinel.PASS", "to": "anvil" },
|
||||||
|
{ "when": "sentinel.SOFT_BLOCK", "to": "helix" },
|
||||||
|
{ "when": "sentinel.HARD_BLOCK", "to": "val.report" }
|
||||||
|
],
|
||||||
|
"escalation": {
|
||||||
|
"must_escalate_if": [
|
||||||
|
"external_send",
|
||||||
|
"irreversible_action",
|
||||||
|
"privacy_boundary_crossing",
|
||||||
|
"budget_threshold_exceeded",
|
||||||
|
"audit_uncertainty_high"
|
||||||
|
],
|
||||||
|
"double_sign_rule": {
|
||||||
|
"required": ["sentinel", "bastion"],
|
||||||
|
"proxy_if_bastion_missing": "val"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user