メインコンテンツへスキップ

Documentation Index

Fetch the complete documentation index at: https://docs.qoder.com/llms.txt

Use this file to discover all available pages before exploring further.

Agent は、タスクを実行する際にターミナル内でシェルコマンドを直接実行します。Qoder は階層型セキュリティモデルを採用しており、現在の実行モードとコマンドのリスクレベルに基づいて、コマンドを直接実行するか、サンドボックスに隔離して実行するか、またはユーザーの確認を待機するかを自動的に判断します。目的は、自動化の効率を維持しながら、意図しない破壊的な操作を防ぐことです。

実行モード

Qoder は、自動化効率とセキュリティ保護のバランスを取るために、ユースケースに合わせた異なる実行モードを提供します。

Agent モード

  • 直接実行されるコマンド: 組み込みのリスクカテゴリに該当しない通常の開発コマンド(npm installgit statuspython test.py など)は、介入なしで自動的に直接実行されます。
  • 確認がトリガーされるコマンド: 潜在的なリスクカテゴリに該当する、またはユーザーが設定したブロックリストにあるコマンドは実行を一時停止し、IDE 内で承認または拒否されるのを待ちます。

Experts モード

Experts モードは自動化の度合いが高くなります。
  • 直接実行されるコマンド: 組み込みのリスクカテゴリにないすべてのコマンドは、ユーザー設定のブロックリストをチェックせずに直接実行されます。
  • サンドボックスで実行されるコマンド: 潜在的に危険なコマンドは、確認なしで自動的にサンドボックスで実行されます。
  • 権限の昇格: サンドボックスの制限によってコマンドが失敗した場合、またはモデルがサンドボックス内では確実に失敗すると予測した場合、AI は原因を分析し、権限の昇格を要求することがあります。その場合、Qoder は一時停止し、ターミナルでコマンドを実行することを承認するかどうかを尋ねます。

潜在的に危険なコマンド

ファイルの削除、ディスク操作、権限管理、ネットワーク構成などのカテゴリに関わるコマンドは、システムによって潜在的なリスクとして識別されます。Agent モードでは、これらのコマンドは一時停止して確認を待ちます。Experts モードでは、これらのコマンドは自動的にサンドボックスで実行されます。 さらに、AI モデルはコマンドの意味に基づいて独立してリスクを判断します。コマンドが上記のカテゴリに含まれていない場合でも同様です。

サンドボックス

サンドボックスは Experts モードで使用される隔離された実行環境です。潜在的に危険なコマンドはサンドボックス内で実行され、ワークスペースディレクトリにのみアクセスできるようにすることで、誤操作によるシステムファイルへの影響を防ぎます。

プラットフォーム要件

  • macOS: 追加の設定なしでそのまま使用できます。システムに組み込まれた Seatbelt フレームワークに基づくカーネルレベルの隔離を実装しています。
  • Windows: IDE とともに配布される独自のサンドボックスエンジンによって実装されています。Windows 7 以降のすべてのバージョンをサポートします。WSL やその他の依存関係をインストールすることなく、ネイティブの Windows ターミナルで直接動作します。
  • Linux: bubblewrap(bwrap)のインストールが必要です。カーネルの user namespace に基づいて軽量な隔離環境を構築します。初回使用時に bwrap が未インストールの場合、Qoder はプロンプトを表示し、ワンクリックインストール(apt / dnf / yum / pacman / zypper を自動検出)を案内します。インストールしない場合、サンドボックスなしの実行にダウングレードされ、プロンプトが表示されます。

サンドボックスの動作方式

サンドボックスは、ワークスペースの操作を許可しつつ、不正なアクセスをブロックします:
  • ファイルシステム: ワークスペースディレクトリは書き込み可能で、その他のディレクトリは読み取り専用です。~/.ssh などの機密パスは、サンドボックス内のプロセスからは見えません。

サンドボックスのエスカレーションワークフロー

Experts モードでコマンドがサンドボックスで実行された場合、以下の事象が発生する可能性があります:
  1. コマンドがサンドボックスで実行され、失敗する。
  2. AI が失敗の原因を分析し、サンドボックスの制限によるものか判断する。
  3. サンドボックスの制限が原因である場合、AI は権限の昇格を要求する。
  4. Qoder が一時停止し、承認するかどうかを尋ねる。
  5. 承認後、コマンドはターミナルで直接実行される(サンドボックスの制限なし)。
コマンドをキャンセルして Agent に別のアプローチを試させるか、サンドボックスの制限なしにターミナルでコマンドを再実行するかを選択できます。

注意事項

  • ドメインレベルのネットワークフィルタリング: 現在のネットワーク制御は粗いオン/オフのモードですが、ドメインレベルの詳細なフィルタリング機能が計画されています。
  • Linux コンテナ環境: Docker などのコンテナ内で Qoder を使用する場合、サンドボックスの隔離機能は制限され、現在はファイルシステムとネットワークの隔離のみとなります。
  • Windows サンドボックスはユーザーモードメカニズム: 誤った書き込みや意図しない外部接続を防ぐことを目的としており、敵対的な攻撃(例:プロセスがすでに昇格された権限を取得している場合など)を完全に防ぐことはできません。
  • シェルテーマの互換性: 一部のシェルテーマ(Powerlevel9k/Powerlevel10k など)は、ターミナル出力に干渉する場合があります。コマンドの出力が途切れたり文字化けしたりする場合は、Agent 実行中はテーマを無効にするか、よりシンプルなプロンプトに切り替えることをお勧めします。