LLM Council — 6-Role Decision Framework
模拟人类专家委员会决策流程:5位审议角色并行分析 → 决策者整合输出。
触发条件
使用此技能当用户:
- 提出需要多角度分析的决策问题("帮我评估这个方案")
- 使用触发词:议会、council、多角色分析、帮我审议、唱反调、决策框架
- 问题涉及架构选型、策略评估、风险评估等需要审慎判断的场景
用户问题示例:
- "我们该用微服务还是单体架构?"
- "这个广告出价方案有什么风险?"
- "帮我审议一下要不要做这个功能"
角色与模型变体分配
从 references/council_roles.json 加载角色定义。关键映射:
| 角色 | 模型变体 | 原因 |
|---|---|---|
| 第一性原理思考者 | reasoning | 需要深度逻辑推理 |
| 决策者 | reasoning | 需要综合判断力 |
| 扩张主义者 | default | 均衡创意 |
| 局外人 | default | 常识视角 |
| 执行者 | default | 结构化执行 |
| 唱反调者 | lite | 快速挑刺 |
工作流(严格按此执行)
Phase 1 — 并行审议
同时启动5个 Agent,每个使用对应角色的 System Prompt 和模型变体:
使用 council.py 生成各角色的完整 Prompt:
python scripts/council.py "用户的问题"
然后对每个角色(除决策者外),使用 Agent 工具并行调用:
Agent(
subagent_type="general-purpose",
model="reasoning|default|lite", # 按上表选择
prompt="[SYSTEM]\n{角色的system_prompt}\n[/SYSTEM]\n\n[USER]\n## 议题\n\n{用户问题}\n\n请按你的角色定位进行分析。[/USER]"
)
关键约束:
- 5个 Agent 必须并行启动(同一轮发送5个 Agent 调用),不能串行
- 每个 Agent 只扮演一个角色
- 禁止 Agent 之间相互交流,各自独立分析
Phase 2 — 决策者整合
等待 Phase 1 所有5个 Agent 返回后:
- 收集所有输出,按角色归类
- 使用
council.py的format_decision_maker_prompt()生成决策者 Prompt - 启动决策者 Agent(reasoning 变体),传入包含所有角色输出的整合 Prompt
- 将决策者的输出作为最终结果展示给用户
Phase 3 — 报告生成
可选:如果用户要求生成报告,使用 council.py 生成 Markdown 或 HTML 报告:
from scripts.council import CouncilManager
cm = CouncilManager()
# 生成 Markdown 报告
md = cm.generate_markdown_report(question, responses, final_judgment)
# 或 HTML 报告
html = cm.generate_html_report(question, responses, final_judgment)
HTML 报告用 preview_url 预览,Markdown 报告直接输出。
Prompt 管理
所有角色 Prompt 定义在 references/council_roles.json。关键函数:
- cm.format_role_prompt(role_key, question) — 生成单角色完整 Prompt
- cm.format_decision_maker_prompt(question, responses) — 生成决策者整合 Prompt
工具脚本
scripts/council.py— 主管理脚本,支持:- 交互模式:
python scripts/council.py -i - 列出角色:
python scripts/council.py -l - 生成 Prompt:
python scripts/council.py "问题" - 报告生成:
generate_markdown_report()/generate_html_report()
注意事项
- 只对真正的决策问题启动 Council。简单的事实查询、代码生成、翻译等不需要。
- Phase 1 必须并行,串行会破坏独立审议的效果。
- 角色 System Prompt 不得修改(除非用户要求),它们是精心设计的。
- 决策者输出即最终答案,不要额外解释或补充。
- 如果某个角色返回过短/质量差,不要重试——直接交给决策者,由决策者判断信息充分性。