核心变化: - dashboard.md 替代 DASHBOARD + ROADMAP,人类+Arch AI 唯一入口 - DECISIONS.md 人类决策入口,≤3 条待决策 - .ai/tasks/ 14 个独立 task 文件(Coder 8 + Tester 6),弱模型自包含可独立执行 - 旧 today/queue 归档,每个角色启动 ≤2 个文件 - ADR-012 跨平台「高模型指挥小模型」协作架构落地 - 知识库补全:L-002~005、P-004~005、ADR-011~012 - Arch AI 上下文资源管理硬约束写入 principles.md Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
5.5 KiB
可复用模式
目的
记录开发过程中发现的可持续复用的模式和做法。 同样的模式出现 3 次以上时,应当记录在这里。
P-001: AI 任务交接 (review/active/)
上下文: AI 角色之间需要传递工作成果
问题: 如何结构化任务交接,让任何 AI 都能接手
方案: 标准化 review/active/{任务ID}/ 结构:
task.md— 任务描述(Arch AI 定义)acceptance.md— 验收标准(Arch AI + Dev AI + QA AI 共同维护)impact.md— 变更影响范围(Arch AI + Dev AI 评估)feedback/— 反馈记录(QA AI 提交)
何时用: 每个跨 AI 角色的任务 何时不用: 单角色任务(如纯文档更新、配置修改)
P-002: 角色工作台 (daily task board)
上下文: AI 每次会话需要快速进入工作状态
问题: 从头探索项目结构浪费时间
方案: .ai/roles/{role}/today.md 每日任务清单,AI 只需读 2 个文件(card + today)
何时用: 每次 AI 会话
维护者: Arch AI 负责分配,各 AI 自己更新完成状态
P-003: 模板同步 (framework sync)
上下文: 项目框架层(AGENTS/权限/提示词/工作流)的变化需要传播到通用模板分支 问题: 手动同步耗时且容易遗漏,AI 重做去敏化消耗 ~100K tokens 方案:
- 双分支:
main(具体项目)+ai_project(通用模板) SYNC.md明确定义框架层/项目层文件边界sync-template.sh自动 checkout 框架文件 + 重新应用 {{变量}}- 框架层 ~15 个文件自动同步,project 层永久隔离 何时用: main 分支框架有变化时 维护者: Arch AI 触发,脚本执行
P-004: 编排器-执行者模式 (Orchestrator-Worker)
上下文: AI Agent 协作中,不同任务需要不同能力的模型。高能力模型(Opus)做规划和判断,低成本模型(Sonnet/Haiku)做执行 来源: MegaAgent (NUS)、Claude Code Agent Swarm (Anthropic)、JiuwenSwarm (华为 openJiuwen)、Microsoft 多 Agent 参考架构 方案:
决策层 (Opus) → 意图理解、方案设计、最终验收 (~10% Token, 最贵)
调度层 (代码) → 任务路由、负载均衡、重试熔断 (确定性代码, 不用 LLM!)
执行层 (Haiku) → 专注单一原子任务 (~60% Token, 最便宜)
核心原则:
- 按业务上下文划分 Agent(「认证流 Agent」),而非按角色(「数据库 Agent」)
- 调度层是确定性代码——用 LLM 做调度是反模式
- 子 Agent 的甜蜜点是只读研究/探索,并行编码效果不佳
- 写范围严格分离——并发写任务之间不能有重叠的文件所有权
- Agent 粒度围绕内聚能力组织——不要为「调用一个 API」建 Agent
何时用:
- 团队规模 ≥ 3 个 AI Agent 并行工作
- 任务可清晰分解为独立子任务,且协调成本 < 并行收益
- 有明确的模型成本优化需求
何时不用:
- 1 人项目——编排层就是人类 + Claude Code 本身
- 编码任务的并行化——行业共识是效果不佳
- 简单 bug 修复——分解成本 > 直接修复成本
本项目实例 (ErrLens):
Arch AI: Claude Code + DeepSeek V4 Pro → 架构推理、方案设计、任务分解
Coder AI: Trae CN + GLM-4.6 → 代码生成、文件操作(单文件粒度)
Tester AI: Coze CN → 沙盒执行、自动化测试报告
通信介质: Git 仓库(唯一集成总线)
交接粒度: 单次 commit = 一个交接单元
关键适配:
- Coder AI 用的是 GLM-4.6,不能假设它有跨文件推理能力 → task 分解到单文件粒度
- 跨模块协调在 Arch AI 设计阶段完成,不在 Coder AI 执行阶段
- Tester AI 的 Coze 沙盒做真正的自动化闭环——不只是跑测试,是拉代码 → 执行 → 生成报告 → commit
P-005: 跨平台任务交接协议 (Cross-Platform Task Handoff)
上下文: 多个 AI Agent 运行在不同平台/IDE 上,零共享上下文,Git 是唯一通信介质 问题: 如何让 Trae + GLM-4.6 拿到 task 后能直接开工,不需要追问「这个是什么意思」 方案: 每个 task 必须自包含,包含四个必填字段:
## Task: {编号} {标题}
### 输入
- 读哪些文件(完整路径)
- 参考哪些 ADR(ADR-XXX)
- 依赖哪些上游任务(P01-XXX,已完成/产出是 X)
### 输出
- 生成/修改哪些文件(完整路径)
- 输出格式(代码/文档/配置)
- 验收方式(跑什么命令看什么结果)
### 约束
- 不碰哪些目录
- 用什么库/版本
- 遵循什么规范(code-style.md / doc-template.md)
### 参考
- ADR-XXX: 一句话说明关联性
- 相关文件: 一行说明
核心原则:
- 零隐含上下文:接收方不能依赖「上次聊过」,所有信息必须显式写在 task 里
- 适配接收方能力:给 GLM-4.6 的任务粒度 = 单文件;给 Claude 的任务可以跨 3-5 个文件
- Git commit 即消息:每次 commit 是发送一次消息,接收方 pull 即收到
- 任务与代码分离:task 定义在
.ai/roles/{role}/queue.md,代码在projects/,通过 Git 同步
何时用: 跨平台/跨模型协作 何时不用: 同一平台内的角色切换(直接对话即可)
反模式(避免)
- 在多个文件中重复同一状态信息 → 只在 ROADMAP.md 记录
- 决策讨论散落在任务 feedback 中 → 提炼到 knowledge/decisions.md
- 大段文档内联而非链接 → 用链接 + 一句话摘要