Atlas Agent Engine(TypeScript)の統合メモリ ファジー。 Pythonagent-engine-sdk-memory パッケージのカウンター部分: タイプ エージェントは、 から読み取り、メモリ サーバーに書込み (write) するだけで同じルートを使用し、タームやセッションにまたが保存されるメモリを使用します。
インストール
npm install @mongodb-js/agent-engine-sdk-memory
Memoryファサード
Memory は、1 つのトランスポートに依存しないサーバーの背後ですべてのメモリ型を公開します。
タイプ | 書込み | 読み取り |
|---|---|---|
変換変換(SSTM) |
| (フィード |
セマンティック(ファセット) |
|
|
エポック(変換) |
|
|
分類(知識ベース) |
|
|
手順(使い方) |
|
|
カスタムタイプ(プロジェクトごとに宣言 ) |
|
|
統合 | — |
|
すべてのメソッドは非同期です。 ID(userId / sessionId)は、 引数、境界のあるコンテキスト、次にランタイムの環境コンテキストから、呼び出しごとに解決されます。カスタムタイプの操作は例外です。ID フィールドは実行されません。プラットフォームはリクエストから組織、プロジェクト、ユーザーをスタンプするため、クライアント側のID を解決せず、それをスタンプできるバックエンド(プロジェクトスコープ指定された Gateway ルート、または実行スコープ指定されたランタイム)。
2つのモード
ファサードは両方で同じです。 URL、認証、および ID の提供方法のみが異なります。
HTTP-direct(スタンドアロン/オフプラットフォーム)
プラットフォーム外で実行中スクリプト、テスト、コード用の自己完結型クライアント。コンストラクター引数または AGENTIC_MEMORY_* env 変数を使用して構成します。
import { Memory } from "@mongodb-js/agent-engine-sdk-memory"; const memory = new Memory({ serviceAccountToken: process.env.AGENTIC_MEMORY_SERVICE_ACCOUNT_TOKEN, // service-account access token projectId: "my-project", // set => project-scoped Gateway routes }); // unset => flat OE routes await memory.saveSemantic({ text: "favorite color is teal", label: "favorite_color", userId: "u1", metadata: { channel: "web", priority: "high" }, // optional caller-supplied metadata }); const hits = await memory.searchSemantic({ query: "color", userId: "u1" }); await memory.close();
Env var | 目的 |
|---|---|
| サービス アカウント アクセス トークン (設定するとホストされている Gateway URLにフォールバック)。 |
| バックエンド アドレス。 |
| =====================================================================プロジェクトスコープの Gateway ルート空の =========================================================平面 OA ルート。 |
アプリバウンド( 配置されたエージェント内)
エージェント コードは app.memory を使用します(@mongodb-js/agent-engine-sdk-langgraph 以降)。 ID は周囲のリクエストコンテキストから取得され、オーケストレーション エンジンのメモリ プロキシを介してルートを呼び出します(管理するトークンなし、userId スレッドなし)。
// inside a tool or entrypoint await app.memory.saveSemantic({ text: "prefers email over SMS", label: "contact_pref" }); const context = await app.memory.buildContext({ query: "how does the user like to be contacted?" });
アプリバウンド メモリは、プラットフォームリクエストを処理しているときにのみアクセスできます(実行コンテキストの OE_URL が必要)。
コンテキスト トークンの予算
buildContext({ maxTokens }) は、任意の総コンテキスト構築予算を設定します(取得コスト ではありません)。検索とランキングの後、サーバーは500 トークンのフォーマット 予約を減算し、残りに収まるメモリ チャンク全体を必要に応じて選択します。 500 以下の正の値では、メモリの予算はありません。 500 を超える値では、チャンクが収まらない場合でも空のコンテキストが生成されることがあります。 metadata.token_count は形式が設定された出力のみを報告し、予約を除外します。サーバーをデフォルトのままにするには、maxTokensを省略します。
Errors
型指定されたエラーにより、呼び出し元は障害モードでブランチ します。MemoryAuthError(401/403)、MemoryRouteNotFoundError(ルートシェイプ ヒント付きの 404)、MemoryBadRequestError、MemoryServerError(5x /ハード ボディ)、MemoryConnectionError、MemoryNotSupportedError(機能ギャップ)、MemoryIdentityError(必須 IDフィールドを解決できませんでした)。 MemoryNotSupportedError はクライアント側のギャップと、カスタムタイプのルートでは、プラットフォームのみが報告できる機能のギャップをカバーします。最低の 404/405(プラットフォームが古くてルートを提供できない)またはゲートウェイの構造化された 400配置で無効になっているカスタム メモリ タイプを報告する }。構造化不明タイプ 404 は MemoryBadRequestError を発生させます。トランスポートの再試行: 502/503/504 は最大 3 回。
開発
npm install npm test # vitest npm run build # tsc