Skip to content

Structure Block ​

新建结构化工作流会按模型已通过测试的能力自动选择可用接口,无需手动选择协议。旧文档已保存的协议偏好继续生效,编辑其他设置不会改变它;可在高级设置中主动切换到自动选择。

通过 AI 或变量提取生成结构化 JSON 数据,支持自定义 Schema 约束输出格式。

功能说明 ​

Structure Block 用于产出结构化数据。它支持两种数据来源模式:

  • AI 生成模式(generation):调用支持 structured output 的 AI 模型,根据用户定义的 JSON Schema 约束,生成符合预期格式的结构化数据。
  • 变量提取模式(variable):从已有变量中提取数据,并按 Schema 格式化输出。

Structure Block 内部通过可视化 Schema 编辑器定义输出结构,每个字段可指定类型(string / number / boolean / array / object)、描述和是否必填。

使用场景 ​

  1. 数据提取:从非结构化文本中提取特定字段,如从文章中提取标题、摘要、关键词。
  2. 格式转换:将自由格式的 AI 输出转换为严格的 JSON 结构,供后续 Code Block 处理。
  3. 表单数据生成:根据提示生成符合特定格式的数据(如用户信息、配置项)。

配置参数 ​

属性名类型说明默认值
idstring节点唯一标识(自动生成)—
namestring节点名称(自动生成,可自定义)—
fromType'generation' | 'variable'数据来源类型'generation'
variable.blockIdstring变量来源的 Block ID(仅 fromType: 'variable')''
variable.varnamestring变量来源的变量名(仅 fromType: 'variable')''
generation.modelIdstringAI 模型 ID(仅 fromType: 'generation')自动选择默认模型
generation.creativitynumber创造力 / Temperature(0-1)0.5
generation.reasoningEffort'minimal' | 'low' | 'medium' | 'high'推理努力级别'medium'
generation.reasoningEffortSource'user' | null档位来源('user' = 显式档位,不支持时报错;缺省按默认档位,不支持时不发),规则同 Generation Blocknull
generation.thinkingEnabledboolean思考开关true
generation.thinkingEnabledSource'user' | null思考开关来源('user' 时才算明确开启 / 关闭),规则同 Generation Block;档位、开关及其标记都存在 generation 一层(值为 null 时回退顶层,值与标记成对取)null
schemaobject | nullJSON Schema 定义null

Schema 字段类型 ​

每个 Schema 字段(sItem)支持以下配置:

属性名类型说明默认值
fieldTypestring字段类型:string / number / boolean / array / object / array_object'string'
requiredboolean是否为必填字段false
defaultValuestring字段默认值''

输出变量 ​

Structure Block 的输出变量根据 Schema 定义动态生成。

固定变量 ​

变量名类型说明
__default__dynamic默认输出,整个结构化对象

动态变量 ​

每个 Schema 中定义的字段都会生成对应的变量,支持嵌套路径访问:

// Schema 定义:
{
  "name": "string",
  "age": "number",
  "address": {
    "city": "string",
    "country": "string"
  }
}

// 可引用的变量:
{{struct_1}}              → 整个对象
{{struct_1.name}}         → "张三"
{{struct_1.age}}          → 25
{{struct_1.address.city}} → "北京"

所有变量在 Structure Block 完成后才可被引用。

使用示例 ​

示例 1:从文本提取结构化信息 ​

以下是一段用户简介:
王小明,28岁,就职于北京某科技公司,邮箱 xiaoming@example.com

[Structure Block] name: struct_1, fromType: generation
  Schema:
    - name (string, required): 用户姓名
    - age (number): 年龄
    - company (string): 公司名称
    - email (string, required): 邮箱地址

AI 会根据 Schema 输出:

json
{
  "name": "王小明",
  "age": 28,
  "company": "北京某科技公司",
  "email": "xiaoming@example.com"
}

示例 2:变量提取模式 ​

[Generation Block] name: gen_1
  Prompt: 返回用户信息的 JSON...

[Structure Block] name: struct_1, fromType: variable
  variable: gen_1.__default__
  Schema:
    - name (string): 姓名
    - score (number): 分数

从 gen_1 的输出中按 Schema 提取并格式化字段。

运行时约束 ​

  • 适用文档类型:普通文档(document)。不可用于 skill 文档。
  • 可插入上下文:文档顶层。
  • 模型要求:AI 生成模式(fromType: 'generation')要求模型支持 structured output 能力。不支持该能力的模型会被过滤。

注意事项 ​

  • AI 生成模式下,modelId 和 schema 均为必填。缺少任一项将报错终止。
  • 变量提取模式下,variable.blockId 和 variable.varname 均为必填。
  • AI 返回的内容必须是有效的 JSON。如果解析失败,Block 将报错终止。
  • 生成的 JSON 会通过 Schema 验证。如果必填字段缺失或类型不匹配,Block 将报错终止。
  • 输出变量中额外包含 raw 字段(原始 JSON 字符串)和 thinking 字段(如果模型支持思考能力)。
  • 对象类型字段可以嵌套,生成的变量路径使用点号分隔(如 {{struct_1.address.city}})。
  • 仅支持 structured output 的模型会出现在 Structure Block 的模型选择列表中。

决策模型?(已迁移到 Decision Block) ​

Structure Block 不再支持决策模型(2026-09 起,issue #1403):决策判断(是否/候选/评分三原语、仅 decision 家族模型)已独立为 Decision(决策判断)Block,配置形态更贴合「逐题判断」语义(不需要手写自由 Schema)。

  • 新的判断需求请使用 Decision Block
  • 旧的「Structure + 决策模型」存量文档运行时会报错并提示迁移(lint W214 同步警告)——请改写为 Decision 块(判断说明 + 三原语问题)
  • 仅支持 structured output 的普通模型仍可正常用于 Structure(本节删除的三原语细节见 Decision Block 文档)

详见 决策模型与额度池(管理员渠道配置、凭证池与上架说明)。

AI Workflow Editor