组件总览
组件是构成流程的基本单元。 类似应用中的类,每个组件都面向某一种特定用途、处理方式或第三方集成能力而设计。
SkillFlaw 为工作区提供了键盘快捷键。 在页头点击个人头像,进入 Settings,再点击 Shortcuts,即可查看可用快捷键。
向流程中添加组件
要向流程中添加组件,请从 流程组件 或 业务组件 菜单中,将组件拖入工作区。
组件通常按类型或提供商分组,部分组件默认隐藏:
- 流程组件:SkillFlaw 的基础流程组件,按用途分组,例如 输入 / 输出、数据 等。 这些组件要么提供通用能力(如循环、解析),要么提供支持多种第三方集成的单组件能力。
- 业务组件:按服务提供商分组,包含一个或多个面向业务场景的第三方集成组件。
- 遗留组件:默认隐藏。更多说明见遗留组件。
配置组件
把组件拖入流程后,需要配置其参数,并与其他组件建立连接。
每个组件都包含:
- 输入
- 输出
- 参数
- 与该组件用途相关的控制项
默认情况下,只显示必填项和常用项。 如需查看更多设置(包括元设置),请使用组件头部菜单。
组件头部菜单
在工作区中点击组件,即可打开该组件的头部菜单。

当前头部菜单会把高频操作直接放在组件上方,常见入口包括:
- 代码:打开组件开发窗口,查看或修改当前组件的 Python 实现
- 冻结:冻结当前组件及其上游结果,后续运行时直接复用已有输出
- 工具模式:当组件需要作为 Agent 的工具使用时启用
点击最右侧的更多菜单后,还可以看到当前节点相关的扩展操作,例如:
- 技能文档:查看该组件对应的 Skill 文档
- 创建版本:基于当前节点内容创建新的组件版本
- 历史版本:查看历史版本,并把某个历史版本应用到当前选中节点
- 最小化:压缩组件展示区域,便于整理复杂流程
- 下载:下载当前组件定义
- 删除:从当前流程中移除该组件
这些 入口围绕“开发 → 文档 → 版本”的完整链路组织,便于在同一个工作区里连续完成组件开发、留痕和版本管理。
技能文档
组件的 技能文档 用来承载组件对应的 Skill 说明与元数据。当前入口会直接打开该组件的 SKILL.md 只读预览,方便你在不离开当前工作流上下文的情况下核对自动生成结果。

技能文档预览对话框主要聚焦生成结果本身,通常会展示:
- 渲染后的
SKILL.md内容 - 对应的原始 Markdown 视图
- frontmatter 摘要字段,例如组件显示名、类名、UUID、版本与描述
- 复制 / 预览等便于审阅生成结果的辅助动作
当你在流程编辑器里执行 创建版本 时,系统会在保存当前节点版本的同时,同步生成该组件的 Skill 文档。因此,组件版本与技能文档是成对留痕的,而不是彼此独立的两套记录。
重命名组件
如需修改组件名称或描述,请在工作区中点击组件,然后点击 Edit。 组件描述支持 Markdown。
运行单个组件
点击 Run component 可执行单个组件。 当界面显示 Last Run 时,表示该组件已成功运行。
单独运行组件与运行整个流程不同: 单组件运行只会构建并执行当前组件本身,以及编辑器里直接提供给它的输入;它不会自动执行所有上游依赖。
查看组件输出与日志
点击 Inspect 可以查看单个组件的输出与日志。
冻结组件
冻结某个组件时,也会一并冻结该组件的所有上游组件。
如果你预期某个组件以及其全部上游组件的输出稳定不变,并且只需要计算一次,可以使用冻结功能。
冻结后:
- 当前组件及其上游组件不会再次执行
- 系统会保留这些组件的上一次输出结果
- 之后的流程运行将直接复用该输出
操作方式:点击组件打开头部菜单,点击 Show More,再选择 Freeze。
组件端口
每个组件边框周围都有圆形端口图标,例如 。 这些图标表示组件的连接点,也就是端口。
端口会:
- 接受某种输入数据
- 输出某种特定类型的数据
你通常可以通过端口所在字段,或通过端口颜色来判断数据类型。
例如,System Message 字段接受的是 Message 数据,它对应蓝色端口:。

构建流程时,应把输出端口连接到同类型输入端口上,以便在组件之间传递正确的数据。 关于各种数据类型的程序化表示,请参阅SkillFlaw 数据类型。
- 在工作区悬停到端口上,可以查看该端口的连接说明。
- 点击端口后,可以通过 Search 查找兼容组件。
- 如果两个组件的数据类型不兼容,可以使用Type Convert 组件进行转换。
Input 与 Output 的定义
在 SkillFlaw 中,组件的输入与输出分别承担“声明接收什么”和“声明产出什么”的职责。
- Input:组件接收数据或配置的入口。它既可以表现为一个参数字段,也可以表现为一个可连接的输入端口。
- Output:组件对外暴露结果的出口。它决定下游组件可以接收什么结果,以及引用选择器能够引用哪些结果。
从定义结构上看,Input 通常包含以下信息:
name:稳定字段名,用于保存配置与绑定引用display_name:界面展示名type/field_type:输入控件类型或输入值类型required:是否必填input_types:当该输入允许端口连接时,可接收的数据类型列表is_list:是否支持数组 / 多值
Output 通常包含以下信息:
name:稳定输出名,是输出端口与字段引用的基础标识display_name:界面展示名method:生成该输出的方法名types与selected:该输出支持的数据类型,以及当前选择的输出类型group_outputs:是否同时暴露多个输出端口output_fields:该输出可稳定引用的字段定义
因此,Input 解决的是“组件如何接收参数与上游数据”,Output 解决的是“组件如何向下游组件和引用器暴露结果”。
Input 类型与 Output 类型
SkillFlaw 的“类型”分为两层:
- 端口数据类型:决定端口能否互连,也决定连线颜色与运行时值形态。
- 输入字段类型:决定组件参数在界面里以什么方式编辑、校验和保存。
端口数据类型
输入端口和输出端口使用同一组数据类型体系。当前文档中稳定可见的主要端口数据类型包括:
DataDataFrameEmbeddingsLanguageModelMemoryMessageTool- 未知或多类型
这些类型的含义、结构与典型使用方式,请参阅SkillFlaw 数据类型。
输入字段类型
组件参数本身并不一定都是“端口”。SkillFlaw 还定义了一组输入字段类型,用于描述参数的录入方式、校验规则与可选绑定能力。并不是每一种输入字段类型都会在界面中显示为端口;很多类型只负责参数编辑与保存。
为便于阅读,可以把这些类型理解为两大类:一类用于接收上游结果或显式声明可连接输入,另一类主要用于参数编辑与配置保存。
可连接上游结果的输入类型
| 类型标识 | 主要用途 |
|---|---|
HandleInput | 通用句柄型输入基类,用于声明可接收指定数据类型的连接输入 |
DataInput | 接收 Data 类型上游结果 |
DataFrameInput | 接收 DataFrame 类型上游结果 |
ModelInput | 选择模型,或连接上游 LanguageModel / Embeddings 输出 |
MessageInput |