首页 / 文档 / 工具 / agent_delegate - 委派

agent_delegate - 委派

把任务交给会话中的另一个 Agent,等待它的答复

agent_delegate 让一个 Agent 把任务交给会话里的另一个 Agent 处理。被委派的是一个常驻的正式成员,它有自己的工作空间、记忆、技能和会话,在自己的环境里作答,结果回到发起方,不会直接发给用户。

这是 Agent 团队协作的底层能力。关于团队如何组建、群聊里主 Agent 如何决定委派,见团队文档。

只有在团队会话中,也就是会话里有两个及以上启用的 Agent 时,agent_delegate 工具才会出现。单 Agent 的部署看不到它。

与子 Agent 的区别

子 Agent 委派
生命周期 为一个任务创建,用完即弃 常驻 Agent,事先配置
工作空间 与调用方共享 独立
记忆 没有自己的 独立
身份 匿名 出现在 Agent 列表中,可绑定通道

需要把自己的活并行化,用子 Agent。任务本就属于别人,也就是拥有那个代码库、那个知识库、那个客户关系的 Agent 时,才用委派。

同步执行

委派会把任务交出去,等待对方作答,再把答复返回。调用会一直阻塞到对方完成,或时间预算耗尽,因此没有需要轮询的状态,也没有需要跟踪的句柄。

代码
agent_delegate(agent_id="research", task="...")
  -> { status: "done", content: "..." }

在底层,这次运行会记录在目标的工作空间中,父节点是发起委派的那个 run,因此一条委派链从两端都能追溯。

可委派的对象

能被委派的,是当前会话中的成员。委派始终限定在这个会话内部,不会把任务交给会话之外的 Agent,即便白名单本可放行。若指向的不是会话成员,工具会拒绝,并列出实际可以委派的对象。

参数

参数 说明
agent_id 会话成员的 ID
task 一份自洽的任务说明,对方无需看到本会话即可据此行动

边界

委派发生在完整的 Agent 之间,因此设有边界:

边界 说明
成员 目标必须是当前会话中的成员
白名单 谁可以找谁,不设置则任意 Agent 之间都可委派
环路 已在链路中的 Agent 不能被再次委派
深度 一条链最多允许多少跳
长度 单次任务文本的上限
时间预算 一次委派运行最长可以跑多久,超出即放弃

配置

json
{
  "agent_delegation": {
    "enabled": true,
    "allowed_targets": {
      "assistant": ["research", "support"],
      "research": []
    },
    "max_depth": 3,
    "timeout_seconds": 600,
    "max_message_chars": 8000
  }
}
字段 默认值 含义
enabled true 设为 false,或把整个配置块设为 false,即可完全不提供该工具
allowed_targets 未设置 源 Agent ID 到其可访问 ID 的映射,"*" 表示任意。未设置则允许所有组合。目标还会进一步限定在当前会话的成员范围内
max_depth 3 一条链的委派跳数(1-8)
timeout_seconds 600 单次委派运行的时间预算(0.01-600)
max_message_chars 8000 单次委派任务的长度上限

像上面的 "research" 那样配成空数组的 Agent,可以被委派,但不能再向外委派。