程序
程序
智能体在相关时加载的任务专属指令
概览
程序包含针对某项特定任务的指令。每个程序都有一个触发条件,用于说明何时适用;还有内容,用于说明具体操作。对话符合触发条件时,智能体会加载该程序。
当智能体需要处理多种不同任务时,可使用程序。例如,客服智能体可为每类请求设置一个程序:退款、身份验证、账户恢复或连接故障排查。

程序类型
程序分为两类:
同一智能体可以同时使用两类程序。无论类型如何,智能体都会根据触发条件选择相关程序。
智能体可以使用程序、工作流,或同时使用两者。两者同时存在时,工作流中的每个节点都能使用所有程序;无法将程序限制为仅在特定工作流节点使用。大多数智能体以其中一种方式为主构建,但两者可以组合使用。
何时使用程序
每个智能体都有一个系统提示词。程序和工作流是添加额外结构的两种方式,智能体也可以同时使用两者。根据对话可能变化的程度选择起点。
自由形式程序是默认选择。它们编写最快,读起来像文档,非技术团队也能负责维护;当对话偏离预设脚本时,智能体还能恢复处理。对于跳过或调换步骤代价很高的场景,例如身份验证、升级处理或金融交易,应使用结构化程序。如果需要两种程序都不提供的路由逻辑或逐步模型控制,应使用工作流。
管理程序
建议通过控制台编写程序。使用 CLI 或 API 可通过编程方式管理程序,或将其集成到部署工具中。
通过控制台构建
通过 CLI 管理
通过 API 管理
限制
- 程序内容上限为 50,000 个字符。
- 智能体会在上下文中保留最近启动的 5 个程序。当一次对话中启动了更多程序时,最早的自由形式程序的内容、内联工具和知识库文档会从提示词中移除。请保持程序聚焦,并使用子程序,避免同时激活过多程序。
- 程序创建后无法更改类型。如需在自由形式和结构化类型之间转换,请创建新程序,并更新所有相关引用。
- 程序仅属于一个智能体,无法在智能体之间共享,也不能作为工作区级资源存储。
- 复制智能体时会复制其程序,而非共享程序。副本会获得新的程序 ID,因此重复智能体中的引用必须使用这些新 ID。
- 程序无法限制为仅在特定工作流节点使用。智能体同时拥有两者时,每个节点都能使用所有程序。
- 结构化程序无法引用知识库文档。