| name | multi-agent-meeting |
| description | 当遇到跨领域协作问题时,组织专题会议,邀请相关专家参与,收集专业意见,生成结构化的会议记录。
|
| allowed-tools | subagent bash ask-user sleep |
| metadata | {"requires":{"bins":["python3"]},"name_zh":"组织专题会议","name_zh-tw":"组织专题會議","description_zh":"当遇到需要跨领域合作的问题时,组织专题会议,邀请相关专家参与,收集专业意见,生成结构化的会议记录。"} |
多智能体专题会议
使用场景
- 面对的问题极其复杂,涉及多种领域,需要不同的专家进行多方协作共同讨论
- 需要多角度分析特定主题,收集结构化的专家意见
- 需要包含结论、关键论点、风险和行动项的会议记录
工作流程
1. 定义主题和目标
根据用户输入,明确以下信息:
- 主题:要讨论的核心问题
- 目标:期望的决策类型(可行性评估、方案选择、风险识别等)
- 约束条件:需要考虑的限制因素(预算、时间线、技术栈等)
采用假设式提问,用AskUser工具向用户提供多个可能的答案供用户选择,必须充分且明确收集用户召开这次会议的目的与意义才能进行下一步。
2. 选择参与者
运行 mindx agents list 查看所有可用的智能体。仅邀请其专业领域与议程项目匹配的智能体。
3. 组织会议
阶段 1:设定议程
与用户确认议程,然后将议程项目分配给相关智能体:
主题:X
议程:
1. [问题 A] → 需要智能体 A 和智能体 B 的意见
2. [问题 B] → 需要智能体 C 的意见
3. [决策] → 综合所有意见并给出建议
阶段 2:收集初始意见
通过 SubAgent 并行收集每位参与者的结构化意见。每个智能体需提供:
- 立场:对主题的看法或建议
- 理由:支持该立场的推理和领域分析
- 证据:支撑理由的数据、事实或引用
- 置信度:高 / 中 / 低,表示对该立场的确定程度
- 顾虑:可能推翻立场的风险、边界情况或条件
- 对他人的问题:针对其他参与者的提问
原则:
- 独立议程并行处理,依赖议程串行处理
- 每个智能体只回答专业领域内的问题
- 传递主题、相关议程和约束条件作为上下文
阶段 3:讨论和辩论
基于阶段 2 的初始意见,通过 scripts/debate.py 状态机进行多轮辩论。
创建辩论会话:
SESSION_ID=$(python scripts/debate.py gen-ulid)
python scripts/debate.py init \
--work-dir "$SESSION_DIR/debate-$SESSION_ID" \
--topic "<主题>" \
--agents <智能体A> <智能体B> ... \
[--max-rounds 3]
后续步骤重复使用 $SESSION_ID 变量。
逐轮推进:
第 1 轮:
python scripts/debate.py prepare --work-dir "$SESSION_DIR/debate-$SESSION_ID" --round 1
- 通过 AgentTalk 通知每个智能体,提供主题和上下文文件路径,询问其立场。对每个智能体重用
$SESSION_ID 作为 AgentTalk 的 session_id 参数,保持对话连续性
- 等待回复
- 记录每个回复:
python scripts/debate.py record --work-dir "$SESSION_DIR/debate-$SESSION_ID" --round 1 --agent <名称> --response '<json>'
python scripts/debate.py check --work-dir "$SESSION_DIR/debate-$SESSION_ID"
第 N 轮(N ≥ 2):
- 确认所有智能体在上一轮都已回复
python scripts/debate.py prepare --work-dir "$SESSION_DIR/debate-$SESSION_ID" --round N
- 通过 AgentTalk 通知每个智能体进入下一轮(重用
$SESSION_ID)
- 等待回复并记录
python scripts/debate.py check --work-dir "$SESSION_DIR/debate-$SESSION_ID"
check 返回值:
converged → 辩论结束
stalled → 上报给用户
diverged → 继续下一轮
max_rounds_reached → 辩论结束
辩论结束后:
python scripts/debate.py summary --work-dir "$SESSION_DIR/debate-$SESSION_ID"
并行辩论:每个问题组使用独立的 $SESSION_ID 和工作目录(例如 debate-$SESSION_ID-issue1、debate-$SESSION_ID-issue2)。不同组之间交错进行各轮。
阶段 4:结论判定
根据辩论结果确定每个问题的结论状态:
| 状态 | 定义 | 行动 |
|---|
| ✅ 达成共识 | 所有相关智能体同意 | 直接采纳,记录支持论点 |
| ⚠️ 部分同意 | 总体方向一致,细节有争议 | 记录核心共识 + 争议细节及各方立场 |
| 🔴 陷入僵局 | 辩论后仍存在根本性分歧 | 将双方立场和推理提交给用户 |
| ❓ 信息不足 | 无法形成立场 | 记录缺失信息,建议进一步研究 |
结论规则:
- 2 个或以上智能体独立提出相同顾虑,视为已验证风险,不可忽略
- 智能体在辩论中改变立场,记录旧立场 → 新立场及原因
- 不同领域智能体通过不同推理路径得出相同结论,标记为强有力佐证
- 以下情况上报给用户:
(a) 关键路径问题陷入僵局
(b) 决策涉及主持人无法判断的权衡取舍
(c) 需要现有参与者之外的新信息
阶段 5:输出会议记录
按照 references/meeting-record-format.md 生成会议记录。输出必须使用与用户相同的语言。
包含:
- 会议基本信息
- 参与者列表
- 每个智能体意见的摘要
- 辩论过程记录(每轮的立场变化)
- 决策结论和关键论点
- 风险和行动项
4. 输出
输出包含以上所有内容的结构化会议记录。
资源
示例
示例 1:技术架构决策
- 目标:评估是否采用微服务架构
- 参与者:架构师、DevOps 工程师、前端工程师、后端工程师
- 输出:各智能体的专业评估、决策建议、风险识别、路线图
示例 2:产品定价策略
- 目标:制定新产品定价
- 参与者:市场分析师、产品经理、财务顾问
- 输出:竞争性定价分析、上市策略、成本估算、定价建议
示例 3:项目风险评估
- 目标:识别和评估项目风险
- 参与者:项目经理、相关工程师、财务顾问
- 输出:风险清单、影响评估、缓解措施、时间线影响
注意事项
- 专家是 LLM,不是人类。 5 个智能体开会,产生的是 5 个并行分析,不是人类意义上的 5 种不同视角。多样性来自分配的技能和上下文,不是真正的分歧。
- 辩论脚本输出需要人工审查。 结论判定框架是启发式的,不要自动接受辩论结论,应提交给用户确认。
- 专家可用性不保证。 如果专家智能体已在处理其他任务,团队创建可能失败。需要回退方案:建议类似专家或以较少参与者继续。
- 会议记录不是决策。 结构化会议记录只捕获讨论内容,明确的行动项和负责人需要单独说明。始终在最后生成行动项。
备注
- 每个智能体只讨论其专业领域,不要要求智能体评论专业范围外的内容
- 独立问题可以由不同的智能体组并行辩论,提高效率
- 会议记录由主持人综合真实智能体输出撰写,不是通过角色扮演
- 分歧是正常的,不同智能体有不同视角;分歧信号表示真正的权衡取舍
- 辩论阶段(阶段 3)是会议的核心价值,没有辩论的会议只是意见收集,不是讨论后的结论
- 主持人的角色是设定辩论框架并判断何时达成共识,不是在轮次之间传递消息
- 最终决定权在用户,会议输出的是建议