问题
单 Agent 的上下文和能力有上限:复杂项目需要前端、后端、测试、文档多种专长同时在线,一个"全能 Agent"的 prompt 越写越长,什么都不精。
核心模式
层级委派(Hierarchical Delegation):编排者(Orchestrator)拆解任务、分派给专职子 Agent、验收汇总——像技术经理带团队。
class Orchestrator:
async def run(self, project):
subtasks = self.decompose(project) # 拆成专职子任务
results = {}
for st in subtasks:
worker = self.select_worker(st) # 按专长匹配
# 子 Agent 只拿到自己所需的上下文(信息最小化)
results[st.id] = await worker.run(
task=st.spec,
context=self.slice_context(st), # 不给全图,给切片
)
if not self.accept(st, results[st.id]): # 验收
results[st.id] = await self.remediate(st, results[st.id])
return self.assemble(results)
关键设计:上下文切片。子 Agent 不需要知道整个项目,只需要完成自己任务所需的最小信息——这既省 token,又避免子 Agent 被无关信息带偏。
实战要点
- 编排者保持"轻":只做拆解、分派、验收,不亲自下场执行——下场执行的编排者会失去全局视野
- 子 Agent 返回结论而非完整轨迹:编排者的上下文同样宝贵,过程细节留在子 Agent 日志里
- 委派关系要浅:两级(编排者→执行者)足够,三级以上的层级带来的协调成本会吃掉收益
- 验收标准在分派时就定义清楚:"完成"必须可检查,否则编排者无法判断子 Agent 是真做完了还是在糊弄