第V部 AIエージェント

この章では、ワークスペースでエージェントを作成、テスト、デプロイおよび監視する方法について説明します。

エージェントは、エンドツーエンドのエージェント・アプリケーションです。エージェントは、様々なタイプのノード(トリガー、エージェント、ガードレールまたはツール)で表されるステップのグラフによって定義されます。エージェントは、コードなしのビジュアル・フロー・ビルダーおよびLangGraphなどのサード・パーティ・ライブラリを介したコードを介して定義できます。

Oracle AI Data Platform Workbenchには、データにアクセスし、ユース・ケースに合わせて構成できる複数のツール・テンプレートが用意されています。サポートされているツールは次のとおりです。
  • カスタム・ツール: カスタム・コード・ツールを使用すると、エージェント開発者は独自のPythonコードを使用してAIデータ・プラットフォームを拡張できます。ツール実装をZIPファイルとしてパッケージ化し、ワークスペースにアップロードして構成します。エージェントは、実行時にLLMによって提供されるパラメータを使用して、コードをツールとしてコールします。
  • HTTP: HTTPリクエスト・ツールを使用すると、エージェントは任意のHTTPS REST APIをコールできます。メソッド、URL、ヘッダー、問合せパラメータ、リクエスト本文、認証、およびオプションでレスポンス最適化ステップを含むリクエストを構成します。その後、エージェントは実行時にエンドポイントを呼び出します。HTTPリクエスト・ツールは、ビジュアル・ビルダーとコード・ビルダーの両方で使用できます。コード・ビルダーでは、このツールはaidpUtils Pythonライブラリを介して構成されます。
  • プロンプト: プロンプト・ツールを使用すると、AI開発者は、選択したLLMに発行できるパラメータ化されたプロンプトを定義できます。プロンプト・ツールの一般的なユース・ケースには、電子メール作成タスク、翻訳タスク、スタイル変換、gitコミット・メッセージ、コードの説明などがあります。
  • リモートMCPサーバー: エージェント開発者は、リモートMCPサーバー・ツールを使用して、エージェントをリモート・モデル・コンテキスト・プロトコル(MCP)サーバーに接続できます。
  • RAG: RAGツールを使用すると、エージェントは、レスポンスを生成する前に関連する外部ナレッジを取得できます。AIデータ・プラットフォーム・ワークベンチでは、RAGツールがナレッジ・ベース(23ai Vector Search)を問い合せて、意味に関連するドキュメント・チャンクを取得します。これらのチャンクは、レスポンス生成のためにエージェントに渡されます。
  • SQL: SQLツールを使用すると、エージェントは、Oracle Autonomous AI Lakehouse、Oracle Autonomous AI Transaction Processing、Oracle AI Databaseなどの外部カタログを介して登録された構造化データ・ソースに対してSQLクエリを実行できます。このツールは、SQL問合せが事前定義され、パラメータ化できるシナリオを対象としています。目的は、エージェントがパラメータに値を割り当てるようにすることです。このツールは、自然言語プロンプトに基づいてSQL問合せを生成するNL2SQLツールではありません。

    ノート:

    SQLツールは、外部カタログのデータに対してのみ問合せを実行します。標準カタログに格納されたデータはサポートされません。

ノート:

システム・ツールをテストする前に、エージェントにAIコンピュートをアタッチする必要があります。コンピュートがアタッチされていない場合、「テスト」タブは無効になります。

AI Data Platform Workbenchでエージェントを作成すると、選択したワークスペース・フォルダにエージェント・アーティファクト・ファイル(.aflow)が生成されます。このファイルは変更できません。

第V部 エージェント・メモリー

エージェント・メモリーは、エージェントがターン、タスクまたはセッション間で情報を保持および再利用できるようにするAIエージェント・システムの一部です。

一時的で現在のプロンプトに限定されるモデルのコンテキスト・ウィンドウとは異なり、メモリーは、ファクト、プリファレンス、事前の決定、ツール出力、中間計画または環境に関する観察を保持できます。

AIデータ・プラットフォームのエージェント・メモリー

AIデータ・プラットフォームは、セッションの期間に制限された短期メモリーを提供します。エージェントの「メモリー」タブで、メモリーに保持できる内容を構成できます。

単一エージェントのメモリー構成

単一のエージェント・システムのメモリー構成は、エージェント・ノードの「メモリー」タブにあります。


ビジュアル・ビルダーのキャンバスに、単一のエージェント・ノードInvoiceAnalystが表示されます。ノードが選択され、「メモリー」タブが強調表示されます。

メモリー構成 説明
エージェント・メモリーの有効化 この設定により、エージェント・メモリーが有効になります。無効にすると、エージェントは基本的にステートレス・システムになります。各ターンが独立して扱われ、フォローアップの質問はできません。メモリーを有効にすることをお薦めします。
会話履歴の制限 この選択を無効にすると、モデルがコンテキストを使い果たしてエラーが返されるまで、前のターンでメモリーがいっぱいになります。短いセッションが予想される場合は、この設定を無効にしてもかまいません。ただし、ほとんどのユース・ケースでは、会話履歴を制限することをお薦めします。
切捨て構成 会話履歴を制限する場合は、次の方法で履歴を切り捨てることができます。
  • 最後のNメッセージのみ保持(ユーザー+エージェント)
  • トークン予算全体の設定(先入れ先出し)
  • または両方とも、どちらが先に来ても、エージェント・メモリーの切捨てがトリガーされます。
最大メッセージ制限 最後のNメッセージを保持することを選択した場合は、値Nを設定できます。
トークン予算 または、トークン予算全体を設定できます。最初のトークンは、最新のトークンをメモリー内に保持するために削除されます。

マルチエージェント・システム・メモリー構成(スーパーバイザ・パターン)

マルチエージェント・システムのメモリーは、スーパーバイザ・エージェントの「メモリー」タブで構成されます。


ビジュアル・ビルダーのキャンバスにマルチエージェントが表示されました。AccountsManagerノードが選択され、「メモリー」タブが表示されます。

マルチエージェントシステムのメモリーは強制され、無効にすることはできません。また、スーパーバイザエージェントノードに表示されるメモリーの切り捨てオプションは、スーパーバイザエージェントのメモリーにのみ適用されます。各エグゼキュータ・エージェントのメモリー切捨てポリシーは、システム全体に対して選択された状態分離ポリシーに基づいて、エグゼキュータ・ノードの「メモリー」タブで構成できます。

マルチエージェント・システム・メモリー構成では、エグゼキュータ・エージェントのメモリー共有ポリシーを選択することもできます。ステートレス、プライベートおよび共有の3つのオプションを使用できます。ポリシーはすべてのエグゼキュータ・エージェントに適用されます。

エグゼキュータ・エージェントの状態分離 説明
ステートレス 各エグゼキュータ・エージェントには、スーパーバイザによって割り当てられたタスクのみが表示されます。コール間で履歴が繰り越されることはありません。エグゼキュータエージェントがスーパーバイザエージェントに対してフォローアップ要求を行うことはできません。

ステートレスを選択すると、各エグゼキュータ・エージェントのメモリーが無効になります。

プライベート 各エグゼキュータ・エージェントは、独自の過去の相互作用のみを参照します。

他のエグゼキュータ・エージェントまたはスーパーバイザ・エージェントとの元のユーザー会話を表示できません。

共有 エグゼキュータ・エージェントは、エージェントおよびユーザー全体の会話履歴全体を表示できます。すべてのエージェントは、1つの共有コンテキストから機能します。

共有が選択されている場合は、各エージェント・ノードの「メモリー」タブで、エグゼキュータ・エージェントごとにメモリー切捨てポリシーを個別に構成できます。