子 Agent 本身也是个目录,可以有自己的 instructions、tools、skills、模型、沙箱。主 Agent 把它当工具调用,子 Agent 在干净上下文里干完,把结果交回。
它的价值不是把一个头像变五个,而是两件事:
第一,复杂任务拆成边界更清楚的子任务;第二,不同任务用不同上下文和最小权限工具。
举例一次线上事故:
这种隔离减少上下文污染,也缩小每个 Agent 的权限范围。
注意:声明的子 Agent 不会继承 root 的 authored slots。
root 有 agent/skills/topic_planning.md,不代表 researcher 自动拥有它。每个子 Agent 是独立 agent root,只发现自己目录下的内容。想让子 Agent 用某 skill,就把它放进子 Agent 自己的 skills/。
// agent/subagents/researcher/agent.ts
import { defineAgent } from "eve";
export default defineAgent({
description: "Research topics, collect source plans, return briefs.", // 父 Agent 据此判断何时调用
model: "anthropic/claude-sonnet-5",
});
能拆不等于应该拆。子 Agent 增加模型调用、延迟和汇总成本。一个工具调用就能搞定的事,别为了"多 Agent"三个字绕一圈。
| 维度 | 单 Agent | 子 Agent 团队 | 标叔的结论 |
|---|---|---|---|
| 上下文干净 | 易污染 | 隔离 | 团队赢 |
| 权限最小化 | 难 | 易 | 团队赢 |
| 成本 | 低 | 高 | 单 Agent 赢 |
| 适用 | 简单任务 | 复杂任务 | 看场景 |