メインコンテンツへスキップ
Factoryのエンタープライズストーリーは、単一で予測可能な設定階層の上に構築されています。マシンごとのアドホックな設定の代わりに、組織はポリシーを一度表現し、ラップトップ、CI、VM、エアギャップ環境全体で一貫して適用させることができます。 このページでは、階層がどのように機能するか、そしてモデル、ツール、安全ポリシー、テレメトリを統制するためにそれをどのように使用するかを説明します。

4つのレベル

設定は、4つのレベルで一貫した構造を持つ.factory/フォルダで定義されます:
.factory/ フォルダには以下が含まれます:
  • settings.json – 一般設定(モデル、安全性、環境設定、テレメトリ)
  • hooks.json – フック定義
  • mcp.json – MCP サーバー設定
  • droids/ – droid 定義
  • commands/ – カスタムコマンド
  • skills/ – スキル定義
すべてのレベルで同じスキーマが適用されます。変わるのは優先度です。

システム管理 settings.json ファイル

ユーザーがサインインする前に組織ポリシーを適用する必要があるデプロイメント — 管理対象ラップトップ、Factory に認証されていない CI ランナー、エアギャップ環境または制限付きネットワークのインストール — では、IT / MDM 管理者は各マシンのハードコードされた既知のパスに settings.json を配置できます: このファイルは、このページの他の部分と同じ Settings JSON スキーマ を使用します。 このファイルが存在する場合、そのマシンでは組織レベル設定の正式な情報源となり、組織設定に対する API 取得や開発者モードの環境変数オーバーライドは行われません。factoryTier シグナルは引き続きベストエフォートで Factory API に問い合わせられ(失敗しても致命的ではありません)、管理対象デプロイメントでもエンタープライズ限定の動作が維持されます。 このファイルが存在しない、または読み取れない場合、Droid は既存の組織設定フロー(Factory App / managed-settings エンドポイント)にフォールバックします。ファイルが存在しても形式が不正、またはスキーマ検証に失敗した場合、組織設定は空のポリシーとして解決され、失敗はログに記録されます。つまり、壊れた管理者デプロイメントが黙ってバイパスされることはありません これは、MDM イメージやインストーラーとともにベースポリシーを配布する推奨方法であり、ユーザーがこれを上書きしたり弱めたりすることはできません。

Settings JSON スキーマ

以下は組織管理設定の完全なスキーマです。これらは Factory App の Enterprise Controls ページで組織管理者によって設定されます。すべてのプロパティはオプションです。設定する必要のないフィールドは省略してください。
sessionDefaultSettings
object
セッションのデフォルト環境設定
maxAutonomyLevel
string
任意のユーザーまたはプロジェクトが設定できる最大自律レベル。offlowmediumhigh のいずれか
builtInToolAutonomyOverrides
object
組み込みネットワークツールを確認プロンプトなしで実行するために必要な、ツールごとの自律レベル。組み込みツール名を lowmediumhigh にマッピングします。ツールは、セッションの自律レベルが設定された要件以上の場合にのみ自動実行され、それ以外の場合は Droid が承認を求めます。エントリのないツールはデフォルトで low になります。組織管理設定からのみ適用されるため、ユーザーおよびプロジェクト設定で弱めることはできません。Enterprise Controls の Built-in Tool Autonomy で設定します。
subagentAutonomyLevel
string
Task ツールによって起動されるサブエージェントに適用される自律レベル。inheritofflowmediumhigh のいずれか。デフォルトは inherit で、親セッションの自律レベルにフォールバックします。明示的なレベルは maxAutonomyLevel によって制限されるため、エンタープライズの上限を超えることはありません。
cloudSessionSync
boolean
セッションがクラウドに同期されるかどうか
wikiCloudSync
boolean
AutoWiki コンテンツを Factory App に保存し、GitHub wiki に同期できるかどうか
includeCoAuthoredByDroid
boolean
git コミットに Co-authored-by: Droid トレーラーを含めるかどうか
enableDroidShield
boolean
Droid Shield 安全性チェックを有効にするかどうか
ideAutoConnect
boolean
セッション開始時に IDE に自動接続するかどうか
commandAllowlist
string[]
常に許可されるシェルコマンドパターン(レベル間で累積)
commandDenylist
string[]
常に確認が必要なシェルコマンドパターン(レベル間で累積)。denylistのコマンドでも、ユーザーが明示的に承認すれば実行できます。ハードブロックにはcommandBlocklistを使用してください。
commandBlocklist
string[]
絶対に実行されないシェルコマンドパターン(レベル間で累積)。拒否リストとは異なり、ブロックされたコマンドには承認の手段がありません。完全自律、自動実行、--skip-permissions-unsafeのいずれの場合でもブロックが適用されます。droidは照合前に実際に呼び出されるプログラムを解決するため、ラッパーシェル、絶対パス、クォートのトリック、コマンド置換で回避することはできません。組織が義務付けるハードストップに使用してください。
allowManagedHooksOnly
boolean
true の場合、組織管理フックと、組織が有効にしたプラグイン由来のフックのみが読み込まれます。ユーザーレベルおよびプロジェクトレベルで定義されたフックは無視されます。デフォルトは false で、すべてのレベルのフックが通常どおりマージされます。組織管理フック を参照してください。
hooks
object
フックイベント をキーとする組織管理フック定義。組織が定義したフックは常に読み込まれ、下位レベルで削除することはできません。フックの完全なセマンティクスについては フックリファレンス を参照してください。
customModels
object[]
組織提供のカスタムモデル定義
modelPolicy
object
組織レベルのモデルアクセス制御
userModelPolicies
object
ユーザーごとのモデルオーバーライド。ユーザー ID からポリシーオブジェクトへのマップ
enabledPlugins
object
plugin@marketplace 形式のプラグイン名から true(有効)または false(無効)へのマップ。true に設定されたプラグインは、マーケットプレイスが利用可能になるとCLI起動時に自動的にインストールされます。
extraKnownMarketplaces
object
追加のプラグインマーケットプレイス。マーケットプレイス名からソースオブジェクトへのマップ。ここにリストされたマーケットプレイスは、CLI起動時に自動的にクローンされ、登録されます。
strictKnownMarketplaces
object[]
厳格に強制されるマーケットプレイスソース。各エントリは、extraKnownMarketplaces の値のように source キーでラップされるのではなく、ソースオブジェクトを直接記述します(例:{ "source": "github", "repo": "owner/repo" })。

サポートされているモデルID

以下のモデル識別子は allowedModelIdsblockedModelIds で使用できます:

拡張のみのセマンティクス

Factoryは、従来の「上書き」動作ではなく、拡張のみのセマンティクスを使用します。
  • 上位レベル(組織、プロジェクト)は、下位レベルによって上書きされません
  • 下位レベル(フォルダー、ユーザー)は、それらのフィールドが未設定の場合にのみ、上位レベルで定義されたものに追加できます。
  • これにより、プロジェクトやユーザーが体験をカスタマイズしても、組織のポリシーがそのまま維持されます。
データ型に応じて3つのマージモードがあります。

1. 単純な値 – 最初の値が優先

単純なスカラー値(文字列、数値、ブール値)の場合:
  • 値を設定した最初のレベルが「優先」されます。
  • 下位レベルはその値を変更または削除できません。
例:
  • sessionDefaultSettings.model
  • sessionDefaultSettings.autonomyMode
  • maxAutonomyLevel
  • subagentAutonomyLevel
これにより、組織の決定(どのモデルや自律レベルが許可されているかなど)が権威を保持することが保証されます。

2. 配列 – 統合、削除不可

配列フィールドはレベル間で蓄積されます:
  • 組織エントリは常に存在し、削除できません
  • プロジェクトとフォルダーレベルは、より多くのエントリを追加できます。
  • ユーザーレベルはより多くのエントリを追加できますが、上位レベルのエントリを削除または弱体化できません。
例:
  • コマンドの許可リスト拒否リスト
  • 有効なフックや機能のリスト。
このパターンは「これらのコマンドは常に拒否される」や「これらのフックは常に有効」などのポリシーに適しており、チームがリストを拡張することも可能です。

3. オブジェクト – キーはレベルごとにロック

オブジェクトフィールドの場合:
  • 上位レベルで定義されたキーはロックされ、その内容は下位レベルで変更できません。
  • 下位レベルは新しいキーを追加できますが、既存のキーを変更または削除はできません。
例:
  • customModels – 組織が claude-enterprise を定義し、プロジェクトが payments-gpt を追加し、ユーザーが personal-experimental を追加できますが、誰も claude-enterprise を変更または削除できません。
  • MCPサーバー定義 – 組織がどのサーバーが存在し、どのように接続するかを定義し、プロジェクトがどれを使用するかを決定します。
これにより、重要な設定(モデルエンドポイントやMCPサーバーなど)が一元管理下に置かれます。

組織設定

大規模組織は通常、以下を行う組織レベルの .factory バンドルまたは設定エンドポイントを管理します:
  • 許可されたモデル、ゲートウェイ、BYOKポリシーを指定。
  • グローバルなコマンド許可/拒否リストを定義。
  • 自律性、推論努力、Droid Shieldなどの安全機能のデフォルトを設定。
  • OTELのデフォルト(エンドポイント、サンプリング、属性)を設定。
  • 組織標準のドロイド、コマンド、フックを公開。
このバンドルは、Droidが動作するすべての環境(開発者マシン、CI、VM、エアギャップクラスター)に配布されます。 組織ポリシーが基盤であり、プロジェクトとユーザーはその上に構築します。

プロジェクトとフォルダー設定

プロジェクトとフォルダーは、バージョン管理にチェックインされた .factory/ ディレクトリを使用して、特定のコードベースやチームに対する組織ポリシーを専門化します。 一般的な責任は以下の通りです:
  • 許可されたセット内でプロジェクト固有のモデルとゲートウェイを追加。
  • プロジェクト固有のドロイド(例:/migrate-service/refactor-module)を定義。
  • プロジェクトのテスト、リンター、デプロイメントプロセスを認識するフックを設定。
  • 高リスクリポジトリの安全制御を強化。
フォルダーレベルの .factory/ ディレクトリは、異なるサブシステムが異なるポリシーを持つモノレポで有用です。

ユーザー設定

開発者は、上位レベルが設定されていない場合の個人設定のみに対して ~/.factory/ を設定できます。 例:
  • 許可されたセットから好みのモデルを選択。
  • 表示オプションとマイナーなUX設定のデフォルト動作を設定。
  • 組織ポリシーと競合しない追加のフックやツールを有効化。 拡張専用のセマンティクスのため、ユーザーは以下のことができません:
  • 組織またはプロジェクト設定で禁止されたモデルやツールを再度有効にする。
  • コマンドの許可/拒否リストを緩める。
  • 組織またはプロジェクトで設定された自律性や安全要件を軽減する。

例:モデルポリシーの強制

あなたの組織が以下を求めているとします:
  • 承認されたエンタープライズモデルのみを許可する。
  • ユーザー提供のAPIキーを禁止する。
  • すべてのプロンプトを特定のLLMゲートウェイ経由で強制する。
この場合、以下を行います:
  1. 組織の.factory/settings.jsonで許可されたモデルとゲートウェイエンドポイントを定義する。
  2. ユーザーBYOKを完全に無効にするためのポリシーフラグを設定する。
  3. モデル選択やエンドポイント使用が組織承認済みセットと一致することを検証するフックを構成する。
プロジェクトとユーザーは異なるタスクで承認されたモデルのうちどれを使用するかを選択できますが、これらの保証を破ることはできません。

例:環境固有の自律性

以下を求める組織を考えてみましょう:
  • CIおよびサンドボックスコンテナで高い自律性を許可する。
  • 開発者のラップトップで自律性を制限する。
以下のようにできます:
  1. 組織レベルでmaxAutonomyLevelhighに設定する。
  2. プロジェクト設定で、以下を行う環境対応フックを定義する:
    • 環境タグを検査する(例:environment.type=local|ci|sandbox)。
    • ラップトップで実行時にmediumを超える自律性レベルをダウングレードまたはブロックする。
  3. 特に機密性の高いリポジトリについては、オプションでより厳しいフォルダレベルのポリシーを定義する。
繰り返しますが、ユーザーはこれらのルールを上書きできません。許可された範囲内でより安全な個人デフォルトを選択することのみ可能です。

例:完全な組織管理設定


機能別のエンタープライズ制御

一般的な階層に加えて、いくつかの機能には下位レベルをすべて上書きする専用の組織レベル切り替えがあります:
  • AutoWiki Cloud Sync (wikiCloudSync) – AutoWiki コンテンツを Factory App に生成・保存できるかどうかを制御します。無効にすると、すべての wiki API エンドポイントがブロックされ、CLI は Factory App への保存と GitHub wiki 同期をスキップします。デフォルトで有効です。詳しくは AutoWiki を参照してください。
  • Cloud Session Sync (cloudSessionSync) – セッションデータを Factory cloud に同期するかどうかを制御します。
  • Hooks Policy (allowManagedHooksOnly, hooks) – 組織管理者が組織管理フックを定義でき、「管理/プラグインフックのみ」を有効にすると、すべてのユーザーレベルおよびプロジェクトレベルのフックが解決時に破棄されます。組織管理フックは権威があり、メンバーがそれらを削除したり独自のフックを再導入したりすることはできません。組織管理フック を参照してください。
  • Built-in Tool Autonomy (builtInToolAutonomyOverrides) – 組み込みネットワークツール(Web Search、Fetch URL)を確認プロンプトなしで実行するために必要な自律レベルを設定します。エントリのないツールはデフォルトで low になります。組織設定からのみ適用されるため、ユーザーおよびプロジェクトで弱めることはできません。
これらの制御は、app.factory.aiEnterprise Controls セクションで組織管理者が管理します。

すべてをまとめる

階層設定システムは、他のエンタープライズページで説明されているすべての基盤となります: 適切なレベルでポリシーを一度定義することで、マシンごとの設定のずれや一回限りの設定なしに、クラウド、ハイブリッド、エアギャップ環境でDroidを実行できます。