# 成本与并发预算 > 「项目最多花多少 token / 多少钱 / 跑多久 / 几个 agent 并发」的数字版。预算守护机制在 [P-7](sdd-process.html),本页给具体数字。 ## ① 单次调用 Token 估算 | Agent | 模型 | 输入 ≈ | 输出 ≈ | 典型 / 单次调用 | 备注 | | --- | --- | --- | --- | --- | --- | | PM | Sonnet 4.6 | 4K (memory + prd) | 8K (新 PRD 章节 HTML) | **12K** | incremental ≈ 5K | | Architect generate | Opus 4.7 | 15K (PRD + sdd + memory) | 20K (4 MVCP 页 + JSON) | **35K** | 含全套 SDD | | Architect patch | Opus 4.7 | 8K | 3K | **11K** | 仅改一段 | | Coder implement | Sonnet 4.6 | 6K (sdd + upstream contracts) | 4K (code + contract.json) | **10K** | per Unit | | Coder retry | Sonnet 4.6 | 8K (含 history) | 3K (差量 patch) | **11K** | 反思加 ~2K | | Tester | Sonnet 4.6 | 5K | 4K (vitest spec + result) | **9K** | per Unit | | Integrator | Sonnet 4.6 | 8K (units + spec) | 3K | **11K** | L2 单轮 | | BugTriager | **Opus 4.7** | 12K (含 code + logs) | 3K (triage.json) | **15K** | 归因质量决定 L2 收敛 | ## ② 典型项目总成本估算 ### 2.1 小项目(TODO API · demo) 3 个 Unit · 1 个 PRD rev · 1-2 个 L2 round。 | 调用 | 次数 | Token | | --- | --- | --- | | PM init | 1 | 12K | | Architect generate | 1 | 35K | | Coder × 3 unit × 1.5 attempt(平均) | 4.5 | 45K | | Tester × 3 unit × 1.5 attempt | 4.5 | 40K | | Integrator | 1 | 11K | | BugTriager(如失败 1 次) | 0.5 | 8K | | **合计** | 14.5 | **≈ 150K tokens** | ### 2.2 中项目(Auth + TODO + Profile · 5 feature) 8 个 Unit · 2 个 PRD rev · 2 个 L2 round。 | 调用 | 次数 | Token | | --- | --- | --- | | PM init + incremental × 1 | 2 | 17K | | Architect generate + patch × 1 | 2 | 46K | | Coder × 8 unit × 2 attempt | 16 | 165K | | Tester × 8 unit × 2 attempt | 16 | 145K | | Integrator × 2 | 2 | 22K | | BugTriager × 1 | 1 | 15K | | **合计** | 39 | **≈ 410K tokens** | ### 2.3 默认 token_budget = 5M 的隐含假设 5M 是单项目预算上限,能撑: - ~33 个小项目(150K each) - ~12 个中项目(410K each) - 1 个大型迭代(多人多反馈、20+ Unit) 到达 80% 预算时发 SSE warning;100% 直接挂起。 ## ③ 美元成本(参考 2026-05 价格) 按 Anthropic 公开价格估算(input/output 分别计),中项目场景: | 模型 | 输入 ($/MTok) | 输出 ($/MTok) | 本项目消耗 | 美元 ≈ | | --- | --- | --- | --- | --- | | Sonnet 4.6 | ~$3 | ~$15 | input 220K · output 100K | **$2.2** | | Opus 4.7 | ~$15 | ~$75 | input 50K · output 25K | **$2.6** | | **中项目合计** | — | — | 410K tokens | **≈ $4.8** | | 小项目合计 | — | — | 150K tokens | **≈ $1.7** | > _数字是 ballpark。实际取决于 caching 命中率(SessionPool 复用降低 input 重复成本)和具体功能复杂度。_ ## ④ 并发预算 三层并发上限: | 层级 | 上限 | 原因 | 实现 | | --- | --- | --- | --- | | **项目内 L1 并行** | ≤ 5 Unit 同时跑 | 每个 Claude CLI ~ 100MB RAM · 1 CPU core | scheduler.getExecutionGroups 自动分波,每波 ≤ 5 | | **项目内 L2 串行** | 1 个 Integrator 实例 | 避免端口冲突 + 状态混乱 | LoopController 内部用 Promise 队列 | | **单机系统并发** | ≤ 20 个 ACP session | 合理 RAM 占用 ≈ 2GB | SessionPool 全局上限(新增 `maxSessions` 配置) | | **同 company 项目并发** | ≤ 3 项目同时跑 | 避免单用户挤占 | LoopController 入口检查 | | **Bash 进程**(Coder/Tester/Integrator 起的) | ≤ 50 系统总数 | 避免 fork bomb | process-guard 计数 | ## ⑤ 单项目墙钟估算 | 项目规模 | 串行墙钟 | L1 并行后 | 瓶颈 | | --- | --- | --- | --- | | 小(3 Unit) | ~15 min | **~8 min** | Architect generate + Integrator spawn | | 中(8 Unit) | ~45 min | **~20 min** | L1 × 2 attempt × Coder + Tester | | 大(20 Unit + 3 L2 round) | ~3h | **~70 min** | L2 整套 + 重写 | > _「并行后」假设 5 并行;scheduler 拓扑可能限制少于 5(fe 必须等 be 完)。北极星目标「小项目 < 30 min」对应中项目场景,余量充足。_ ## ⑥ 监控指标 在 [ops-progress](ops-progress.html) 已经展示了 token_used/budget。补充几个隐含指标: | 指标 | 看哪 | 告警阈值 | | --- | --- | --- | | Tokens / Unit | 项目 token_used / units_count | > 100K / Unit → 项目过度反思 | | Retry rate | units.json sum(retries) / count | > 2 平均 → Coder skill 退化或 spec 不清 | | L2 修复轮次 | l2_rounds | ≥ 2 → 该 PRD 有歧义 | | Agent 调用墙钟 P95 | timeline.duration_ms 统计 | > 5 min → 模型卡或 prompt 过长 | | SessionPool 利用率 | active_sessions / maxSessions | > 80% → 限流 | | Bash 子进程数 | process-guard tracked | > 30 → 等回收 | ## ⑦ 降本策略 | 策略 | 预期降幅 | 难度 | | --- | --- | --- | | SessionPool 复用 + 5min cache TTL | 20-30% input token | 免费(既有 ACP 行为) | | Tester Sonnet 改 Haiku(如果反思质量够) | 40% Tester 部分 | 低 | | PM/Coder/Tester 用 Sonnet · 只 Architect/Triager 用 Opus | 已是默认 | — | | Memory 注入降到 top 3(从 top 5) | 5-10% input | 低,1 行配置 | | 跳过 Tester 写文档代码(README/类注释) | 10% output | 低 | | cache busting:相同 unit 跑 1 次后用缓存(无 retry 时) | 大幅,针对回归 | 中(需 contract_hash 索引) |