Skip to content

变量系统

变量系统是 Block 间数据传递的核心机制。每个 Block 执行后产生输出变量,后续 Block 可以引用这些变量来获取数据。

引用语法

在文档中通过 Mention 节点引用变量,有两种形式:

默认变量引用

@blockName

引用 Block 的默认输出(__default__ 变量)。例如 @generation_1 引用第一个 Generation Block 的文本输出。

具名变量引用

@blockName > variableName

引用 Block 的特定输出变量。例如 @loop_1 > item 引用 Loop Block 的当前迭代项。

密钥引用

secrets:keyName

引用项目级或团队级的密钥值。例如 secrets:api_token

变量类型

类型说明示例
string文本值Generation 的文本输出
number数值Loop 的 countindex
boolean布尔值Database 的 success、If-Else 的 condition
array数组Database 的 rows、Code 的 logs
object对象Database 的 row、Flow 的默认输出
any任意类型Code 的 output
dynamic动态类型Structure 的默认输出(根据 Schema 推断)

变量作用域

变量的可见范围由 checkShow 属性决定:

after 作用域

变量在 Block 执行完成后,在文档中该 Block 之后的任意位置可引用。这是大多数 Block 的默认行为。

[Generation Block] ← 产生 __default__ 变量

[Code Block]       ← 可以引用 @generation_1

[另一个 Block]     ← 也可以引用 @generation_1

inside 作用域

变量仅在容器节点内部可引用,外部不可见。目前仅 Loop Block 使用此作用域。

[Loop Block 开始]
  ├── item, index, count ← 仅这里可见
  ├── [子 Block A]       ← 可以引用 @loop_1 > item
  └── [子 Block B]       ← 可以引用 @loop_1 > index
[Loop Block 结束]
[后续 Block]             ← 无法引用 item/index/count

动态变量

部分 Block 支持根据配置动态暴露变量:

能力感知变量(Generation)

Generation Block 根据所选模型的能力决定是否暴露特定变量:

变量条件
thinking模型支持 thinkingthinking_controllable 能力
tool_callsBlock 配置了 tools ability
image / imagesBlock 配置了 image ability

操作型变量(Database)

Database Block 根据操作类型暴露不同变量:

操作可用变量
queryrowstotal
counttotal
insert / updaterow
deletesuccessdeletedId

Schema 驱动变量(Structure)

Structure Block 解析 JSON Schema 的 properties,为每个字段生成独立变量。支持嵌套对象和数组类型。

工厂函数变量(Flow、Tools)

  • Flow Block:根据目标文档的输出结构动态生成变量
  • Tools Block:根据配置的工具列表生成每个工具的输出变量

各 Block 输出变量汇总

Block变量名类型作用域说明
Generation__default__stringafterAI 生成的文本
Generationthinkingstringafter思考过程(需模型支持)
Generationtool_callsanyafter工具调用结果
Generationimage / imagesanyafter生成的图片
Structure__default__dynamicafter完整 JSON 对象
StructureSchema 字段dynamicafter每个字段的值
Code__default__anyafter代码返回值
Codeoutputanyafter代码输出
Codelogsarrayafterconsole.log 输出
Codeerrorsarrayafter错误信息
Ask__default__stringafter用户回答
Askquestionstringafter问题内容
Askanswerstringafter用户回答
Loopcountnumberinside当前循环计次
Loopitemanyinside当前迭代项
Loopindexnumberinside当前索引
If-Elseconditionbooleanafter条件结果
If-Elseresultanyafter分支执行结果
Promise__default__arrayafter所有分支结果
Promisecountnumberafter完成的分支数
Promisestatusstringafter执行状态
Promisefailedarrayafter失败的分支
Promisecancelledarrayafter取消的分支
Database__default__anyafter操作结果
Databaserowsarrayafter查询结果行(query)
Databasetotalnumberafter总数(query/count)
Databaserowobjectafter单行数据(insert/update)
Databasesuccessbooleanafter操作是否成功(delete)
DatabasedeletedIdstringafter删除的记录 ID(delete)
Flow__default__objectafter子文档执行结果
Exit--终止执行,无输出

AI Workflow Editor