编排器与工作者
分层协调。
编排器与工作者 是 CoddyKit 上的免费 AI Prompt Engineering 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 AI Prompt Engineering 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 AI Prompt Engineering 课程共包含 4 节课。
编排器模式
在编排器—工作智能体模式中,单个编排器智能体负责计划和目标;工作智能体执行范围明确的子任务并汇报结果。编排器负责分解、分派、integrate,并决定任务何时完成。
- 编排器:规划、路由、综合、控制流。
- 工作智能体:在严格契约内执行聚焦任务。
这种层级结构将判断集中在一个位置,同时将可并行的工作分散到多个位置。
规划与执行分离
关键纪律是将规划与执行分开。编排器使用少量的高层上下文推理策略;工作智能体则使用详细但范围狭窄的上下文开展工作。将两者混在一起,会重新形成负载过重的通用智能体。
编排器很少应直接接触原始工具输出,而应根据工作智能体的摘要进行推理。
plan = orchestrator.decompose(goal) # high-level
results = [worker.run(sub) for sub in plan] # detailed, scoped
final = orchestrator.integrate(results) # over summaries分解质量决定一切
系统的质量取决于编排器的任务分解水平。子任务必须足够独立,才能并行执行;范围必须足够明确,才能顺畅交接;整体上还必须覆盖完整。请让编排器输出一份明确的计划,以便在任何工作智能体运行之前进行检查。
- 独立子任务 → 并行执行。
- 完整覆盖 → 最终答案没有空缺。
plan = {
'subtasks': [
{'id': 1, 'goal': '...', 'inputs': [...], 'depends_on': []},
{'id': 2, 'goal': '...', 'inputs': [...], 'depends_on': [1]}
]
}使用严格契约进行分派
每次分派只向工作智能体提供其目标、输入和预期输出结构,除此之外不提供任何内容。只了解自身部分的工作智能体不会受到更大目标的干扰,并会返回一种可预测的结构,供编排器 integrate。
分派消息就是一份契约:交付内容明确、格式明确、完成标准明确。
dispatch = {
'goal': 'Summarize doc 7 risks',
'context': doc7,
'output_schema': {'risks': [{'text': str, 'severity': str}]},
'done_when': 'all risk clauses covered'
}工作智能体之间的上下文隔离
默认情况下,工作智能体不应看到彼此的完整上下文。隔离可以防止一个工作智能体的错误或幻觉污染另一个工作智能体,同时让每个工作智能体的提示词保持简短且适合缓存。编排器是唯一拥有全局视图的组件。
工作智能体之间只能通过编排器审核过的摘要共享信息,绝不要通过原始的跨智能体对话进行共享。
并行与串行子任务
独立子任务可以 run(并行执行)以降低延迟;有依赖关系的子任务必须遵守顺序。编排器的计划会编码依赖图,运行时则据此安排任务——先展开独立的叶节点,再进行汇合。
- 展开:并发分派所有已准备好的子任务。
- 汇合:等待依赖项完成后,再分派依赖它们的任务。
def schedule(plan):
ready = [t for t in plan if not t['depends_on']]
run_parallel(ready)
# then unlock tasks whose deps are now done整合与冲突解决
整合不是简单拼接。编排器必须 reconcile 重叠、相互矛盾或置信度较低的工作智能体输出,将它们统一为连贯的结果,决定哪些内容值得信任,并指出尚未解决的冲突。
请为编排器提供明确的协调步骤及其规则:优先采用置信度较高的结果,标记矛盾之处,并在覆盖不完整时请求重新运行。
merged = orchestrator.reconcile(
results,
rules='prefer higher confidence; flag contradictions; re-dispatch on gaps'
)作为控制器的编排器
编排器还负责控制流:决定何时停止、何时重试失败的工作智能体、何时重新规划以及何时升级处理。因此,编排器可以负责执行预算限制——最大迭代次数、最高花费、最大深度——防止循环失控。
没有负责控制的编排器,多智能体系统就会陷入失控。
if iterations > MAX_ITERS or spend > BUDGET:
return orchestrator.best_effort_answer()递归分解
工作智能体本身可以成为某个子问题的编排器,从而形成层级结构。这种方式能够处理深层任务,但会增加延迟以及错误传播的深度。请限制递归深度,并要求每一层返回清晰的摘要,使上层不会被下层细节淹没。
故障隔离
请进行这样的设计:单个工作智能体发生故障时,系统仍能优雅降级。编排器应检测格式错误或空的工作智能体输出,使用经过澄清的契约进行重试,并采用回退策略,而不是直接崩溃。工作智能体彼此隔离地发生故障;编排器负责吸收故障并绕开它继续路由。
- 根据输出结构验证每个工作智能体的返回结果。
- 先重试后 fallback,绝不要向上层传播原始故障。
def collect(worker, dispatch):
out = worker.run(dispatch)
if not valid(out, dispatch['output_schema']):
out = worker.run(clarify(dispatch))
return out or fallback(dispatch)编排蓝图
蓝图如下:编排器将任务分解为可检查的依赖图计划,向相互隔离的工作智能体分派严格契约,并行执行独立子任务,依据明确的冲突规则验证和协调结果,执行预算限制和停止条件,并通过先重试后 fallback 来隔离工作智能体故障。判断权保持集中,工作则保持分布式。
快速检查
您正在为一项包含多个相互独立子主题的研究任务设计一个编排器-工作者系统。
回顾:编排器与工作者
将规划、路由、整合和控制集中在一个编排器中;在严格契约约束下,将专注的执行工作交给彼此隔离的工作者。将任务分解为可检查的依赖图,并行处理相互独立的子任务,依据明确的冲突规则协调结果,强制执行预算和停止条件,并通过验证-重试-回退机制限制工作者故障的影响。编排器只基于摘要进行推理,从不处理未经整理的交叉通信,从而保持层级结构的一致性与可控性。
常见问题解答
「编排器与工作者」课时是免费的吗?
是的 — 「编排器与工作者」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 AI Prompt Engineering 课程的其余内容,请升级到 CoddyKit PRO。 AI Prompt Engineering 课程共包含 4 节课。
「编排器与工作者」这节课中我会学到什么?
分层协调。 你通过在浏览器中直接运行的动手代码来练习 AI Prompt Engineering,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 AI Prompt Engineering 需要有经验吗?
无需任何先前经验。CoddyKit 上的 AI Prompt Engineering 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「编排器与工作者」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 AI Prompt Engineering 课中编写并运行代码吗?
能。每节 AI Prompt Engineering 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。