Cortex Codeエージェント SDK 参照 -- TypeScript¶
このトピックでは、すべての関数、型およびインターフェースを含む、TypeScript 用Cortex Codeエージェント SDK のすべての API リファレンスを示します。
インストール¶
Node.js 18以降が必要です。パッケージは ESM のみです。SDK はCortex Code CLI が個別にインストールされることを想定しています。PATH にない場合は、CORTEX_CODE_CLI_PATH=/path/to/cortex を設定するか、セッションオプションの cliPath を渡します。
関数¶
query()¶
Cortex Codeと対話するための主要な関数。メッセージが届くとメッセージをストリーミングする非同期ジェネレーターを作成します。
パラメーター
パラメーター |
型 |
説明 |
|---|---|---|
|
|
単一のユーザープロンプト、またはストリーミング入力用の SDK ユーザーメッセージの非同期イテラブル |
|
|
オプションの構成オブジェクト(オプション を参照) |
戻り値
追加の制御メソッドを使用して AsyncGenerator<CortexCodeEvent> を拡張する Query オブジェクト。
例
createCortexCodeSession()¶
マルチターン会話のための永続的なセッションを作成します。
例
クエリオブジェクト¶
query() によって返されます。AsyncGenerator<CortexCodeEvent> を拡張します。
メソッド |
説明 |
|---|---|
|
基盤となるプロセスに SIGINT を送信する |
|
アクティブなクエリの後続のターンのために権限モードを変更する |
|
後続のターンのためにモデルを変更する |
|
CLI から初期化ハンドシェイクメタデータを返す |
|
CLI によってアドバタイズされている場合に、初期化応答からスラッシュコマンドメタデータを返す |
|
CLI によってアドバタイズされている場合に、初期化応答からモデルメタデータを返す |
|
CLI によってアドバタイズされている場合に、初期化応答からカスタムエージェントメタデータを返す |
|
CLI によってアドバタイズされている場合に、初期化応答からアカウントメタデータを返す |
|
追加の SDK ユーザーメッセージをアクティブなクエリにストリーミングする |
|
ID によって実行中のバックグラウンドタスクをキャンセルする |
|
セッションを閉じてプロセスを終了する |
CortexCodeSession インターフェース¶
createCortexCodeSession() によって返されます。マルチターンの会話をサポートし、 await using と併用する AsyncDisposable (Node.js 24+)を実装します。
プロパティ / メソッド |
説明 |
|---|---|
|
基盤となる CLI プロセスの PID |
|
プレーンテキストまたは構造化された SDK ユーザーメッセージを送信する |
|
エージェントからのストリームイベント |
|
CLI から初期化ハンドシェイクメタデータを返す |
|
中断シグナルを送信する |
|
セッション内の後続のターンのために権限モードを変更する |
|
セッションの途中でモデルを変更する |
|
ID によって実行中のバックグラウンドタスクをキャンセルする |
|
セッションを終了してプロセスを終了する |
|
|
オプション¶
query() または createCortexCodeSession() に渡された構成。
オプション |
型 |
デフォルト |
説明 |
|---|---|---|---|
|
|
現在のプロセスの作業ディレクトリ |
セッションの作業ディレクトリ。省略された場合、 SDK は現在のプロセス作業ディレクトリを継承します。 |
|
|
CLI のデフォルト |
使用するモデル。 |
|
|
CLI のデフォルト |
Snowflake CLI接続設定のSnowflake接続名、通常は |
|
|
|
プロファイル名(ロード元 |
|
|
|
以前の会話を再開するためのセッション ID |
|
|
|
最新の会話を続けます。セッション ID を必要とせずに最後のセッションを再開します。 |
|
|
|
そのまま継続する代わりに、再開されたセッションを新しいセッション ID にフォークします。 |
|
|
|
会話のための明示的なセッション ID。省略された場合、CLI は自動的に生成します。 |
|
|
|
|
|
|
|
|
|
|
|
プロンプトなしで自動承認するためのツール |
|
|
|
常に拒否するツール |
|
|
各ツールの実行前に呼び出されるカスタム許可ハンドラー。canUseTool コールバック をご参照ください。 |
|
|
|
|
許可プロンプトに使用される MCP ツールの名前。 |
|
|
|
停止する前のエージェントのターンの最大数。最大数に達すると、セッションは |
|
|
|
モデルの思考エフォートレベル。 |
|
|
|
セッションで利用できるようにする追加の作業ディレクトリ |
|
|
|
ロードするプラグインディレクトリ。パスを文字列または |
|
|
|
生成されたプロセス環境にマージされた環境変数。キーを |
|
|
|
コントローラーに対する |
|
|
|
カスタムシステムプロンプト。文字列を渡してデフォルトを完全に置き換えるか、SystemPromptPreset を渡して拡張します。 |
|
|
|
デフォルトのシステムプロンプトに追加されたテキスト。これを使用して、組み込みのプロンプトを置き換えずに指示を追加します。 |
|
|
|
ツール実行とその他のエージェントイベントをインターセプトするためのフックコールバック。フック をご参照ください。 |
|
|
|
ロードするソースの設定。 |
|
|
|
トークンレベルのストリーミングイベントが含まれるようにする |
|
|
|
外部 MCP サーバー構成。キーはサーバー名であり、値はサーバー構成です(例: |
|
|
|
MCP サーバーを無効化 |
|
|
|
構造化出力 -- JSON スキーマに基づいて最終的な応答を検証する |
|
|
|
カスタム CLI バイナリへのパス。省略された場合、SDKは最初に |
|
|
|
キーと値のペアとしての追加の CLI 引数 |
canUseTool コールバック¶
各ツールの実行前に呼び出されるカスタム許可ハンドラー。ツールの呼び出しが続行されるかどうかを制御するために、許可または拒否の結果を返します。
多くの通常のツール権限チェックでは、コールバック入力には { action, resource } などのフィールドが含まれます。これらのチェックには、許可/拒否の結果とオプションの拒否メッセージが使用されます。 updatedInput はツール固有のフィールドを含む AskUserQuestion や ExitPlanMode などの SDK ルーティング擬似ツールで使用されます。
例
SystemPromptPreset¶
システムプロンプトを完全に置き換える代わりに、事前設定オブジェクトを使用して組み込みプロンプトを拡張します。
例
フック¶
フックを使用すると、ツール実行などのエージェントイベントをインターセプトできます。各フックイベントは一致の配列にマッピングされ、各一致にはオプションのパターンと1つ以上のコールバックが含まれます。
例
メッセージタイプ¶
query() および session.stream() によって生成されたイベント:
SDKAssistantMessage¶
エージェントが応答を生成するときに出力されます。1つ以上のコンテンツブロックが含まれます。
SDKResultMessage¶
エージェントがターンを終了したときに出力します。成功またはエラーについて subtype を確認します。
SDKUserMessage¶
ユーザーメッセージが処理されたときにエコーバックされます。
SDKSystemMessage¶
セッションの初期化などのシステムイベント。
コンテンツブロック¶
型 |
フィールド |
|---|---|
|
|
|
|
|
|
|
|
ストリーミングイベント¶
型 |
説明 |
|---|---|
|
部分的なテキスト/思考ストリーミング( |
|
|
|
|
SDKPartialAssistantMessage は、部分的なテキストと思考ブロック用に出力されます。完了したツール呼び出しは引き続き AssistantMessage ブロックとして到達し、ツールの結果は UserMessage ブロックとして引き続き到達します。
構造化出力¶
JSON スキーマと一致する応答を返すようにエージェントに強制します。
詳細については、 構造化出力 をご参照ください。
エラー処理¶
法的通知¶
Cortexコードの設定が `モデルとサービスのパススルー規約<https://www.snowflake.com/en/legal/optional-offerings/offering-specific-terms/ai-features/model-pass-through-terms/>`__ において提供されるモデルを使用する場合、そのモデルの使用にはそのページにあるモデルの規約も適用されます。
インプットとアウトプットのデータ分類は以下の表の通りです。
入力データの分類 |
出力データの分類 |
指定 |
|---|---|---|
Usage Data |
顧客データ |
カバーされているAI機能[1]_ |
詳細については、 Snowflake AI と ML をご参照ください。