串行接力式多智能体协作系统:完整设计方案

这是一套可控、可预测、能产出的多智能体协作系统,模拟人类团队的流水线作业方式。

一、核心理念:从"对话"到"接力"

1.1 并联的局限

当前主流多智能体系统(AutoGen、LangChain Agents、Claude Code)采用并联模式

用户消息 ──┬──> Agent A ──> 响应(竞争)
          ├──> Agent B ──> 响应(竞争)
          ├──> Agent C ──> 响应(竞争)
          └──> Agent D ──> 响应(竞争)

问题: - 多Agent同时响应,谁先回复用谁 → 不可控 - 适合快速头脑风暴 → 不适合工程产出 - 质量依赖"运气" → 无法保证交付标准

1.2 串行接力的本质

串行接力模拟的是人类团队的流水线作业

需求 ──> 架构设计 ──> 验收标准 ──> 开发实现 ──> 交付
         ↓              ↓            ↓
       [质量门]      [质量门]     [质量门]

核心思想: - 每个角色是流水线上的一个工位 - 每个工位有明确的输入标准和输出标准 - 质量不依赖运气,而依赖流程把关

这才是工程团队的正确姿势。


二、系统架构:文件接力机制

2.1 通信协议:单一信箱制

原则:
  1. 每个Agent有且只有一个"信箱文件"
  2. 谁读取文件,谁负责处理
  3. 处理完毕后必须:
     - 归档日志(保留记录)
     - 清空信箱(表示"已完成")
     - 写入下一个信箱(传递接力棒)

2.2 目录结构

/project_root/
├── channels/                    # 通信信道(核心!)
   ├── to_architect.md          # 人类 -> 架构师
   ├── to_qa.md                # 架构师 -> 质量标准制定
   ├── to_developer.md         # 质量标准 -> 开发
   └── to_human.md             # 架构师/开发 -> 人类

├── tasks/                      # 任务清单
   ├── task_001.md
   └── ...

├── history_logs/               # 历史归档
   └── ...

└── workspace/                  # 代码工作区

2.3 轮询思想

每个Agent是一个独立进程,循环检测自己的信箱: - 信箱空 → 等待 - 信箱有内容 → 读取、处理、归档、清空、传递


三、任务依赖与智能跳过机制

3.1 为什么需要任务依赖

问题:传统串行流程中,人类成为绝对瓶颈

需求 → 架构师 → [人类决策] → QA → 开发 → 交付
                     ↑
                 卡住不动

现实:真实项目中,任务之间往往不是强依赖的

举例:开发"用户系统"
├── 任务A: 用户注册(依赖: 无)      → 可以先做
├── 任务B: 用户登录(依赖: A)        → 可以先做
├── 任务C: 微信登录(依赖: B, 需要人类决策)→ 等待
└── 任务D: 忘记密码(依赖: 无)       → 可以先做

3.2 任务依赖标记

--- TASK START ---
ID: 003
DESC: 实现微信扫码登录
依赖: 002
需要人类决策: 是
决策项:
  - 微信扫码回调地址
  - 扫码超时时间
--- TASK END ---

3.3 智能跳过逻辑

当任务T需要人类决策时:
1. 检查下一个任务T+1
2. 如果T+1的"依赖"不包含T → 跳过T+1,继续检查T+2
3. 如果T+1依赖T → 等待人类决策
4. 重复直到找到可执行的任务

四、角色定义与协作流程

4.1 三大角色(精简版)

角色 职责 输入 输出
架构师 需求分析、任务拆解、技术决策、安全要求 人类需求 任务清单+安全要求
质量标准制定者 验收标准制定、安全测试 任务清单 验收标准+安全测试
开发者 代码实现、技术攻关 任务+验收标准 可运行代码

设计亮点:移除Reviewer,安全左移到Designer和QA,流程更精简。

4.2 为什么移除Reviewer?

原问题: - 可维护性在快速迭代阶段不重要,功能优先 - 安全问题应该左移,而非最后审查 - 流程过长(4个角色),效率低

解决思路: - 可维护性:事后一次性重构,不在开发过程中纠结 - 安全左移:Designer和QA在源头控制 - 流程精简:Designer → QA → Developer → 完成

4.3 角色关系图

                    ┌─────────────────────┐
                    │      人类 (Human)    │
                    │  - 下发需求         │
                    │  - 接收汇报         │
                    │  - 批量决策        │
                    └─────────┬───────────┘
                              │
              to_architect    │    to_human
                              ▼
                    ┌─────────────────────┐
                    │    架构师 (Architect) │
                    │  - 需求分析          │
                    │  - 任务拆解          │
                    │  - 安全要求          │
                    └─────────┬───────────┘
                              │
              to_qa           │    to_qa
                              ▼
                    ┌─────────────────────┐
                    │  质量标准 (QA)         │
                    │  - 验收标准制定      │
                    │  - 安全测试策略      │
                    └─────────┬───────────┘
                              │
              to_developer     │    to_human
                              ▼
                    ┌─────────────────────┐
                    │  开发 (Developer)     │
                    │  - 代码实现          │
                    │  - 功能优先          │
                    └─────────────────────┘

4.4 详细协作流程

阶段一:需求澄清(Human ↔ Architect)

步骤1: 人类下发需求
  to_architect.md:
  需求:实现用户登录系统
  - 用户名密码登录
  - 微信扫码登录

步骤2: 架构师分析
  - 识别模糊点  向人类提问
  - **明确安全要求**

步骤3: 任务拆解(含安全要求)
  to_qa.md:
  TASK_001: 用户名密码注册
  技术要求:
    - 用户名密码注册
    - bcrypt加密存储
    - JWT Token返回
  安全要求:
    - 使用参数化查询防止SQL注入
    - 密码强度验证(至少8位)

阶段二:验收标准对齐(Architect → QA)

步骤4: 质量标准制定者接收任务
  - 阅读架构师的任务拆解
  - **制定验收标准**
  - **制定安全测试策略**

步骤5: 制定验收标准
  to_developer.md:
  TASK_001: 用户名密码注册
  验收标准:
    1. 用户名4-20位字母数字
    2. 密码至少8位,含数字和字母
    3. 用户名已存在返回400
    4. 注册成功返回200+token
  安全测试:
    - SQL注入测试:尝试 ' OR '1'='1
    - XSS测试:尝试 <script>alert(1)</script>

阶段三:开发执行(Developer)

步骤6: 开发者接收任务+验收标准
  - 理解任务要求
  - 理解"什么是完成"
  - **功能优先,快速实现**

步骤7: 智能跳过
  - 当前任务需要等待人类决策?
  - 检查后续任务是否依赖当前任务
  - 不依赖  跳过执行

步骤8: 开发完成
  to_human.md:
  TASK_001: 用户名密码注册
  状态:  已完成
  改动:
    - models/user.py
    - routes/register.py

五、SKILL.md 设计要点

5.1 架构师 SKILL.md

# Role: 架构师

## 职责
- 需求分析、任务拆解
- 技术选型
- **安全要求明确**

## 安全要求模板
 安全要求:
   - 使用参数化查询防止SQL注入
   - 密码使用bcrypt/argon2加密
   - 敏感配置通过环境变量管理
   - 验证码/限流防止暴力攻击

## 输出格式
--- TASK START ---
ID: 001
DESC: 实现用户注册接口
技术要求:
  - 用户名密码注册
  - bcrypt加密存储
安全要求:
  - 参数化查询
  - 密码强度验证
依赖: 无
需要人类决策: 否
--- TASK END ---

5.2 质量标准制定者 SKILL.md

# Role: 质量标准制定者 (QA)

## 职责
- 验收标准制定
- **安全测试策略**

## 安全测试模板
 安全测试:
   - SQL注入: ' OR '1'='1
   - XSS: <script>alert(1)</script>
   - 密码强度: 不足8位应拒绝
   - 用户名重复: 返回400错误

## 输出格式
--- TASK START ---
ID: 001
DESC: 实现用户注册接口

验收标准:
  1. 用户名4-20位字母数字
  2. 密码至少8位

安全测试:
  - SQL注入测试
  - XSS测试
  - 密码强度测试
--- TASK END ---

5.3 开发者 SKILL.md

# Role: 开发工程师

## 核心理念
- **功能优先,快速实现**
- 可维护性不是首要考虑
- 重构可以事后一次性做

## 工作流程
1. 理解任务和验收标准
2. 快速实现功能
3. 确保通过基本的安全测试(参数化查询等)
4. 完成后输出到 to_human.md

## 输出格式
--- COMPLETE ---
TASK_ID: 001
状态: ✅ 已完成
改动文件:
  - models/user.py
  - routes/register.py
---

六、与现有系统的整合

6.1 模式选择

场景 推荐模式 原因
快速问答 并联 多角度即时响应
头脑风暴 并联 发散思维
功能开发 串行 质量可控+高效

6.2 启动串行模式

用户输入: "/workflow 开发一个用户登录系统"
→ 进入串行流程(支持任务依赖+智能跳过)

七、独特优势

7.1 绝对可观测性

$ ls -la channels/

-rw-r--r-- 1 root root  120 Mar 22 09:35 to_developer.md  # 接力棒在开发
-rw-r--r-- 1 root root    0 Mar 22 09:30 to_architect.md    # 空
-rw-r--r-- 1 root root    0 Mar 22 09:25 to_qa.md            # 空

7.2 天然串行化 + 智能跳过

T001(完成) → T002(等待人类) → T003(不依赖T002) → 执行T003
                        ↓
              人类决策后恢复执行T002

7.3 完整的审计日志

history_logs/
├── 2026-03-22-093000_to_architect.md   # 人类需求
├── 2026-03-22-093010_to_qa.md          # 架构师任务
├── 2026-03-22-093020_to_developer.md  # QA验收标准
├── 2026-03-22-093100_to_architect.md  # 开发者提问
├── 2026-03-22-093200_to_human.md     # 完成报告

7.4 极简实现

不需要: - ❌ 消息队列 - ❌ WebSocket长连接 - ❌ 分布式锁 - ❌ 评审角色

只需要: - ✅ 文件系统 - ✅ 定时轮询 - ✅ LLM API调用


八、设计哲学:可控 >自治

8.1 安全左移

传统流程:开发 → 评审(审查安全)→ 发现问题 → 返工 我们的流程:Designer(安全要求)→ QA(安全测试)→ 开发(直接通过)

好处: - 安全问题在源头控制 - 减少返工 - 开发只需遵循既定要求

8.2 功能优先

核心理念: - 快速实现功能是第一优先级 - 可维护性可以事后重构 - 不在开发过程中纠结架构

重构时机: - 功能稳定后 - 一次性重构 - 借助专门的重构Agent

8.3 业界参考

借鉴业界五大编排模式(Microsoft Azure定义):

模式 描述 适用场景
Sequential 线性串行 多阶段流程
Handoff 控制权交接 任务路由
Magnetic 动态邀请 开放任务

我们的选择:Sequential + Handoff + 智能跳过。

8.4 核心原则

工程产出 = 流程 × 规范 × 质量门 × 智能调度

我们追求的: - 功能快速产出 - 安全源头控制 - 质量靠流程保证


九、局限性与演进

9.1 当前局限

  1. 轮询延迟:5秒轮询间隔
  2. 单lane执行:同时只执行一个任务
  3. 无断点续传:进程重启后状态丢失

9.2 演进路线

v1.0 (当前)
  ✅ 三大角色(架构师+QA+开发)
  ✅ 任务依赖+智能跳过
  ✅ 安全左移
  ✅ 功能优先

v2.0
  🔄 事件驱动(替代轮询)
  🔄 多lane并行

v3.0
  📋 可视化监控
  📋 智能调度优化

十、总结

串行接力式多智能体协作系统,是对人类工程团队协作方式的数字化模拟

  • 架构师 = 项目经理 + 技术负责人 + 安全要求制定
  • 质量标准制定者 = QA分析师 + 测试策略 + 安全测试
  • 开发者 = 功能实现者(快速优先,可维护性可后处理)

核心价值

  1. 可控:流程由工作流定义
  2. 可观测:文件状态即系统状态
  3. 可追溯:每个决策都有完整记录
  4. 更高效:三大角色,流程精简
  5. 安全左移:Designer和QA源头控制
  6. 功能优先:快速产出,可维护性可后处理

在AI时代,我们需要的是可控的协作流程,而非完全自治的黑盒系统。


本文是《串行接力式多智能体协作规范》的深度扩展,形成了一套完整的设计方案。

标签: none

添加新评论