核心要点
能列清边界问题:无限递归 spawn、资源与成本失控、上下文与权限继承不清、死锁/循环依赖、子结果如何回传聚合
能给出限额保护:最大递归深度、并发子 Agent 上限、token/预算配额、单任务超时与取消
能讲权限与隔离:子 Agent 权限只能收窄继承不能放大,子级失败要隔离、不拖垮父级
能讲结果回传与校验:明确子结果的格式与聚合方式,对回传内容做校验和裁剪防止污染父级上下文
标准回答
父 Agent 动态 spawn 子 Agent 是强大的能力,但缺乏约束会失控,要先识别边界问题再逐项加保护。
边界问题
- 无限递归 spawn:子 Agent 又派生孙 Agent,没有深度限制就指数爆炸。
- 资源与成本失控:每个子 Agent 都烧 token、占并发,数量不封顶会瞬间打满预算和算力。
- 上下文与权限继承不清:子 Agent 该继承父级哪些上下文、哪些工具权限?继承过多会越权和泄密,过少又干不了活。
- 死锁与循环依赖:父等子、子又依赖父或兄弟 Agent 的结果,形成环路互相阻塞。
- 结果回传与聚合:多个子 Agent 各返回一段结果,如何回传、合并、去重并塞回父级上下文而不超长、不互相污染。
限制与保护
针对上面逐项设防:
深度与并发上限:设最大递归深度和同时存活子 Agent 数量上限,超过即拒绝 spawn,从根上掐断指数爆炸。
预算与配额:给整棵任务树分配总 token / 成本预算,父子共享并逐级扣减,耗尽即终止,避免烧穿。
超时与取消:每个子 Agent 有超时时间,父级可主动取消未完成的子任务,防止某个子 Agent 卡死拖住整体。
权限收窄继承:子 Agent 权限只能等于或小于父级(向下收窄),按需授予最小工具集,绝不允许子级权限放大。
失败隔离:子 Agent 异常要被隔离捕获,转成结构化错误返回,不让单个子级崩溃拖垮父 Agent 或整棵树。
结果校验与聚合:约定子结果的结构化格式,回传时做校验、裁剪、去重再合并进父级上下文,防止超长或被注入内容污染父级。
常见误区
⚠️ 常见踩坑
让父 Agent 不设深度和并发上限地随意 spawn——一旦模型决定「再派几个子 Agent 帮忙」就可能递归爆炸、瞬间烧穿 token 预算;另一个误区是子 Agent 直接全量继承父级权限和上下文,造成越权、敏感信息扩散,正确做法是权限只能向下收窄;还有人不隔离子级失败,一个子 Agent 报错或卡死就让整棵任务树崩掉,也不对回传结果做校验,子级输出直接污染父级上下文甚至携带提示注入。
追问
追问 1:怎么从机制上彻底防止无限递归 spawn 导致的爆炸?
在任务树上维护一个深度计数器随 spawn 逐层递增,超过最大深度直接拒绝再派生;同时限制同时存活的子 Agent 总数和单个父级的扇出数。再叠加全局 token/成本预算逐级扣减,预算耗尽即终止整棵树。深度、并发、预算三道闸任一触发就停,确保有界。
追问 2:子 Agent 应该继承父 Agent 的哪些上下文和权限?
权限上只能收窄继承——子级工具权限是父级的子集,按子任务实际需要授予最小集合,绝不放大。上下文上只传递完成子任务必需的信息(任务描述、相关数据片段),不全量复制父级历史,既省 token 又避免敏感信息扩散;回传时也只把约定格式的结果带回,防止上下文无序膨胀。
追问 3:多个子 Agent 的结果如何回传和聚合,怎么防止污染父级上下文?
约定结构化的返回格式(如带字段的 JSON 或固定模板),父级收集各子结果后统一校验、裁剪超长内容、去重并按需合并,再以摘要或结构化形式塞回上下文,而不是原样拼接。对子级返回内容做安全过滤,防止其中夹带的指令把父级带偏(间接提示注入)。聚合时也要处理部分子任务失败的情况,标注缺失而非整体失败。
🔗 相似问题
同一考点的不同问法,面试官可能换着问,一起刷更稳
没找到想看的面试题?把你想看的告诉我们 →
延伸学习
按主题分类的相关资源,便于系统复习