コンテンツにスキップ

第 5 回: 撮影チームの構築 (Build a Photography Team)

Griptape Nodes 初心者向けシリーズの第 5 回、最終チュートリアルへようこそ! このガイドでは、これまでに学んだプロンプトエンジニアリングの概念をさらに発展させ、より高い精度と制御力を提供する新しいノードを導入します。チームのように協調して見事な画像プロンプトを作成する高度なマルチエージェントシステムを検証し、その過程でいくつかの重要なノードを習得します。

今回学習する内容

このチュートリアルでは、以下の内容を学びます:

  • ルールセット (RuleSet) の概要とその役割
  • ツール (Tool) の概念
  • 「リスト」パラメータとその操作方法
  • エージェントをツールに変換する手法 (AgentToTool)
  • 単一のオーケストレーターを通じて複数の「ツール化されたエージェント」を調整する方法
  • チームの協調による高品質な画像プロンプトの生成

ランディングページへの移動

このチュートリアルを開始するには、インターフェース左上の Griptape Nodes ロゴをクリックしてメインのランディングページに戻ります。


「Build a Photography Team」サンプルの読み込み

ランディングページで、"Build a Photography Team" タイルを見つけてクリックし、このサンプルワークフローを開きます。

Photography Team サンプル


ワークフローの全体像

サンプルが読み込まれると、これまでに見てきた中で最も充実した構成のワークフローが表示されます:

ワークフローの全体像

このワークフローは、以下の主要コンポーネントで構成されています:

  • 複数の特化型エージェント(Agent):
    • Cinematographer(撮影監督)
    • Color Theorist(色彩理論家)
    • Detail Enthusiast(ディテール担当)
    • Image Generation Specialist(画像生成スペシャリスト)
  • 各エージェント用のルールセット(RuleSet)
  • 各エージェント用のルールセットリスト(RuleSetList)
  • エージェントをツール化する変換ノード(AgentToTool)
  • ツールリスト(ToolList)
  • オーケストレーターエージェント(Agent)
  • 画像生成ノード(GenerateImage)

ToolList の上流側を見ると、同じ構造のパターンが 4 回繰り返されていることに気づくでしょう。各上流セグメントは同一のロジックと構造に従っており、処理する具体的なデータだけが異なります。この 1 つの例を詳細に理解すれば、4 つのインスタンスすべてに共通する概念を把握できます。

RuleSet -> RuleSetList -> Agent -> AgentToTool

RuleSet->RuleSetList->Agent->AgentToTool の流れ


ルールセット (RuleSets)

RuleSet ノードは、エージェントがタスクにどのように取り組むべきかを定義するノードです。

各 RuleSet の中には複数のルールを記述できます。ルールは、意図的な改行によって 1 行ごとに区切られたものとして解釈されます。テキストの自動折り返しについては心配いりません。単に次の行へテキストが折り返されただけであれば、同じ 1 つのルールの一部として扱われます。

すべての RuleSet には一意の名前が必要です。エージェントはこれを使って異なる RuleSet を識別・区別します。複数の RuleSet を扱う場合、整理と参照を正確に行うために、明確で区別のつきやすい名前を付けることが特に重要です。

命名について

このワークフローでは各エージェントに 1 つの RuleSet のみが接続されているため、RuleSet の名前衝突のリスクはありませんが、わかりやすい名前を付けておくことは常に良いプラクティスです。

Cinematographer のルールセット

上に示した Cinematographer の RuleSet には、構図、フレーミング、視覚的なストーリーテリングのテクニックを網羅した詳細な指示が含まれています。これらのルールはエージェントの応答の傾向に影響を与え、出力の望ましいパターンを確立します。

エージェントの動作の予測可能性を高めるために、これらの RuleSet を通じて誘導を行います。ルール同士の間に妥当な一貫性を保つようにすることが大切です。矛盾する指示や衝突する指示を与えると、エージェントが競合する優先事項のバランスを取ろうとするため、意図しない曖昧な結果につながる可能性があります。


ルールセットリスト (RuleSetLists)

RuleSetList は、後述する ToolList と同様に、コレクター(コンテナ)として機能します。RuleSetList は特定の組織的な目的を果たします。複数の RuleSet を単一のコレクションにまとめ、同じ型の複数アイテムを受け入れるように設計された「リスト」パラメータに接続できるようにします。

このワークフローに含まれているのは、即座の実用上の理由というよりも、リストノードの概念を体験していただくためのものです。

RuleSetList ノード

自由に試せる追加練習

RuleSetList をバイパスしてグラフを直接接続してみたい場合:

  1. Agent ノードで Advanced Options(高度なオプション)を展開します。
  2. Agent の rulesets パラメータから RuleSetList の接続を外します。
  3. エージェントの表示が少し変化し、rulesets パラメータの下に add item to rulesets が表示されます。それをクリックすると新しいポートが現れます。この新しいポートは単一の RuleSet を受け入れます。
  4. RuleSet の ruleset パラメータからその新しいポートへ直接接続します。

RuleSet の直接接続


Griptape Nodes におけるツール (Tools) の理解

ツール (Tools) は、外部の機能やサービスに接続することで、エージェントの能力を大幅に拡張します。最新データの取得や計算の実行など、エージェント自身の内部知識を超えたタスクに直面したとき、ツールがその架け橋となります。エージェントはツールをいつ使うべきかを判断し、適切なリクエストを作成し、返された結果を解釈します。これにより、エージェントは単なる隔離されたテキスト生成器から、会話を通じて推論能力を維持しながらデータベースへのアクセス、コードの実行、ファイルの操作を行えるアシスタントへと進化します。

ツールは主に 2 つの要素で構成されています:

  1. 基礎となるコード (Underlying code): 単純な計算から複雑な外部連携まで、何でも実行できる柔軟な実行ロジック。
  2. 説明文 (Description): ツールの目的と適切なユースケースをエージェントに正確に伝えるテキスト。エージェントはこれを読んでいつ・どのようにツールを使うべきかを判断します。

初期リリース時点では、Calculator(計算機)や DateTime(日時)などのいくつかの重要なツールノードが用意されていますが、最も適応性の高いツールとして利用できる「Agents as Tools(ツールとしてのエージェント)」機能も提供されています。

ツールの概念図


エージェントをツールに変換する (AgentToTool)

Griptape Nodes では、エージェント全体をツールに変換することができます。これにより、プライマリエージェントが特定のタスクを専門のエージェントに委託できるようになり、専門知識が分散された階層型のマルチエージェントシステムが実現します。エージェントが「自身の専門領域」に集中できるようになると、人間が多くのタスクを同時に抱えるよりも 1 つの作業に集中した方が成果を出せるのと同様に、より信頼性の高いパフォーマンスを発揮します。

この強力なアプローチを実現するのが、AgentToTool 変換ノードです。

エージェントからツールへの変換

通常の既成ツールは 2 つの構成要素(内部コード、説明文)を自動で処理しますが、エージェントをツール化する場合は、説明文(Description)の部分をご自身で記述する必要があります。ここで、そのエージェントがツールとしてどのように機能すべきかの境界と期待値を定義します。あなたが書いた説明文を基にして、オーケストレーターエージェントがその特化型エージェントツールをいつどのように呼び出すべきかを理解します。


ToolList ノード

ToolList は、先ほど説明した RuleSetList と同様に機能しますが、RuleSet の代わりにツールを対象とします。複数のツールを 1 つのコレクションにまとめ、ツールリストを受け入れるパラメータに接続できるようにする役割を持ちます。

RuleSetList が RuleSet をまとめるのと同様に、ToolList はエージェントに複数のツールを一括して渡すスマートな方法を提供します。エージェントが複数の特化型ツールにアクセスする必要がある場合に特に有用です。

この構造パターンは Griptape Nodes 全体で一貫しています。「リスト」ノードは中継地点として機能し、コレクションを扱うコンポーネントに渡す前に、同じ型の複数のアイテムを束ねる役割を果たします。

自由に試せる追加練習

RuleSetList をバイパスしたのと同様に、ToolList もバイパスできます。オーケストレーターエージェントから接続を外し、「add item to tools」をクリックして新しいポートを作成し、ツールを直接接続します。この変更によってワークフローの機能が変わることはありません。

ToolList ノード


オーケストレーター (The Orchestrator)

このワークフローの中核となるのがオーケストレーターエージェントです:

  1. オーケストレーターエージェントを確認します。
  2. 独自のルールセットが割り当てられていることに注目してください:

    You are creating a prompt for an image generation engine.
    You have access to topic experts in their respective fields.
    Work with the experts to get the results you need.
    You facilitate communication between them.
    If they ask for feedback, you can provide it.
    Ask the image generation specialist for the final prompt.
    Output only the image generation prompt. Do not wrap it in markdown context.
    
  3. オーケストレーターに与えられているプロンプト自体は非常にシンプルです:

    「利用可能なすべてのツールを駆使して、スケートボードに乗っているライオンに関する素晴らしい画像生成プロンプトを作成してください(Use all the tools at your disposal to create a spectacular image generation prompt about a skateboarding lion.)」

    オーケストレーターのセットアップ


ワークフローの動作メカニズム

システム全体は以下のプロセスを通じて動作します:

  1. オーケストレーターが比較的シンプルなプロンプトを受け取ります。
  2. オーケストレーターは、ツール化されたすべての特化型エージェントにアクセスできます。
  3. オーケストレーターは必要に応じて以下を呼び出します:
    • フレーミングと構図のガイダンスを求めるため、Cinematographer(撮影監督)を呼び出す
    • カラーパレットの提案を求めるため、Color Theorist(色彩理論家)を呼び出す
    • 盛り込むべき精緻なディテールを求めるため、Detail Enthusiast(ディテール担当)を呼び出す
    • 最終的なプロンプトのフォーマット作成のため、Image Generation Specialist(画像生成スペシャリスト)を呼び出す
  4. 最終的な出力が GenerateImage ノードに接続されます。

ワークフローの実行

ワークフローを実行して、撮影チームの連携を実際に見てみましょう:

  1. ワークフローを実行します。
  2. オーケストレーターがさまざまな特化型ツールを呼び出す様子を観察します(一瞬ですが、各ノードが順次呼び出されて処理を行うのが確認できます)。
  3. 最終的な出力が 1 つの高度な画像プロンプトに集約されます。
  4. このプロンプトを使用して画像が生成されます。

最終的なワークフロー実行結果


まとめ

このチュートリアルでは、以下の内容を学びました:

  • ルールセット (RuleSet) の役割と設定方法
  • ツール (Tool) の概念と仕組み
  • エージェントをツールに変換する手法 (AgentToTool)
  • 特化型 AI エキスパートによる「チーム」の編成
  • オーケストレーターを通じた複数エージェントの統括
  • チームの協調による高品質な画像プロンプトの生成

これらの高度なテクニックは、複雑で協調的な AI システムを構築するための Griptape Nodes の真価を示しています。

全 5 回のチュートリアルシリーズを完了していただき、ありがとうございました。これらの強力なツールを使ってあなたがどのような作品やシステムを創り出すのか、楽しみにしています!