メモリを使用すると、AI エージェントは、会話の前または以前の会話からの情報を記憶できます。 これにより、エージェントはコンテキストに対応した応答を提供し、時間の経過とともにパーソナライズされたエクスペリエンスを構築できます。 完全に管理された Postgres OLTP データベースである Databricks Lakebase を使用して、会話の状態と履歴を管理します。
Requirements
- ワークスペースで Databricks Apps を有効にします。 Databricks Apps ワークスペースと開発環境を設定するを参照してください。
- Lakebase インスタンスについては、 データベース インスタンスの作成と管理に関するページを参照してください。
短期記憶と長期記憶
短期メモリは、1 つの会話セッションでコンテキストをキャプチャしますが、長期的なメモリは複数の会話にわたって重要な情報を抽出して格納します。 いずれかの種類または両方の種類のメモリを使用してエージェントを構築できます。
| 短期記憶 | 長期記憶 |
|---|---|
| スレッド ID とチェックポイント処理を使用して 1 つの会話セッションでコンテキストをキャプチャする セッション内でフォローアップの質問のコンテキストを維持する |
複数のセッションにわたって主要な分析情報を自動的に抽出して格納する 過去の設定に基づいて操作をカスタマイズする 時間の経過に伴う応答を改善するユーザーに関するナレッジ ベースを構築する |
概要
Databricks Apps でメモリを持つエージェントを作成するには、事前構築済みのアプリ テンプレートを複製し、「AI エージェントの作成」で説明されている開発ワークフロー に従ってアプリにデプロイします。 次のテンプレートは、一般的なフレームワークを使用してエージェントに短期および長期のメモリを追加する方法を示しています。
LangGraph
agent-langgraph-advanced テンプレートを複製して、短期メモリと長期メモリの両方を使用して LangGraph エージェントを構築します。 このテンプレートでは、スレッドベースの会話コンテキストやセッション間の永続的なユーザー分析情報など、永続的な状態管理のために、LangGraph の組み込みのチェックポイント処理と Lakebase を使用します。
git clone https://github.com/databricks/app-templates.git
cd app-templates/agent-langgraph-advanced
OpenAI Agents SDK
agent-openai-advancedテンプレートを複製し、OpenAI Agents SDKを用いて短期メモリを備えたエージェントをビルドします。 このテンプレートでは、Lakebase を利用して永続的な状態管理を行い、自動会話履歴管理機能によって、ステートフルな複数ターンの会話を可能にします。
git clone https://github.com/databricks/app-templates.git
cd app-templates/agent-openai-advanced
実行時間の長いエージェントのバックグラウンド実行
Databricks Apps では、約 300 秒の HTTP 接続タイムアウトが適用されます。 バックグラウンド実行により、この制限を超えるエージェント タスクは、接続が閉じた後も実行され続けることができます。クライアントは、別のエンドポイントから結果を取得するか、再接続してストリーミングを再開します。
高度なテンプレート (agent-langgraph-advancedとagent-openai-advanced) は、LongRunningAgentServerからのdatabricks-ai-bridgeを使用して、短期メモリと実行時間の長いバックグラウンド実行で基本テンプレートを拡張します。これは、次の機能を提供します。
-
バックグラウンド モード: 応答 ID をすぐに返し、エージェントを非同期的に実行するように要求本文で
background=trueを設定します。 -
エンドポイントを取得する:
GET /responses/{id}を送信して最終的な結果をフェッチするか、進行中の実行へのストリーミング接続を開きます。 -
再開可能なストリーミング: すべてのサーバー送信イベントに
sequence_numberが含まれます。 接続が切断された場合は、starting_after=Nに再接続して、次のイベントから再開します。 - TASK_TIMEOUT_SECONDS バックグラウンド タスクの期間を上限とする環境変数。 これは、1 つの HTTP 要求にのみ適用される 120 秒の Databricks Apps HTTP 接続タイムアウトとは無関係です。 (既定値: 1 時間)
高度なテンプレート README は、次の 5 つのクライアント モードの要求例を示しています。
- 呼び出し: 標準の非ストリーミング POST。
- Stream: 標準のストリーミング POST。
-
バックグラウンドで、
background=trueを使用して POST した後、完了するまでGET /responses/{id}ポーリングします。 -
バックグラウンド ストリーミング、ストリーム経由での再開:
background=trueとstream=trueを含む POST。接続が切断された場合は、GET /responses/{id}を使用してstream=trueに再接続します。 -
バックグラウンド ストリーミング、投票による再開: 再びキックオフ。接続が切断された場合は、最終的な結果を取得するために
GET /responses/{id}を問い合わせます。
エージェントをデプロイしてクエリを実行する
メモリを使用してエージェントを構成したら、「 AI エージェントを作成してアプリにデプロイ する」の手順に従って、エージェントをローカルで実行し、評価し、Databricks Apps にデプロイします。