简介:“Super-agent”中的super-并非“超级”,而是表示“在其之上”的方位前缀,与sub-恰好相对。本文剖析向上抽象与向下分解两种Agent分层思路:Sub-agent向下拆解执行,Super-agent向上负责规划、验收与记忆沉淀,并结合三层职责划分、协作协议与落地要点,帮助开发者为长周期复杂任务设计合理的分层架构。
谈论Super-agent,最容易踩的坑是望文生义——把它理解成“超级Agent”,即能力更强、无所不能的单体智能体。但这个命名里的“super-”,取的并不是“更优越”的含义,而是英语中一个表示“above、over(在其之上)”的方位前缀,与表示“under、below(在其之下)”的“sub-”恰好成对。这类成对前缀在技术词汇里随处可见:
按同样的构词逻辑,Super-agent指的是在“正在干活的主Agent”之上再加一层;而Sub-agent则是在主Agent之下再挂一层。两者方向相反:一个向上抽象,一个向下分解。理解了这个命名逻辑,后续关于分层架构的讨论才有共同的坐标系。
目前多数Agent系统的常见形态是“主Agent + 子Agent”:
这种向下分解带来三个收益:
但它也有结构性局限:主Agent被迫承担太多角色——它既是规划者,又是执行者,还是记忆载体和质量裁判。当任务周期变长、步骤变多时,这一层会迅速过载:上下文膨胀、规划漂移、出错后缺乏系统的评估与恢复机制。
Super-agent的思路,是把“元层面的工作”从主Agent中剥离出来,放到其上的一层。这一层不直接执行具体任务,而是负责:
这与面向对象中 superclass 与 subclass 的关系有微妙的相似:超类定义协议与约束,子类负责具体实现。映射到Agent分层里,就是上层定义“做什么、何时算完成”,下层实现“具体怎么做”。
把两层视图合并,可以得到一个更完整的分层模型:
伪代码示意:
class SuperAgent:"""元控制层:不直接干活,负责计划、验收与记忆"""def run(self, goal):plan = self.plan(goal) # 全局规划for phase in plan.phases:report = self.orchestrator.execute(phase) # 委派主Agentverdict = self.evaluate(report, phase.acceptance) # 验收if not verdict.passed:plan = self.replan(plan, verdict.feedback) # 重规划self.memory.consolidate(goal, plan) # 经验沉淀return self.summarize(plan)class OrchestratorAgent:"""主Agent:任务拆解与子Agent调度"""def execute(self, phase):results = [self.dispatch(t) for t in self.decompose(phase)]return self.aggregate(results)class SubAgent:"""子Agent:专项执行"""def dispatch(self, task):return self.tool_loop(task)
层与层之间建议采用显式契约通信:上层传给下层的应是结构化的任务说明(目标、约束、验收标准),下层回传的应是结构化结果(结论、依据、未决问题),而不是整段原始对话。这既压缩了上下文,也让每一层的职责边界变得可测试。
分层不是免费的:每多一层,就多一次模型调用、多一份提示词维护成本、多一处理化损失。是否引入Super-agent,可以参考以下判断。
适合引入的信号:
不必引入的情况:
Super-agent构想的真正价值,不在“造一个更聪明的Agent”,而在于把Agent系统的控制平面与执行平面分开:向下分解解决“怎么把活干细”,向上抽象解决“怎么把方向把稳”。理解super-与sub-这对前缀背后的方位含义,就抓住了这场讨论的关键——在主Agent之上加一层元控制,让它看得更全、想得更远;在主Agent之下加一层执行,让它做得更快、更专。两者结合,才构成应对长周期复杂任务的完整解法。