Skip to content

变量系统 ​

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

Block name 是变量引用和 Run API 使用的外部身份,必须在全文档内唯一,也不能与另一 Block 的内部 id 相同。内部 block id 用于稳定关联、引用统计和发布分析;Markdown IR 的 @{blockName.path} 会在解析后绑定为 mention:<blockId>。内部 ID 不能替代公开名称。

例如 Input 的 name 为 message、内部 id 为 input_x:页面使用 @message,Markdown IR 使用 @{message},内部引用保存 id: "mention:input_x"、value: "@message"。把名字改为 question 后显示值变为 @question,绑定仍是 mention:input_x。用户不需要知道内部 ID,@{input_x} 不会被当成 message 的别名。

系统在写入与运行前检查活动引用是否有唯一目标,以及稳定 ID 与显示名称是否一致。历史异常文档仍可打开修正;删除目标后保留的失效引用可保存并在撤销时恢复,运行只保留其字面文本。

引用语法 ​

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

默认变量引用 ​

@blockName

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

具名变量引用 ​

@blockName > variableName

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

这里的 generation_1、loop_1 都指公开名称。Markdown IR 对应 @{generation_1}、@{loop_1.item};完整字段路径及数组下标在正文、代码和条件提示词中保持一致。

名称本身可含中文、空格、点号、>、前导 @ 和正则特殊字符,按完整字面名识别。已有绑定以 Block ID 确定目标,改名保留字段后缀;无绑定表达式若能解释为多个名称与路径组合,会提示歧义。

ValueSource 数组、Structure 的 variable.blockId 与 Output binding 是内部结构化引用,仍以稳定 ID 关联,不受公开名称语法替换。

密钥引用 ​

secrets:keyName

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

变量类型 ​

类型说明示例
string文本值Generation 的文本输出
number数值Loop 的 count、index
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模型支持 thinking 或 thinking_controllable 能力
tool_callsBlock 配置了 tools ability
image / imagesBlock 配置了 image ability

操作型变量(Database) ​

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

操作可用变量
queryrows、total
counttotal
insert / updaterow
deletesuccess、deletedId

Schema 驱动变量(Structure) ​

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

工厂函数变量(Flow) ​

  • Flow Block:根据目标文档的输出结构动态生成变量
  • Tools / Allow Tools Block:只声明后续 AI 可用的工具,不产生输出变量

各 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