コードノードが出力するカスタムチャンクデータを、知識ベースノードのparent_child_structure(マルチモーダル)検証にどのように適合させるか?

問題の背景

私は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 を含むオブジェクトを返す試みを行いました。
  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 { ... }"]
      }
    ]
  }
}

公式または関連経験のある方からのご助言をお願いいたします。ありがとうございます!