在应用开发中,变量是实现动态交互和个性化体验的核心要素。通过合理使用变量,我们可以让应用记住用户特征、跟踪状态变化,并根据不同场景灵活调整响应。本文将基于 Coze 平台的官方文档,详细解析系统变量、应用变量和用户变量的特性与使用方法,帮助开发者快速掌握变量设置技巧。
一、变量基础:为什么需要变量?
变量是存储数据的 “容器”,在应用运行过程中可动态保存和修改信息。例如:
- 存储用户个性化设置(如语言偏好、昵称)
- 跟踪用户状态(如游戏得分、任务进度)
- 缓存高频数据(如最新新闻、推荐内容)
- 识别用户身份(如唯一 ID、渠道信息)
Coze 平台支持三种变量类型,分别适用于不同场景:
二、三大变量类型深度解析
1. 系统变量:自动生成的只读 “身份证”
- 特性:系统预定义,不可新增 / 修改 / 删除,默认关闭,开启后自动填充数据,只读。
- 适用场景:
- 用户识别:通过
sys_uuid
唯一标识用户,追踪行为(如家居推荐应用中关联用户偏好)。 - 渠道适配:飞书渠道专属变量(如
sys_lark_chat_id
获取会话 ID,实现群聊消息总结)。
- 用户识别:通过
- 支持变量(以飞书为例):
-
| 变量名称 | 描述 | 类型 | 用途示例 | |---------|------|------|---------| | sys_uuid | 用户唯一 ID | String | 区分不同用户,存储个性化数据 | | sys_lark_open_id | 飞书用户 OpenID | String | 验证用户身份,关联历史记录 | | sys_lark_chat_mode | 会话类型(群聊 / 私聊) | String | 动态调整功能(群聊显示任务分配,私聊显示个人设置) |
2. 应用变量:随工作流重置的 “临时内存”
- 特性:内存型变量,每次工作流执行后重置为默认值,可读可写。
- 适用场景:
- 状态跟踪:游戏应用中的生命值(
player_health_points
默认 100,每局重置)。 - 数据缓存:存储每日最新 AI 新闻,减少数据库查询。
- 状态跟踪:游戏应用中的生命值(
- 示例:猜谜游戏工作流定义
score
变量,默认 0 分,每猜对一题加 1 分,新局重置。
3. 用户变量:跨会话持久化的 “用户档案”
- 特性:存储用户专属数据,跨会话持久化,可读可写,仅支持 String 类型(注:文档显示用户变量仅支持 String,需注意数据类型限制)。
- 适用场景:
- 个性化体验:AI 翻译应用存储用户昵称,每次交互时亲切称呼。
- 历史记录:电商应用存储购买记录,生成个性化推荐。
- 示例:用户首次输入昵称时,通过变量赋值节点将值存入
name
变量,后续交互直接读取。
三、实战操作:5 步完成变量定义
步骤 1:登录与定位
- 登录 Coze 平台,进入目标工作空间。
- 在项目开发页面找到你的应用,进入 “业务逻辑” 页,点击左侧 “变量”。
步骤 2:选择变量类型
展开 “应用变量” 或 “用户变量”(系统变量默认存在,需手动开启),点击 “+ 新增子项”。
步骤 3:填写变量信息
- 名称:唯一标识符(如
user_name
),避免与现有变量重名。 - 描述:注明用途(如 “存储用户昵称”)。
- 类型:应用变量支持全类型(String/Integer/Boolean 等),用户变量仅支持 String。
- 默认值:设置初始值(如
0
或"未命名"
),避免首次读取为空。 - 变量开关:启用后工作流可使用该变量。
步骤 4:保存与应用
点击 “保存” 后,在工作流中通过 “变量赋值节点” 写入值,或在其他节点(如大模型、结束节点)读取变量值。
步骤 5:调试与验证
通过工作流调试功能查看系统变量和用户变量的值(应用变量因临时存储无法查看,需通过流程逻辑验证)。
四、避坑指南:关键限制与注意事项
- 命名唯一:变量名在应用内必须唯一,修改变量名需同步更新工作流配置。
- 系统变量只读:不可手动修改,仅系统自动填充(如飞书渠道变量仅在飞书环境生效)。
- 用户变量类型限制:仅支持 String,如需存储复杂数据(如 JSON),需通过字符串序列化处理。
- 应用变量重置机制:每次工作流执行后重置,适合短期状态跟踪,不用于持久化存储。
五、典型场景应用示例
场景 1:飞书群聊智能总结
- 开启系统变量
sys_lark_chat_id
获取群会话 ID。 - 通过飞书消息插件
get_chat_messages
拉取消息,结合sys_lark_chat_mode
判断群聊类型。 - 生成总结后,通过结束节点发送至对应群聊。
场景 2:个性化客服助手
- 定义用户变量
user_language
存储语言偏好。 - 用户首次交互时,通过问答节点收集偏好并赋值给变量。
- 后续回复根据
user_language
自动切换中文 / 英文响应。
场景 3:游戏化学习应用
- 应用变量
learning_score
记录单次学习得分,默认 0 分。 - 答对题目时通过变量赋值节点加分,学习结束后重置,保留用户变量
total_score
记录累计得分。
六、总结:合理组合变量,释放应用潜力
系统变量帮你识别用户与渠道,应用变量优化实时交互体验,用户变量构建持久化个性化服务。三者结合,可实现从基础身份识别到复杂用户画像管理的全链路支持。
下次开发时,不妨试试:为你的应用添加用户变量存储昵称,用应用变量记录当前会话的操作步骤,再通过系统变量区分不同渠道的用户 —— 让你的智能体真正 “记住” 用户,交互更贴心!