カテゴリ分割ノード

スリップボックスノードの使い方(スリップカテゴリ分割)

スリップボックスノードの使い方(スリップカテゴリ分割)

スリップボックスノードの使い方(スリップカテゴリ分割)

スリップボックスノードの使い方(カテゴリ分割)

カテゴリ分割(Split Category)ノードは、肥大化したカテゴリ(索引/INDEX)スリップ1つを複数の下位カテゴリへ一度に分割するノードです。指定したグループの数だけ新しい下位カテゴリが作成され、指定した子スリップがそれぞれのグループの下へ移動します。途中で問題が起きた場合は処理全体がロールバックされるため、半分だけ分割された状態が残ることはなく、スリップ本文そのものにはまったく手を加えません。

このノードはエージェントにツールとして接続して活用するのにも適していますが、このチュートリアルではまず最も基本的な使い方を確認できるよう、アビリティで扱います。エージェントへの接続方法は、別途公開予定のスリップボックスエージェント統合ガイドで扱います。実際に使うときにどのカテゴリを分割するかはプロジェクトに応じて自由に決めれば問題なく、このチュートリアルではAgentria Docsスリップボックスにテスト用のカテゴリと複数の子スリップを作成し、2つのグループに分割するアビリティワークフローを完成させます。

事前準備

このチュートリアルを開始する前に、プロジェクトにスリップボックスが構築されており、分割対象のカテゴリ(索引スリップ)とその下の子スリップが複数すでに作成されている必要があります。スリップボックスの構築方法は、🔗スリップボックスガイドをご参照ください。このチュートリアルでは、Agentria Docsスリップボックスの中にテスト用のカテゴリと子スリップを新しく作成して使用します。

このチュートリアルを完了すると、以下のことができるようになります。

  1. カテゴリ分割ノードで1つのカテゴリを複数の下位カテゴリに分割できます。

  2. カテゴリ分割ノードの各入力変数をスタートノードの入力値と接続できます。

  3. どのスリップをどのグループへ移動するかを指定するgroupsの値を組み立てられます。

  4. ランテストとデバッグログでカテゴリが正常に分割されたか確認できます。

ワークフロー概要

このチュートリアルの核心はカテゴリ分割ノードです。

カテゴリ分割ノードは、分割対象のカテゴリ(索引)スリップをUUIDで指定し、渡したグループ一覧に従って新しい下位カテゴリを作成し、指定した子スリップをその下へ移動します。グループで言及されなかった子はそのまま元の場所に残ります。

カテゴリ分割ノード基本情報

カテゴリ分割ノードは以下のオプションを提供します。

オプション

必須

説明

分割するカテゴリ UUID

必須

分割対象のカテゴリ(索引)スリップのUUIDです。通常のスリップを渡すと拒否されます。

分割グループ一覧

必須

グループオブジェクトの一覧です。各項目はlabel(新しい下位カテゴリのタイトル)、summary(任意、そのカテゴリの説明)、member_slip_public_uuids(その下へ移動するスリップのUUID一覧)を持ちます。メンバーは分割対象の現在の直下の子である必要があり、グループ間の重複は不可、全グループ合計で80件までです。言及されなかった子はそのまま残ります。

対象 スリップボックス

必須

このノードが操作する スリップボックス です。ビルダーで選択して固定します。

このチュートリアルでは3つの項目すべてを使用します。

ステップ1:アビリティの作成

新しいアビリティを作成します。名前カテゴリ分割ノード説明カテゴリを下位グループに分割を入力します。このアビリティでは、分割したいカテゴリをカテゴリ分割ノードに直接接続します。どのカテゴリを対象にするかは自由に決めて構いません — このチュートリアルではAgentria Docsスリップボックスに作成したテスト用のカテゴリを対象に進めます。

ステップ2:スタートノードの設定

スタートノード(Start Node)をダブルクリックしてノードエディター(Node Editor)に進入します。以下の2つの変数を追加します。

  • uuid:分割対象のカテゴリのUUIDを受け取ります。(String

  • groups:どのスリップをどのグループへ移動するかを指定する一覧を受け取ります。(Array

groupsString型ではなくArray型で追加してください。

ステップ3:カテゴリ分割ノードの追加

+ノード追加(Add Node)スリップボックス(Slipbox)カテゴリからカテゴリ分割ノードを追加します。

ステップ4:カテゴリ分割ノードの設定

カテゴリ分割ノードをダブルクリックしてノードエディターに進入します。対象 スリップボックスAgentria Docsを選択します。

残りの項目には、以下のようにスタートノードの入力値をドラッグ&ドロップでバインドします。

アダプター変数

バインドする値

分割するカテゴリ UUID

uuid

分割グループ一覧

groups

ノードが正常に実行されると、created_index_ids(新しく作成された下位カテゴリのUUIDの配列)、error_codeerror_messageが出力されます。

ステップ5:エンドノードの設定

エンドノード(End Node)をダブルクリックしてノードエディターに進入します。String型の出力変数resultを追加し、カテゴリ分割ノードのerror_codeをドラッグ&ドロップでバインドします。これにより、分割が正常に完了したか失敗したかを出力値で確認できます。

ステップ6:テスト用カテゴリと子スリップの準備

Agentria Docsスリップボックスに移動し、スリップ追加ボタンでテスト用のカテゴリを新しく作成します。新しく作成したスリップのタイプは、デフォルト値の索引のままにしておきます。このカテゴリを開き、下位ページエリアの+ボタンで子スリップを4つほど追加します(例:テスト項目1〜4)。最後に、右側の情報パネルからカテゴリスリップと各子スリップの公開UUIDをコピーしておきます。これらの値は、ランテストでuuidgroupsの入力値として使用します。

ステップ7:ランテストの実行

uuidには先ほどコピーしたテスト用カテゴリの公開UUIDを貼り付けます。groupsには、子スリップを2つのグループに分割するJSON配列を記述します。

[
  {
    "label": "グループA",
    "summary": "テスト項目1、2を含むグループです。",
    "member_slip_public_uuids": ["<テスト項目1のUUID>", "<テスト項目2のUUID>"]
  },
  {
    "label": "グループB",
    "summary": "テスト項目3、4を含むグループです。",
    "member_slip_public_uuids": ["<テスト項目3のUUID>", "<テスト項目4のUUID>"]
  }
]
[
  {
    "label": "グループA",
    "summary": "テスト項目1、2を含むグループです。",
    "member_slip_public_uuids": ["<テスト項目1のUUID>", "<テスト項目2のUUID>"]
  },
  {
    "label": "グループB",
    "summary": "テスト項目3、4を含むグループです。",
    "member_slip_public_uuids": ["<テスト項目3のUUID>", "<テスト項目4のUUID>"]
  }
]
[
  {
    "label": "グループA",
    "summary": "テスト項目1、2を含むグループです。",
    "member_slip_public_uuids": ["<テスト項目1のUUID>", "<テスト項目2のUUID>"]
  },
  {
    "label": "グループB",
    "summary": "テスト項目3、4を含むグループです。",
    "member_slip_public_uuids": ["<テスト項目3のUUID>", "<テスト項目4のUUID>"]
  }
]

テスト実行(RUN TEST)をクリックします。result出力値がSUCCESSであれば成功です。

ステップ8:デバッグログの確認

カテゴリ分割ノードのデバッグログ(Debug Log)を確認すると、error_codeSUCCESSとして返された詳細と、一緒に返されたcreated_index_idsの値を確認できます。新しく作成された下位カテゴリの数だけUUIDが配列として入っています。

ステップ9:スリップボックスで結果を確認

Agentria Docsスリップボックスに移動して先ほど分割したテスト用カテゴリを開くと、以前は個別に並んでいた子スリップの代わりに、groupsで指定した数だけ新しい下位カテゴリ(このチュートリアルではグループA、グループB)が作成されていることを確認できます。それぞれの下位カテゴリを開くと、そのグループに指定したスリップが移動しており、スリップ自体のタイトルや本文はそのまま保たれていることが確認できます。

次のステップ

🎉 おめでとうございます!Agentriaを使って「カテゴリを下位グループに分割する」ワークフローを完成させました。

このノードをAgent Loopノードにツールとして接続すれば、会話の中でエージェントがカテゴリが肥大化したと判断したときに、自ら下位カテゴリへ整理するワークフローへと拡張できます。

Agentriaは、アイデアを現実に変える可能性の空間です。

あなたのアイデア次第で、ワークフローは無限に広がります。

  • 他のノード活用例が気になる方は 🔗ノードの使い方 ページをご確認ください。

よくある質問

カテゴリ分割ノードは何をするノードですか?

カテゴリ分割ノードは、スリップボックス(Slipbox)内のカテゴリ(索引)スリップ1つを複数の下位カテゴリに分割するノードです。分割対象のカテゴリをUUIDで指定し、渡したグループ一覧に従って新しい下位カテゴリを作成し、指定した子スリップをその下へ移動します。グループで言及されなかった子はそのまま元の場所に残ります。

groupsに指定できるスリップに制限はありますか?

はい。member_slip_public_uuidsに指定するスリップは、分割対象カテゴリの現在の直下の子である必要があり、同じスリップを複数のグループに重複して指定することはできません。また、全グループの合計メンバー数は最大80件までです。

通常のスリップ(索引ではないスリップ)も分割対象に指定できますか?

いいえ。分割するカテゴリ UUIDには索引タイプのスリップのみ指定できます。通常のスリップのUUIDを渡すと、ノードがリクエストを拒否します。

分割の途中でエラーが起きた場合、一部だけ分割された状態が残りますか?

いいえ。カテゴリ分割ノードは、グループの作成からスリップの再配置までを1つの処理として扱い、途中で問題が発生した場合は処理全体がロールバックされます。一部のグループだけが作成されて残りが失敗する、といった半端な状態にはなりません。