Skip to content

变量赋值节点

变量赋值节点用于修改已经在智能体或应用中定义的用户变量应用变量。它适合保存需要跨节点继续使用、并且具有明确持久化范围的状态,例如用户界面偏好、当前业务阶段或应用级开关。

变量赋值节点不是任意的“临时变量容器”。仅需在当前工作流中传递中间结果时,优先直接引用上游节点输出;只有需要写回用户变量或应用变量时才使用本节点。

使用前准备

  1. 在智能体或应用的变量设置中创建变量,并设置名称、说明和默认值。
  2. 保存并发布包含变量的智能体或应用。工作流变量选择器读取已发布版本中的变量。
  3. 在工作流中添加变量赋值节点。若工作流尚未关联变量来源,打开“变量名”选择器后,先选择对应的智能体或应用。

本示例关联专用于文档演示的智能体 docs_memory_agent_demo,并把用户变量 docs_user_preference 从默认值 light 更新为 dark

变量赋值节点配置示例

配置说明

配置功能与使用要求
变量名只能选择允许写入的用户变量或应用变量。系统变量为只读,不会出现在可写目标中。
变量值可以直接填写固定值,也可以引用开始节点或上游节点的输出。
变量类型选择目标变量后自动跟随目标变量类型并锁定,不能在节点内另行修改。
添加变量赋值一个节点可以添加多条赋值规则;同一目标变量不能在同一个节点中重复选择。

选择用户变量或应用变量

  • 用户变量:按用户隔离,适合语言、界面偏好、会员等级等需要随用户保留的数据。写入前应确认运行上下文已经识别到正确用户。
  • 应用变量:归属于应用,适合应用级配置或共享状态。多个运行实例可能同时访问同一变量,计数、余额等场景不能假定“先读取再写入”天然具备原子性。
  • 系统变量:由系统生成且仅可读,变量赋值节点不支持写入。

若变量选择器提示“该项目下暂时没有定义变量”,应回到所选智能体或应用的变量设置中创建并发布变量,而不是把值误写到一个临时名称。

固定值与引用值

右侧变量值支持两种来源:

  1. 固定值:直接输入与目标类型相符的内容,例如把 String 类型偏好设置为 dark
  2. 引用变量:选择开始节点输入、上游节点输出或当前可读上下文中的变量,用于把计算结果写回持久变量。

选择目标变量后,节点会按目标变量类型校验右侧值。String、Integer、Number、Boolean、Object、List 与 File 等类型应保持一致;类型不兼容时应先在上游完成转换。

输出

节点固定输出:

输出类型说明
isSuccessBoolean所有赋值成功时为 true;变量不存在、不可写或写入失败时为 false

不要只依赖节点继续向下执行来判断写入成功。关键状态更新应检查 isSuccess,失败时进入提示、重试或人工处理分支。

典型用法

保存用户偏好

  1. 在智能体中创建 String 类型用户变量 docs_user_preference,默认值为 light
  2. 在变量赋值节点中选择“用户变量 - docs_user_preference”。
  3. 把变量值设置为固定值 dark,或引用上游识别出的用户选择。
  4. 检查 isSuccess 后再向用户确认设置完成。

保存上游处理结果

应先判断结果是否确实需要跨节点以外持续保存:

  • 只供后续节点使用:直接引用上游输出。
  • 需要按用户跨会话保留:写入用户变量。
  • 需要作为应用共享状态:写入应用变量,并额外考虑并发更新。

常见问题

为什么找不到刚创建的变量?

确认变量已保存到正确的智能体或应用,并发布包含该变量的版本。变量选择器从已发布版本读取可用变量。

能否给系统变量赋值?

不能。系统变量仅可读,节点只允许选择用户变量和应用变量。

能否在一个节点里多次修改同一个变量?

不能。同一节点已经选择的目标会从后续选择项中排除。若需要按条件产生不同值,应先在上游完成判断,再在一条赋值规则中写入最终结果。

为什么不建议用它保存普通中间结果?

节点输出本身已经可以被后续节点引用。把所有中间值都写入持久变量会扩大状态范围,增加并发覆盖、脏数据和调试难度。