バッチ処理、対話型ツール、バックエンドサービス、承認フロー、ドメイン拡張に適した統合方式を説明します。
統合方式は主に、タスク開始後も入力を続けるか、ツール操作に外部判断が必要か、セッションをプロセスやホストをまたいで復元するかで決まります。このページでは、一般的な製品形態ごとに TypeScript と Python の推奨エントリポイント、機能の組み合わせ、実行時の境界を示します。
コード検査、テスト生成、移行レポート、ドキュメント生成などは、明確な入力と最終結果が 1 つずつあれば実行できます。文字列で
推奨設定:
チャット形式のコーディングアシスタント、IDE 機能、社内開発ポータルでは、タスク開始後も入力を受け取り、Agent のテキスト、ツール活動、状態をリアルタイムに表示します。
入力モード、ストリーミング出力、セッション制御を参照してください。
バックエンドサービスは、HTTP リクエスト、キューメッセージ、定期ジョブを Agent セッションに変換できます。各ローカルアクティブセッションは 1 つの qodercli プロセスを使用するため、同時実行数の設計ではプロセス数、モデルリクエスト、ファイルシステム、コマンド実行リソースを考慮します。
サービス統合では次の境界を設定します。
コード変更、コマンド実行、リリース操作、業務システムへの書き込みでは、製品 UI、承認システム、ポリシーサービスによる判断が必要になる場合があります。権限制御は静的境界と実行時判断に分かれます。
承認画面にはツール名、重要な引数、影響範囲、セッションの文脈を表示します。無人ジョブには明確な拒否ルールとタイムアウトを設定し、セッションの待機継続を防ぎます。承認コールバックと Hooks は、ワークスペースの隔離や最小権限の認証情報を置き換えるものではありません。
権限制御と Hooksを参照してください。
拡張機能により、Agent は業務データの読み取り、社内システムの呼び出し、ドメイン固有の作業方法の再利用ができます。目的に応じて拡張種別を選びます。
ツール入力には明示的な構造化フィールドを使い、応答にはタスクに必要なデータだけを含めます。業務認証情報はタスク本文に追加せず、ツール実装またはホストサービスに保持します。書き込み操作には引き続き権限ルールまたは承認コールバックを適用します。
ツール、MCP、Agents、Skills、Pluginsを参照してください。
方式を選ぶ
| 製品形態 | 推奨エントリポイント | 主要機能 |
|---|---|---|
| バッチスクリプト、CI ジョブ | 文字列タスクを渡す query() | cwd、ツール範囲、非対話権限、Result |
| 対話型開発ツール | TypeScript 非同期メッセージストリーム、Python QoderSDKClient | ストリーミング出力、追加入力、中断、セッション ID |
| バックエンド API、ジョブサービス | タスクごとにセッションを作成または復元 | サービス認証、同時実行制御、外部セッションストレージ |
| 人による承認を含む自動化 | canUseTool / can_use_tool | allow/deny ルール、承認 UI、Hooks |
| ドメインワークフロー | MCP、Skills、Agents、Plugins | 業務ツール、ドメイン指示、再利用可能な拡張パッケージ |
バッチスクリプトと CI
コード検査、テスト生成、移行レポート、ドキュメント生成などは、明確な入力と最終結果が 1 つずつあれば実行できます。文字列で query() を呼び出し、タスク完了時にセッションを終了します。
- 開発端末のログイン状態ではなく、PAT や Service Account など自動化向けの認証方式を使用します。
cwdを明示し、ファイル操作とコマンド実行をジョブのワークスペース内に限定します。- レポート作成では
Read、Glob、Grepなどの読み取りツールだけを公開します。変更が必要な場合だけEdit、Write、Bashを追加します。 - バックグラウンドジョブには確認 UI がありません。明示的な allow/deny ルールと
dontAskを組み合わせ、未承認操作を拒否します。管理されたワークスペースの変更にはacceptEditsが適しています。 - Result までストリームを消費し、
subtype、errors、利用可能な場合はerror_codeで結果を分類します。
対話型開発ツール
チャット形式のコーディングアシスタント、IDE 機能、社内開発ポータルでは、タスク開始後も入力を受け取り、Agent のテキスト、ツール活動、状態をリアルタイムに表示します。
- TypeScript:
AsyncIterable<SDKUserMessage>をquery()に渡します。 - Python:
QoderSDKClientでセッションを作成し、query()でメッセージを送り、receive_response()で各ターンの出力を受け取ります。 - ストリーミングイベントで画面を更新し、
interrupt()で現在のターンを停止します。 - 製品内の各会話に対応する
session_idを保存します。継続にはresume、元の分岐を残す場合は fork を使用します。 - 追加入力には、即時、次の処理機会、現在のターン終了後のいずれかを明示します。
バックエンド API とジョブサービス
バックエンドサービスは、HTTP リクエスト、キューメッセージ、定期ジョブを Agent セッションに変換できます。各ローカルアクティブセッションは 1 つの qodercli プロセスを使用するため、同時実行数の設計ではプロセス数、モデルリクエスト、ファイルシステム、コマンド実行リソースを考慮します。
- 実行環境で qodercli 子プロセスを起動でき、タスク用ワークスペース、コマンド、依存関係が利用できる必要があります。
- 自動化サービスでは明示的な認証情報を使用します。ローカルログインは開発端末向けです。
- リクエストを安定した
session_idに対応付けます。単一ホストではローカルセッションを利用でき、複数ホスト、コンテナ、一時ディスクではsessionStore/session_storeでセッションをミラーします。 - ホストをまたいで復元する場合、対象ホスト間でプロジェクトディレクトリの意味とプロジェクト内容を一致させます。
- ストリーミング API は Agent イベントを呼び出し元へ転送できます。非同期ジョブは進捗と最終 Result を保存できます。
- タイムアウト時は
interrupt()を呼び出すかセッションを閉じ、必要なエラーとプロセス診断を残します。
人による承認を含むワークフロー
コード変更、コマンド実行、リリース操作、業務システムへの書き込みでは、製品 UI、承認システム、ポリシーサービスによる判断が必要になる場合があります。権限制御は静的境界と実行時判断に分かれます。
toolsでセッションに表示するツールを決めます。allowedTools/allowed_toolsとdisallowedTools/disallowed_toolsで事前許可と禁止を定義します。canUseTool/can_use_toolで未承認のツール要求を受け取り、allow または deny を返します。- Hooks でツール実行の前後に検証、監査、通知を行います。
業務ツールとドメイン機能
拡張機能により、Agent は業務データの読み取り、社内システムの呼び出し、ドメイン固有の作業方法の再利用ができます。目的に応じて拡張種別を選びます。
| 目的 | 推奨機能 | 適した内容 |
|---|---|---|
| ホストプロセス内の関数を呼び出す | プロセス内 MCP ツール | データ検索、チケット操作、社内 API ラッパー |
| 既存のツールサービスへ接続する | 外部 MCP Server | 独立配備された標準ツールセット |
| 操作手順を再利用する | Skills | チーム規約、診断手順、成果物テンプレート |
| 専門ロールを定義する | Agents | コードレビュー、テスト分析、移行計画 |
| 複数の拡張を配布する | Plugins | Skills、Agents、MCP、コマンドの組み合わせ |
本番導入チェック
- 実行環境:qodercli が起動し、
cwdが適切に隔離されたワークスペースを指し、必要なコマンドと依存関係が利用できます。 - 認証:認証情報を環境変数またはシークレット管理から注入し、ログとタスク本文にシークレットを含めません。
- 権限:ツールセットを最小権限にし、バックグラウンドジョブが利用できない確認 UI に依存しないようにします。
- ライフサイクル:Result までメッセージストリームを消費し、タイムアウト、中断、プロセス終了、アプリケーション終了を処理します。
- セッション:復元が必要な場合は
session_idを保存し、複数ホストでは共有セッションストレージを設定します。 - 同時実行:アクティブな qodercli プロセス、ワークスペース、モデルリクエスト、ツールリソースを含めて容量を設計します。
- 可観測性:Result、ツール活動、必要な診断を記録し、認証情報と機密業務データを除外します。
- バージョン:SDK 同梱ランタイムを使用するか、別途指定する qodercli 実行ファイルと SDK の互換性を維持します。
関連ドキュメント
- クイックスタート — 最初の TypeScript または Python タスクを実行
- 仕組み — プロセス、通信、Agent ループを理解
- SDK References — 各言語の正確な API を確認