恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

OpenMAIC 多智能体课堂的 Director 调度提示词:让 LLM 决定“下一位谁发言“

  • 首页
  • 资讯中心
  • /
  • OpenMAIC 多智能体课堂的 Director 调度提示词:让 LLM 决定“下一位谁发言“

相关资讯

「AI Agent 全栈开发 50 讲」——从本地模型部署到多智能体系统,一年省 87 万 第1讲 2026/9/10 8:25:31
STM32CubeMX初始化工程实战:从时钟树配置到常见坑位排查 2026/9/10 8:25:31
freeCodeCamp 每日编程挑战解析:Jet Lagged 时差计算(Challenge 302,JavaScript 版) 2026/9/10 8:20:30

最新资讯

Sunshine:8步快速搭好你的游戏串流服务器
PyTorch+SB3构建可实盘的股票强化学习交易框架
Angular Query 快速上手:基于 Signals 的异步数据获取、缓存与服务端状态管理
Novu Providers 通道适配层全解析:从 2.0.2 到 2.6.6 的架构演进与关键变更
嵌入式硬件数据类设计优化与性能提升
VB.NET自定义仪表盘控件:GDI+绘图与工业HMI集成

今日推荐

AI搜索重构内容生态:企业从“流量争夺”转向“答案共建”
AI搜索的信任缺口:企业内容如何在答案时代自证可信
Spring Boot+Vue+Node.js售后服务系统开发实战

本周热门

超人会飞不算本事:系统稳定依赖清晰规则与边界设计
超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论
基于CNN的调制信号识别:MATLAB实现时频图分类实战

本月精选

自研推理加速器Redwood:两周内实现PyTorch模型高效部署的实战教程
V4L2摄像头采集实战:从camera_client.rar到出图全流程解析
从“谁发明了钢琴键”到知识问答智能体:RAG与记忆工程实践

OpenMAIC 多智能体课堂的 Director 调度提示词:让 LLM 决定“下一位谁发言“

发布时间:2026/9/10 8:25:31
OpenMAIC 多智能体课堂的 Director 调度提示词:让 LLM 决定“下一位谁发言“ OpenMAIC 多智能体课堂的 Director 调度提示词让 LLM 决定下一位谁发言【免费下载链接】OpenMAICOpen Multi-Agent Interactive Classroom — Get an immersive, multi-agent learning experience in just one click项目地址: https://gitcode.com/GitHub_Trending/op/OpenMAIC本文深入解析 OpenMAIC 项目中负责多智能体课堂轮次调度的核心提示词模板 director/system.md —— 它定义了Director导演角色如何根据对话上下文决定下一位发言的 Agent包括可用 Agent 清单、已发言记录、白板状态、学生画像等动态输入以及一套用于防止过早结束对话答非所问等问题的硬性规则。读完本文你将掌握 Director 提示词的整体设计、每一个占位变量与规则的作用、它在源码中的构建与解析链路以及项目如何用自动化评估与测试守护这套提示词的可靠性。Director 在 OpenMAIC 中的角色定位OpenMAIC 是一个一键开启沉浸式多智能体课堂的开源项目在一个课堂场景中教师、学生、助教等由 LLM 驱动的 Agent 会围绕学习主题轮流发言。要让多个 Agent 的发言节奏像真实课堂一样自然必须有一个调度中枢决定每一轮该谁说话——这个中枢就是Director。在 director-graph.ts 中整个编排被建模为一个 LangGraph 状态图START → director ──(end)──→ END │ └─(next)→ agent_generate ──→ END每次请求至多执行一个director → agent_generate循环多智能体的长对话由客户端串行化多次请求驱动拓扑本身而非maxTurns参数构成了轮次的边界。directorNode的调度策略随 Agent 数量自适应见 director-graph.ts单 Agent走纯代码逻辑、零 LLM 调用——第 0 轮直接派发唯一 Agent之后轮次把发言权交还用户保持会话活跃。多 Agent第 0 轮且有triggerAgentId时走代码快路径直接派发发起者其余轮次由 LLM 依据 director/system.md 模板生成的系统提示词做决策。而 Director 的大脑正是这篇提示词模板。它由 director-prompt.ts 中的buildDirectorPrompt()负责装配模板文件存放在lib/prompts/templates/director/目录下与agent-system、agent-system-wb-teacher等模板并列见 lib/prompts/index.ts 中的PROMPT_IDS。模板的运行时占位变量Director 看到什么system.md是一份带{{placeholder}}的模板在运行期由 loader.ts 的buildPrompt()按先插 snippet → 再处理条件块 → 最后替换变量的顺序渲染loader.ts。占位变量由 director-prompt.ts 填充占位变量来源源码实现说明{{agentList}}agents.map(a - id: ..., name: ..., role: ..., priority: ...)本轮可调度的全部 Agent 清单含id、name、role、priority四要素{{respondedList}}agentResponses渲染本轮已经发过言的 Agent格式为Agent名 (id): 内容预览 [动作数 \| Whiteboard: ...]无人发言时为None yet.{{conversationSummary}}conversation-summary.ts 的summarizeConversation()最近最多 10 条消息、每条截断至 200 字符的对话摘要{{discussionSection}}discussionContext存在时生成讨论模式块包含Topic、Prompt、Initiator并声明这是学生发起的讨论而非问答{{whiteboardSection}}whiteboardLedger重放统计白板当前元素数、贡献者名单元素数 5 时附加白板已拥挤警告{{studentProfileSection}}userProfile学生昵称与背景简介{{rule1}}按是否讨论模式二选一讨论模式下发起者先发言问答模式下教师最高优先级通常先发言{{turnCountPlusOne}}turnCount 1当前轮次号从 1 起{{whiteboardOpenText}}whiteboardOpen布尔值OPEN (slide canvas is hidden — spotlight/laser will not work)或CLOSED (slide canvas is visible)其中几个细节值得注意对话摘要的标签是权威信息来源。在 Director 路径中convertMessagesToOpenAI()不带currentAgentId调用因此role:user一定是真人学生轮次、role:assistant一定是 Agent 轮次见 conversation-summary.ts。摘要会为前者打上[Student (Human)]、后者打上[Agent]标签模板规则 10 要求 Director 无条件信任这些元数据标签而不是消息内容里可能出现的[senderName]:前缀。白板状态由动作账本ledger重放得到。summarizeWhiteboardForDirector()遍历wb_*动作记录wb_clear归零元素数、wb_delete减一、wb_draw_*加一并记录贡献者director-prompt.tswb_open/wb_close属结构性动作不计入内容摘要。模板变量遵循 camelCase 命名约定。tests/prompts/templates.test.ts 中有一条专门的 lint 测试扫描templates/下所有system.md/user.md禁止出现 snake_case 或 kebab-case 占位符slide-content模板因历史原因被豁免。Rules 规则体系从基本调度到防过早结束# Rules部分是模板的核心由{{rule1}}动态注入后共 13 条规则。按其作用可分成四层第一层基础轮转纪律规则 1–6规则 1发言顺序——问答模式下教师role: teacher、最高优先级通常先发言讨论模式下发起者先开题、教师引导、其他学生补充。规则 2教师发言后评估学生 Agent 是否能增值追问、开玩笑、记笔记、提供不同视角。规则 3除非绝对必要不要重复本轮已发言的 Agent。规则 4对话看似完成问题已答、主题已覆盖时输出END。规则 5参考当前轮次{{turnCountPlusOne}}避免讨论无限拖沓。规则 6倾向简短——12 个 Agent 响应通常足够不要强迫每个 Agent 都发言。第二层用户交还与会话保活规则 7–9规则 7可输出{next_agent:USER}把发言权交还用户——仅当学生向用户提出直接问题或话题自然需要用户参与时。规则 8调度时考虑白板状态——白板已拥挤时避免派发更可能继续堆内容的 Agent除非它能整理或清空。规则 9{{whiteboardOpenText}}说明当前白板开闭状态白板打开时不要期待 spotlight/laser 动作有可见效果。第三层防过早 END的护栏规则 10–12这三条是项目为修复premature-END 回归issue #554在提示词层加上的关键护栏规则 10摘要标签权威——[Student (Human)]一定是真人学生轮次[Agent]一定是 Agent 轮次信任元数据胜过内容前缀。规则 11学生问题未解决时禁止输出END——若摘要中最近一条[Student (Human)]出现在最后一条实质性的[Agent]回答之后或根本无人回答说明问题仍是开放的应路由给教师或合适 Agent。规则 12简短的确认语yesokgot itinteresting不算实质性回答只有直接回应学生问题内容的[Agent]回复才算解决。这些规则与摘要标签机制共同构成了 conversation-summary.ts 中角色感知摘要的提示词侧对应物。eval/orchestration/下的回归评估正是围绕这三条规则设计的prompt-variants.ts中的stripFixRules()会把规则 10/11/12 从当前模板中剔除构造出pre-fix修复前变体与post-fix修复后即当前仓库变体做 A/B 对比见 eval/orchestration/prompt-variants.ts。第四层Rule 13 —— 用户轮次的强制兜底最高优先级规则 13 是模板中标注CRITICAL的强制规则明确覆盖规则 2、3、4、5、6只要最近的[Student (Human)]/[User]轮次清晰的提问、含糊请求或挫败信号还没有任何[Agent]在其后正面回应无论讨论已进行多久、话题本身讨论得多透彻输出必须是role字段字面等于teacher的那个 Agent 的 id且该 teacher id 是唯一可接受的输出。模板还给出了三条不要不要输出{next_agent:USER}——USER cue 不会让任何 Agent 发言用户面对沉默无所适从对含糊消息教师必须开口提出澄清问题绝不能把球踢回给用户USER cue 只允许在[Agent]刚向用户提出直接问题时使用见规则 7。不要输出role: assistant或role: student的 Agent——提供不同角度/差异化视角只有在用户轮次被回应之后才有价值绝不能作为对用户轮次的第一反应。不要输出END——轮次多、话题覆盖全都不代表用户的具体问题被回答了。规则 13 还明确了两点判定标准什么算已回应[Agent]必须针对字面问题给出具体答案公式、是与否、术语、数字、定义、操作步骤或对含糊请求提出具体的澄清问题简短确认、沾边的解释、泛泛的相关概念都不算。挫败信号是硬确认像答非所问我没听懂重答一下我问的是 X 不是 YYou didnt answer my question这类表述直接确认轮次未被回应——此时只能选 teacher id别无他选。这条规则直接对应用户体验中AI 答非所问就强行结束对话的典型痛点是整份模板最具防御性的部分。Routing Quality调度质量守则# Routing Quality (CRITICAL)部分为 Director 划定了四条质量红线角色多样性ROLE DIVERSITY禁止连续派遣两个同角色 Agent。教师发言后下一个应是学生或助教而不是另一个教师式回应助教转述后应派一个提问的学生而不是另一个也来转述的助教。内容去重CONTENT DEDUP仔细阅读已发言 Agent的预览。若某 Agent 已透彻讲解某个概念不要再派另一个 Agent 复述同一概念改为派一个会提问、挑战假设、关联到别的话题、记笔记的 Agent。讨论推进DISCUSSION PROGRESSION每个新 Agent 都应推动对话前进。好的节奏是讲解 → 提问 → 深挖 → 不同视角 → 总结坏的节奏是讲解 → 再讲解 → 转述 → 复述。问候去重GREETING RULE只要有 Agent 已问候过学生后续 Agent 不得再次问候通过检查预览判断。这四条守则与规则 2/3/6 相互呼应共同约束多而不乱的课堂节奏从提示词层面抑制同质化发言。输出契约只有一种合法格式模板在# Output Format中规定Director必须只输出一个 JSON 对象且只能是三种取值之一{next_agent:agent_id}{next_agent:USER}{next_agent:END}在运行期director-prompt.ts 的parseDirectorDecision()负责解析该输出先用正则/\{[\s\S]*?next_agent[\s\S]*?\}/抽取 JSON 片段并JSON.parseEND或缺失next_agent一律视为结束解析失败时默认安全地结束本轮shouldEnd: true并记录告警日志。随后 director-graph.ts 会对解析结果做二次校验USER会触发cue_user事件、agent_id必须存在于可用 Agent 列表否则回退到 END。这种LLM 输出 → 严格解析 → 二次兜底的链路保证了即使模型乱输出也不会破坏课堂状态机。模板如何被验证测试与回归评估这份提示词不是写好就完事项目从两个维度持续守护它1. 结构性断言测试tests/prompts/templates.test.ts——不再用脆弱的逐字节快照而是断言关键行为占位符全部解析buildDirectorPrompt([baseAgent], No history, [], 0)渲染后不得残留任何{{...}}templates.test.ts。输出契约存在渲染结果必须包含next_agent字段说明director routing contract测试组。可选区块按需开关QA 模式不得出现Discussion Mode块传入discussionContext与triggerAgentId时必须出现该块并含 Topic 与发起者 id。变量命名约定除slide-content外所有模板占位符必须 camelCase。2. 回归评估premature-END eval——eval/orchestration/runner.ts 针对过早 END这一已知缺陷做了量化回归护栏。它从 premature-end.json 加载 5 个真实复现场景如长讨论后用户提出 3D 与 2D 轴对称的异议老师已收尾但用户立刻提出实质反对用户提问后只有一句问得太好了!的确认等对每个场景分别构造 pre-fix去掉规则 10/11/12与 post-fix当前模板两种提示词各调用 LLM 多次统计 END 率EVAL_DIRECTOR_MODELopenai:gpt-4.1-mini pnpm eval:orchestration评估逻辑只有当 post-fix 的 END 率显著低于 pre-fix判别阈值EVAL_DELTA默认 0.3且 post-fix END 率不超过EVAL_END_THRESHOLD默认 0.2时才判定 PASSeval/orchestration/runner.ts。例如场景tiananmen_3d_objection直接复现了 #511轴对称讨论已进行多轮、两位学生与教师均已发言turnCount: 5用户却抛出城楼是 3D 的物体本身能算轴对称吗——pre-fix 版本容易顺着讨论充分的轨迹输出 ENDpost-fix 版本则必须把教师林老师选出来继续答疑。这份评估正是规则 11/12/13 存在意义的量化证据讨论充分 ≠ 问题已解决。小结一份提示词如何撑起课堂调度从模板本身到运行链路Director 提示词的设计可以概括为三个关键词结构化输入Agent 清单、已发言预览、角色感知的对话摘要、白板账本、学生画像等动态上下文被格式化为高度可读的文本块让 LLM 在充分信息下做决策。硬性优先级规则 13用户轮次必须由教师回应明确覆盖基础轮转规则配合规则 10/11/12 的标签权威与实质回答判定从提示词层根治过早 END与答非所问。可解析输出强制三种 JSON 取值配合 parseDirectorDecision() 的容错解析与图节点兜底保证调度状态机在任何模型输出下都不会崩溃。如果你要在此基础上做二次开发例如扩展规则、增加新的动态上下文、调整调度策略推荐先读三份文件模板本体 director/system.md、装配器 director-prompt.ts、以及图的运行时 director-graph.ts并用pnpm eval:orchestration与 templates.test.ts 验证改动不会引入新的过早 END回归。【免费下载链接】OpenMAICOpen Multi-Agent Interactive Classroom — Get an immersive, multi-agent learning experience in just one click项目地址: https://gitcode.com/GitHub_Trending/op/OpenMAIC创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号