上一篇文章讨论了 Graph 如何根据节点依赖、条件分支和异步任务队列推进执行。
那篇文章回答的是一个偏“调度层”的问题:
一个 Flow 中哪些节点可以运行、什么时候运行、运行之后怎样推动下游节点?
这一篇继续向节点内部下钻,讨论每个节点真正执行时依赖的核心抽象:Component。
在 Langflow 里,用户拖到画布上的绝大多数节点,本质上都是一个组件类。
它既要描述前端如何展示配置项,也要描述后端运行时如何接收输入、调用方法、返回结果。
因此,Component不是一个单纯的 Python 基类,而是连接以下几层的契约:
- 前端节点模板。
- Flow JSON 持久化结构。
- Graph / Vertex 执行引擎。
- 组件输入输出类型系统。
- 运行结果、日志、artifact、trace 和消息事件。
理解这个模型之后,再看 Langflow 的内置组件、自定义组件、工具模式、Prompt 动态字段、Chat 输入输出,都会清楚很多。
本文重点回答几个问题:
- 一个组件类为什么只声明
inputs和outputs就能变成前端节点? Input的type和input_types