使用精选 AI 构建主管主导的座席团队
创建由主管领导的 Select AI Agent 团队,将多步骤请求路由到专门的员工代理,并返回一个协调的响应。
Select AI supervisor agent 是 Select AI agent 对象,用于在运行时控制由主管领导的代理团队。主管代理对象接收用户提示,选择应处理每个子任务的员工代理 - 任务对,传递所需的上下文,等待该员工结果,并继续选择下一个代理 - 任务对,直到它可以返回最终答案。
下图显示了 Select AI supervisor agent pattern。 
何时使用主管座席
当团队必须在运行时确定适当的员工或运行顺序时,使用主管模式。主管领导的团队可以根据用户的意图和中间结果,在请求需要不同员工时按不同的顺序提供帮助。主管决定接下来要调用哪个员工代理 - 任务对,传递一个自包含的子任务,等待结果,然后继续,直到它能够生成一个协调的最终答案。
主管代理适用于:
- 跨不同业务或技术领域的工作流。
- 需要不同代理、工具或数据源的请求。
- 需要单个入口点的代理团队来路由和协调请求。
- 主管必须管理交互顺序并合并子代理响应的工作流。
关于选择 AI 主管代理团队
了解 Select AI 主管座席团队如何协调员工座席、控制任务路由、保留上下文并返回一个最终响应。
主管代理团队是 Select AI 代理团队的编排模式。在该团队中,一个 Select AI 代理对象通过将其 supervisor 属性设置为 true 以及该对象在 supervisor_agent 属性中的团队名称来标识为主管。员工座席负责集中工作,例如账户查找、付款检索、报告生成或通知传送。主管座席对象决定要呼叫哪个员工,为该员工准备一个自包含的请求,并将员工结果重新添加到主管上下文中。
子任务处理是连续的:在主管委派下一个子任务之前,必须先完成一个员工子任务。主管将等待员工结果,将结果添加到主管上下文中,然后决定是给其他员工打电话,请求更多信息,解释员工失败,还是返回最终答案。员工座席使用单独的对话线程,因此主管必须在每个委派请求中包括足够的上下文。
该功能将主管相关的属性添加到现有的 DBMS_CLOUD_AI_AGENT API。使用 supervisor 代理属性将 Select AI 代理对象标记为主管。使用 supervisor_agent 团队属性为团队命名该主管代理对象。受监督团队包含一个主管代理对象和一个或多个员工代理 - 任务对。agents 团队属性列出可供委派的员工代理 - 任务对。每个 Worker 任务可以使用其配置的工具。主管代理对象委派给员工代理 - 任务对;Oracle 维护的委派工具不可由用户配置。
有关使用主管代理的端到端示例,请参阅示例:构建和运行客户支持主管团队。
选择 AI 主管代理体系结构
受监督的 Select AI 代理团队作为一个团队运行,具有一个主管代理对象和一个或多个员工代理任务对。团队定义在 supervisor_agent 中命名主管代理对象;员工列表命名主管可以委派到的代理 - 任务对。工具是在员工任务上配置的,而不是在团队中配置的。
在主管领导的团队中,流程仍设置为连续,但配置的员工订单不是工作流计划。主管一次动态选择一个员工代理 - 任务对,等待结果,然后决定是否需要另一个员工。
主管代理对象在内部使用 Oracle 维护的委派工具委托给员工代理 - 任务对。委派工具是主管执行模型的一部分,不列为用户可配置的团队属性。
主管拥有整个请求,并在自己的对话线程中运行。每个 Worker 代理都在一个单独的对话线程中运行。员工不继承完整的主管上下文。主管必须为每个员工创建自包含的子任务请求。员工仅将最终结果返回给主管。主管将返回的结果添加到其自己的上下文中,并决定下一个操作。

| 阶段 | 输入 | 正在处理 | 输出 |
|---|---|---|---|
| 提交请求 | 已向团队提交用户自然语言请求 | 受监督团队首先激活主管代理。 | 主管对话线程将启动请求。 |
| 主管推理循环 | 用户请求和当前主管上下文 | 主管决定它是否具有足够的信息来回答或必须委派子任务。 | 最终答案或一个委派的员工请求。 |
| 任务委派 | 选定的员工代理 - 任务对和自包含子任务上下文 | 主管会为选定的员工代理 - 任务对调用 Oracle 维护的委派工具,然后等待。 | Worker 任务在自己的对话线程中启动。 |
| 任务加工 | 委派的子任务和员工任务配置 | 员工使用在其任务上配置的工具。如果需要用户输入,则团队将等待用户响应。 | 员工结果、员工失败结果或人工输入请求。 |
| 主管继续 | 返回的员工结果、失败结果或用户响应 | 主管将返回的结果添加到其上下文中并继续推理。失败遵循与成功相同的返回路径;主管决定是重试、呼叫其他员工、请求更多信息、解释失败还是返回最终答案。 |
主管主导的团队中的运行时行为
了解主管领导的团队如何暂停用户输入、处理员工故障以及在主管和员工对话之间传递自包含的上下文。
人工输入处理
当员工请求人工输入时,整个主管领导的团队会在等待用户响应时暂停。用户继续在同一对话中提供请求的信息。
用户响应后,员工将恢复、完成任务并将结果返回给主管。然后,主管决定是委派另一个子任务还是返回最终答案。
故障处理
员工失败遵循与成功结果相同的返回路径。主管会收到故障结果并决定下一个操作,例如重试任务、调用另一个 worker 代理 - 任务对、请求其他输入或返回最终答案。
上下文传递模型
每个 Worker 在自己的对话线程中运行,不会继承完整的超级用户上下文。主管必须提供包含员工完成任务所需的所有信息的自包含子任务请求。
主管座席用例
当一个请求可能需要多个专门代理、条件路由或暂存响应时,应用主管引导的 Select AI 团队。
- 回答需要账户详细信息、付款历史记录和最终组合回应的客户支持请求。
- 根据数据源将数据分析提示路由到合适的员工,然后将员工结果合并到一个答案中。
- 请员工在发送通知或完成业务操作之前暂停人工确认。
- 使用一个主管团队处理请求,这些请求有时需要一名员工,有时需要多个员工。
- 跟踪员工移交和返回的结果,以进行审计、测试和故障排除。
优势
使用主管领导的团队来路由多步骤请求,使员工座席保持专注,并记录 Select AI Agent Framework 活动的委派路径。
- 动态任务传送:主管根据当前请求和返回的上下文选择下一个员工。
- 重点员工设计:每个员工处理一个有边界的任务区域,从而使提示和工具映射更易于维护。
- 上下文控制:主管仅传递每个员工子任务所需的上下文。
- 可跟踪性:团队和任务历史记录视图可以显示委派路径和返回的员工结果。
- 团队增长增量:为新任务添加新员工代理,而无需重新设计每个现有员工。
如何使用 Select AI Supervisor Agent Teams
创建代理以充当主管,并将其指定为主管,创建员工代理,将主管添加到团队属性,并针对团队运行用户提示。
- 授予所需的权限。数据库用户必须对
DBMS_CLOUD_AI_AGENT具有EXECUTE权限、对所需身份证明的访问权限以及外部提供程序调用的所需网络 ACL。有关更多信息,请参见 Prerequisites for Using Select AI Agent 。 - 创建员工代理使用的工具,例如用于查找、更新、通知或报告任务的 PL/SQL 函数。有关更多信息,请参见 DBMS_CLOUD_AI_AGENT Package 和 Examples of Using Select AI Agent 。
- 创建员工座席和任务。使每个员工角色保持特定状态,以便主管可以为每个子任务选择正确的员工。请参见CREATE_TASK Procedure 和 CREATE_AGENT Procedure 。
- 创建
supervisor属性设置为true的主管代理。请参见 CREATE_AGENT Attributes 。 - 创建将
supervisor_agent设置为主管代理名称的团队,将agents设置为员工代理 - 任务对。请参见CREATE_TEAM Procedure 。 - 设置会话的团队并使用 Select AI Agent 框架提交自然语言提示。请参见 SET_TEAM Function 。
- 查看历史记录视图,以确认员工路由、返回的结果、员工故障和人工输入等待状态。如果员工任务请求人工输入,则团队将暂停,直到用户作出响应。在此期间,整个主管领导的团队暂停。继续进行相同的对话以提供请求的输入。用户响应后,员工将恢复、完成任务并将结果返回给主管。主管随后决定下一步行动。请参见 DBMS_CLOUD_AI_AGENT Views 。
不要包括 Worker agents 数组中选定的主管。主管控制团队,而数组仅列出可供委派的员工座席任务对。员工任务可以使用自己的已配置工具;团队属性不列出工具名称。
注:由主管领导的团队按顺序处理员工子任务。主管在委派其他子任务之前等待每个员工结果。并行 worker 执行不属于此发行版的一部分。
允许的主管座席团队配置
查看在 Select AI 代理团队中定义主管、员工代理 - 任务对、工具和处理的受支持配置和指南。
| 配置 | 是否允许? | 指导 |
|---|---|---|
supervisor_agent 将在 supervisor 设置为 true 时创建的代理命名为 |
是 | 将此模式用于受监督团队。 |
所选主管也列在 Worker agents 数组中 |
否 | 指定为主管的代理不能包括在 Worker 数组中。设计验证将拒绝 agents 数组中启用了主管的代理。 |
| 同一员工座席已分配给多个任务 | 是 | 同一座席可以通过将同一座席分配给不同的任务名称来执行多个任务。 |
工具列在团队 agents 数组中 |
否 | 使用 CREATE_TASK 定义有关任务的工具。团队属性列出员工代理 - 任务对,而不是工具名称。 |
supervisor_agent 指定没有 "supervisor": true 的代理 |
否 | 选择 supervisor 设置为 true 的代理。如果指定的代理不是主管,则团队创建或验证失败;请检查返回的数据库错误详细信息。 |
| 为团队定义了多个主管 | 否 | 一个团队只支持一个主管。使用 "supervisor": true 定义单个代理并在 supervisor_agent 中引用该代理。 |
| 主管委派给另一个主管领导的团队 | 否 | 此发行版不支持主管到主管的委派。主管只能委派给同一团队中的员工代理。 |
| 一个团队中指定为主管的代理可以用作另一个团队中的员工 | 是 | 您可以在具有不同角色(主管或员工)的多个团队中重用相同的主管代理。通过团队配置定义角色。 |
注:
- 该框架不会强制执行最大数量的对话转动。对于任务运行,框架将失败的工具调用的重试次数限制为每个任务 10 次尝试。
- 该框架没有引入新的监测意见。您可以使用现有的 Select AI Agent 框架历史记录视图来查看团队、任务和工具执行历史记录。有关更多信息,请参见 DBMS_CLOUD_AI_AGENT History Views 。
主管主导团队故障排除
确定常见 Select AI 主管领导的团队配置、委派、上下文、通知和人工输入问题的可能原因和修复。
团队创建失败
问题:团队创建失败。
可能的原因:supervisor_agent 未将代理命名为 "supervisor": true。
修复:使用 supervisor 属性重新创建代理,然后再次创建团队。
主管打电话给错误的员工
问题:主管调用了错误的员工。
可能的原因:员工任务说明过于模糊或重叠。
修复:使任务说明更加具体和互斥。主管根据代理名称、任务名称、说明和任务说明选择员工代理 - 任务对。
定义员工任务时使用以下准则:
- 为每个 Worker 定义一个明确的域边界。
- 使用特定的任务名称,例如
ACCOUNT_MANAGEMENT_TASK或PAYMENT_LOOKUP_TASK。 - 避免员工之间的指令重叠。
- 在任务指令中包含预期的输入参数。
- 指定员工何时应请求人工输入。
- 定义返回给主管的结果格式。
员工缺少上下文
问题:员工缺少上下文。
可能的原因:主管未在委派的子任务中传递足够的详细信息。
修复:添加指示主管发送自包含子任务的说明。定义明确的主管角色以指导委派行为。
示例:
{
"profile_name": "<AI_PROFILE_NAME>",
"supervisor": true,
"role": "You orchestrate requests. Choose the appropriate worker agent-task pair for each subtask. Send self-contained requests with all required context. Return one concise final answer."
}
电子邮件未发送
问题:电子邮件未发送。
可能原因:身份证明、网络 ACL、发件人或收件人配置缺失或不正确。
修复:验证 SMTP 凭证、ACL、发件人以及收件人设置。
用户输入的提示等待
问题:提示符等待用户输入。
可能原因:主管或员工请求人工确认。
修复:继续与请求的信息进行相同的对话。
比较顺序工作流和主管模式
根据团队必须如何选择员工和协调任务来选择适当的“选择 AI 代理 - 团队”模式。
选择团队必须以已知顺序运行配置的代理 - 任务对时的顺序工作流模式。当团队必须根据请求、中间结果、故障或请求获取更多信息在运行时选择员工时,选择主管模式。
| 特性 | 顺序工作流模式 | 主管模式 |
|---|---|---|
| 运行计划 | 已修复。agents 数组定义工作流顺序。 |
Variable(变量)。主管在运行时选择下一个员工。 |
| 入口点 | 第一个配置的代理 - 任务对。 | 主管代理。 |
| 任务选择 | 团队按顺序运行配置的代理 - 任务对。 | 主管根据需要呼叫一个或多个员工。 |
| 上下文传递 | 任务相关性将前面的任务输出传递给下游任务。 | 主管为每个员工发送一个自包含的子任务。 |
| 最适合 | 具有已知阶段的可预测管道。 | 需要条件路由或协调的变量请求。 |
| 并行运行 | 不支持。任务一次运行一个。 | 不支持。员工子任务一次运行一个子任务。 |
下表提供了顺序模式与主管模式之间的差异,可以帮助您确定工作流。
| 顺序模式 | 主管模式 |
|---|---|
| 固定工作流 | 动态编排 |
| 每个步骤按顺序运行 | 仅运行所需的步骤 |
| 适用于线性管道 | 适用于分支企业请求 |
| 决策逻辑更少 | 减少手动路由逻辑,增加运行时判断 |