跳转至

子图

将完整的 Graph 作为节点嵌入到另一个 Graph 中。

工作原理

子图在执行前自动展开,内部节点融入主图:

主图包含子图:

graph LR
    A[准备] --> S[审核子图]
    S --> Q{质量检查}
    Q -->|通过| D[部署]
    Q -->|失败| S

    style S fill:#e1f5ff

审核子图内部结构:

graph LR
    Start([start]) --> C[代码检查]
    C --> T[测试]
    T --> R{审核}
    R -->|发现问题| C
    R -->|通过| End([end])

展开后:

graph LR
    A[准备] --> C[代码检查]
    C --> T[测试]
    T --> R{审核}
    R -->|发现问题| C
    R -->|通过| Q{质量检查}
    Q -->|通过| D[部署]
    Q -->|失败| C

系统自动处理连接关系、循环和层级计算。

使用方式

在主图中添加节点时,选择"子图"类型,然后选择要引用的 Graph 名称。

子图节点会自动继承上游和下游的连接关系。

连接替换

子图内部的 startend 自动替换为实际连接:

子图内部 替换为
input_nodes: ["start"] 主图的 input_nodes
output_nodes: ["end"] 主图的 output_nodes

嵌套子图

子图内部可以包含其他子图,系统递归展开所有层级。

循环检测

系统自动检测并拒绝循环引用:

主图 → 子图A → 子图B → 子图A  ❌ 循环引用

典型应用

场景 效果
代码审核流程 多个项目复用同一审核流程
数据处理管道 标准化数据处理步骤
测试套件 统一测试流程
部署流程 标准化部署步骤

使用建议

合理拆分: 将重复使用的流程抽取为子图。

清晰命名: 子图名称应准确描述功能。

避免过深嵌套: 嵌套层级不超过 3 层。

独立测试: 子图应该能够独立执行和测试。

下一步