问题域/PD-394

组件化扩展体系

Component Extension System

基于基类继承的声明式组件扩展系统,支持自定义组件热加载

子问题

1.组件基类设计

2.Input/Output声明

3.代码验证与解析

4.组件发现与注册

5.组件到 Agent Tool 的自动转换

6.运行时状态模型自动生成

7.AST 级依赖推断与必需输入分析

8.异步并行组件加载与菜单构建

各项目的解法1 solutions

Signals

横向对比

维度Langflow
组件基类设计三层继承 BaseComponent→CustomComponent→Component,逐层叠加能力
注册方式DirectoryReader 目录扫描 + asyncio.gather 并行加载
声明机制Pydantic Input/Output 模型,自动序列化为前端 JSON Schema
代码验证AST 解析 + importlib 依赖检查 + RequiredInputsVisitor 依赖推断
工具转换to_toolkit 模板方法 + ComponentToolkit 自动生成 StructuredTool
热更新目录级 rglob 扫描,deactivated 文件夹停用,MAX_DEPTH=2 层级限制
状态管理_build_state_model 从 outputs 自动生成 Pydantic 状态模型
缓存策略TTLCache(60s, 1024) 缓存 AST 解析结果

最佳实践

1.声明式Input/Output定义,自动生成前端表单和工具Schema

2.三层继承逐层叠加能力,避免单一基类过于臃肿

3.TTLCache 缓存 AST 解析结果避免重复开销

4.Template Method 模式让子类可定制工具生成逻辑

5.deactivated 目录约定实现组件软停用