最新のAIシステムは、単純なプロンプト・レスポンスの対話の枠を超えて進化しています。今日のAIエージェントは、構造化された多段階の推論、意思決定を実行し、複雑なタスクを自律的に調整できます。この新しい機能は、エージェント・ワークフローと呼ばれています。これは、エージェントが一連の論理的な手順を実行して問題をより効果的に解決するという、機械学習における力強い変化です。
このチュートリアルでは、グラフベースの推論パスを構築するためのフレームワークであるLangGraphと、この構造を補完する堅牢なモデルであるIBM® Granite®モデルという2つの主要ツールを使用して、このようなAIエージェント・ワークフローを構築する方法について説明します。通常ワークフローの各ステップ(「ノード」と呼ばれる)は、大規模な言語モデルを活用したエージェントによって処理されます。これらのエージェントは、アウトプットまたは条件付きロジックに基づいて状態間を移動し、動的な意思決定主導のグラフを形成します。
これらのエージェント・ワークフローを現実に使用するために、LangGraphとGraniteモデルという2つの重要なコンポーネントを詳しく調べます。
LangGraphは、AIモデルを計算グラフ内のステートフル・エージェントとして表現することで、AI駆動型ワークフローの開発を効率化するように設計された強力なフレームワークです。これにより、開発者は、各動作や意思決定ポイントがグラフ内のノードとして定義される、スケーラブルなモジュール式システムを構築できます。
LangGraphを使用すると、次のことができます。
マルチエージェント・システムとLangGraphのようなフレームワークは、生成AI(生成AI)タスクに適用される場合、通常、タスク実行を順次ワークフローまたは条件付きワークフローとして構造化します。LangChain、IBM Granite®モデル、OpenAIのGPTモデル、その他の人工知能ツールを使用している場合でも、LangGraphはワークフローを最適化して拡張性と性能を向上させるのに役立ちます。
LangGraphは、複雑なワークフローをモジュール式のインテリジェントなコンポーネントに分解することで、AIテクノロジーをオーケストレーションする最新のアプローチを導入します。従来のオートメーションやロボティック・プロセス・オートメーション(RPA)とは異なり、LangGraphはリアルタイムのロジックとメモリを使用することで、動的なコンテキストを意識したタスクの実行を可能にします。このフレームワークをPower® する4つの主要コンポーネントはこちらです。
これらのコンポーネントを組み合わせることで、LangGraphは組織がAI駆動型のワークフローを設計・実行する方法を変革し、AIツールと現実世界のビジネス・プロセス間にあるギャップを埋めることができます。
granite-4.0-tiny-preview、IBM Research®によって開発された、複雑な問題や実用的な自然言語処理(NLP)タスクを解決するために設計された、軽量でありながら高性能なオープンソースの言語モデルです。GraniteはGPT-4などの商用モデルよりも小規模ですが、高速で効率的であり、Hugging Faceと完全に互換性があるため、パフォーマンスを犠牲にすることなく運用効率を求める開発者にとって最適な選択肢となります。
Graniteは以下の点で優れています。
このチュートリアルでは、Graniteモデルがエージェント・ワークフローのさまざまな段階で重要な役割を果たし、問題解決とコンテンツ生成の両方をサポートします。軽量設計のため、人間の介入が制限される可能性があり、多様なデータセットやプロバイダーにわたる堅牢なAIソリューションを構築するためにスケーラブルな設計パターンが不可欠な実際のアプリケーションに適しています。
このチュートリアルでは、短いアニメーション画面を作成するためのクリエイティブ・アシスタントとして機能するエージェント・ワークフローを構築します。
ユーザーからストーリーのアイデアが与えられると、エージェントは次のことを行います。
このユースケースは、LangGraphのワークフローによって構造化された言語モデルの推論機能と生成機能の両方を表現するように設計されています。
次の各ステップは、LangGraphノードとして実装されます。
これらのノードはLangGraphに順番に接続され、モデルは変更可能な状態辞書を持ちながらノードを動きます。
クリエイティブな生成と構造計画のバランスを保ったワークフローです。これは、次のことを示しています。
また、拡張にも優れており、改訂ステップ、複数のシーン・ジェネレーター、さらには文字ベースの分岐を追加することで、簡単に拡張できます。
watsonx.aiプロジェクトを作成するには、IBM® Cloudのアカウントが必要です。
いくつかあるツールの中から選択することもできますが、このチュートリアルでは、Jupyter Notebookを使用するためにIBMアカウントを設定する方法について説明します。
このステップでは、このチュートリアルのコードをコピーできるノートブック環境を開きます。あるいは、このノートブックをローカル・システムにダウンロードし、watsonx.aiプロジェクトにアセットとしてアップロードすることもできます。さらに詳しいGraniteチュートリアルを見るには、IBM Granite Communityをご覧ください。このチュートリアルはGithubでも公開されています。
このセルにより、Hugging FaceでホストされているIBM Graniteモデルを使用するために必要なコア・ライブラリーをインストールします。
本
注: このチュートリアルを仮想環境で実行していて、langgrapgがプリインストールされていない場合は、pip install langgraphを使用してローカル環境にインストールしてください。
このセルは、エージェント・ワークフローの構築と実行に必要なすべてのコア・ライブラリをインポートします。
これらのインポートにより、モデルの対話、ワークフローの構造化、およびアウトプットのプレゼンテーションのための環境が準備されます。
このセルは、IBMの
本
このステップでは、Graniteモデルがエージェント・ワークフローの背後にある「推論エンジン」として効果的に初期化されます。
この関数
主な内容:
この関数は、エージェントワークフロー全体で再利用され、さまざまな意思決定または生成ノードでGraniteモデルを呼び出します。
この関数
インプット:
プロンプトの構築: プロンプトはモデルに次のことを要求します。
テキスト生成:プロンプトが
アウトプット解析: 単純なループにより、行先頭文字列に基づいてモデルの応答からジャンルとトーンを抽出する(
状態の更新: 抽出済みの
このノードはクリエイティブな分類子として機能し、後続ノードがジャンルとトーンを基本パラメーターとして使用して、文脈に沿った概要、構造、シーンを生成できるようにします。
本
インプット: この関数は次の内容を含む状態ディクショナリを受け取ります。
プロンプト構築: モデルは次のように指示を受けます。
テキスト生成: プロンプト送信先は次のとおりです。
状態の更新: 生成されたプロットの概要が、キー
このノードは、抽象的なクリエイティブな意図をストーリー向けスケッチに変換し、その後に続く詳細な3幕構成の足場を提供します。これにより、ダウンストリーム・ノードが一貫した想像上のベースラインから動作することが保証されます。
本
インプット: ノードは状態ディクショナリを取得します。これには次のものが含まれます。
プロンプト構築: モデルは次のように指示を受けます。
シーン要件:
テキスト生成:
状態の更新: 生成されたシーンは、
ワークフローに、物語の没入型の視覚的なストーリーテリングを導入します。このノードは、単にストーリーを要約するのではなく、感覚的かつ感情的な詳細でストーリーに命を吹き込みます。アニメーション短編の制作に不可欠なものです。
本
インプット: ノードが期待する状態
プロンプト構築: モデルは次のようにガイドされます。
対話のガイドライン:
世代:
状態の更新:ダイアログは、将来の操作(表示や編集など)のために、
このヘルパー関数
関数の目的: 次がログ記録されるデコレータでノード(例、gen_scene_node)をラップします。
パラメーター:
内部ラッパー:
戻り値: プログレス・メッセージを追加する以外は動作が同一の関数の修正版。
ワークフローが増加するにつれて、特に一部のステップ(生成や編集など)に時間がかかったり、メモリ過負荷などの問題が発生したりする可能性がある場合に、どのステップが実行されているかを追跡することが重要になります。この進行状況ラッパーは透明性を確保し、デバッグとランタイム診断に役立ちます。
このセルは、LLMワークフロー用に設計された構成グラフベースのプログラミング・フレームワークであるLangGraphを使用して、短いアニメーション・ストーリーを生成するためのワークフロー・ロジックを定義します。グラフの各ステップはクリエイティブなタスクを表し、特定のシーケンスで実行され、最終的な画面が作成されます。
ワークフローのコンポーネント:
進行状況追跡によるノード登録: 各ステップ(生成選択、アウトライン生成、シーン作成、ダイアログ作成)が、with_progress()ラッパーを備えたノードとして追加されます。
このアプローチにより、各ノードが実行時にそのランタイムと進行状況を確実にログに記録します。
ワークフロー・エッジ(ノード・シーケンス): クリエイティブ・パイプラインのシーケンスは明確に定義されています。
この構造により、モジュール式で読み取り可能、かつデバッグ可能なLLMワークフローが可能になります。クリエイティブ・プロセスの各段階は分離されており、個別にプロファイリングすることができ、後から交換や拡張が可能です(例: 「シーンのレビュー」ステップや「アウトプットの要約」ノードの追加など)。その
この最後のコード・セルでは、完全なクリエイティブ・ワークフローを実行し、ストーリー生成の各段階の成果を表示します。
成果の表示: 最終状態ディクショナリには、さまざまなノードによって入力されたキーが含まれるようになりました。
このセクションでは、段階的なモジュール式LLMワークフローを通じて、ユーザーの意図が完全版のミニスクリプトに変換される方法を説明します。これは、インタラクティブであり解釈可能、かつカスタマイズ可能なエンドツーエンドのクリエイティブ・パイプラインです。
注: GPUまたはTPUを使用している場合、コードの実行には約15~17分かかります。cedeの実行に使用されるインフラストラクチャーに基づいて実行され、アウトプットが生成されるまでには、ローカル仮想環境で約65~70分かかります。
システムがユーザーのプロンプト—「迷子になったドラゴンが自分の家を見つける、子供向けの奇想天外なファンタジー物語を書きたい」—を、どのように完全なアニメーション・ストーリーへと変換するのかを理解しましょう。各ステップは、ワークフローのクリエイティブ・ノードにガイドされ、Graniteモデルによって強化され、前のステップをベースに構築されます。
1. ジャンルとトーン。ワークフローは、「迷子のドラゴンが自分の家を見つけるという、子ども向けの風変わりなファンタジー物語を書きたい」といった、ユーザーの元のプロンプトを解釈することから始まりますこのインプットに基づいて、select_genre_nodeはこのストーリーを風変わりなファンタジーとして正しく分類し、適切に魅力的で心温まるトーンを特定します。この結果は正確かつ文脈に合致しており、「風変わりな」「子ども向け」「迷子のドラゴンが家を見つける」などのフレーズの使用は、ファンタジーでありながら優しいストーリーテリングのスタイルを明確に示しています。ジャンルとトーンは、ワークフローにおけるその後のすべての生成ステップを形成する基本的なパラメーターとして機能します。
2. プロットの概要とキャラクターの説明。次のステップでは、特定されたジャンル、トーン、ユーザーの独自のアイデアに基づいて、プロットの概要を作成するようモデルに要求します。アウトプットには、3~5文のストーリー概要だけでなく、キャラクターの補足説明も含まれます。これはおそらく、プロンプトの漏洩または以前のイテレーションで指示されたフォーマット設定が保持されているためです。
プロットの概要は、傷ついたドラゴンを発見し、老薬草医の指導を受けてそのドラゴンが魔法の森に戻るのを手伝う「リリー」という名前の少女を中心に展開します。このストーリーラインはユーザーの意図を正確に反映しており、癒し、相互の信頼、友情についてのエモーショナルな雰囲気を伴う子ども向けの魔法の旅に焦点を当てています。ドラゴン、リリー、薬草医の人物描写は深みを増し、曖昧なアイデアを、明確な役割、性格、ストーリー上の責任を備えた構造化されたコンセプトに変換します。このステップにより、ストーリーが抽象的な意図から、映像化に適した具体的な構造へと確実に変化します。
3. 重要ンシーン。プロット全体の概要を考慮すると、
選ばれた瞬間は、リリーが魔法の森で傷ついたドラゴンの世話をし、登場人物間にエモーショナルな絆と相互理解が確立するシーンです。この瞬間は、ストーリーをドラゴンの帰還に向けて転換するために非常時重要です。このシーンはイメージと感情に富み、「風変わりな」と「心温まる」という制約を守りながらも、視覚的に表現力豊かであり、短編アニメーション形式に最適です。
各段階をまたいでトーンとジャンルの一貫性を維持できるこのモデルの能力は、LangGraphの状態受け渡しワークフローの価値と、 Granite®モデルの推論機能を実証しています。
4. 脚本形式のダイアログ。最後に、
ワークフローの各段階では、オリジナルのプロンプト「迷子のドラゴンが自分の家を見つけるという、子ども向けの風変わりなファンタジー物語」を、構造化された創造的で表現力豊かなストーリーのアウトプットとして変換します。ジャンルの選択からダイアログの形式化まで、システムは一貫したストーリーテリング・アークの構成を段階的に構築します。LangGraphフレームワークは、タスク間の移行が論理的に接続されていることを保証し、IBM® Graniteモデルは、一貫したトーンで文脈に応じたテキスト生成を可能にします。その結果、1行のユーザー・インプットからコンパクトで映像化に適した短いアニメーション向けのストーリーが生成され、クリエイティブなAIアプリケーションにおけるエージェント・ワークフローの実践的な力を実証しています。
ストーリーテリングの体験をさらに魅力的なものにするために、生成されたストーリー要素(ジャンル、トーン、プロット、シーン、ダイアログ)を美しく形式化するシンプルなHTMLベースのビジュアライゼーションもご活用いただけます。さらに、今後の使用や共有のために、ワンクリックでスクリプト全体をテキスト・ファイルとしてダウンロードすることもできます。ストーリーの生き生きとした映像化を実現させましょう!
このチュートリアルでは、テキスト生成用モデルとしてGranite-4.0-Tiny-Previewを使用しています。これはGranite®ファミリーのうち比較的小規模なモデルの1つですが、特にLangGraphワークフローで複数のノードを実行する場合、効率的に実行するにはGPU対応環境が必要です。
推奨設定:
処理能力に関する注意:
このチュートリアルをホストされたノートブック環境(IBM® watsonx.aiやGoogle Colab Pro など)で実行している場合は、ランタイム設定でGPUが有効になっていることを確認します。
リソースが少ない環境では、次のことを考慮してください。
このチュートリアルでは、LangGraphとIBM®のGranite-4.0-Tiny-Preview言語モデルを使用して、モジュール式のエージェント型ストーリーテリング・ワークフローを構築しました。シンプルなクリエイティブ・プロンプトから始めて、ジャンルとトーンを分類し、プロットの概要を生成し、重要なシーンを書き、脚本形式のダイアログで終わる段階的なパイプラインを組み立てました。その過程で、次の方法を実演しました。
このエージェント・フレームワークは、映像化に向けたライティングに最適であるだけでなく、クリエイティブな作業やタスク・ルーティングの幅広いユースケースに応用できます。わずか数個のノードで、風変わりなアイデアを脚本向けのストーリーに変換できる小型のライティング・アシスタントを構築できました。
開発者、作家、研究者のいずれにとっても、このチュートリアルは、クリエイティブな領域におけるLLMベースのワークフロー・エンジニアリングを追求するための実践的な基礎を提供します。
独自エージェントの構築をご検討ですか?IBM® GraniteモデルとIBM® watsonx Orchestrateを活用して創造性を発揮させましょう。
生成AIを使用してワークフローとプロセスを自動化する強力なAIアシスタントとエージェントを構築、デプロイ、管理しましょう。
信頼できるAIソリューションでビジネスの未来を構築します。
IBMコンサルティングAIサービスは、企業がAIをトランスフォーメーションに活用する方法を再考するのに役立ちます。
1 Lang Cao. 2024. GraphReason: Enhancing Reasoning Capabilities of Large Language Models through A Graph-Based Verification Approach. In Proceedings of the 2nd Workshop on Natural Language Reasoning and Structured Explanations (@ACL 2024), pages 1–12, Bangkok, Thailand. Association for Computational Linguistics.