fischer-agentkit/docs/brainstorms/2026-06-14-expert-team-mode...

13 KiB
Raw Blame History

date topic
2026-06-14 expert-team-mode

Summary

在对话框中引入专家团模式Expert Team Mode支持用户手动指定或系统自动组建多专家协作团队。底层采用 Plan-Execute 协作模式(结构化协作计划 + 去中心化执行前端以多角色对话流呈现协作过程。Expert 是比 Skill 更高的角色抽象,聚合多个 Skill 并包含人格、思维方式和协作策略。

Problem Frame

当前 AgentKit 的多 Agent 协作依赖 Orchestrator-Worker 的集中式编排或 Pipeline 的 DAG 流程驱动。这两种模式适合结构化、可预测的工作流,但无法支撑需要多专家自主协作、实时讨论、动态调整的复杂任务场景。用户在对话框中面对复杂任务时,只能与单个 Agent 交互,无法获得多视角、多专长的协作产出。类似 Qoder 的专家团模式填补了这一空白——让多个专家以目标为导向,自主分析、分工、执行、验证、汇报。

Key Decisions

  • Plan-Execute 而非纯 Swarm结构化协作计划保证任务收敛和可预测性Expert 在职责范围内自主协作(去中心化),但整体框架由计划约束。纯 Swarm 模式自由度最高但收敛风险大。

  • Expert 聚合 SkillExpert 是比 Skill 更高的角色抽象。一个 Expert 聚合多个 Skill并包含人格设定、思维方式、协作策略。Skill 是能力单元Expert 是角色单元。

  • 混合 Agent 生成:核心角色从预定义专家模板库选择(保证质量),辅助角色由 LLM 根据任务现场动态生成(保持灵活性)。

  • 前端对话流展示:协作过程以多角色对话流呈现给用户,每个 Expert 有独立头像和颜色标识。底层是结构化计划驱动,前端是对话式体验。

  • 两种并行模式统一支持:子任务级并行(各做各的,结果汇总)和竞标式并行(同一任务多人做,取最优/融合)都在协作计划中标注,执行引擎按类型处理。

Actors

  • A1. 用户 — 发起任务、指定专家团成员、干预协作过程(调整分工、增减 Expert、修改方向
  • A2. Lead Expert — 首个加入团队的 Expert 或用户指定的负责人,负责初始任务分解、协作计划生成、最终结果汇总
  • A3. Expert — 具有特定专长的角色,在职责范围内自主工作,可与其他 Expert 直接交互和交接
  • A4. ExpertTeam — 专家团容器,管理 Expert 的加入/退出、共享上下文、协作计划的生命周期
  • A5. ExpertTemplate Registry — 专家模板注册中心,存储预定义的 Expert 模板供选择和组装

Requirements

Expert 定义与管理

  • R1. Expert 配置包含:名称、人格描述、思维方式、绑定的 Skill 列表、协作策略偏好、头像/颜色标识
  • R2. Expert 可聚合一个或多个已注册 Skill执行时按 SkillConfig 驱动
  • R3. ExpertTemplate 是可复用的 Expert 预设,存储在 YAML 配置或注册中心中,包含完整的 Expert 配置
  • R4. ExpertTemplate Registry 支持模板的注册、查询、列表展示
  • R5. 临时 Expert 由 LLM 根据任务分析动态生成 ExpertConfig包含角色名称、职责描述、建议绑定的 Skill

专家团组建

  • R6. 用户可通过对话框手动指定专家团成员(选择 ExpertTemplate 或指定角色描述)
  • R7. Lead Expert 在接收任务后评估复杂度,建议升级为专家团模式(需用户确认,不自动强制升级)
  • R8. 自动组建时Lead Expert 分析任务后生成协作计划,计划中包含需要的 Expert 角色定义
  • R9. 自动组建采用混合模式:核心角色从模板库匹配,辅助角色动态生成
  • R10. 专家团组建后,所有 Expert 的角色信息对用户可见

协作计划

  • R11. CollaborationPlan 定义专家团的结构化协作蓝图,包含:任务分解、角色分工、依赖关系、并行节点、合并策略
  • R12. 协作计划中的每个节点标注执行类型:串行、子任务级并行、竞标式并行
  • R13. 竞标式并行节点需指定评判策略:取最优、投票、融合
  • R14. 协作计划可由 Lead Expert 或用户动态修改;普通 Expert 可提议修改,需 Lead Expert 审批后生效
  • R15. 计划修改后,受影响的 Expert 立即感知变更并调整行为

去中心化协作

  • R16. Expert 之间可直接交互、请求协助、交接任务,无需经过 Lead Expert 中转
  • R17. Expert 间的交互通过共享对话流进行,所有消息对团队内所有 Expert 可见;上下文管理采用摘要共享策略(长内容自动摘要后广播,原始内容存入 SharedWorkspace 按需获取)
  • R18. Lead Expert 负责初始分解和最终汇总,但不控制中间流程
  • R19. Expert 通过共享上下文中的角色描述了解其他 Expert 的专长,可据此发起协作请求

并行执行与结果合并

  • R20. 子任务级并行:多个 Expert 同时执行不同子任务,结果由 Lead Expert 或指定 Expert 汇总
  • R21. 竞标式并行:多个同类型 Expert 独立完成同一子任务,结果按评判策略处理
  • R22. 评判策略"取最优":由 Lead Expert 或指定评审 Expert 选择最佳结果
  • R23. 评判策略"投票":所有 Expert 投票选择最佳结果,平局时由 Lead Expert 仲裁
  • R24. 评判策略"融合":由 Lead Expert 或指定 Expert 将多个结果融合为统一产出

用户干预

  • R25. 用户可随时在对话流中插入指令,指令对全体 Expert 可见
  • R26. 用户可调整专家团分工(修改协作计划)
  • R27. 用户可增减 Expert添加新 Expert 或移除已有 Expert
  • R28. 用户可修改任务方向或补充需求Lead Expert 据此重新规划

前端展示

  • R29. 协作过程以多角色对话流形式呈现,每个 Expert 的消息带有独立头像和颜色标识
  • R30. 协作计划以可视化方式展示(分工图/时间线),用户可展开查看详情
  • R31. 并行执行时,多个 Expert 的消息流通过消息标签expert_id复用同一 WebSocket 通道同时更新,用户可按 Expert 切换关注焦点
  • R32. Expert 间的交接、请求协助等交互以特殊消息类型展示(区别于普通对话)

触发与路由

  • R33. Lead Expert 在接收任务后评估复杂度,建议升级为专家团模式(与 R7 一致)
  • R34. 用户可通过 @team 或类似指令主动触发专家团模式
  • R35. 用户指定专家团成员时,跳过自动分析,直接进入协作计划生成
  • R36. 专家团任务完成后,团队自动解散,临时 Expert 被回收;临时 Expert 的产出保留在 SharedWorkspace 中不随实例销毁丢失

Key Decisions (Updated)

  • Expert 与 Agent 的关系Expert 是 Agent 的配置层ExpertConfig运行时通过 AgentPool 创建对应的 ConfigDrivenAgent 实例。Expert 本身不是 Agent 实例,而是角色定义 + Skill 聚合 + 协作策略的配置单元。

Key Flows

  • F1. 手动组建专家团

    • Trigger: 用户在对话框中指定专家团成员
    • Actors: A1, A4, A2
    • Steps: 用户指定 ExpertTemplate 或角色描述 → ExpertTeam 创建 → Lead Expert 生成 CollaborationPlan → 计划展示给用户确认 → Expert 按计划开始协作
    • Covered by: R6, R10, R11, R35
  • F2. 自动组建专家团

    • Trigger: 系统检测到高复杂度任务或用户请求专家团
    • Actors: A1, A4, A2, A5
    • Steps: Lead Expert 分析任务 → 识别需要的 Expert 角色 → 核心角色从模板库匹配、辅助角色动态生成 → 生成 CollaborationPlan → 计划展示给用户确认 → Expert 按计划开始协作
    • Covered by: R7, R8, R9, R11
  • F3. 去中心化协作执行

    • Trigger: CollaborationPlan 确认后开始执行
    • Actors: A2, A3, A4
    • Steps: Expert 按计划执行各自任务 → Expert 间可直接交互和交接 → 并行节点同时执行 → 结果按合并策略处理 → Lead Expert 汇总最终产出
    • Covered by: R16, R17, R18, R20, R21
  • F4. 用户干预协作

    • Trigger: 用户在对话流中插入指令
    • Actors: A1, A4, A2
    • Steps: 用户发出指令 → 指令对全体 Expert 可见 → Lead Expert 评估影响 → 修改 CollaborationPlan如需要 → 受影响 Expert 调整行为
    • Covered by: R25, R26, R27, R28
  • F5. 竞标式并行执行

    • Trigger: CollaborationPlan 中某节点标注为竞标式并行
    • Actors: A3, A2
    • Steps: 多个同类型 Expert 独立完成同一子任务 → 各自提交结果 → 按评判策略处理(取最优/投票/融合) → 产出最终结果
    • Covered by: R21, R22, R23, R24
  • F6. 专家团解散

    • Trigger: 任务完成或用户主动解散
    • Actors: A4, A1
    • Steps: Lead Expert 汇总最终结果 → 结果呈现给用户 → 临时 Expert 被回收 → ExpertTeam 销毁 → 模板 Expert 保留在注册中心
    • Covered by: R36

Acceptance Examples

  • AE1. 手动组建 + 子任务并行

    • Covers R6, R20. Given 用户输入"帮我分析这份市场报告,叫上数据分析师和战略顾问", When 系统创建 ExpertTeam 并生成计划, Then 数据分析师和战略顾问各自独立分析Lead Expert 汇总两份分析为统一报告
  • AE2. 自动组建 + 竞标并行

    • Covers R7, R21, R22. Given 用户输入一个复杂的技术方案评审任务, When 系统自动升级为专家团模式, Then Lead Expert 生成 3 个架构师 Expert 竞标式并行出方案Lead Expert 选择最优方案
  • AE3. 用户干预调整方向

    • Covers R25, R26, R28. Given 专家团正在执行任务, When 用户在对话流中说"重点看成本优化,别管性能了", Then Lead Expert 修改计划,受影响 Expert 调整分析方向
  • AE4. Expert 间直接协作

    • Covers R16, R17. Given 数据分析师 Expert 需要行业数据, When 数据分析师直接请求行业研究员 Expert 协助, Then 行业研究员提供数据,无需 Lead Expert 中转
  • AE5. 动态增减 Expert

    • Covers R27. Given 专家团正在执行, When 用户说"再加一个法律顾问", Then 系统从模板库匹配或动态生成法律顾问 Expert加入团队并更新计划

Success Criteria

  • 专家团能在 5 分钟内完成一个需要 3+ 专家协作的中等复杂度任务
  • 用户能清晰追踪每个 Expert 的工作状态和产出
  • 用户干预后Expert 在 1 轮交互内感知并响应变更
  • 临时 Expert 在任务完成后被完全回收,不残留资源

Scope Boundaries

Deferred for later:

  • Expert 间的学习与进化机制(经验共享、能力提升)
  • 跨会话的 Expert 持久化和记忆共享
  • Expert 市场和共享模板库
  • 专家团的 A/B 测试和效果评估

Outside this product's identity:

  • 通用的工作流引擎(已有 PipelineEngine
  • 人工审核节点(已有 Workflow approval
  • 实时音视频协作

Dependencies / Assumptions

  • 依赖现有 AgentPool 管理 Agent 实例的创建和销毁
  • 依赖现有 MessageBus 支持 Expert 间的消息通信
  • 依赖现有 HandoffManager 支持 Expert 间的任务交接(需扩展为进程内模式)
  • 依赖现有 Orchestrator 的任务分解能力GoalPlanner + LLM 分解)
  • 依赖现有 PipelineEngine 的并行执行和拓扑排序
  • 假设 LLM 能生成质量合格的 CollaborationPlan含角色定义、依赖关系、并行标注
  • 假设前端 WebSocket 能支持多路并发消息流

Outstanding Questions

Resolve Before Planning:

  • 协作计划的粒度:定义大阶段和角色分工(粗粒度,灵活调整)还是精确到每步操作(细粒度,强约束)
  • 协作计划失败时的降级策略:回退到单 Agent 还是重试
  • HandoffManager 进程内模式的实现策略:扩展现有 HandoffManager 还是新建 InProcessHandoff

Deferred to Planning:

  • ExpertTemplate 的 YAML Schema 设计
  • 协作计划的可视化组件选型
  • 并行消息流的前端渲染策略
  • 竞标式并行执行引擎的扩展设计(当前 PipelineEngine 仅支持拓扑排序并行)

Sources / Research

  • src/agentkit/core/orchestrator.py — Orchestrator-Worker 编排模式,三级任务分解降级
  • src/agentkit/orchestrator/pipeline_engine.py — DAG 拓扑并行执行、Saga 补偿、对抗闭环
  • src/agentkit/orchestrator/handoff.py — Redis Pub/Sub 点对点任务转交
  • src/agentkit/orchestrator/dynamic_pipeline.py — 条件/嵌套/循环动态 Pipeline
  • src/agentkit/core/agent_pool.py — 运行时 Agent 实例管理
  • src/agentkit/core/shared_workspace.py — Redis 共享状态 + 分布式锁
  • src/agentkit/chat/skill_routing.py — CostAwareRouter 三层路由
  • src/agentkit/skills/base.py — SkillConfig 定义ExpertConfig 可参考扩展