Generation Block
调用 AI 大语言模型生成文本内容,是工作流中最核心的 AI 节点。
功能说明
Generation Block 是外脑编辑器的核心 AI 生成节点。它以内联(inline)形式嵌入文档中,将当前上下文(前文内容 + 变量引用)作为 prompt 发送给指定的 AI 模型,并以流式方式返回生成结果。
Generation Block 支持多种 AI 能力扩展,包括工具调用(tool calls)、图片生成、思考推理等,具体取决于所选模型的能力。
新建工作流会按所选模型及启用的能力自动匹配渠道接口。使用 Generation Block 不需要选择 OpenAI Chat、OpenAI Responses 或 Claude Messages 协议;Anthropic 等渠道所需的格式转换由平台完成。旧文档中已保存的手动协议继续生效,编辑其他设置不会改变它;需要时可在高级设置中明确切换到自动选择。
使用场景
- 文本生成:根据上下文 prompt 让 AI 生成文章、摘要、翻译、代码等文本内容。
- 工具调用:启用
tools能力后,AI 可调用已注册的工具(如搜索、数据库查询)来增强回答。 - 图片生成:启用
image能力后,可调用图片生成模型产出图片。
配置参数
| 属性名 | 类型 | 说明 | 默认值 |
|---|---|---|---|
id | string | 节点唯一标识(自动生成) | — |
name | string | 节点名称(自动生成,可自定义) | — |
kind | string | 节点类型标识 | 'ai' |
modelId | string | AI 模型 ID(必填) | 自动选择默认模型 |
creativity | number | 创造力 / Temperature(0-1) | 0.5 |
reasoningEffort | 'minimal' | 'low' | 'medium' | 'high' | 推理努力级别(支持 reasoning_effort 的模型) | 'medium' |
reasoningEffortSource | 'user' | null | 档位来源:用户在档位选择器上改动过时为 'user'(显式档位);缺省 = 默认档位 | null |
thinkingEnabled | boolean | 思考开关(支持 think 参数的模型) | true |
thinkingEnabledSource | 'user' | null | 思考开关来源:用户亲手拨过开关时为 'user';选模型时按模型能力自动写入的值不带标记 | null |
advancedSettings.enabled | boolean | 是否启用高级设置 | false |
advancedSettings.stopSequences | string[] | 停止序列列表 | [] |
abilities | string[] | 启用的模型能力列表(如 ['tools', 'image']) | [] |
protocol | Protocol | 'auto' | 渠道协议选择;'auto'(默认)由后端按模型能力自动路由,旧文档已保存的手动协议继续生效 | 'auto' |
builtinTools | BuiltinToolConfig[] | 启用的模型内置工具列表(见下文「模型工具」,仅 OpenAI Responses 协议生效) | [] |
imageGenerationMode | 'auto' | 'force' | 图像输出模式(见下文);force 仅 OpenAI Responses 协议保证强制语义,其他协议退化为 auto | 未设置(关闭) |
推理参数怎么发给上游(2026-10,渠道预设表改造 P5,OpenAI Chat 协议):只有模型带推理能力时才处理档位与思考开关,具体写法由各渠道的兼容声明决定(例如 DeepSeek / Kimi 写
thinking:{type},千问写enable_thinking,OpenAI 写reasoning_effort)。
thinkingEnabled: false且thinkingEnabledSource: 'user'才算明确关闭:渠道能关就发关闭指令,不能关会报错thinking_disable_unsupported;没有来源标记的false(选模型时自动写入、历史文档)按默认处理,不发关闭指令、不报错;thinkingEnabled: true且thinkingEnabledSource: 'user'是明确开启:按渠道格式发开启指令(默认档位模型不支持时只是不带档位)。例外:「档位即开关」的格式(如 gpt-5-pro、kimi-k3)在默认档位无映射时不发字段,沿用上游默认;CloudOS 沿用其原有渠道补丁(本地 GLM 5.1 仍强制关闭);reasoningEffortSource: 'user'的档位是显式档位:该模型不支持这一档会报错reasoning_effort_unsupported:<档位>;- 结构化输出时个别模型必须关思考(例如千帆 glm-5.2,避免推理耗尽输出预算):明确要求思考或指定档位会报错
reasoning_unsupported_for_structured;- 没有来源标记的档位(历史文档、自动保存的默认值)按默认档位处理:模型不支持时只是不发,不报错。
- 来源标记只在编辑器里亲手改档位 / 拨开关时写入;通过 Markdown IR 编写时如需显式语义,需同时写上对应的
*Source: "user"。
creativity 参数说明
0:更确定性,适合需要一致性的任务(如数据提取、格式转换)0.5:平衡模式(默认)1:更有创造性,适合写作、头脑风暴等发散型任务
abilities 可选值
| 能力 | 说明 |
|---|---|
tools | 启用工具调用,AI 可调用已注册的工具 |
image | 启用图片生成能力 |
structured | 启用结构化输出(通常由 Structure Block 自动启用) |
模型工具(builtinTools)
配置面板提供「模型工具」开关组,启用后 Generation 可在生成过程中调用模型内置工具(托管工具,区别于文档里声明的自定义工具块)。此前独立的 6 个内置工具 Block 已从 Slash 菜单下架,统一并入此处配置。
| 工具 | 展开配置项 | 说明 |
|---|---|---|
web_search | — | 联网搜索 |
file_search | vector_store_ids(必填)、max_num_results(1-50) | 在指定向量存储中检索文件 |
code_interpreter | container(auto / preconfigured + 容器 ID) | 代码解释器 |
computer_use | display_width / display_height + 安全确认 | 操作计算机(屏幕/键鼠) |
background_mode | — | 后台模式 |
注意:
- 内置工具仅 OpenAI Responses 协议生效;所选模型必须声明对应能力,未声明 'yes' 的工具会被后端拒绝(fail-closed)。
- 空数组等价于不开启任何内置工具;配置会随 Generation 节点属性一起持久化(协同保存 / Run resume 均兼容)。
图像输出模式(imageGenerationMode)
生图是跨厂商的模型能力(不属于内置工具)。仅当所选模型具备 image_generation 能力时面板才显示「图像输出」开关:
auto:模型自行决定本轮是否出图force:强制本轮必出图(强制语义仅 OpenAI Responses 协议保证)
输出变量
| 变量名 | 类型 | 说明 |
|---|---|---|
__default__ | string | 默认输出,即 AI 生成的文本内容 |
thinking | string | AI 的思考/推理过程(仅模型支持 thinking 能力时可用) |
tool_calls | any | 工具调用记录(仅启用 tools 能力时可用) |
image | any | 第一张生成的图片(仅启用 image 能力时可用) |
images | any | 所有生成的图片数组(仅启用 image 能力时可用) |
所有变量在 Generation Block 完成生成后才可被引用。
引用语法示例:
AI 的回答:{{gen_1}}
思考过程:{{gen_1.thinking}}
生成的图片:{{gen_1.image}}使用示例
示例 1:基本文本生成
请帮我将以下内容翻译为英文:
{{input_1}}
[Generation Block] name: gen_1, model: claude-3.5-sonnet, creativity: 0.3Generation Block 会将其前面的所有文本内容作为 prompt 发送给模型,生成结果存入 gen_1 变量。
示例 2:带工具调用的智能助手
请搜索最新的 AI 新闻并总结要点。
[Generation Block] name: gen_1, model: gpt-4o, abilities: [tools]启用 tools 能力后,AI 可以调用已注册的搜索工具获取实时信息,再基于搜索结果生成总结。工具调用最多进行 20 轮迭代。
没有工具块的纯文本生成不会注入工具
只有当文档真正包含 Tools / allowTools 块时,平台才会向模型下发工具列表(含内置工具)。没有任何工具块的「光秃秃」生成是纯文本对话,请求里不带 tools / tool_choice 任何参数。这样可避免击垮「不支持函数调用」「不接受 tool_choice=none」等模型,同时节省 token。
Prompt 收集规则
Generation Block 会自动收集从文档开头(或上一个 Generation Block)到当前位置之间的所有内容作为 prompt,包括:
- 段落中的纯文本
- 通过
{{变量名}}引用的其他 Block 输出值
// 注释行仅供用户阅读,不会进入 Generation Block 的 prompt。
不同类型的 Block 对 prompt 的贡献方式不同——有些会输出提示词文本,有些仅提供数据而不参与 prompt 构建。因此,合理安排文本和 Block 在文档中的位置非常重要,它直接影响每个 Generation Block 收到的 prompt 内容。
文档 Title 和 Description 的作用
当文档作为工具(通过 Tools Block 或 Flow Block)被其他工作流引用时,文档的 Title(标题)和 Description(描述)会作为 AI 理解该工具用途的摘要信息。请为工具类文档编写清晰的标题和描述,帮助 AI 准确判断何时应该调用它。
运行时约束
- 适用文档类型:普通文档(document)。不可用于 skill 文档。
- 节点类型:内联节点(inline),嵌入在段落文本中。
- 可插入上下文:文档中任意段落内。
- 上下文构建:Generation Block 会收集其前面所有 Block 的输出内容作为 prompt 上下文(详见上方「Prompt 收集规则」)。
注意事项
modelId为必填项。如果未配置模型,执行时将报错并终止。- 工具调用存在最大轮次限制(20 轮)。超过上限后会报错,错误信息会点名其间反复失败的工具及原因。
- 工具反复失败早停:同一工具连续失败 2 次(首次失败后给模型 1 次重试机会,第 2 次仍失败)即中断本次生成,并报清晰错误点名该工具与失败原因,避免弱模型对失败工具空转烧满 20 轮。
tool_choice=none仍被硬调工具:当工具块声明tool_choice=none(不使用工具)而模型仍尝试调用工具时,直接中断并报错(不喂回工具结果继续循环)。- Generation Block 以流式(streaming)方式返回内容,前端会实时显示生成进度。
creativity对应模型的temperature参数,不同模型对此参数的响应程度可能不同。- 启用
image能力时,image变量返回第一张图片,images返回所有生成的图片数组。 - 启用
thinking能力时,AI 的内部推理过程会记录在thinking变量中,但不会出现在默认输出里。