TypeScript の Atlas エージェント エンジン用の LingGraphフレームワークワーク SDK。これは、LingGraph エージェントをプラットフォーム セキュリティ、監査する、 観察権 でラップします。 Pythonバージョンも利用可能です。
インストール
npm install @mongodb-js/agent-engine-sdk-langgraph
アーキテクチャ
ファイル | 目的 |
|---|---|
| パブリック再エクスポート( |
|
|
|
|
|
|
|
|
| LgChuin ➤ プラットフォーム メッセージ トランスレーター |
|
|
| サブエージェント ディスパッチ + |
| LingGraph コールバック → |
|
|
| ディープエージェント |
| ディープエージェント チェックポイント ポリシー(アダプター所有の送信ルーティングを分離) |
| 永続的な |
| セッションフォーク: ネイティブ コピー + 耐久性がある OA ブランチ、 にラップ |
|
|
依存関係の方向
以下の各行は、上位から下位の 1 つの依存関係ランク(実際のローカル インポートグラフから計算)です。
index.ts runtime.ts agent.ts session_factory.ts durable_session.ts deep_agent.ts · execution_session.ts · secure_llm.ts · backends/toolpod.ts deep_agent_checkpointer.ts · durable_deep_agent.ts · durable_subgraphs.ts · session_fork.ts platform_checkpointer.ts workflow_state.ts durable_tools.ts · llm_adapter.ts · query.ts · suspend.ts · workflow_message.ts messages.ts · checkpoint_branch.ts · checkpointer.ts · deep_agent_task.ts · durable_message_identity.ts · node_logger_adapter.ts · stopped_tool_call_middleware.ts · subagents.ts · thread_id.ts · backends/tool_sandbox.ts · workflow_json.ts
ファイルは、このツリーの下の行のファイルからのみインポートできます。その逆の方法で進むインポートはバグです。
構成
環境変数 | default | 説明 |
|---|---|---|
| (設定されていない) | AERモードのチェックポイントとクエリプラグインのMongoDB接続ソース。 |
|
| AERモードの LgGraph チェックポイントに使用されるプロジェクトごとのMongoDBストアのベース名。プロジェクトのスコープ設定と検出は、以下のようにオーバーライドされない限り、引き続き適用されます。 |
| (設定されていない) | 設定されている場合は、正確な |
デフォルトでは 、LingGraphチェックポイントthread_id は session_id:workspace_id です。エージェントは app.resolveThreadId((ctx) => ...) を登録できます。その戻り値は、新しい呼び出しと再開呼び出しで冗長に使用され、ワークスペースサフィックスは追加されません。カスタムキーは Atlas Agent Engine /query/sessions* 履歴では表示されません。クエリでは、デフォルトのセッションまたはワークスペースから生成されたキーのみが検索されます。チェックポイントデータベース内の 衝突分離のスコープ設定をバイパスするエージェント。キーは、オンごとに RequestContext(セッションと認証された ID を含む)から再構築可能である必要があります。
読み取りはスコープ指定のみです。セッション履歴では、各 Atlas エージェント エンジン がワークスペースにスコープが設定された複合キーのみに拡張されます。必要最低限のキーは、共有ストア上のすべてのワークスペースで読み取りと書込みが可能であるため、ワークスペースのスコープが認識されるとクエリされません。スコープ設定が存在する前に書き込まれたレガシー チェックポイントは、履歴エンドポイントでは提供されません。空のスコープは、明示的にスコープが設定されていないランタイム(ローカル開発とテスト、session_id がない場合)でのみ正規化されます。マネージドAPP_ID AER には が含まれます。REQUIRE_PROJECT_SCOPED_DB APP_IDがない場合、ワイヤワークスペースを信頼したり、ベアキーを使用したりする代わりに、読み取りと書込みは失敗します。カスタム キーを本番環境で使用する場合でも、共有データベース内のチェックポイントキーの一意性をエージェント所有ものとして扱う必要があります。
import { App } from "@mongodb-js/agent-engine-sdk-langgraph"; const app = new App({ appName: "support-agent" }); app.resolveThreadId((ctx) => `${ctx.sessionId}__${ctx.userId}`); app.entrypoint(() => { // Build the LangGraph graph here and pass this saver to graph.compile(). const checkpointer = app.checkpointer(); return buildGraph().compile({ checkpointer }); }); // On the agent AER pod, set CHECKPOINT_DB_NAME to the exact shared database.
Python SDKとの違い
機能 | Python | TypeScript | ノート |
|---|---|---|---|
MCP ツール サーバー | ✅ | ✅ |
|
| ✅ | ❌ 機能 | LgGraph.js ではまだありません - 防御的な展開によって処理されます。 |
スキル
App.deepAgent(..., { skills: [...] }) を介して親ソース ディレクトリを渡します。実行時に、ディープエージェントは構成されたバックエンドを通じて各ソースを一覧表示し、SKILL.md を含むその直下の子ディレクトリのみを検出します。検出は再帰的ではありません。深処理は、読み取りができないまたは解析できない前照合をスキップし、nameまたはdescriptionが欠落している特権をスキップします。警告は発せられますが、エージェント ルールの命名またはディレクトリ名の違反がロードされる可能性があります。この SDK は、宣言されたパスを検査やフィルタリングで転送します。スキーム ルートは、SDK インポート時ではなく、 ツール ポッドのスタートアップ時に解決される ため、通常の静的 SDK インポートが機能します。インポート順序の回避策は必要ありません。
開発
install dependencies npm install type-check only (no emit) npm run typecheck build distributable npm run build unit tests npm run test lint npm run lint
コーディング標準
Strict TypeScript(
strict: true+noUncheckedIndexedAccess+exactOptionalPropertyTypes)。Snake_case のファイル名。
キャメルケース 関数/変数名。
パスカルケースクラスまたは type 名。
各ファイル= 単一の責任(1 つのクラスまたは 1 つのフォーカスされた概念)。
パブリック 画面は インターフェースに依存します(依存関係 インバージョン)。
ハードコードされたシークレットはありません。