程序

智能体在相关时加载的任务专属指令

概览

程序包含针对某项特定任务的指令。每个程序都有一个触发条件,用于说明何时适用;还有内容,用于说明具体操作。对话符合触发条件时,智能体会加载该程序。

当智能体需要处理多种不同任务时,可使用程序。例如,客服智能体可为每类请求设置一个程序:退款、身份验证、账户恢复或连接故障排查。

智能体控制台中的程序
标签页

程序类型

程序分为两类:

  • 自由形式程序 使用自然语言编写指令,智能体会根据具体情况理解并调整。
  • 结构化程序 是一组有序的类型化步骤,智能体每次都会以相同方式执行。

同一智能体可以同时使用两类程序。无论类型如何,智能体都会根据触发条件选择相关程序。

程序之间可以互相调用。自由形式程序通过内联 引用调用其他程序;结构化程序则通过 子程序 步骤调用其他结构化程序。常见做法是将开放式处理保留在自由形式程序中,并将每次都必须以相同方式执行的部分交给结构化程序。

智能体可以使用程序、工作流,或同时使用两者。两者同时存在时,工作流中的每个节点都能使用所有程序;无法将程序限制为仅在特定工作流节点使用。大多数智能体以其中一种方式为主构建,但两者可以组合使用。

何时使用程序

每个智能体都有一个系统提示词。程序和工作流是添加额外结构的两种方式,智能体也可以同时使用两者。根据对话可能变化的程度选择起点。

需求使用方式原因
简单的概念验证智能体仅使用系统提示词设置和迭代最快,但随着智能体职责范围扩大,单个提示词会变得难以管理。
智能体可调整措辞和顺序的任务自由形式程序将整个对话保留在同一个 LLM 的上下文中,智能体可调整措辞和顺序,也能应对意外走向。会占用更多上下文窗口。
每次都必须以相同方式执行步骤的任务结构化程序每个步骤都会按你设定的顺序、以相同方式执行,并且只需编写一份简短的步骤列表。
完全控制复杂分支和边缘情况工作流以你自行设计和连接的子智能体图执行,可完全控制分支以及每一步使用的模型。

自由形式程序是默认选择。它们编写最快,读起来像文档,非技术团队也能负责维护;当对话偏离预设脚本时,智能体还能恢复处理。对于跳过或调换步骤代价很高的场景,例如身份验证、升级处理或金融交易,应使用结构化程序。如果需要两种程序都不提供的路由逻辑或逐步模型控制,应使用工作流。

管理程序

建议通过控制台编写程序。使用 CLI 或 API 可通过编程方式管理程序,或将其集成到部署工具中。

在控制台中打开智能体,然后选择 程序。 使用 + 创建自由形式或结构化程序。还可通过同一菜单将程序分组到文件夹中。有关编写指导,请参阅 自由形式程序 和 结构化程序。

限制

  • 程序内容上限为 50,000 个字符。
  • 智能体会在上下文中保留最近启动的 5 个程序。当一次对话中启动了更多程序时,最早的自由形式程序的内容、内联工具和知识库文档会从提示词中移除。请保持程序聚焦,并使用子程序,避免同时激活过多程序。
  • 程序创建后无法更改类型。如需在自由形式和结构化类型之间转换,请创建新程序,并更新所有相关引用。
  • 程序仅属于一个智能体,无法在智能体之间共享,也不能作为工作区级资源存储。
  • 复制智能体时会复制其程序,而非共享程序。副本会获得新的程序 ID,因此重复智能体中的引用必须使用这些新 ID。
  • 程序无法限制为仅在特定工作流节点使用。智能体同时拥有两者时,每个节点都能使用所有程序。
  • 结构化程序无法引用知识库文档。