智能体开发平台提供了丰富的变量类型供用户使用,以满足不同业务场景需求。
变量类型
从变量的使用范围角度,智能体开发平台的变量分为“应用级变量”和“工作流级变量”两类变量。
应用级变量
应用级变量表示应用全局范围内可见、可使用的变量,具体包括:
变量类型 | 变量描述 | 变量名称及描述 |
系统变量 | 智能体开发平台系统默认提供的变量,在应用范围内的各模块均可读取,但不支持用户编辑。 以 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 方式命名。 调用方法详见:对话端接口文档(HTTP SSE)、对话端接口文档(WebSocket)。 | 使用示例: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 提供的各类变量可以满足复杂的业务场景需求。