代码节点输出的自定义分块数据,如何适配知识库节点的 parent_child_structure (multimodal) 校验?

问题背景

我正在开发一个基于 Dify 工作流的自定义代码解析工具(针对 Zig 语言)。为了实现更精准的 RAG 效果,我弃用了系统自动分段,改为在**代码节点(Node.js/Python)**中手动实现“父子分块”逻辑:

  • 父块 (Parent Chunk):完整的函数实现或类型定义。

  • 子块 (Child Chunk):针对父块切分的细粒度语义单元(如注释、函数签名)。

核心痛点

我遇到的最大阻碍是:代码节点输出的 JSON 对象,在知识库节点中无法被识别,或提示 Output parent_child_structure is missing 尽管我尝试模仿了工具节点的输出格式,但由于缺乏官方文档对 (multimodal)parent_child_structure 类型的 Schema 定义,导致变量映射频繁失败。

已尝试的操作

  1. 数据结构重组:尝试过返回纯数组,也尝试过返回包含 parent_modeparent_child_chunks 的 Object。

  2. 输出变量定义:在代码节点的“输出变量”中手动声明了 resultObject 类型,但下游知识库节点的变量选择器依然无法正确解析其内部子属性。

  3. 环境排查:确认了 Embedding 模型正常,且 child_contents 均为非空字符串数组。

想请教的问题

  1. 官方 Schema 定义parent_child_structure 这个强类型变量的完整 JSON Schema 到底是什么?除了 parent_modeparent_child_chunks 之外,是否还有隐藏的元数据或特定的 $schema 标识符要求?

  2. 变量识别逻辑:为什么代码节点输出的 Object 在知识库节点的变量选择器中经常被过滤掉(不显示)?是否必须满足某种特定的变量命名规范或“输出变量”声明方式?

  3. 手动分块最佳实践:如果想跳过 Dify 默认的清洗逻辑,直接将预处理好的父子分块存入知识库,除了“代码节点 → 知识库节点”这条路,是否有更成熟的 API 或插件路径?

附件:目前的输出格式参考

{
  "parent_child_structure": {
    "parent_mode": "paragraph",
    "parent_child_chunks": [
      {
        "parent_content": "pub fn main() void { ... }",
        "child_contents": ["pub fn main()", "void { ... }"]
      }
    ]
  }
}

期望能得到官方或有相关经验的大佬指点,非常感谢!