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

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.

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

4つのレベル

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

Settings JSON スキーマ

以下は組織管理設定の完全なスキーマです。これらは Factory アプリの Enterprise Controls ページで組織管理者によって設定されます。すべてのプロパティはオプションです。設定する必要のないフィールドは省略してください。
sessionDefaultSettings
object
セッションのデフォルト環境設定
maxAutonomyLevel
string
任意のユーザーまたはプロジェクトが設定できる最大自律レベル。offlowmediumhigh のいずれか
cloudSessionSync
boolean
セッションがクラウドに同期されるかどうか
includeCoAuthoredByDroid
boolean
git コミットに Co-authored-by: Droid トレーラーを含めるかどうか
enableDroidShield
boolean
Droid Shield 安全性チェックを有効にするかどうか
ideAutoConnect
boolean
セッション開始時に IDE に自動接続するかどうか
commandAllowlist
string[]
常に許可されるシェルコマンドパターン(レベル間で累積)
commandDenylist
string[]
常に拒否されるシェルコマンドパターン(レベル間で累積)
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 で使用できます:
プロバイダーモデルID
Anthropicclaude-sonnet-4-5-20250929, claude-sonnet-4-6, claude-opus-4-5-20251101, claude-opus-4-6, claude-opus-4-6-fast, claude-opus-4-7, claude-haiku-4-5-20251001
OpenAIgpt-5.1, gpt-5.1-codex, gpt-5.1-codex-max, gpt-5.2, gpt-5.2-codex, gpt-5.3-codex
Googlegemini-3-pro-preview, gemini-3-flash-preview, gemini-3.1-pro-preview
XAIgrok-code-fast-1
オープンソースglm-5, glm-5.1, kimi-k2.5, kimi-k2.6, minimax-m2.7

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

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

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

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

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. 特に機密性の高いリポジトリについては、オプションでより厳しいフォルダレベルのポリシーを定義する。
繰り返しますが、ユーザーはこれらのルールを上書きできません。許可された範囲内でより安全な個人デフォルトを選択することのみ可能です。

例:完全な組織管理設定

{
  "sessionDefaultSettings": {
    "model": "claude-opus-4-6",
    "reasoningEffort": "high",
    "interactionMode": "auto",
    "autonomyMode": "auto-medium",
    "specModeModel": "claude-sonnet-4-6",
    "specModeReasoningEffort": "medium"
  },
  "maxAutonomyLevel": "high",
  "cloudSessionSync": true,
  "includeCoAuthoredByDroid": true,
  "enableDroidShield": true,
  "ideAutoConnect": true,
  "commandAllowlist": ["npm *", "yarn *", "pnpm *", "make *"],
  "commandDenylist": ["rm -rf /", "sudo *"],
  "customModels": [
    {
      "model": "my-internal-model",
      "id": "custom:my-internal-model-v1",
      "index": 0,
      "baseUrl": "https://llm-gateway.internal.example.com/v1",
      "apiKey": "${INTERNAL_MODEL_API_KEY}",
      "provider": "generic-chat-completion-api",
      "displayName": "Internal Model v1",
      "maxContextLimit": 128000,
      "enableThinking": true,
      "thinkingMaxTokens": 8192,
      "maxOutputTokens": 16384,
      "extraHeaders": {
        "X-Team": "platform"
      },
      "extraArgs": {},
      "noImageSupport": false
    }
  ],
  "modelPolicy": {
    "allowedModelIds": ["claude-opus-4-6", "claude-sonnet-4-6", "gpt-5.3-codex"],
    "blockedModelIds": [],
    "allowCustomModels": true,
    "allowedBaseUrls": ["https://llm-gateway.internal.example.com/v1"],
    "allowAllFactoryModels": false
  },
  "userModelPolicies": {
    "user-abc-123": {
      "allowedModelIds": ["claude-opus-4-6"],
      "blockedModelIds": []
    }
  },
  "enabledPlugins": {
    "my-org-plugin@internal-marketplace": true,
    "experimental-plugin@internal-marketplace": false
  },
  "extraKnownMarketplaces": {
    "internal-marketplace": {
      "source": {
        "source": "github",
        "repo": "my-org/factory-plugins"
      }
    }
  },
  "strictKnownMarketplaces": [
    {
      "source": "github",
      "repo": "my-org/factory-plugins"
    }
  ]
}

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

一般的な階層に加えて、いくつかの機能には下位レベルをすべて上書きする専用の組織レベル切り替えがあります:
  • Wiki Cloud Sync (wikiCloudSync) – wiki コンテンツを Factory cloud で生成・保存できるかどうかを制御します。無効にすると、すべての wiki API エンドポイントがブロックされ、CLI は cloud へのアップロードと GitHub wiki 同期をスキップします。デフォルトで有効です。詳しくは Wiki を参照してください。
  • Cloud Session Sync (cloudSessionSync) – セッションデータを Factory cloud に同期するかどうかを制御します。
これらの制御は、app.factory.aiEnterprise Controls セクションで組織管理者が管理します。

すべてをまとめる

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