Factory は LLM を強力であるが信頼できないコンポーネントとして扱います。Droid のセーフティモデルは決定論的制御、プログラマブルフック、およびサンドボックスランタイムを組み合わせることで、最先端のモデルでも高セキュリティ環境で安全に動作できるようにします。Documentation Index
Fetch the complete documentation index at: https://factory-docs-auto-sync-jp-docs.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
2層のセーフティ
我々は以下を区別しています:- 決定論的制御 – モデルの動作に依存しない厳格な境界。
- LLM ステアリング – 保証を提供することなく、モデルをより良い動作へと導くプロンプトとコンテキスト。
決定的な制御
- コマンドリスク分類
- グローバルおよびプロジェクトレベルの許可/拒否リスト
- ファイルとリポジトリの保護
- Droid Shieldのシークレットスキャン
- 適用とログ記録のためのフック
- サンドボックス化されたVMとコンテナ
LLMの誘導
- プロジェクトおよび組織レベルのルールと指示
- 標準化されたコマンドとワークフロー
- MCPによるコンテキスト選択と拡充
- モデル選択と推論量のデフォルト
コマンドリスク分類
Droid が提案するすべてのシェルコマンドは、パターンとコンテキストに基づいて(例:ファイル削除、ネットワークアクセス、パッケージインストール、データベースアクセス)リスクレベルに分類されます。 典型的なレベルには以下が含まれます:- 低リスク – 読み取り専用コマンドとローカル診断(例:
ls、cat、git status)。 - 中リスク – コードを変更したり依存関係をインストールするコマンド(例:
npm install、go test ./...)。 - 高リスク – データを削除したり、システム設定を変更したり、機密リソースとやり取りするコマンド(例:
rm -rf、kubectl delete、本番環境に対するpsql)。
- 低リスクコマンドを常に許可する。
- 中リスクコマンドにはユーザー承認を要求する。
- 高リスクコマンドを完全にブロックするか、特定の環境(例:隔離されたdevcontainer)でのみ許可する。
コマンドの許可リストと拒否リスト
管理者は階層設定でグローバルおよびプロジェクト固有の許可/拒否リストを定義できます:- 拒否リスト – 決して許可されないコマンドのパターン(例:
rm -rf、sudo *、curl *://sensitive-endpoint)。 - 許可リスト – 特定の環境で追加の承認なしに実行できる特定のコマンドまたはパターン。
- 組織レベルの拒否と許可はプロジェクトやユーザーによって削除することはできません。
- プロジェクトはリポジトリ内で追加の許可や拒否を加えることができます。
- ユーザーはポリシーを弱めることはできません。より厳格な個人デフォルトを選択するのみです。
Droid Shield:シークレットスキャンとDLP
Droid Shield はシークレットと機密コンテンツのための専用保護層を追加します。 有効にした場合、Droid Shield は以下ができます:- ファイルが読み取りまたは編集される前にファイルをスキャンする。
- モデルに送信される前にプロンプトをスキャンする。
- 実行される前にコマンドをスキャンする。
- API トークンとアクセスキー。
- パスワードとデータベース接続文字列。
- 秘密鍵と証明書。
- 組織固有の識別子(設定可能なパターン)。
- 操作を完全にブロックする。
- 継続する前に機密部分を編集する。
- セキュリティレビューのためにOTELイベントとログを出力する。
- より深い分析のためにフック経由で顧客DLPサービスを呼び出す。
強制とログのためのフック
フックは Droid のプログラマブルなセーフティと可観測性インターフェースです。エージェントループの重要なポイントで独自のコードを実行できます。 一般的なフックポイントには以下があります:- プロンプト送信前 – シークレット、PII、またはポリシー違反についてプロンプトを検査。
- ファイル読み取りまたは書き込み前 – 機密ファイルへのアクセスをブロックまたは編集。
- コマンド実行前 – 承認ワークフローを強制または危険なコマンドをブロック。
- git操作前 – 未承認の
git pushまたは制限されたブランチとのやり取りを防止。 - コード生成または編集後 – リンター、セキュリティスキャナー、または内部コンプライアンスチェックを実行。
直接のgit pushをブロック
直接のgit pushをブロック
Droidセッションで
git pushをブロックし、代わりに社内CL/PRツールを使用するよう開発者に指示することで、すべてのコード変更が既存ツールを通るようにします。DLPおよびCASBシステムと連携
DLPおよびCASBシステムと連携
プロンプトやファイルスニペットがLLMに到達する前にDLPまたはCASB APIへ転送し、ポリシーに違反する操作を拒否または編集します。
環境固有のポリシーを強制
環境固有のポリシーを強制
Droidが出力する環境タグに基づき、特定のツールとコマンドをCIまたはサンドボックス環境でのみ許可します。
コンテナとVMによるサンドボックス化
サンドボックス化されたdevcontainerとVMでDroidを実行することで、本番システムを公開することなく、有用な場所でより多くの自律性を安全に付与できます。 推奨パターン:- 制限されたファイルシステムマウントとネットワーク出力を持つDocker/PodmanのdevcontainerOSを使用する。
- 本番データベースやシークレットに直接アクセスできないコンテナやVM内でのみ、より高い自律性でDroidを実行する。
- サンドボックス環境と本番隣接環境で別々の認証情報と環境変数を使用する。
environment.type=local|ci|sandbox)。
モデルを安全な動作に向けてステアリング
決定論的制御が基盤である一方、LLM ステアリングは品質を向上させ、危険なアクションが提案される頻度を減らします。 組織およびプロジェクト設定では以下を定義できます:- ルールと指示 – すべてのリクエストに適用されるセキュリティガイドライン、コーディング標準、および組織固有の指示。
- 標準化されたコマンドとワークフロー – 安全なパターンを組み込んだ共有コマンド(例:
/security-review、/migrate-service)。 - コンテキストエンリッチメント – モデルが推測ではなく正確な情報を持てるように、ドキュメント、ランブック、内部APIを公開するMCPサーバー。
