变量说明

最近更新时间:2025-11-18 17:21:52

我的收藏
智能体开发平台提供了丰富的变量类型供用户使用,以满足不同业务场景需求。

变量类型

从变量的使用范围角度,智能体开发平台的变量分为“应用级变量”和“工作流级变量”两类变量。

应用级变量

应用级变量表示应用全局范围内可见、可使用的变量,具体包括:
变量类型
变量描述
变量名称及描述
系统变量
智能体开发平台系统默认提供的变量,在应用范围内的各模块均可读取,但不支持用户编辑。
SYS.XXX 方式命名。
SYS.UserQuery:本轮对话内容;
SYS.RewriteQuery:多轮对话中本轮对话改写结果;
SYS.ChatHistory:对话历史(在工作流中使用时,支持配置对话历史轮数);
SYS.CurrentTime:当前时间(格式为:YYYY年MM月DD日 HH:MM:SS,例如2025年08月10日 11:01:18);
SYS.RequestId:对话请求 ID(API 调用请求参数中的 request_id);
SYS.Memory:长期记忆内容(该字段在开启“长期记忆”功能后可用)。
环境变量
环境变量用于保存 API 密钥、数据库密码等敏感数据,提供特殊的 secret数据类型,支持加密存储、传输、并在页面显示为*****。
在应用范围内的各模块可读取,仅支持在“变量与记忆”中编辑。
ENV.XXX 方式命名。
使用示例:ENV.LLMSecretKey,存储大语言模型调用时的 secretKey,在工作流中或者 Agent 的工具中使用。
API 参数
API 参数表示用户在调用智能体开发平台 API 时,通过 custom_variables 字段传入系统的变量。
在应用范围内的各模块可读取,仅支持在“变量与记忆”中编辑。
API.XXX 方式命名。
使用示例:API.UserName,通过 API 参数传入用户姓名,在对话时更亲切地称呼用户。
应用变量
表示在应用内各个模块中互相传递的变量。例如工作流A对应用变量进行赋值,工作流 B 进行读取。
在应用范围内的各模块均可读可写,仅支持在“变量与记忆”中编辑。
APP.XXX 方式命名。
使用示例:APP.Notes,工作流A中收集用户笔记内容并赋值给 APP.Notes,工作流 B 获取笔记内容并总结摘要。

工作流级变量

工作流级变量表示工作流内部可见、可使用的变量,具体包括:
变量类型
变量描述
变量名称及描述
工作流变量
表示在工作流范围内传递的变量。例如在工作流分支A对变量赋值,在分支 B读取变量值。
在工作流的开始节点进行定义,在工作流内的各节点均可读取,并仅支持在“变量赋值节点”中赋值。
WF.XXX 方式命名。
使用示例:WF.OrderList,分支A中整理用户订单内容并赋值给 WF.OrderList,分支 B 中获取订单内容并下单。
节点输入变量
表示当前工作流节点的输入变量,仅在节点内部编辑和使用。
-
节点输出变量
表示当前工作流节点的输出变量,节点内实现该变量的写入,并在后续节点读取和使用。
-

适用范围

由于使用场景不同,每种变量的适用范围也存在差异,具体如下:
变量名称
是否用户隔离
是否 Session 隔离
应用级变量
系统变量(除 SYS.Memory 外)
SYS.Memory
环境变量
API 参数
应用变量
工作流级变量
工作流变量
工作流节点输入变量
工作流节点输出变量
说明:
由于上述变量都存在于应用中,是应用下的概念,因此天然就是“应用隔离”,此处不再赘述。
“用户隔离”是指同一个变量对于不同终端用户的变量值不同,终端用户根据调用 API 时传入的 visitor_biz_id 字段进行区分(详情请参见 对话端接口文档(HTTP SSE)对话端接口文档(WebSocket))。
例如:API 参数 userID(表示用户 ID),张三的 userID 是001,李四的 userID 是002,是“用户隔离”;而环境变量 APIKey(表示某插件的密钥)无论对于张三还是李四变量值都相同,不是“用户隔离”。
“Session 隔离”是指同一个变量在不同的 session 下,该变量值不同。
例如:张三的长期记忆(SYS.Memory)可以跨 Session 使用,不是“Session隔离”;而工作流节点的输入变量,换 Session 后这些值也随即更换,是“Session 隔离”。
从隔离的范围上看,应用隔离 > 用户隔离 > Session 隔离。灵活使用 ADP 提供的各类变量可以满足复杂的业务场景需求。