From 7a36f37a112bced8b983651387a9fadcf41554bf Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 5 Jun 2026 03:31:11 +0000 Subject: [PATCH] docs: sync and translate English doc changes to Japanese --- docs/jp/changelog/release-notes.mdx | 304 ++++++++++++++++++ docs/jp/cli/account/security.mdx | 3 + docs/jp/cli/configuration/custom-droids.mdx | 37 ++- docs/jp/cli/configuration/mcp.mdx | 164 +++++++--- docs/jp/cli/configuration/sandbox.mdx | 106 ++++++ docs/jp/cli/configuration/settings.mdx | 3 +- docs/jp/cli/features/incident-response.mdx | 212 ++++++++++++ docs/jp/cli/features/wiki/overview.mdx | 2 +- docs/jp/cli/user-guides/auto-run.mdx | 2 +- .../cli/user-guides/become-a-power-user.mdx | 17 +- .../cli/user-guides/choosing-your-model.mdx | 8 +- docs/jp/enterprise/eu-deployment.mdx | 62 ++++ .../hierarchical-settings-and-org-control.mdx | 24 ++ docs/jp/enterprise/index.mdx | 2 +- docs/jp/enterprise/network-and-deployment.mdx | 1 + docs/jp/enterprise/security-review.mdx | 112 ++++--- docs/jp/reference/cli-reference.mdx | 9 +- docs/jp/web/factory-router.mdx | 58 ++++ .../cloud-templates/index.mdx | 38 +-- docs/jp/web/missions.mdx | 35 ++ 20 files changed, 1071 insertions(+), 128 deletions(-) create mode 100644 docs/jp/cli/configuration/sandbox.mdx create mode 100644 docs/jp/cli/features/incident-response.mdx create mode 100644 docs/jp/enterprise/eu-deployment.mdx create mode 100644 docs/jp/web/factory-router.mdx create mode 100644 docs/jp/web/missions.mdx diff --git a/docs/jp/changelog/release-notes.mdx b/docs/jp/changelog/release-notes.mdx index 37f36241a..d85e4559c 100644 --- a/docs/jp/changelog/release-notes.mdx +++ b/docs/jp/changelog/release-notes.mdx @@ -4,6 +4,310 @@ description: Factory App、Droid CLI、その他のプロダクトサーフェ rss: true --- + + `v0.141.0` + +## 改善 + +- **大きなコマンド出力** - コマンド実行で非常に大きな出力も、より信頼性高く扱えるようになりました + +## バグ修正 + +- **入力ヒントの位置** - 実行中のヒントが、入力したテキストの下に表示されたままになるようになりました +- **非Gitプロジェクトでのガイドライン** - Gitリポジトリ内でない場合、Droidが親ディレクトリ内のガイドラインファイルを探さなくなりました + + + + + `v0.140.1` + +## 改善 + +- **メンテナンスと安定性** - 内部的な定期メンテナンスと信頼性向上を実施しました + + + + + `v0.140.0` + +## 新機能 + +- **Claude Opus 4.8** - より高速なFast Modeバリアントを含め、Claude Opus 4.8のサポートを追加しました +- **Gemini 3.5 Flash** - Gemini 3.5 Flashのサポートを追加しました +- **MCPツール検索** - 大規模なMCP構成でも高速でコンテキスト効率を保てるよう、Droidが必要に応じてMCPツールを検索して読み込めるようになりました +- **インシデント対応** - 設定済みのSlackチャンネルに投稿された本番アラートをDroidが自動で調査し、根本原因分析(RCA)に向けて対応できるようになりました + +## 改善 + +- **正確なステータスバナー** - スピナーのステータスバナーが、現在のターンの実際の状態を反映するようになりました +- **コンテキストメニューのテキストアクション** - 右クリックのコンテキストメニューにテキストアクションを追加しました(app) + +## バグ修正 + +- **ターミナル書き込みエラー** - ターミナルが出力の書き込みを拒否した場合でも、CLIがクラッシュしなくなりました +- **貼り付け処理** - 特定の貼り付け入力で発生していたクラッシュを修正し、分割されたブラケットペーストも正しく処理されるようになりました +- **エージェントループの停止** - ターンで出力が生成されない場合でも、エージェントループが無制限に実行されなくなりました +- **空のチャットのプレースホルダー** - 空のチャットで表示されるプレースホルダーを復元しました(app) +- **マシン接続のクラッシュ** - 旧式のマシン接続タイプを持つセッションの読み込み時に発生していたクラッシュを修正しました(app) + + + + + `v0.139.0` + +## 新機能 + +- **スラッシュメニューのカスタムコマンドとスキル** - カスタムコマンドとスキルがスラッシュメニューに直接表示されるようになりました + +## バグ修正 + +- **MCPスキーマの互換性** - 互換性のないツールスキーマを持つMCPサーバーの処理を改善しました +- **MCPサーバーフィールドのクリア** - MCPサーバーの編集時にフィールドをクリアできるようになりました +- **ローカルセッションラベル** - ローカルセッションのラベルが「Ephemeral」ではなく「Local」になりました(app) + + + + + `v0.138.0` + +## 新機能 + +- **インタラクティブなMCP管理** - MCPサーバーを対話的に追加、削除、一覧表示できるようになりました +- **MCP認証情報変数** - MCPサーバー設定で、実行時に認証情報変数を展開できるようになりました +- **設定可能なMCP呼び出しタイムアウト** - MCPツール呼び出しにカスタムタイムアウトを設定できるようになりました +- **`mcp off`ショートカット** - 新しいショートカットでMCPサーバーをすばやく無効化できるようになりました +- **カスタムDroid向けMCPサーバー** - カスタムDroidで利用できるMCPサーバーを選択できるようになりました +- **サーバーごとのMCPリスク** - 各MCPサーバーごとにコマンドのリスクレベルを設定できるようになりました +- **Mermaidエクスポート** - チャットからMermaid図をエクスポートできるようになりました(app) + +## 改善 + +- **新しいモデルのハイライト表示** - 新しいモデルが`/models`の先頭でハイライト表示されるようになりました +- **MCP埋め込みリソース** - MCPサーバーの埋め込みリソースがチャット上に表示されるようになりました +- **Composerの読み込み状態** - メッセージComposerに読み込み状態が表示されるようになりました(app) +- **セッションアーカイブ** - appとdesktopでセッションアーカイブのフローを統一しました(app) +- **ピン留めメッセージ** - ピン留めしたメッセージをクリックすると元の位置までスクロールするようになりました(app) + +## バグ修正 + +- **ターンのキャンセル** - ターンをキャンセルすると、すぐに反映されるようになりました +- **セッション名の変更** - 変更したセッションタイトルから余分な空白が取り除かれるようになりました(app) + + + + + `v0.136.0` + +## 新機能 + +- **ディープレビュー スキル** - より徹底的な複数パスのコードレビューを行う新しい`/deep-review`スキルを追加しました +- **サイド質問パネル** - `/btw`のサイド質問パネルがappでも利用できるようになりました(app) +- **自動圧縮の切り替え** - 長時間のセッションを管理できるよう、自動セッション圧縮のオン/オフを切り替えられるようになりました +- **設定可能な圧縮モデル** - 自動セッション圧縮を処理するモデルを選べるようになりました + +## 改善 + +- **`/status`での組織詳細** - `/status`コマンドに組織の詳細が表示されるようになりました +- **フック設定パスの標準化** - フック設定が標準化されたファイルパスを使うようになり、自動移行にも対応しました +- **大きな貼り付けの高速化** - 大量のテキストの貼り付けを高速化しました +- **ツール要約のホバー時ヒント** - 利用可能な操作を示すホバー時ヒントがツール要約に表示されるようになりました(app) + +## バグ修正 + +- **自動スクロールの修正** - セッションビューで発生していた複数の自動スクロール問題を修正しました(app) +- **推論のみのターン** - アシスタントが推論だけを返した場合に、セッションが停止する問題を修正しました +- **DeepSeekのツール呼び出し** - DeepSeekモデル使用時の複数ステップのツール呼び出しの信頼性を改善しました + + + + + `v0.135.0` + +## 新機能 + +- **適応型ターミナルテーマ** - CLIがターミナルの背景を自動検出し、それに合ったテーマを選ぶようになりました + +## 改善 + +- **agent-browserの更新** - バンドルされている`agent-browser`スキルを、より信頼性の高い自動化を実現する新しいリリースに更新しました +- **サブエージェントタイプバッジ** - `TaskOutput`内のサブエージェントタイプバッジが、読みやすいようPascalCaseで表示されるようになりました + +## バグ修正 + +- **メッセージ下書きの添付ファイル** - コンテキストを切り替えても、メッセージ下書きの添付ファイルが保持されるようになりました(app) +- **セッションアクティビティインジケーター** - セッションパネルのアクティビティインジケーターを改善しました(app) +- **Enterprise Controlsフォーム** - Enterprise Controlsの保存時に、空の配列やレコードが書き込まれなくなりました(app) +- **Enterprise Controlsレイアウト** - Enterprise Controlsフォーム全体でコントロールの高さを揃えました(app) + + + + + `v0.134.0` + +## 改善 + +- **Figma helper skill** - 組み込みのFigmaスキルの名前を`figma-mcp-promotion`から`figma-mcp-helper`に変更しました +- **システム管理設定** - システム管理設定が標準のプラットフォームパスから読み込まれるようになりました + +## バグ修正 + +- **Fileツールのレンダリング** - 部分的なデータが表示されないよう、Fileツールの入力はストリーミングの完了を待ってからレンダリングされるようになりました +- **スラッシュコマンド候補** - スラッシュコマンド候補の各行の高さが一貫するようになりました +- **保留中のコマンド承認** - 一度に表示される保留中のコマンド承認の数に上限を設けました +- **新規セッションのサイドバーアニメーション** - サイドバーから新しいセッションを開始する際のアニメーションを滑らかにしました(app) +- **サイドバーのセッションタイトル** - サイドバーでセッションタイトルが正しく保持されるようになりました(app) +- **AskUserの質問ラベル** - 複数の質問がある場合に、質問ラベルが正しく複数形になるようになりました + + + + + `v0.133.1` + +## 新機能 + +- **コンテキストウィンドウ** - 現在のセッションのコンテキスト使用量を確認できる、新しい`/context`スラッシュコマンドとモーダルを追加しました +- **音声キュー** - セッション終了時や入力待ち時に任意の音を再生できるようになりました(app) +- **サイドバーのセッションメニュー** - サイドバー内のセッションを右クリックしてクイックアクションを実行できるようになりました(app) + +## バグ修正 + +- **最終出力の表示** - 最終出力が入力ボックスの上に表示されたままになるようになりました +- **新規セッション下書きのクリア** - 新規セッションの下書きが送信後にクリアされるようになりました(app) +- **LinearのComputerセットアップリンク** - Linear内の「set up Computer」コールトゥアクションが正しい設定ページを指すようになりました +- **Desktopのズーム安定性** - ホストのズームエラーに対してDesktopのズーム処理をより堅牢にしました(app) + + + + + `v0.132.0` + +## 新機能 + +- **Renderへのデプロイ** - 新しい`/deploy-to-render`スキルで、プロジェクトをRenderへデプロイできるようになりました + +## 改善 + +- **セキュリティレビュー範囲の確認** - `/security-review`スキルが、実行前に対象範囲と監査ブランチを確認するようになりました +- **EU接続の高速化** - EUリージョンのユーザー向けの接続レイテンシを低減しました + +## バグ修正 + +- **モデルセレクターの無効化された行** - モデルセレクターで無効化された行を復元し、すべてのオプションが表示されるようになりました +- **再接続時のミッション継続** - アクティブなミッションが、ネットワーク再接続をまたいでも継続して実行されるようになりました +- **Mission Controlのミッションコンピューター** - アクティブなミッションコンピューターがMission Controlページに表示されるようになりました(app) +- **Windows desktopのセットアップ** - Windows desktop app向けのセットアップとスクリプトを修正しました(app) +- **リッチテキストのオートフォーカス** - リッチテキスト入力でのオートフォーカスの信頼性を改善しました(app) + + + + + `v0.131.0` + + 内部的な改善を含むメンテナンスリリースです。 + + + + + `v0.130.0` + +## 新機能 + +- **モデルのお気に入り** - モデルセレクターで好みのモデルをお気に入り登録し、すばやくアクセスできるようになりました +- **スペック保存ディレクトリ** - 新しい設定でスペックの保存先を指定できるようになりました +- **貼り付けプレースホルダーの展開** - Alt+Shift+V(macOSではOpt+Shift+V)を押すと、切り詰められた貼り付けプレースホルダーをインラインで展開できるようになりました + +## 改善 + +- **モデルセレクターの改善** - モデルセレクターのサブメニューをよりすっきりさせました +- **BYOKモデルの一貫性** - BYOKモデルの体験を、他のモデルピッカーと揃えました +- **help出力の明確化** - `help`コマンド出力のフォーマットを改善しました + +## バグ修正 + +- **Linuxでの画像貼り付け** - Linuxで画像を貼り付けられるようになり、クリップボードデータが利用できない場合も適切にフォールバックするようになりました +- **MCP OAuthクライアント** - 認証時に静的なMCP OAuthクライアントをサポートするようになりました +- **OAuthプロバイダーエラー** - 接続済みOAuthプロバイダーからの4xxレスポンスが、ユーザー向けエラーとして表示されるようになりました +- **ApplyPatchの新規ファイル** - ApplyPatch結果内の新規ファイルが、新規作成として正しく表示されるようになりました +- **CLIアップデートの信頼性** - CLIデーモン更新中の再起動競合を防止しました +- **`exec`でのPowerShell** - `exec`モードでPowerShellコマンドが非対話的に実行されるようになりました +- **Slackの初回メンションインジケーター** - Slackで最初のメンションからタイピングインジケーターが表示されるようになりました +- **再接続時のデーモン認証** - 再接続時にデーモン認証トークンが更新されるようになりました(app) +- **Desktopの有料プランオンボーディング** - Desktopの有料プランフローでは、オンボーディング完了画面がスキップされるようになりました(app) + + + + + `v0.129.0` + +## 新機能 + +- **ストリーミングされるファイルフックイベント** - フック実行中の進行状況を追跡できるよう、ファイルフックの実行イベントがストリーミングされるようになりました + +## 改善 + +- **大規模セッションのレンダリング高速化** - 大規模なセッショントランスクリプトが、導出前に打ち切り位置で切り詰められることで、より高速にレンダリングされるようになりました + +## バグ修正 + +- **Escによるツール操作のキャンセル** - Escキーで進行中のツール操作を確実にキャンセルできるようになりました +- **複雑なスキーマを持つMCPツール** - 解決不能な参照をスキーマに含んでいても、MCPツール一覧の表示が失敗しなくなりました +- **Claude Codeサブエージェントのインポート** - インポート先のプロジェクトルートがない場合、サブエージェントのインポートをスキップするようになりました +- **セッション読み込み時のファイルスナップショット** - 保存済みセッションを再読み込みする際に、ファイルスナップショットが初期化されるようになりました +- **ACP todoの更新** - 欠落フィールドがある場合でも、ACP経由のtodo更新をより堅牢に解析するようになりました +- **読み取り専用バッジのレイアウト** - 狭いレイアウトでも、読み取り専用バッジが圧縮されなくなりました(app) +- **ピン留めグループの新規セッション操作** - ピン留めされたグループで意図せず新規セッション操作が表示される問題を解消しました(app) +- **Desktopセッションの復旧** - デーモンがしばらく非アクティブだった後でも、Desktopセッションが復旧するようになりました(app) + + + + + `v0.128.0` + +## バグ修正 + +- **古いComputer登録** - セッションが古いDroid Computer登録の整合を自動的に取るようになりました + + + + + `v0.126.0` + +## 新機能 + +- **セッションの一括アーカイブ** - セッションを管理して一括アーカイブできる新しい設定ページを追加しました(Factory App) +- **EUデータレジデンシー** - EUのお客様向けのセッションとLLM推論が、EU専用のデータプレーン内にとどまるようになりました +- **組み込みのセキュリティレビュー** - `/security-review`スキルがデフォルトでCLIに同梱されるようになりました +- **バグレポートIDのコピー** - バグレポートIDの横にコピーボタンを追加しました(Factory App) + +## 改善 + +- **Droid Computerの再起動高速化** - Droid Computerの再起動を高速化しました(Factory App) +- **CLI起動の軽量化** - CLI起動時の冗長なリクエストを削減しました +- **デスクトップ設定の永続化** - デスクトップ設定が他の設定とあわせて保存されるようになりました(Factory App) +- **Windowsの保留中アップデートのクリーンアップ** - Windowsで古い保留中アップデートをクリーンアップしました + +## バグ修正 + +- **構造化出力の検証強化** - 構造化されたツール出力の検証を強化しました +- **Taskトークン数** - Taskツール結果から誤った0トークン数表示を削除しました +- **Windowsインストーラーパッケージング** - Windowsインストーラーのパッケージングを修正しました +- **プラン変更時の制限リセット** - プラン変更時に利用制限が正しくリセットされるようになりました(Factory App) +- **実行中セッション向けMCPサーバー** - すでに実行中のセッションを再度開いたときにもMCPサーバーが読み込まれるようになりました(Factory App) +- **セットアップ中のローカルデーモン警告** - 初期セットアップ中に誤って表示されるローカルデーモン警告を抑制しました(Factory App) +- **セッションが見つからないエラー** - 誤って表示されるセッションが見つからないエラーを修正しました(Factory App) +- **コードブロックのスタイル** - チャット内のコードブロックスタイルを揃えました(Factory App) +- **クロスサーフェスの統合** - 複数のサーフェス間で統合が重複したポストバックを送信しないようにしました +- **QA droid CLI認証** - QA droid CLIが対応するFactory APIホストとペアリングされるようになりました + + + + + `v0.125.1` + + 内部的な改善を含むメンテナンスリリースです。 + + + `v0.125.0` diff --git a/docs/jp/cli/account/security.mdx b/docs/jp/cli/account/security.mdx index e9958b30e..308a3cfff 100644 --- a/docs/jp/cli/account/security.mdx +++ b/docs/jp/cli/account/security.mdx @@ -25,6 +25,9 @@ Droid CLI はセキュリティを中核に据えて構築されています。 シェルコマンドとファイル編集はローカルで実行されます。必要なコンテキストとdiffのみがFactoryの安全なクラウドに送信されます。 + + ファイルシステムとネットワークアクセスに対して、オプションで有効化できるカーネル強制の分離を提供します。詳しくは[サンドボックス](/jp/cli/configuration/sandbox)を参照してください。 + --- diff --git a/docs/jp/cli/configuration/custom-droids.mdx b/docs/jp/cli/configuration/custom-droids.mdx index bbcfffc54..4e7ed73f2 100644 --- a/docs/jp/cli/configuration/custom-droids.mdx +++ b/docs/jp/cli/configuration/custom-droids.mdx @@ -111,8 +111,8 @@ Perform deep analysis of the code or problem presented... | `description` | 任意。UI リストに表示されます。≤500文字に抑えてください。 | | `model` | `inherit` (親セッションのモデルを使用)、またはモデル識別子を指定します。組み込みモデルの場合、`claude-sonnet-4-5-20250929` のような値を使用します。カスタムモデル(BYOK)の場合、`custom:` + 設定の `model` フィールドを使用します(例:`custom:gpt-4o-mini`)。`model_display_name` では**ありません**。モデルIDについては [利用可能なモデル](/jp/models) を参照してください。 | | `reasoningEffort` | 任意。対応するモデル(例:`low`、`medium`、`high`)の推論努力を設定します。`model` が `inherit` の場合は無視されます。選択したモデルと互換性が必要です。 | -| `tools` | ツール選択:すべてのツールを使用する場合は省略、カテゴリ文字列を使用(例:`read-only`)、または `["Read", "Edit", "Execute"]` のようなツールIDの配列を指定します。大文字小文字を区別します。 | -| `mcpServers` | 任意。この droid で利用可能にする [MCP サーバー](/jp/cli/configuration/mcp) 名の配列。設定すると、リストに記載されたサーバーのツールのみがサブエージェントに公開されます。省略するとグローバルな MCP ツールの可用性にフォールバックします。 | +| `tools` | ツール選択:すべてのツールを使用する場合は省略、カテゴリ文字列を使用(例:`read-only`)、または `["Read", "Edit", "Execute"]` のようなツールIDの配列を指定します。大文字小文字を区別します。droid を特定の MCP ツールのみに制限したい場合は、ここにその登録済みツールIDを正確に列挙します。 | +| `mcpServers` | 任意。設定済みの [MCP サーバー](/jp/cli/configuration/mcp) 名の配列です(例:`["linear", "github"]`)。設定すると、列挙したサーバーのツールだけがこの droid で利用可能になります。省略すると、グローバルな MCP ツールの可用性にフォールバックします。詳しくは [MCP サーバーの選択](#selecting-mcp-servers) を参照してください。 | プロンプトは少なくとも `name` を含むYAML frontmatter で始まり、空でない本文を含む必要があります。`DroidValidator` はエラー(無効な名前、未知のモデル、未知のツール)と警告(説明の欠落、重複したツール)を表示します。検証の問題は、ファイルの読み込みに失敗した際にCLI ログに表示されます。 @@ -128,7 +128,7 @@ Perform deep analysis of the code or problem presented... | `web` | `WebSearch`、`FetchUrl` | インターネット調査とコンテンツ | | `mcp` | 動的に追加(存在する場合) | Model Context Protocol ツール | -明示的な配列は上記のツール名を使用する必要があります(大文字小文字を区別)。未知の名前は検証エラーを引き起こします。 +明示的な配列では、上表にある有効なツールID(大文字小文字を区別)および/または登録済みの正確な MCP ツールIDを使用する必要があります。未知のIDは検証エラーを引き起こします。 タスク追跡を有効にするため、`TodoWrite`はすべてのdroidに自動的に含まれます。ツール一覧に追加する必要はありません。 @@ -138,30 +138,33 @@ Perform deep analysis of the code or problem presented... OpenAIモデルで`Edit`を使用する場合、互換性のため`ApplyPatch`が自動的に含まれます。`model`が`inherit`の場合、モデルプロバイダー全体をカバーするため両方のツールが有効になります。 -### droid への MCP サーバーのスコープ設定 + -`mcpServers` を使うと、カスタム droid が使用できる [MCP サーバー](/jp/cli/configuration/mcp) を限定できます。droid は `tools` で宣言されたツールに加えて、リストされた各サーバーのツールを受け取ります。`mcp.json` で構成されていても、ここにリストされていないサーバーはサブエージェントのツール許可リストから除外されます。 +### MCP サーバーの選択 + +`mcpServers` を使うと、カスタム droid が利用できる [MCP サーバー](/jp/cli/configuration/mcp) を制限できます。droid は `tools` で宣言したツールに加えて、列挙した各サーバーのツールを受け取ります。`mcp.json` で設定されていても、ここに列挙されていないサーバーはサブエージェントのツール許可リストから除外されます。 ```md --- -name: mcp-reviewer -description: Chrome DevTools のコンテキストを使って差分をレビューします +name: issue-researcher +description: Researches issues using repository context and tracker data model: inherit -tools: - - Read -mcpServers: - - chrome-devtools +tools: ["Read", "Grep"] +mcpServers: ["linear", "github"] --- -必要に応じて構成済みの MCP サーバーを使用してください。 +Investigate the issue referenced in the prompt using the codebase and the +selected MCP servers, then summarize findings and propose next steps. ``` -注意点: +注記: -- サーバー名は `~/.factory/mcp.json` または `.factory/mcp.json` に既に構成されているエントリと一致している必要があります。 -- `mcpServers` を省略すると既存の動作が維持され、droid は親セッションの MCP ツール可用性を継承します。 -- `mcpServers: []` を設定すると、グローバルに構成されているサーバーを含むすべての MCP サーバーが除外されます。 -- 構成されたサーバーは `/droids` の詳細ビューの **MCP Servers:** に表示され、設定が永続化されていることを確認できます。 +- サーバー名は `~/.factory/mcp.json` または `.factory/mcp.json` にすでに設定されているエントリ名と一致している必要があります(ユーザーレベルまたはプロジェクトレベル)。 +- `mcpServers` を省略すると既存の動作になり、droid は親セッションから MCP ツールの可用性を継承します。 +- `mcpServers: []` を設定すると、グローバルに設定されているものも含めて、すべての MCP サーバーが除外されます。 +- より細かく制御したい場合は、サーバー単位ではなく `tools` に登録済みの正確な MCP ツールIDを列挙して、特定のツールだけを許可できます。 +- [Enterprise MCP ポリシー](/jp/cli/configuration/mcp#enterprise-mcp-policy) でブロックされているサーバーは、ここに列挙しても利用できません。 +- 設定されたサーバーは `/droids` の詳細ビューで **MCP Servers:** の下に表示されるため、選択内容が保存されていることを確認できます。 --- diff --git a/docs/jp/cli/configuration/mcp.mdx b/docs/jp/cli/configuration/mcp.mdx index 359dce15f..e5f81bad5 100644 --- a/docs/jp/cli/configuration/mcp.mdx +++ b/docs/jp/cli/configuration/mcp.mdx @@ -1,7 +1,7 @@ --- title: "モデルコンテキストプロトコル(MCP)" description: 'Model Context Protocolで独自ツールを接続する' -keywords: ['mcp', 'model context protocol', 'tools', 'droid mcp', 'mcp servers', 'mcp tools', 'integrations', 'connect tools', 'extend droid', 'cli mcp', 'add mcp', 'mcp add'] +keywords: ['mcp', 'model context protocol', 'tools', 'droid mcp', 'mcp servers', 'mcp tools', 'integrations', 'connect tools', 'extend droid', 'cli mcp', 'add mcp', 'mcp add', 'mcp autonomy', 'mcpAutonomyUrlOverrides', 'mcp policy', 'managed settings'] --- Model Context Protocol (MCP) サーバーは、追加のツールとコンテキストを提供することでdroidの機能を拡張します。Droidでは、簡単なブラウジングとセットアップのためのインタラクティブUIと、スクリプトや自動化のためのCLIコマンドの2つの管理方法を提供しています。 @@ -44,7 +44,7 @@ droid内で`/mcp`と入力すると、インタラクティブMCPマネージャ ## CLIでサーバーを追加 -スクリプトや自動化には、`droid mcp add`を使用してください。Droidは2種類のサーバーをサポートしています:**http**(リモートエンドポイント)と**stdio**(ローカルプロセス)。 +スクリプトや自動化には、`droid mcp add`を使用してください。Droidは3つのトランスポートをサポートしています:**http**(Streamable HTTP — 現行のMCP標準で、内部でSSEを使ってレスポンスをストリーミングします)、**sse**(古いサーバー向けのレガシーな単独HTTP+SSEトランスポート)、**stdio**(ローカルプロセス)。 ### HTTPサーバーの追加 @@ -163,14 +163,31 @@ droid mcp add vercel https://mcp.vercel.com/ --type http **Stytch** - 認証サービスの設定 ```bash -droid mcp add stytch http://mcp.stytch.dev/mcp --type http +droid mcp add stytch https://mcp.stytch.dev/mcp --type http ``` - 多くのHTTPサーバーではOAuth認証が必要です。追加後は - インタラクティブな`/mcp` UIを使用して認証フローを完了します。 + 多くのリモートサーバー(HTTP と SSE)では OAuth 認証が必要です。追加後は、 + インタラクティブな`/mcp` UIを使用して認証フローを完了してください。 +### SSEサーバーの追加 + +`sse` はレガシーな HTTP+SSE トランスポート(MCP プロトコルバージョン `2024-11-05`)で、独立した Server-Sent Events エンドポイントを公開します。これは、内部で既に SSE を使う Streamable HTTP(`--type http`)に置き換えられました。そのため、通常は `http` を優先し、サーバーが古い単独 SSE エンドポイントしか提供しない場合にのみ `sse` を使ってください。引数は HTTP サーバーと同じで、変わるのは `--type` だけです。 + +**構文:** + +```bash +droid mcp add --type sse [--header "KEY: VALUE"...] +``` + +**例:** + +```bash +droid mcp add example-sse https://mcp.example.com/sse --type sse \ + --header "Authorization: Bearer YOUR_TOKEN" +``` + ### Stdioサーバーの追加 Stdioサーバーはマシン上でローカルプロセスとして実行され、直接システムアクセスが必要なツールに最適です。 @@ -190,7 +207,7 @@ droid mcp add "" [--env KEY=VALUE...] ### 人気のStdio MCPサーバー - これらの `npx` の例は、各パッケージの最新公開バージョンをインストールします。セキュリティが重要な環境では、明示的なバージョンをピン留め(例:`airtable-mcp-server@1.4.0`)して、更新を意図的に行い、実行前に変更を監査できるようにしてください。 + これらの `npx` の例では、各パッケージの公開済み最新バージョンをインストールします。セキュリティに敏感な環境では、`airtable-mcp-server@1.4.0` のように明示的なバージョンを固定し、更新を意図的に行い、実行前に変更内容を監査できるようにしてください。 **Airtable** - レコードの読み取り/書き込み、ベースとテーブルの管理 @@ -239,16 +256,19 @@ droid内で`/mcp`と入力すると、MCPサーバーを管理するためのイ ## 設定 -MCPサーバーの設定は2つのレベルで保存できます: +MCPサーバー設定は、次のレベルのローカルファイルから読み込まれます: | レベル | 場所 | 目的 | | :---- | :------- | :------ | | **ユーザー** | `~/.factory/mcp.json` | 個人のサーバー、すべてのプロジェクトで利用可能 | -| **プロジェクト** | `.factory/mcp.json` | チーム共有サーバー、リポジトリにコミット | +| **フォルダ** | プロジェクトの任意の祖先ディレクトリにある `.factory/mcp.json` | 共通の親フォルダ配下のネストしたプロジェクト間で共有するサーバー | +| **プロジェクト** | プロジェクトルートの `.factory/mcp.json` | チーム共有サーバー、リポジトリにコミット | + +組織管理者は、組織管理設定を通じてサーバーを一元提供し、許可するサーバーを制限することもできます([Enterprise MCP ポリシー](#enterprise-mcp-policy) を参照)。 ### レイヤー化の仕組み -ユーザー設定がプロジェクト設定よりも優先されます。両方のレベルで同じサーバーが定義されている場合、ユーザーレベルの設定が優先されます。 +同じサーバーが複数レベルで定義されている場合は、ユーザー設定、フォルダレベル設定、プロジェクト設定の順に優先されます。 **重要な動作:** - プロジェクト定義のサーバーを**有効化/無効化**すると、新しい状態でコピーがユーザー設定に保存されます。元のプロジェクト設定は変更されないため、チームメンバーには影響しません。 @@ -267,20 +287,29 @@ OAuthトークンはシステムキーリング(またはフォールバック | フィールド | 型 | 説明 | | :---- | :--- | :---------- | -| `type` | `"stdio" \| "http"` | サーバータイプ | +| `type` | `"stdio" \| "http" \| "sse"` | サーバータイプ。stdio サーバーでは省略でき、その場合は `stdio` がデフォルトになります。 | | `disabled` | `boolean` | サーバーを一時的に無効化(デフォルト:`false`) | -| `enabledTools` | `string[]` | このサーバーから読み込むツール名の許可リスト。設定されている場合、リストに記載されたツールのみがコンテキストに読み込まれます。 | -| `disabledTools` | `string[]` | このサーバーから除外するツール名のブロックリスト。無効化されたツールはコンテキストに読み込まれません。 | -| `timeoutMs` | `number` | MCP ツール呼び出しタイムアウトのサーバーごとの上書き(ミリ秒)。省略時はグローバルデフォルトにフォールバックします。 | +| `enabledTools` | `string[]` | このサーバーから読み込むツール名の許可リスト。設定した場合、列挙したツールだけがコンテキストに読み込まれます。 | +| `disabledTools` | `string[]` | このサーバーから除外するツール名のブロックリスト。無効化したツールはコンテキストに読み込まれません。 | +| `timeoutMs` | `number` | MCP ツール呼び出しタイムアウトのサーバー単位の上書き値(ミリ秒)。省略時はグローバル設定のデフォルトにフォールバックします。 | **stdio**サーバーの場合: - **command**: 実行する実行可能ファイル - **args**: コマンドライン引数(配列) - **env**: 環境変数(オブジェクト) -**http**サーバーの場合: +**http** および **sse** サーバーの場合: - **url**: HTTP/HTTPSエンドポイントURL - **headers**: 認証用HTTPヘッダー(オブジェクト) +- **oauth**: リモートサーバー用の任意の OAuth 上書き設定(オブジェクト)。対応フィールド: + - **scopes**: 要求する OAuth スコープ(配列) + - **clientId**: OAuth クライアント ID + - **clientSecret**: OAuth クライアントシークレット + - **callbackPort**: OAuth コールバックに使用するローカルポート + + + プロジェクトレベルの `.factory/mcp.json` はリポジトリにコミットされます。`headers` の認証トークン(例:`Authorization`)、`oauth.clientSecret`、API キーなどのシークレットは決してプロジェクト設定に入れないでください。これらはユーザーレベル設定(`~/.factory/mcp.json`)に置くか、環境変数で渡し、OAuth トークンには Droid の keyring を利用してください。 + **`mcp.json`の例:** @@ -292,8 +321,15 @@ OAuthトークンはシステムキーリング(またはフォールバック "url": "https://mcp.linear.app/mcp", "disabled": false }, + "example-sse": { + "type": "sse", + "url": "https://mcp.example.com/sse", + "headers": { + "Authorization": "Bearer YOUR_TOKEN" + }, + "disabled": false + }, "playwright": { - "type": "stdio", "command": "npx", "args": ["-y", "@playwright/mcp@latest"], "disabled": false @@ -306,16 +342,16 @@ Droidは設定ファイルの変更時に自動的にリロードされるため ### 変数展開 -Droid は設定の読み込み時に、現在のシェル環境に対して `mcp.json` 内の `${VAR}` および `${VAR:-default}` 参照を展開します。これにより、シークレットをファイル自体から切り離し、シークレットマネージャー、`.env` ローダー、またはシェルプロファイルから取得できます。 +Droid は `mcp.json` の読み込み時に、`${VAR}` と `${VAR:-default}` の参照を現在のシェル環境に対して展開します。これにより、シークレットをファイル本体に書かずに、シークレットマネージャー、`.env` ローダー、またはシェルプロファイルから読み込めます。 -変数展開がサポートされる箇所: +変数展開に対応している場所: -- **stdio** サーバーの `command` および `args` エントリ -- **stdio** サーバーの `env` 値 +- **stdio** サーバーの `command` と `args` +- **stdio** サーバーの `env` の値 - **http** サーバーの `url` -- **http** サーバーの `headers` 値 +- **http** サーバーの `headers` の値 -**例 — 環境から API キーを取得:** +**例 — API キーを環境変数から読み込む:** ```json { @@ -340,22 +376,22 @@ Droid は設定の読み込み時に、現在のシェル環境に対して `mcp } ``` -参照された変数が未設定でデフォルトも指定されていない場合、Droid はプレースホルダーをそのまま残し、次回サーバー起動時に警告を表示します。安全なデフォルトを提供するには `${VAR:-fallback}` を使用してください。 +参照した変数が未設定で、かつデフォルト値も指定していない場合、droid はプレースホルダーをそのまま残し、次回そのサーバーを起動するときに警告を表示します。安全なデフォルト値を指定するには `${VAR:-fallback}` を使ってください。 - 生の `mcp.json` ファイルが展開後の値で書き換えられることはありません。展開は読み込み時にメモリ内で行われるため、シークレットがディスクやバージョン管理に残ることはありません。 + 生の `mcp.json` ファイルが展開後の値で書き換えられることはありません。展開は読み込み時にメモリ上でのみ行われるため、シークレットはディスクやバージョン管理に残りません。 -### ツール単位のフィルタリング +### ツールごとのフィルタリング -サーバーは多数のツールを公開することがあり、必ずしもすべてをすべてのセッションに読み込む必要はありません。`enabledTools` と `disabledTools` を使えば、`mcp.json` の中でツールの公開範囲を永続的に絞り込めます。これは `droid exec` の `--enabled-tools` / `--disabled-tools` フラグと同等の機能をファイルベースで提供します。 +サーバーは多数のツールを公開できますが、すべてを毎回のセッションに読み込む必要はありません。`enabledTools` と `disabledTools` を使うと、`mcp.json` でツールの公開範囲を永続的に絞り込めます。これは `droid exec` で使える `--enabled-tools` / `--disabled-tools` フラグに対応しています。 -- `disabledTools`:ブロックリスト — サーバーが報告するすべてのツールが読み込まれますが、リストされた名前は**除外**されます。 -- `enabledTools`:許可リスト — リストされたツール**のみ**が読み込まれます。 -- 両方が設定された場合は `enabledTools` が優先され、`disabledTools` は無視されます。 -- フィルタリングで除外されたツールはモデルに登録されないため、コンテキストトークンを消費しません。 +- `disabledTools`: ブロックリスト — サーバーが報告したツールのうち、列挙した名前**以外**を読み込みます。 +- `enabledTools`: 許可リスト — 列挙したツール**のみ**を読み込みます。 +- 両方を設定した場合は `enabledTools` が優先され、`disabledTools` は無視されます。 +- フィルタで除外されたツールはモデルに登録されないため、コンテキストトークンを消費しません。 -**例 — 不要なツールをブロックリストに追加:** +**例 — ノイズの多いツールをブロックリスト化する:** ```json { @@ -370,7 +406,7 @@ Droid は設定の読み込み時に、現在のシェル環境に対して `mcp } ``` -**例 — 使用するツールのみを許可リストに指定:** +**例 — 使うツールだけを許可リスト化する:** ```json { @@ -385,12 +421,14 @@ Droid は設定の読み込み時に、現在のシェル環境に対して `mcp ``` - Droid 内で `/mcp` を実行すると、サーバーが公開するツールの完全なリストを確認できます。そこから正確なツール名をコピーして `enabledTools` または `disabledTools` に貼り付けてください。 + droid 内で `/mcp` を実行すると、サーバーが公開しているツールの完全な一覧を確認できます。その正確なツール名を `enabledTools` または `disabledTools` にコピーしてください。 + + ### MCP 呼び出しタイムアウト -デフォルトでは、Droid はすべての MCP ツール呼び出しにグローバルタイムアウトを適用します。長時間実行されるツール(大規模なデータエクスポート、ブラウザ自動化、モデルバックエンドのサーバーなど)はこのデフォルトを超えてタイムアウトエラーで失敗することがあります。 +デフォルトでは、droid はすべての MCP ツール呼び出しにグローバルタイムアウトを適用します。長時間実行されるツール(大規模なデータエクスポート、ブラウザー自動化、モデル連携サーバーなど)はこの既定値を超え、タイムアウトエラーになる場合があります。 サーバーごとに `timeoutMs` でタイムアウトを上書きできます: @@ -406,7 +444,7 @@ Droid は設定の読み込み時に、現在のシェル環境に対して `mcp } ``` -`settings.json` の `mcp.callTimeoutMs` 設定でグローバルデフォルトを変更することもできます: +`settings.json` の `mcp.callTimeoutMs` 設定でグローバル既定値を設定することもできます: ```json { @@ -416,24 +454,30 @@ Droid は設定の読み込み時に、現在のシェル環境に対して `mcp } ``` -解決順序(優先度の高い順): +優先順位(高い順): -1. `mcp.json` 内のサーバーごとの `timeoutMs` -2. `settings.json` 内のグローバル `mcp.callTimeoutMs` -3. 組み込みデフォルト +1. `mcp.json` のサーバー単位 `timeoutMs` +2. `settings.json` のグローバル `mcp.callTimeoutMs` +3. 組み込みのデフォルト値 - タイムアウトを延長しても変わるのは Droid がレスポンスを待つ時間だけで、MCP サーバー自身や上流の API が課すタイムアウトは延長されません。 + タイムアウトを長くしても、droid が応答を待つ時間が変わるだけで、MCP サーバー自体やその上流 API が強制するタイムアウトが延長されるわけではありません。 +## Droid ごとのサーバー選択 + +[カスタム Droid](/jp/cli/configuration/custom-droids) は、frontmatter の `mcpServers` フィールドを使って、使用を許可する設定済み MCP サーバーを選択できます。これにより、セッション内のすべてのサーバーを継承する代わりに、サブエージェントを特定のサーバー(例:`mcpServers: ["linear", "github"]`)に限定できます。さらに細かく制御したい場合は、droid の `tools` リストに登録済みの正確な MCP ツールIDを指定できます。詳細は [MCP サーバーの選択](/jp/cli/configuration/custom-droids#selecting-mcp-servers) を参照してください。 + + + ## Enterprise MCP ポリシー 組織は、組織管理設定の `mcpPolicy` 設定を通じて、許可される MCP サーバーを集中的に制御できます。これにより、管理者は組織レベルで MCP アクセスを制限し、ユーザーが検証済みのサーバーにのみ接続できるようにします。 | フィールド | 型 | 説明 | | :--------- | :- | :--- | -| `enabled` | `boolean` | 組織の MCP サポートを有効または無効にします。`false` の場合、すべての MCP サーバーがブロックされます。 | -| `allowlist` | `string[]` | ユーザーが有効化を許可されるサーバー名の任意のリスト。設定されている場合、リストにないサーバーはすべてブロックされます。 | +| `enabled` | `boolean` | ポリシー適用が有効かどうか。適用は `enabled` が `true` のときだけ行われます。`enabled` がない、または `false` の場合、ポリシーは適用されず、設定済みの MCP サーバーが許可されます。 | +| `allowlist` | `string[]` | 許可されるサーバーマッチャーのリスト。ポリシーが有効な場合にのみ適用されます。各エントリは、リモート HTTP/SSE サーバーでは URL のホスト名に、stdio サーバーではコマンドと引数に一致します。設定されたサーバー名には一致しません。ポリシーが有効で allowlist が空または未設定の場合、すべてのサーバーがブロックされます。 | **組織管理設定の例:** @@ -441,11 +485,45 @@ Droid は設定の読み込み時に、現在のシェル環境に対して `mcp { "mcpPolicy": { "enabled": true, - "allowlist": ["linear", "sentry", "notion"] + "allowlist": ["mcp.linear.app", "mcp.sentry.dev", "npx"] } } ``` - `mcpPolicy` はエンタープライズ/組織レベルの設定で、管理設定を通じて適用されます。個々のユーザーが上書きすることはできません。ポリシーによってブロックされたサーバーは、`/mcp` のレジストリブラウザに表示されず、`mcp.json` からも読み込まれません。 + `mcpPolicy` はエンタープライズ/組織レベルの設定で、管理設定を通じて適用されます。個々のユーザーが上書きすることはできません。ポリシーで許可されないサーバーは `mcp.json` に残り、設定にも読み込まれたままですが、実行・接続の対象から除外され、`/mcp` マネージャーでも利用可能としては表示されません。 + + +## MCP 自律性 URL オーバーライド + +管理者は、組織管理設定 `mcpAutonomyUrlOverrides` を使って、リモート MCP サーバーの URL ごとに既定のリスクレベルを割り当てられます。このリスクレベルは [自律レベル](/jp/cli/user-guides/auto-run) と比較され、一致したサーバーのツールを Droid が実行する前に、どの程度確認を求めるかを制御します。 + +各ルールは、URL パターンをリスクレベルに対応付けます。 + +| フィールド | 型 | 説明 | +| :---- | :--- | :---------- | +| `urlPattern` | `string` | サーバーの URL に対して照合する glob パターン([picomatch](https://github.com/micromatch/picomatch) 構文)。 | +| `defaultLevel` | `"low" \| "medium" \| "high"` | 一致したサーバーのツールに適用するリスクレベル。ユーザーの自律レベルと比較して、自動実行するか確認するかを決定します。 | + +**組織管理設定の例:** + +```json +{ + "mcpAutonomyUrlOverrides": [ + { "urlPattern": "https://mcp.internal.example.com/**", "defaultLevel": "low" }, + { "urlPattern": "https://*.partner.example.com/**", "defaultLevel": "medium" }, + { "urlPattern": "https://**", "defaultLevel": "high" } + ] +} +``` + +### マッチングと優先順位 + +- **リモートサーバーのみ。** ルールが一致するのは URL を持つリモートサーバー(`http` と `sse` トランスポート)のみで、ローカルの `stdio` サーバーには影響しません。 +- **最初に一致したものが優先。** ルールは順番に評価されるため、より具体的なものを先に記述してください。 +- **安全性の下限。** ルールはツールのリスク *分類* を設定するものであり、プロンプトを絶対的に決めるものではありません。`high` に分類されたツールでも、通常の [自律レベル](/jp/cli/user-guides/auto-run) との比較に従います(別の安全チェックが介入しない限り、High 自律では追加確認なしで実行されます)。この下限は一方向で、`low` や `medium` でも読み取り専用でないツール(破壊的なもの、または安全性メタデータがないもの)を `high` 未満に下げることはできません。つまり、読み取り専用ツールの確認は緩和できますが、破壊的なツールを自動承認することはできません。 +- **フォールバック。** 一致するルールがないサーバーには、Droid 組み込みのツールリスク分類(読み取り専用ヒントと厳選されたデフォルト)が使われます。 + + + `mcpAutonomyUrlOverrides` は管理者が管理する(MDM)設定です。[組織管理設定](/jp/enterprise/hierarchical-settings-and-org-control) を通じて配布され、ユーザーが上書きしたり弱めたりすることはできません。 diff --git a/docs/jp/cli/configuration/sandbox.mdx b/docs/jp/cli/configuration/sandbox.mdx new file mode 100644 index 000000000..c9623f43d --- /dev/null +++ b/docs/jp/cli/configuration/sandbox.mdx @@ -0,0 +1,106 @@ +--- +title: サンドボックス +tag: "Beta" +description: OSレベルのサンドボックス化により、カーネルによって強制されるポリシーでDroidをファイルシステムとネットワークから分離します(Beta)。 +keywords: + [ + "sandbox", + "sandboxing", + "security", + "isolation", + "seatbelt", + "bubblewrap", + "permissions", + "denyWrite", + "denyRead", + "allowedDomains", + ] +--- + + + **Beta** — OSレベルのサンドボックスはオプトインで、現在も活発に開発中です。挙動、 + 設定、プラットフォームサポートはリリースごとに変更される可能性があります。 + + +OSレベルのサンドボックス化では、ユーザーがDroidのファイルシステム境界とネットワーク境界を設定できます。Beta版では、Droidが開始するすべてのシェルコマンドが別プロセスで実行され、ユーザーが設定し、OSカーネルレベルで強制されるファイルシステムおよびネットワーク境界の範囲内に制限されます。 + +内部的には、サンドボックスは macOS では Seatbelt プロファイル、Linux では seccomp と組み合わせた bubblewrap、ドメインレベルのネットワークフィルタリングには HTTP/SOCKS プロキシを使用します。Windows は WSL2 経由でサポートされます。 + +## デフォルトのアクセスポリシー(サンドボックス有効時) + +| リソース | デフォルトポリシー | 設定項目 | +| --- | --- | --- | +| **ファイル読み取り** | すべて許可。明示的な `denyRead` エントリのみブロックされます。 | `sandbox.filesystem.denyRead` | +| **ファイル書き込み** | **CWD**(現在の作業ディレクトリ)以外はすべて拒否。追加のパスは許可できます。`denyWrite` は `allowWrite` より優先されます。 | `sandbox.filesystem.allowWrite`, `sandbox.filesystem.denyWrite` | +| **ネットワーク** | `*.factory.ai`(デフォルトで常に許可)以外はすべて拒否。追加のドメインは明示的に許可する必要があります。 | `sandbox.network.allowedDomains` | + +## 含まれる機能 + +**コマンド単位のサンドボックスモード**(有効時のデフォルト): + +- **ファイルツール**(Read、Edit、Create、LS、Grep、Glob、ApplyPatch) -- すべての操作の前に `checkFileAccess()` を実行し、読み取りには `denyRead`、書き込みには `allowWrite` / `denyWrite` を適用 +- **Execute ツール** -- シェルコマンドを OS サンドボックス(Seatbelt / bubblewrap)でラップし、ネットワークはドメインレベル制御のために SRT のフィルタリングプロキシ経由でルーティング +- **FetchUrl** -- `allowedDomains` に対して `checkNetworkAccess()` を実行 +- **注記** -- メインのDroidプロセス、MCP、サブエージェントはまだ分離されていません。 + +**対話型の権限プロンプト(TUIモード):** + +- サンドボックス違反があると、Auto(High)自律レベルでもエージェントループが中断され、TUIプロンプトが表示されます +- 3つの選択肢: **1回だけ許可**、**常に許可**(設定に永続化)、**拒否** +- `denyWrite` 違反では、「常に許可」の代わりに「拒否リストから削除」オプションが表示されます(設定の `denyWrite` から該当エントリを削除) +- `denyRead` 違反でも、「常に許可」の代わりに「拒否リストから削除」オプションが表示されます +- Execute のネットワーク違反では、SRT のプロキシコールバックを通じたリアルタイムのドメインプロンプトが表示され、60秒で自動拒否されます + +**非対話モード(`droid exec`):** + +- サンドボックス違反はプロンプトなしで自動拒否されます -- ハングせず、ユーザー操作も不要です +- エージェントは拒否メッセージを受け取り、それを出力に報告します + +**「常に許可」の永続化:** + +- ファイル書き込み違反(CWD外): ユーザー設定の `sandbox.filesystem.allowWrite` に親ディレクトリを追加 +- `denyWrite` 違反: `sandbox.filesystem.denyWrite` から該当エントリを削除 +- `denyRead` 違反: `sandbox.filesystem.denyRead` から該当エントリを削除 +- ドメイン違反: ドメイン(3つ以上のパートを持つドメインではワイルドカード付き。例: `registry.npmjs.org` -> `*.npmjs.org`)を `sandbox.network.allowedDomains` に追加 +- 変更は現在のセッションにすぐ反映されます + +**組織管理による強制:** + +- 組織レベルの `denyWrite` / `denyRead` 設定は、ユーザーの「常に許可」では上書きできません +- 拒否が組織設定に由来する場合、違反プロンプトには「(組織ポリシー)」と表示されます + +**TUI インジケーター:** + +- サンドボックス有効時は、フッターに `SANDBOX` ステータスインジケーターを表示 +- 違反の詳細(パス、ドメイン、理由)を含む「Sandbox Violation」プロンプトを表示 + +## 設定構成 + +```jsonc +{ + "sandbox": { + "enabled": true, + "filesystem": { + // CWD(常に書き込み可)に加えて書き込み可能にするパス + "allowWrite": ["/tmp/build-output", "~/.config"], + // 親が allowWrite にあっても特定のサブパスへの書き込みを拒否 + "denyWrite": ["/tmp/build-output/cache/locks", "~/.config/secrets"], + // 特定のパスへの読み取りをブロック(それ以外は読み取り可) + "denyRead": ["~/.aws/credentials", "~/.ssh/id_rsa"], + }, + "network": { + // 到達可能なドメインはこれらのみ(*.factory.ai は常に含まれる) + "allowedDomains": ["github.com", "*.npmjs.org"], + }, + }, +} +``` + +設定は階層全体(組織 > プロジェクト > ユーザー)でマージされます。`denyWrite` / `denyRead` は和集合マージを使用するため、組織による拒否は下位レイヤーで削除できません。 + +## 関連 + +- [自律レベル](/jp/cli/user-guides/auto-run) -- ツールリスクに対する承認ポリシー。 +- [設定](/jp/cli/configuration/settings) -- `sandbox.*` の定義場所。 +- [階層設定と組織管理](/jp/enterprise/hierarchical-settings-and-org-control) -- 組織ポリシーがユーザー設定とどのようにマージされるか。 +- [セキュリティ](/jp/cli/account/security) -- Droid CLI のより広いセキュリティモデル。 diff --git a/docs/jp/cli/configuration/settings.mdx b/docs/jp/cli/configuration/settings.mdx index ea38a2966..177412044 100644 --- a/docs/jp/cli/configuration/settings.mdx +++ b/docs/jp/cli/configuration/settings.mdx @@ -61,6 +61,7 @@ droidの設定を行うには: | `ideAutoConnect` | `true`, `false` | `false` | 外部ターミナルからIDEへの自動接続。 | | `showThinkingInMainView` | `true`, `false` | `false` | メインチャット画面にAIの思考/推論ブロックを表示します。 | | `customModels` | モデル設定の配列 | `[]` | BYOK用のカスタムモデル設定。[BYOKドキュメント](/jp/cli/byok/overview)を参照。 | +| `mcp.callTimeoutMs` | 整数(ミリ秒) | 組み込みのデフォルト | MCP ツール呼び出しのグローバルタイムアウト。`mcp.json` の `timeoutMs` によってサーバー単位で上書きできます。詳しくは [MCP 呼び出しタイムアウト](/jp/cli/configuration/mcp#mcp-call-timeout) を参照してください。 | ### モデル @@ -246,7 +247,7 @@ Spec Modeによって作成される永続的なspecストアを制御します | `mcpPolicy` | object | `{ "enabled"?: boolean, "allowlist"?: string[] }` | 未設定 | **エンタープライズ。** MCPサーバーの実行可否と許可されるサーバーを制御します。[MCP](/jp/cli/configuration/mcp)を参照してください。 | | `missionPolicy` | object | `{ "restrictedAccess"?: boolean, "allowedUserIds"?: string[] }` | 未設定 | **エンタープライズ。** [ミッション](/jp/cli/features/missions)を起動できるユーザーを制限します。 | | `networkPolicy` | object | `{ "allowedIps": string[] }` | 未設定 | **エンタープライズ。** droidセッションからのアウトバウンドネットワークアクセスを `allowedIps` に指定したIPまたはCIDRレンジに制限します。 | -| `sandbox` | object | `{ "enabled"?: boolean, "mode"?: string, "filesystem"?: object, "network"?: object }` | 未設定 | **エンタープライズ。** ツール実行のファイルシステムとネットワーク隔離を制御するサンドボックス設定。 | +| `sandbox` | object | `{ "enabled"?: boolean, "mode"?: string, "filesystem"?: object, "network"?: object }` | 未設定 | **Beta。** ツール実行のファイルシステムとネットワーク隔離を制御するサンドボックス設定。詳しくは[サンドボックス](/jp/cli/configuration/sandbox)を参照してください。 | | `restrictMemberVisibility` | boolean | `true`, `false` | `false` | **組織レベル。** 管理者以外のユーザーから他の組織メンバーを非表示にします。 | | `restrictApiKeyCreationToManagers` | boolean | `true`, `false` | `false` | **組織レベル。** 組織のマネージャーのみがAPIキーを作成できます。 | | `sessionRetentionDays` | number | `14`–`365` | 組織のデフォルト | **組織レベル。** 同期されたセッション履歴が削除されるまで保持される日数。 | diff --git a/docs/jp/cli/features/incident-response.mdx b/docs/jp/cli/features/incident-response.mdx new file mode 100644 index 000000000..e2056f5b8 --- /dev/null +++ b/docs/jp/cli/features/incident-response.mdx @@ -0,0 +1,212 @@ +--- +title: インシデント対応 +description: Slackで本番アラートに対応し、インシデントの解決や調査を自律的に行うようDroidを設定します。 +keywords: + [ + "incident response", + "RCA", + "root cause analysis", + "Slack auto-run", + "Slack incidents", + "alerts", + "incident channel", + "Droid", + ] +--- + +## 概要 + +設定済みのSlackチャンネルにアラートが届くと、Factoryは関連付けられたDroidセッションを自動で開始し、適切なコンテキスト、マシン、指示を使ってDroidがインシデントを調査できるようにします。 + +DroidはRCAの実施、必要に応じた修正PRの作成、将来同じ種類のアラートをより速く調査できるようにするインシデントrunbookの更新まで進められます。 + + + Factoryのチャネル自動実行を設定するには、Factoryの**Owner**または**Manager**ロールが必要です。 + + +## クイックスタート: Factory App からセットアップする + +すべてのSlackチャンネル設定を1か所で確認したい場合は、Web UIを使用してください。 + + + + Factory Appで**設定 → Integrations → Slack**に移動します。まだSlackを接続していない場合は、先に[Slack連携](/jp/integrations/slack)を設定してから、Slack管理画面を開き、**Channels**タブを選択してください。 + + + + Slackで、アラートbotがインシデントを投稿するチャンネルを開き、次を実行します。 + + ```text + /invite @Factory + ``` + + チャンネル一覧には、Factoryが招待されているチャンネルだけが表示されます。 + + + + **Select Auto-Backlinked Channels**でインシデントチャンネルを検索し、**Auto-Backlink**をオンにします。これにより、そのチャンネルのSlackメッセージがFactoryセッションにリンクされ、チャンネル設定が展開されます。 + + + + **Run as** の行が表示される場合は、**Factory user** のままにするか、サービスアカウントを選択します。サービスアカウントは専用のコンピューターとそのアカウントのIDで実行されるため、共有の事前設定済みアカウントでインシデントセッションを実行したい場合に選択してください。 + + + + **Machine Type** と、Droidが使用する実行先を選択します。多くの組織では **Computer** を使いますが、組織によっては **Cloud** または **Computer** を選択できます。サービスアカウントを選択した場合、Machine Type は **Computer** に固定され、**Computer** ピッカーにはそのサービスアカウントが所有するコンピューターだけが表示されます。 + + + + **Auto-Run**を有効にします。これにより、インシデントアラートが届いたときにFactoryがDroidセッションを自動で開始できるようになります。Auto-Runを有効にできない場合は、先に必要なコンピューターまたはワークスペースを選択または作成してください。 + + + + **Factory user** を使用する場合はセッション所有者を選び、セッションを所有者限定にするか組織に表示するかを設定し、必要に応じてモデルを選択して、カスタムのインシデントプロンプトを設定します。 + + 開始時のプロンプトとしては、次の内容が適しています。 + + ```text + Use the `/incident` skill for Slack incidents and run an RCA if applicable. + If the thread message is an incident or asking for RCA/root-cause analysis, invoke the `incident` skill before investigating. + ``` + + + + 実際のインシデント送信に使うのと同じ種類のbotから、トップレベルのテストアラートを投稿します。Factoryが自動実行のDroidセッションを開始し、Slackスレッドからそのリンクを確認できることを確かめてください。 + + + +## 別の方法: Droid CLIでセットアップする + +すでにDroidを開いていて、ガイド付きでインシデントチャンネルを設定したい場合は、CLIフローを使用してください。 + + + + Droid CLIで次を実行します。 + + ```text + /setup-incident-response + ``` + + まだSlackが接続されていない場合、Droidは続行前にSlackのOAuthフローを開きます。 + + + + インシデントアラートを受信するSlackチャンネルを選択します。チャンネルが表示されない場合は、`/invite @Factory`でFactoryを招待してから、セットアップコマンドを再実行してください。 + + + + Droidがインシデント調査に使用するコンピューターを選択します。適切なリポジトリのチェックアウト、観測ツール、認証情報が揃った環境を選んでください。 + + + + デフォルトのインシデント用プロンプトをそのまま使うか、どの runbook、ダッシュボード、リポジトリ、エスカレーションルールを優先的に確認するべきかなど、チャンネル固有の指示を追加します。 + + + + 設定を確定したら、Slackでテストアラートを送信し、Droidが自動で起動することを確認します。 + + + +## 設定の詳細 + +### プロンプトをカスタマイズする + +チャンネルプロンプトは、そのチャンネルのすべての自動実行セッションに注入されます。内容はインシデント対応に特化させてください。 + +- 適切な場合はRCAを実施し、`/incident`ワークフローを使うようにDroidに伝える +- そのチャンネルに対応する主要なサービスやリポジトリを示す +- runbook、ダッシュボード、一般的なアラートソースを案内する +- 不確実性を要約して共有するタイミングなど、エスカレーションの期待値を明示する + +チャンネルを汎用的な自動化の入口にしてしまうようなプロンプトは避けてください。インシデント対応は、プロンプトが狭く運用に特化しているほど効果を発揮します。 + +### チャンネルの選択 + +インシデント対応は、インシデントアラートがトップレベルのメッセージとして届くチャンネル向けに設計されています。スレッド返信は新しい自動実行セッションの開始には使われないため、通常の会話でDroidが繰り返し起動するのを防げます。 + +最良の結果を得るには、`#incidents`、`#alerts-production`、またはサービス固有のインシデントチャンネルのような専用チャンネルを使用してください。 + +Slack Channels 設定テーブルには、Factoryが招待されているチャンネルだけが表示されます。まずそのチャンネルで**Auto-Backlink**を有効にし、その後に行を展開してAuto-Runを設定してください。 + +### Run as + +**Run as** ピッカーは、組織でサービスアカウントによるチャンネル委任が利用できる場合に表示されます。 + +- **Factory user** では、設定したセッション所有者のFactoryユーザーIDがAuto-Runセッションで使われます。 +- サービスアカウントでは、そのサービスアカウントのIDとコンピューターが使われます。 + +サービスアカウントを選択すると、Factoryは**Machine Type**を**Computer**に固定し、セッション所有者の行を非表示にし、コンピューターピッカーをそのサービスアカウントが所有するコンピューターのみに制限します。チャンネルを常に同じ事前設定済みアカウントとマシンから実行したい共有のインシデント対応セットアップで使ってください。 + +### セッション所有者 + +**Run as** が **Factory user** に設定されている場合、セッション所有者によって、Auto-Runセッションで使用されるFactoryユーザーIDが決まります。インシデント調査に必要な接続済みツールと組織権限を持つ所有者を選んでください。 + +所有者が見つからない、またはアクセス権が不足しているためにセッションが失敗する場合は、チャンネル設定を更新し、適切な権限を持つ現行ユーザーを使用してください。 + +### 実行先マシン + +選択したコンピューターまたはワークスペースは、Droidが調査を実行する場所です。チャンネル設定で**Machine Type**を選択し、対象の**Computer**または**Workspace**を指定します。Auto-Runを有効にするには、事前に実行先を選択しておく必要があります。 + +実行先は次の条件を満たしている必要があります。 + +- 関連するリポジトリにアクセスできる +- 必要なパッケージマネージャーや CLI がインストールされている +- 観測、インシデント管理、ソース管理システムへ認証済みでアクセスできる +- RCA中にDroidが実行する可能性のあるアクションに対して安全な権限が設定されている + +インシデントワークフローが事前設定済みツールを備えた永続環境に依存する場合は、[Droid Computers](/jp/cli/features/droid-computers) を使用してください。 + +Bring Your Own Machine (BYOM) のコンピューターを選択すると、マシン情報を含むセッション出力がSlackチャンネルに投稿される可能性があることをFactoryが警告します。 + +### 公開範囲とモデル + +プライベートセッションはセッション所有者だけが閲覧できます。組織に表示されるセッションは他のメンバーも確認できるため、インシデントの引き継ぎやポストモーテムレビューに役立ちます。 + +チームでインシデント分析用に明確な好みがない限り、モデルはデフォルトのまま使ってください。複雑な本番インシデントでは、利用可能であればより推論能力の高いモデルを選んでください。 + +## インシデントフローの仕組み + +設定後、インシデント対応は次の流れで動作します。 + +1. アラートbotが、設定済みのSlackチャンネルにトップレベルのメッセージを投稿します。 +2. Factoryが、そのチャンネルの実行主体、対象マシン、公開範囲、モデル、プロンプトを使ってDroidセッションを開始します。 +3. DroidがSlackアラートのコンテキストを受け取り、一致する `incident-guidelines` runbookガイダンスがあるか確認します。 +4. Droidは設定済みツールを使って調査し、RCAが適切な場合は `/incident` ワークフローを呼び出すべきです。 +5. FactoryはステータスとセッションリンクをSlackに投稿し、Droidは類似インシデント向けに再利用可能な知見を保存できます。 + +`incident-guidelines` runbookは、チームで再利用する場合は `.factory/skills/incident-guidelines/SKILL.md`、個人で再利用する場合は `~/.factory/skills/incident-guidelines/SKILL.md` にローカルで保存されます。ここには再利用可能な調査ガイダンスを保存し、シークレットや単発のRCA詳細は保存しないでください。 + +## トラブルシューティング + + + + `/invite @Factory`でFactoryをチャンネルに招待してから、Slack設定を更新するか `/setup-incident-response` を再実行してください。プライベートチャンネルでは、明示的にFactoryを招待する必要があります。 + + + + Slack自動実行設定を構成するには、FactoryのManagerまたはOwnerロールが必要です。組織オーナーに依頼してロールを更新してもらうか、セットアップを代行してもらってください。 + + + + チャンネルにコンピューターまたはワークスペースが選択されていることを確認してください。**Run as** がサービスアカウントに設定されている場合、そのサービスアカウントが少なくとも1台のコンピューターを所有している必要があります。 + + + + そのメッセージが、設定済みチャンネル内のトップレベルアラートであり、スレッド返信ではないことを確認してください。インシデントセットアップフローでは、アラートbotのメッセージが想定トリガーです。 + + + + 選択したマシンに、適切なリポジトリ、ツール、認証情報があることを確認してください。Droidが最初に使うべきrunbookやダッシュボードへのリンクを、チャンネルプロンプトに追加してください。 + + + + サービス名、アラートソース、ダッシュボードリンク、ログクエリ例、リポジトリパス、期待する RCA 形式など、チャンネル固有の情報をプロンプトに追加してください。 + + + +## 関連項目 + +- [Slack連携](/jp/integrations/slack) -- FactoryをSlackに接続し、チャンネルにFactoryを招待します。 +- [自律レベル](/jp/cli/user-guides/auto-run) -- 繰り返し承認なしでDroidがどのように動作するかを理解します。 +- [Droid Computers](/jp/cli/features/droid-computers) -- 調査用の永続環境を設定します。 +- [スキル](/jp/cli/configuration/skills) -- インシデント調査のような再利用可能ワークフローがDroidをどのように導くかを学びます。 diff --git a/docs/jp/cli/features/wiki/overview.mdx b/docs/jp/cli/features/wiki/overview.mdx index 4758459de..7ed0ffa2f 100644 --- a/docs/jp/cli/features/wiki/overview.mdx +++ b/docs/jp/cli/features/wiki/overview.mdx @@ -1,7 +1,7 @@ --- title: AutoWiki sidebarTitle: 概要 -description: AutoWikiは、Factory AppとGitHub WikiでリポジトリのWikiを最新の状態に保ちます。 +description: AutoWikiは、リポジトリ向けに包括的で構造化されたWikiを生成します。 keywords: ['autowiki', 'wiki', 'documentation', 'codebase', '/wiki', '/install-wiki', 'github wiki', 'auto-refresh', 'generate docs'] --- diff --git a/docs/jp/cli/user-guides/auto-run.mdx b/docs/jp/cli/user-guides/auto-run.mdx index 4c9a6122b..cfb3ec00a 100644 --- a/docs/jp/cli/user-guides/auto-run.mdx +++ b/docs/jp/cli/user-guides/auto-run.mdx @@ -27,7 +27,7 @@ ExecuteコマンドとMCPツールにはリスクレベル(`low`、`medium`、 - **ファイル変更** – Low以上では、Droidは事前確認なしでファイルの作成・編集・パッチ適用を行えます。 - **コマンドとMCPツール** – Droidはツールのリスクレベルを現在の自律レベルと比較します。リスクのほうが高ければ、続行前に確認を求めます。 - **allowlist登録コマンド** – allowlist内のコマンドは、denylistにも一致しない限り、承認なしで実行できます。 -- **安全チェック** – denylistにある危険なコマンドはHighでも確認を求めます。`$(...)`やバッククォート内にネストされた危険なコマンドも含まれます。サンドボックスの読み取り・書き込み・ネットワークチェックでも別途プロンプトが表示される場合があります。 +- **安全チェック** – denylistにある危険なコマンドはHighでも確認を求めます。`$(...)`やバッククォート内にネストされた危険なコマンドも含まれます。[サンドボックス](/jp/cli/configuration/sandbox)の読み取り・書き込み・ネットワークチェックでも別途プロンプトが表示される場合があります。 - **常に許可** – 「常に許可」を選ぶと、そのプロンプトに必要なレベルまで現在の自律レベルが引き上げられます。サンドボックスの「常に許可」オプションは、代わりに許可されたパスやドメインを永続化します。 - **仕様承認** – Spec Modeのプランを承認するときは、現在の自律レベルを維持する**実装を進める**を選ぶか、実装用に利用可能なLow、Medium、Highを選択します。組織の最大自律レベルによっては、より高い選択肢が表示されない場合があります。 diff --git a/docs/jp/cli/user-guides/become-a-power-user.mdx b/docs/jp/cli/user-guides/become-a-power-user.mdx index d3368fc00..143c92a6b 100644 --- a/docs/jp/cli/user-guides/become-a-power-user.mdx +++ b/docs/jp/cli/user-guides/become-a-power-user.mdx @@ -158,6 +158,21 @@ TUI には、ほぼすべての一般的な操作のためのショートカッ | `Ctrl+L` | 自律レベルを順番に切り替え(low / medium / high) | | `Ctrl+Y` | `/btw` のサイド質問スクロールビューを切り替え | | `Ctrl+E` | 承認の詳細を切り替え | +| `Tab` | 推論努力を順番に切り替え(`low` → `medium` → `high` → `off`) | +| `Shift+Tab` | インタラクションモードを順番に切り替え(Auto → Spec → Mission) | +| `@` | ファイルパスの自動補完 — `@` を入力するとファイルのあいまい検索が起動 | +| `Up` / `Down` | 入力履歴を移動 — 過去に送信したメッセージを順に切り替え | +| `Double Escape` | 2回目の押下で入力ドラフトをクリアし、3回目の Escape で巻き戻しメニューを開く | +| `Ctrl+V` | クリップボードから画像を添付として貼り付け | +| `?` | ヘルプポップアップを切り替え(入力が空のとき) | +| `Ctrl+/` | ヘルプポップアップを切り替え(入力に内容があっても動作) | +| `Ctrl+A` | カーソルを行頭に移動 | +| `Ctrl+W` | カーソルの前の単語を削除 | +| `Ctrl+K` | カーソルから行末まで削除 | +| `Ctrl+U` | カーソルから行頭まで削除 | +| `Ctrl+D` | 添付画像をクリアし、添付がない場合は次の文字を前方削除 | +| `Ctrl+R` | ハイライト中のセッション名を変更(`/sessions` リストビュー内) | +| `Ctrl+X` | ハイライト中のセッションをアーカイブ(`/sessions` リストビュー内) | | `Alt+Up` / `Alt+Down` | トランスクリプトをターン単位でスクロール | | `Alt+PageUp` / `Alt+PageDown` | ユーザーのターンのみをジャンプ | | `Shift+Enter` | プロンプト入力に改行を挿入 | @@ -251,7 +266,7 @@ droid --worktree feature-billing Model Context Protocol を使うと、Droid は標準インターフェースを通じて外部ツール(データベース、課題管理、デザインツール、社内サービスなど)と対話できます。サーバーは TUI の `/mcp`、もしくはコマンドラインの `droid mcp add/remove` で管理します。 ```bash -droid mcp add linear https://mcp.linear.app/sse --type http +droid mcp add linear https://mcp.linear.app/mcp --type http ``` 接続後は、Droid がチケットを読んだり、データベースに問い合わせたり、サーバーが提供する任意の機能を呼び出したりできます — カスタム連携を組まずに済みます。 diff --git a/docs/jp/cli/user-guides/choosing-your-model.mdx b/docs/jp/cli/user-guides/choosing-your-model.mdx index 32e171017..aba87ac41 100644 --- a/docs/jp/cli/user-guides/choosing-your-model.mdx +++ b/docs/jp/cli/user-guides/choosing-your-model.mdx @@ -1,10 +1,14 @@ --- title: モデルの選択 -description: 各CLIタスクに適切なモデルと推論レベルを選択して、精度、速度、コストのバランスを取る。 +description: Droidはモデルに依存せず、セッションの途中でモデルを変更できます。Anthropic、OpenAI、Google、NVIDIA など、主要なプロバイダーのモデルを提供しています。 keywords: ['model', 'models', 'llm', 'claude', 'sonnet', 'opus', 'haiku', 'gpt', 'openai', 'anthropic', 'choose model', 'switch model'] --- -モデルの品質は急速に進化し、エコシステムの変化に合わせてCLIのデフォルト設定を調整しています。このガイドは現在の主要オプションの比較のスナップショットとして活用し、更新を公開する際には再検討することを想定してください。このガイドは2026年3月11日水曜日に最終更新されました。 +各タスクに適したモデルと推論レベルを選び、精度、速度、コストのバランスを取りましょう。Factoryが提供するすべてのモデルは、独自の品質基準とコスト効率要件を満たしています。 + +モデルの品質は急速に進化し、エコシステムの変化に合わせてCLIのデフォルト設定を調整しています。このガイドは現在の主要オプションの比較のスナップショットとして活用し、更新を公開する際には再確認してください。 + +このガイドの最終更新日は2026年6月3日水曜日です。 --- diff --git a/docs/jp/enterprise/eu-deployment.mdx b/docs/jp/enterprise/eu-deployment.mdx new file mode 100644 index 000000000..4691e017a --- /dev/null +++ b/docs/jp/enterprise/eu-deployment.mdx @@ -0,0 +1,62 @@ +--- +title: EUデプロイメント +description: FactoryのEUデプロイメント向けアーキテクチャ、データレジデンシー、リージョン強制。 +--- + +Factoryは、Global(US)デプロイメントから完全に分離された専用のEUデプロイメントを運用しており、欧州内に独自のバックエンド、データベース、LLM推論エンドポイントを備えています。Factoryの各クライアント(CLI、デスクトップアプリ、Webアプリ)は、両リージョンで動作する単一ビルドとして提供され、ログイン後に組織のリージョンを検出して、以降のすべてのリクエストを正しいデプロイメントへルーティングします。 + + + **Enterprise機能** — EUデプロイメントは、欧州のデータレジデンシー要件を持つエンタープライズ顧客向けに提供されています。チーム向けのEU組織をプロビジョニングするには、[お問い合わせください](mailto:sales@factory.ai)。 + + +--- + +## インフラストラクチャ + +EU APIバックエンドは、欧州経済領域内のフランクフルト(`fra1`)にあるVercel上でホストされており、`api.eu.factory.ai` で利用できます。 + +お客様は `*.factory.ai` のホスト名を許可リストに追加してください。EUバックエンドからの送信LLMトラフィックは、[推論](#inference) に記載されたプロバイダーのEUリージョンエンドポイントのみを対象とします。 + +--- + +## データ + +**EU内に保存(`europe-west1`、ベルギー):** + +- **セッションコンテンツ**(プロンプト、アシスタントメッセージ、ツール呼び出しとその結果、Droidメッセージ、Git AIノート、Git AIチェックポイント)は、ベルギーにあるマネージドデータベースインスタンスに保存されます。このインスタンスは、独自の認証情報、バックアップ、アクセス制御を備え、グローバルデータベースとは別個にプロビジョニングされています。 +- 生のリクエスト本文やレスポンス本文が、ログやオブジェクトストレージに書き込まれることはありません。 + +**グローバルデプロイメント(US)に保存:** + +- 組織レコード(組織のリージョンタグを保持する小さなポインタードキュメント)、ユーザープロファイル、課金データ。これらにはユーザー生成コンテンツは含まれず、クロスリージョン認証とアカウント管理に必要です。 + +--- + +## 推論 + +EU組織からのすべてのLLMリクエストは、EUリージョンのエンドポイントにのみ送信されます。プロンプトと会話履歴がUSインフラを通過することはありません。 + + + + AWS Bedrock(フランクフルト、`eu-central-1`)とGoogle Vertex AI(`europe-west1`)経由で提供されます。Claude Opus 4.5、Opus 4.6、Opus 4.7、Sonnet 4.5、Sonnet 4.6、Haiku 4.5 を含みます。 + + + EUデータレジデンシー向けに構成された専用プロジェクトを使用し、OpenAI direct API経由で提供されます。GPT-5ファミリー(GPT-5.2、GPT-5.3 Codex、GPT-5.4、GPT-5.4 Mini、GPT-5.5、GPT-5.5 Pro)を含みます。 + + + +EUで利用できないモデルやプロバイダーは、モデルセレクターに表示されず、サーバー側でも拒否されます。 + +--- + +## 強制 + +アイデンティティはグローバル(WorkOSベースのSSO)ですが、各組織は作成時に特定のリージョンへ固定されます。リージョン一致は複数の層で強制されるため、トラフィックやデータが誤ったバックエンドから提供されることはありません。 + +**サーバー側。** セッションデータへのアクセスとLLM推論は、どちらもバックエンドのリージョン認識チェックによって制御されます。組織のリージョンがデプロイメントと一致しないリクエストはエラーで拒否され、対象外のモデルやプロバイダーへのリクエストは、トラフィックが送信される前に拒否されます。EUトラフィックはUS専用のデータやプロバイダーに到達できず、GlobalトラフィックはEU専用ルートに到達できません。 + +**クライアント側。** ログイン後、各クライアントは組織のリージョンを読み取り、以降のすべてのAPIリクエストを一致するバックエンドへルーティングします。 + +- **Webアプリ:** 各正規ホスト名(`app.factory.ai`、`app.eu.factory.ai`)は、静的に1つのリージョン別バックエンドのみに紐づいています。誤ったリージョンにアクセスしたユーザーには、正しいオリジンへのリンク付きリダイレクトページが表示され、サインアウトはされません。 +- **デスクトップアプリ:** 認証済みセッションから組織のリージョンを読み取り、すべてのリクエストで一致するAPIホストを使用します。 +- **CLI:** 初回ログイン時にリージョンがユーザーのローカルトークンキャッシュへ固定され、すべてのリクエストのAPIホスト解決に使用されます。ログアウトして再ログインすると、リージョンは再判定されます。 diff --git a/docs/jp/enterprise/hierarchical-settings-and-org-control.mdx b/docs/jp/enterprise/hierarchical-settings-and-org-control.mdx index de1a68911..2100708d5 100644 --- a/docs/jp/enterprise/hierarchical-settings-and-org-control.mdx +++ b/docs/jp/enterprise/hierarchical-settings-and-org-control.mdx @@ -31,6 +31,30 @@ User → ~/.factory/ --- + + +## システム管理 `settings.json` ファイル + +ユーザーがサインインする**前に**組織ポリシーを適用する必要があるデプロイメント — 管理対象ラップトップ、Factory に認証されていない CI ランナー、エアギャップ環境または制限付きネットワークのインストール — では、IT / MDM 管理者は各マシンのハードコードされた既知のパスに `settings.json` を配置できます: + +| OS | パス | +| ------------ | ----------------------------------------------------- | +| macOS | `/Library/Application Support/Factory/settings.json` | +| Linux と WSL | `/etc/factory/settings.json` | +| Windows | `C:\Program Files\Factory\settings.json` | + +このファイルは、このページの他の部分と同じ [Settings JSON スキーマ](#settings-json-schema) を使用します。 + +このファイルが存在する場合、そのマシンでは**組織レベル設定の正式な情報源**となり、組織設定に対する API 取得や開発者モードの環境変数オーバーライドは行われません。`factoryTier` シグナルは引き続きベストエフォートで Factory API に問い合わせられ(失敗しても致命的ではありません)、管理対象デプロイメントでもエンタープライズ限定の動作が維持されます。 + +このファイルが存在しない、または読み取れない場合、Droid は既存の組織設定フロー(Factory App / managed-settings エンドポイント)にフォールバックします。ファイルが存在しても形式が不正、またはスキーマ検証に失敗した場合、組織設定は空のポリシーとして解決され、失敗はログに記録されます。つまり、壊れた管理者デプロイメントが**黙ってバイパスされることはありません**。 + +これは、MDM イメージやインストーラーとともにベースポリシーを配布する推奨方法であり、ユーザーがこれを上書きしたり弱めたりすることはできません。 + +--- + + + ## Settings JSON スキーマ 以下は組織管理設定の完全なスキーマです。これらは Factory App の [Enterprise Controls](https://app.factory.ai) ページで組織管理者によって設定されます。すべてのプロパティはオプションです。設定する必要のないフィールドは省略してください。 diff --git a/docs/jp/enterprise/index.mdx b/docs/jp/enterprise/index.mdx index eb3b4eafa..6358667af 100644 --- a/docs/jp/enterprise/index.mdx +++ b/docs/jp/enterprise/index.mdx @@ -109,6 +109,6 @@ Factoryは、最も要求の厳しい組織に適したセキュリティとコ - **ISO 27001** - **ISO 42001** -最新のレポート、サブプロセッサーリスト、セキュリティアーキテクチャの詳細は、**トラストセンター**でご確認いただけます。 +最新のレポート、サブプロセッサーリスト、セキュリティアーキテクチャの詳細は、**[Trust Center](https://trust.factory.ai)**でご確認いただけます。 Droidがお客様の規制要件と監査要件にどのように適合するかの詳細については、[コンプライアンス、監査、モニタリング](/jp/enterprise/compliance-audit-and-monitoring)から始めてください。 diff --git a/docs/jp/enterprise/network-and-deployment.mdx b/docs/jp/enterprise/network-and-deployment.mdx index 10d4256b7..5ec9ad45a 100644 --- a/docs/jp/enterprise/network-and-deployment.mdx +++ b/docs/jp/enterprise/network-and-deployment.mdx @@ -153,5 +153,6 @@ export NO_PROXY="localhost,127.0.0.1,internal.example.com,.corp.example.com" - **環境変数** – プロキシ、ゲートウェイ、OTELエンドポイント、カスタム証明書。 - **組織とプロジェクトの`.factory/settings.json`** – Droidが実行できる場所、許可されるモデルとゲートウェイ、デフォルトのテレメトリー送信先に関する階層的ポリシー。 - **組織設定エンドポイント** – 大組織向けに、中央設定サービスがすべての環境に標準的な`.factory`バンドルを配布可能。 +- **システム管理 `settings.json`** – MDM で配布されたフリートやエアギャップ環境向けに、ハードコードされたプラットフォーム別パスに設定ファイルを配置すると、ユーザーが認証する前から組織ポリシーを有効にできます。詳細は [階層設定と組織管理](/jp/enterprise/hierarchical-settings-and-org-control#system-managed-settings-file) を参照してください。 階層と統合動作の詳細については、[階層設定と組織管理](/jp/enterprise/hierarchical-settings-and-org-control)を参照してください。 diff --git a/docs/jp/enterprise/security-review.mdx b/docs/jp/enterprise/security-review.mdx index 80dc9ac4a..c97ef26ea 100644 --- a/docs/jp/enterprise/security-review.mdx +++ b/docs/jp/enterprise/security-review.mdx @@ -15,47 +15,62 @@ Droid のセキュリティレビューは、プルリクエストやリポジ -## 手法 - -セキュリティレビューでは、組み込みの `security-review` スキルを使用します。PR 自動化では、Droid Action が専用の `security-reviewer` サブエージェントを実行し、ファイルを読む前にこの手法を読み込んでから、認証、認可、バリデーション、データベース、ネットワーク、ファイルシステム、および LLM の境界をまたぐ変更済みデータフローを追跡します。 +## コードベース全体の監査を実行 -この手法では、複数のセキュリティフレームワークを組み合わせて適用します。 +最も徹底したセキュリティ結果を得るには、[Factory Missions](/jp/cli/features/missions) 内で監査を実行します。Factory Missions は監査を事前に計画し、オーケストレーションされたエージェントに作業を分散し、各マイルストーンで発見事項を検証するため、単一セッションでの実行よりもはるかに深いカバレッジが得られます。 -- **STRIDE 脅威モデリング**: なりすまし、改ざん、否認、情報開示、サービス拒否、権限昇格。 -- **OWASP Top 10:2021**: アクセス制御の不備、暗号化の失敗、インジェクション、安全でない設計、設定ミス、脆弱なコンポーネント、認証の失敗、ソフトウェアとデータ完全性の不備、ロギングと監視の不備、SSRF。 -- **OWASP Top 10 for LLM Applications:2025**: プロンプトインジェクション、機密情報の開示、安全でない LLM 出力処理、過剰なエージェンシー、ベクトル/埋め込みの弱点、およびコードベースで LLM を使用する際のその他の AI 固有リスク。 -- **サプライチェーン分析**: 依存関係マニフェストと lockfile をレビューし、typosquatting の兆候、インストールスクリプト、広すぎるバージョン範囲、新規公開パッケージを確認します。 -- **リポジトリ脅威モデルのコンテキスト**: `.factory/threat-model.md` が存在する場合、Droid はそれを攻撃対象領域のマップとして使用します。 +任意の Droid セッションから Factory Missions に入り、セキュリティレビューを開始します。 -## レビューパイプライン +```text +/missions +/security-review deep audit +``` -セキュリティレビューは 2 段階のワークフローを使用します。 +### CI で定期スキャン -1. **候補生成**: Droid が差分またはコードベースを読み取り、セキュリティ上重要な領域を特定し、信頼境界をまたぐ未信頼入力を追跡して、脆弱性候補を生成します。 -2. **検証**: Droid が各候補について、到達可能性、悪用可能性、既存の防御、誤検知の有無を再確認してから報告します。 - -インジェクション脆弱性、重要な操作における認証または認可の欠如、ハードコードされたシークレット、データ露出、安全でない LLM 出力処理、またはリスクの高いサプライチェーン変更など、現実的な悪用経路がある場合にのみ発見事項が報告されます。 +ワークフローから `droid exec --mission` を呼び出して、同じ Mission ベースの監査をスケジュール実行できます。監査はランナー上の `~/security-audits/-/` に完全な出力を書き出すため、ランナー終了後も発見事項を保持できるように `actions/upload-artifact` ステップを追加してください。 -## 重要度レベル - -| 重要度 | 優先度 | 例 | -| --- | --- | --- | -| 重大 | `P0` | RCE、本番用シークレットのハードコード、認証バイパス、認証なしの管理者エンドポイント | -| 高 | `P1` | 認証後に到達可能な SQL インジェクション、保存型 XSS、機密データの IDOR、公開されたばかりの依存関係 | -| 中 | `P2` | 状態変更操作に対する CSRF、情報開示、認証が必要な経路でのプロンプトインジェクション | -| 低 | `P3` | 具体的だが影響の小さい悪用経路を伴う軽微なセキュリティハードニング項目 | +```yaml +on: + schedule: + - cron: '0 6 * * 1' + +jobs: + audit: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Droid CLI をインストール + run: | + curl -fsSL https://app.factory.ai/cli | sh + echo "$HOME/.local/bin" >> "$GITHUB_PATH" + - name: 詳細なセキュリティレビューを実行 + env: + FACTORY_API_KEY: ${{ secrets.FACTORY_API_KEY }} + run: | + droid exec --mission --auto high -m claude-opus-4-7 \ + "/security-review across the entire repository" + - name: セキュリティレビュー出力をアップロード + if: always() + uses: actions/upload-artifact@v4 + with: + name: deep-security-review-${{ github.run_id }} + path: ~/security-audits/ + if-no-files-found: warn + retention-days: 90 +``` -## ローカルで実行 +## 差分に対してローカルで実行 -任意のリポジトリで、Droid から組み込みスキルを直接実行します。 +CLI から現在のワーキングツリーまたはブランチの差分をレビューするには、任意の Droid セッションで組み込みスキルを実行します。 ```text -/security-review +/security-review local diff ``` -ローカルのセキュリティレビューでは、現在の差分だけでなくコードベース全体を監査できます。Droid はリポジトリ内のソースファイルを列挙し、生成物や vendor ディレクトリをスキップし、モジュールまたはディレクトリごとにファイルをグループ化して、報告前に発見事項を検証します。 +差分に対して呼び出されると、Droid は認証、認可、バリデーション、データベース、ネットワーク、ファイルシステム、および LLM の境界をまたぐ変更済みデータフローを追跡し、検証済みの発見事項を重要度と推奨修正付きでインライン報告します。 -## PR で実行 +## GitHub CI で PR に対して実行 [Droid Action](https://github.com/Factory-AI/droid-action) を使用している場合は、PR にコメントしてオンデマンドのセキュリティレビューをトリガーできます。 @@ -76,16 +91,6 @@ Droid のセキュリティレビューは、プルリクエストやリポジ `automatic_review` と `automatic_security_review` の両方を有効にすると、Droid は標準コードレビューと並行してセキュリティパスを実行し、PR フィードバックにセキュリティサマリーを含めます。 -## GitHub Actions でのリポジトリ全体スキャン - -リポジトリ全体のセキュリティスキャンを実行するには、PR に次のコメントを付けます。 - -```text -@droid security --full -``` - -全体スキャンでは `droid/security-report-{date}` ブランチを作成し、`.factory/security/reports/security-report-{date}.md` にレポートを書き出して、発見事項を含む PR を開きます。 - ## 設定 @@ -99,8 +104,39 @@ Droid のセキュリティレビューは、プルリクエストやリポジ | `security_severity_threshold` | `medium` | リポジトリ全体スキャンのみ: 生成されるレポートに含める最小重要度。 | | `security_notify_team` | `""` | リポジトリ全体スキャンのみ: 生成されるスキャン PR 本文で cc する GitHub チーム。例: `@org/security-team`。 | +## 手法 + +セキュリティレビューでは、組み込みの `security-review` スキルを使用します。PR 自動化では、Droid Action が専用の `security-reviewer` サブエージェントを実行し、ファイルを読む前にこの手法を読み込んでから、認証、認可、バリデーション、データベース、ネットワーク、ファイルシステム、および LLM の境界をまたぐ変更済みデータフローを追跡します。 + +この手法では、複数のセキュリティフレームワークを組み合わせて適用します。 + +- **STRIDE 脅威モデリング**: なりすまし、改ざん、否認、情報開示、サービス拒否、権限昇格。 +- **OWASP Top 10:2021**: アクセス制御の不備、暗号化の失敗、インジェクション、安全でない設計、設定ミス、脆弱なコンポーネント、認証の失敗、完全性の不備、ロギングの不備、SSRF。 +- **OWASP Top 10 for LLM Applications:2025**: プロンプトインジェクション、機密情報の開示、安全でない LLM 出力処理、過剰なエージェンシー、ベクトル/埋め込みの弱点、およびコードベースで LLM を使用する際のその他の AI 固有リスク。 +- **サプライチェーン分析**: 依存関係マニフェストと lockfile をレビューし、typosquatting の兆候、インストールスクリプト、広すぎるバージョン範囲、新規公開パッケージを確認します。 +- **リポジトリ脅威モデルのコンテキスト**: `.factory/threat-model.md` が存在する場合、Droid はそれを攻撃対象領域のマップとして使用します。 + +### レビューパイプライン + +セキュリティレビューは 2 段階のワークフローを使用します。 + +1. **候補生成**: Droid が差分またはコードベースを読み取り、セキュリティ上重要な領域を特定し、信頼境界をまたぐ未信頼入力を追跡して、脆弱性候補を生成します。 +2. **検証**: Droid が各候補について、到達可能性、悪用可能性、既存の防御、誤検知の有無を再確認してから報告します。 + +インジェクション脆弱性、重要な操作における認証または認可の欠如、ハードコードされたシークレット、データ露出、安全でない LLM 出力処理、またはリスクの高いサプライチェーン変更など、現実的な悪用経路がある場合にのみ発見事項が報告されます。 + +### 重要度レベル + +| 重要度 | 優先度 | 例 | +| --- | --- | --- | +| 重大 | `P0` | RCE、本番用シークレットのハードコード、認証バイパス、認証なしの管理者エンドポイント | +| 高 | `P1` | 認証後に到達可能な SQL インジェクション、保存型 XSS、機密データの IDOR、公開されたばかりの依存関係 | +| 中 | `P2` | 状態変更操作に対する CSRF、情報開示、認証が必要な経路でのプロンプトインジェクション | +| 低 | `P3` | 具体的だが影響の小さい悪用経路を伴う軽微なセキュリティハードニング項目 | + ## 関連項目 +- [Missions](/jp/cli/features/missions): 徹底的な監査を含む、大規模なマルチステップ作業を計画・オーケストレーションします。 - [自動コードレビュー](/jp/guides/droid-exec/code-review): 標準的な PR コードレビュー自動化。 - [スキル](/jp/cli/configuration/skills): スキルの呼び出し方法とカスタマイズ方法。 - [GitHubインテグレーションセキュリティ](/jp/enterprise/github-integration-security): GitHub App 連携のセキュリティアーキテクチャ。 diff --git a/docs/jp/reference/cli-reference.mdx b/docs/jp/reference/cli-reference.mdx index a99ee986b..37135a92b 100644 --- a/docs/jp/reference/cli-reference.mdx +++ b/docs/jp/reference/cli-reference.mdx @@ -319,7 +319,7 @@ droid --worktree feature-b & | フラグ | 説明 | 例 | | :------------------------- | :---------------------------------------------------------------------------------- | :--------------------------------------------------------------- | -| `--type ` | サーバーのトランスポート: `http`(ストリーミングHTTP)または `stdio`(ローカル) | `droid mcp add api https://api.example.com/mcp --type http` | +| `--type ` | サーバーのトランスポート: `http`(Streamable HTTP)、`sse`(レガシーな HTTP+SSE)、または `stdio`(ローカル) | `droid mcp add api https://api.example.com/mcp --type http` | | `--env ` | stdio サーバー用の環境変数を設定(繰り返し可能) | `droid mcp add gh "gh-mcp" --type stdio --env GH_TOKEN=$GH_TOKEN`| | `--header ` | リモートサーバー用の HTTP ヘッダーを追加(繰り返し可能) | `droid mcp add api https://api.example.com/mcp --type http --header "Authorization: Bearer $TOKEN"` | @@ -343,9 +343,10 @@ droid --worktree feature-b & スクリプト化と自動化のための**CLIコマンド**: ```bash -droid mcp add --type http # Add HTTP server -droid mcp add "" # Add stdio server -droid mcp remove # Remove a server +droid mcp add --type http # HTTP(Streamable)サーバーを追加 +droid mcp add --type sse # レガシーな HTTP+SSE サーバーを追加 +droid mcp add "" # stdio サーバーを追加 +droid mcp remove # サーバーを削除 ``` [MCP設定](/jp/cli/configuration/mcp)で、完全なレジストリリスト、CLIオプション(`--env`、`--header`)、設定ファイル、およびユーザーとプロジェクト設定のレイヤリング動作について確認してください。 diff --git a/docs/jp/web/factory-router.mdx b/docs/jp/web/factory-router.mdx new file mode 100644 index 000000000..fa12a7f64 --- /dev/null +++ b/docs/jp/web/factory-router.mdx @@ -0,0 +1,58 @@ +--- +title: Factory Router +sidebarTitle: Factory Router +description: 各タスクに最適なモデルを自動的に選択します。 +keywords: ['自動モデルルーティング', 'Factory Router', 'モデルルーティング', 'モデル', 'エンタープライズ制御', 'コスト削減'] +--- + + + Factory Routerは現在 **Research Preview** です。 + + +Factory Routerは、各Droidタスクに最適なモデルを自動的に選択します。セッションごとに単一のモデルを毎回手動で選ぶ代わりに、Factory Routerがタスクを評価し、品質、レイテンシ、コストのバランスが最もよいモデルに作業をルーティングします。 + +Factory RouterはFactory CLIとFactory Appで利用でき、他のモデルと同じエンタープライズ制御で動作します。 + +## Factory Routerを使う理由 + +Factory Routerは、ワークフローごとにモデル選択を手動で切り替えなくても高い成果を得たいチーム向けに設計されています。 + + + + Factoryの評価では、Factory Routerは難易度の高いベンチマークでフロンティア級の性能を維持しながら、常に最上位モデルを使用する場合と比べてコストをおよそ **20〜25%** 削減しました。 + + + Droidは定型的なステップを高速または低コストのモデルにルーティングし、より深い推論が必要な作業には高性能なモデルを確保できます。 + + + Factory Routerは、Factoryプラットフォーム全体で使われている組織、プロジェクト、ユーザーレベルの同じモデル制御に従います。 + + + +## 提供状況 + +Factory Routerは、一部のお客様向けにFactory CLIとFactory Appのモデルセレクターで **Factory Router (Research Preview)** として利用できます。 + +## エンタープライズ制御 + +エンタープライズ管理者は、他のFactory対応モデルと同じモデルガバナンスシステムを通じてFactory Routerを管理でき、他のモデルと同様に組織レベルでFactory Routerを許可または制限できます。 + +モデルのエンタープライズ制御の詳細については、[モデル、LLM ゲートウェイ、インテグレーション](/jp/enterprise/models-llm-gateways-and-integrations)を参照してください。 + +## FAQ + +### モデルルーティングはどのように動作しますか? + +Factory Routerはタスク単位のルーターで、セッション単位のルーティングとリクエスト単位のルーティングを組み合わせて使用します。最適化では、プロンプトキャッシュの維持とコスト削減を強く考慮します。 + +### Factory Routerは設定できますか? + +Factory Routerは現在、他のモデルと同様に有効化または無効化できます。また、Factory Router向けのガイダンスとして Enterprise Controls も提供しています。 + +### Factory Routerのパフォーマンスに関するベンチマークはありますか? + +はい。Factory Routerは、Terminal Bench 2 や Legacy Bench のような難易度の高いベンチマークでフロンティア級の性能を維持し、品質、レイテンシ、コストの最良のバランスを実現します。 + +### Factory Routerのコスト面での利点は何ですか? + +Factory Routerはフロンティア級の性能を維持しながら、常に最上位モデルを使用する場合と比べてコストをおよそ20〜25%削減します。 diff --git a/docs/jp/web/machine-connection/cloud-templates/index.mdx b/docs/jp/web/machine-connection/cloud-templates/index.mdx index a239cb455..93aa8f069 100644 --- a/docs/jp/web/machine-connection/cloud-templates/index.mdx +++ b/docs/jp/web/machine-connection/cloud-templates/index.mdx @@ -9,9 +9,9 @@ description: ローカル開発環境を再現するクラウドホスト型テ Cloud Templatesは引き続きサポートされていますが、安定性のため切り替えを強くお勧めします。 -Cloudテンプレートを使えば、「私のマシンでは動く」問題に悩まされることなく、**どこでも**コーディングできます。各テンプレートは事前設定済みの環境で、クラウド上に存在し、数秒で起動し、セットアップコマンドを実行するようにカスタマイズできます。 +クラウドテンプレートを使えば、「私のマシンでは動く」問題に悩まされることなく、**どこでも**コーディングできます。各テンプレートは事前設定済みの環境で、クラウド上で動作し、数秒で起動し、セットアップコマンドを実行するようにカスタマイズできます。 -## なぜcloudテンプレートを使うのか? +## クラウドテンプレートを使う理由 | メリット | あなたにとっての意味 | | ----------------- | ------------------------------------------------------------------------------------------------------- | @@ -38,19 +38,19 @@ Cloudテンプレートを使えば、「私のマシンでは動く」問題に - + 1. Factoryで左サイドバーの**Settings**アイコンをクリックします。 2. **Cloud Templates**を選択します。 - + 1. **Create Template**をクリックします。 2. 使用するリポジトリを入力します。 3. テンプレートにわかりやすい名前(例: “frontend-template”)を付けます。 4. (任意)テンプレート初期化時に実行するセットアップスクリプトを設定します。 5. **Create**をクリックします。 - Factoryがリポジトリをクローンして環境を準備します。大規模なプロジェクトでは数分かかる場合があります。 + Factory がリポジトリをクローンして環境を準備します。大規模なプロジェクトでは少し時間がかかる場合があります。 @@ -64,11 +64,11 @@ Cloudテンプレートを使えば、「私のマシンでは動く」問題に - + 通常どおり任意のFactoryセッションに参加します。 - + 1. セッション開始ページでMachine Connectionボタンをクリックします。 2. **Remote**タブを選択します。 3. 先ほど作成したテンプレートを選択します。 @@ -80,7 +80,7 @@ Cloudテンプレートを使えば、「私のマシンでは動く」問題に - 右上のプロフィールドロップダウンの横に、緑色のインジケーターとリモート作業ディレクトリが表示されます。これでクラウドテンプレートを操作しています。 + 右上のプロフィールドロップダウンの横に、緑色のインジケーターとリモート作業ディレクトリが表示されます。これでクラウドテンプレートに接続されています。 @@ -99,7 +99,7 @@ git status リポジトリのファイルを開き、変更して保存します。 - ファイルはクラウドテンプレートに保持され、準備ができたら上流にコミットできます。 + ファイルはクラウドテンプレート上に保持され、準備ができたらアップストリームにコミットできます。 @@ -112,12 +112,12 @@ git status ## セットアップスクリプト {#setup-script} -セットアップスクリプトは、Factoryがテンプレート作成時に実行するシェルスクリプトです。リポジトリがクローンされた後、テンプレートがアクティブ化される前に実行されます。この機能を使用して、テンプレートをセットアップし、droidがあなたのコードベースで作業するためのツールを提供してください。 +セットアップスクリプトは、Factory がテンプレート作成時に実行するシェルスクリプトです。リポジトリがクローンされた後、テンプレートがアクティブ化される前に実行されます。この機能を使うと、テンプレートをセットアップし、Droid がコードベースで作業するために必要なツールを用意できます。 ### セットアップスクリプトの定義方法 -1. テンプレート作成のモーダルで、「Setup Script (Optional)」セクションに初期化スクリプトを追加します。必要なコマンドをすべて含む複数行のbashスクリプトを記述できます。 -2. 送信します。スクリプトは提供された通りにリポジトリルートで実行されます。厳密なエラーハンドリングが必要な場合は、スクリプトの先頭に `set -euo pipefail` を追加してください。スクリプトの失敗はビルドを停止します。 +1. テンプレート作成モーダルの「Setup Script (Optional)」セクションに初期化スクリプトを追加します。必要なコマンドをすべて含む複数行の bash スクリプトを記述できます。 +2. 作成を実行します。スクリプトは入力したとおりにリポジトリルートで実行されます。厳密なエラーハンドリングが必要な場合は、スクリプトの先頭に `set -euo pipefail` を追加してください。スクリプトが失敗するとビルドは停止します。 3. スクリプトは非対話的で冪等性を保つようにしてください。安全に再実行できるコマンドを記述してください。 4. 何か失敗した場合は、ビルドログを確認してスクリプト実行の詳細な出力を確認してください。 @@ -177,7 +177,7 @@ bash ./scripts/setup.sh | セットアップが「Setup script failed: …」で失敗する | ビルドログで具体的なエラーメッセージを確認してください。ローカルでスクリプトを実行してデバッグし、エラーハンドリングを追加し、非対話的フラグ(例:`-y`)を使用してから、再試行してください。 | | コマンドが見つからない | スクリプトの早い段階で必要なツールをインストールするか、ベースUbuntuイメージで利用可能であることを確認してください。 | | Permission denied (scripts) | スクリプトを実行可能にする(`chmod +x ./scripts/setup.sh`)か、インタープリター経由で呼び出してください(`bash ./scripts/setup.sh`)。 | -| 環境変数が見つからない | Environment Variablesセクションで追加し、`$VAR` として参照してください。スクリプト内でシークレットをechoすることは避けてください。 | +| 環境変数が見つからない | Environment Variables セクションで追加し、`$VAR` として参照してください。スクリプト内でシークレットを `echo` しないでください。 | | 長いビルド | スクリプトは最小限に保ってください。`npm install` より `npm ci` のようなキャッシュされたインストールを優先し、重い非必須作業は避けてください。 | | パス/ファイルが見つからない | スクリプトはリポジトリルートで実行されます。相対パスとクローン後にファイルが存在することを確認してください。 | @@ -195,7 +195,7 @@ bash ./scripts/setup.sh | **正確なパッケージマネージャーを使用** | 一貫したロックファイルがバージョンドリフトを防ぐ。 | 再現可能なビルドのために `npm ci`(`npm install` ではない)、`pnpm -w i`、または `pip install -r requirements.txt` を使用 | | **エラーハンドリングを追加** | 最初の失敗でビルドを停止し、デバッグ時間を節約する。 | 適切なエラーハンドリングのためにスクリプトを `#!/usr/bin/env bash` と `set -euo pipefail` で開始 | | **スクリプトを早期に実行可能にする** | ビルド中の権限エラーを回避する。 | `chmod +x ./scripts/setup.sh && bash ./scripts/setup.sh` を追加するか、`bash ./scripts/setup.sh` を直接使用 | -| **スクリプトをべき等に保つ** | セットアップの再実行で問題が発生しないようにする。 | `pip install --no-deps` のようなフラグを使用するか、ファイルを作成する前に既存ファイルをチェック | +| **スクリプトを冪等に保つ** | セットアップを再実行しても問題が起きないようにする。 | `pip install --no-deps` のようなフラグを使用するか、ファイルを作成する前に既存ファイルをチェック | | **重い処理を最小限に抑える** | 長いビルドはテンプレート作成を遅くする。 | 必要最小限のセットアップに集中し、オプションのツールは後で手動インストールに委ねる | > **ヒント:** セットアップスクリプトをまずローカルでテストしましょう。スクリプトはリポジトリルートで `bash` で実行され、厳密なエラーハンドリングのために `set -euo pipefail` を追加できます。 @@ -232,7 +232,7 @@ bash ./scripts/setup.sh | カテゴリ | 典型的な症状 | | ---------------------- | ----------------------------------------------------------------------------- | -| **ワークスペース作成** | 「プロビジョニング」が永続、クローンエラー、セットアップスクリプト失敗 | +| **ワークスペース作成** | 「Provisioning」のまま進まない、クローンエラー、セットアップスクリプトの失敗 | | **接続** | セッションからアタッチできない、ペアリングスピナーが停止しない、「マシン利用不可」 | | **パフォーマンス** | リビルドが遅い、ターミナルの高レイテンシ、エディターの動作が重い | | **Devcontainer** | ビルドエラー、「command not found」、ポートにアクセスできない | @@ -276,9 +276,9 @@ bash ./scripts/setup.sh | 症状 | 修正方法 | | ------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -| **リビルドが5分以上かかる** | `.dockerignore`、`node_modules`、`*.pyc`、ビルド出力に対して`.dockerignore`を追加する• より軽量なベースイメージを使用(例:alpine) | -| **ターミナルのレイテンシ** | 重いJSを使用している未使用のブラウザタブを閉じる• ローカル帯域幅を確認(5 Mbps以上推奨)• リアルタイムスペルチェック拡張機能を一時停止 | -| **エディターの遅延** | 必要でない限り開発ツール(`nodemon`、`webpack --watch`)のファイルウォッチャーを無効化• 自動保存はコラボレーション時のみ使用 | +| **リビルドが 5 分以上かかる** | `.dockerignore` に `node_modules`、`*.pyc`、ビルド出力を追加する • より軽量なベースイメージを使用する(例: alpine) | +| **ターミナルのレイテンシ** | 重い JS を使っている未使用のブラウザタブを閉じる • ローカル帯域幅を確認する(5 Mbps 以上推奨) • リアルタイムのスペルチェック拡張機能を一時停止する | +| **エディターの遅延** | 必要な場合を除き開発ツール(`nodemon`、`webpack --watch`)のファイルウォッチャーを無効にする • 自動保存は共同作業時のみ使う | ### 一般的な使用上のトラブル @@ -290,4 +290,4 @@ bash ./scripts/setup.sh | **グローバルパッケージをインストールできない** | `npm install -g`または`pip install --user`を使用。まだブロックされる場合は、`postCreateCommand`にコマンドを追加。 | | **リビルド後に履歴が失われる** | `/workspaces`外のものはリビルド中にクリアされます。重要なスクリプトをコミットするか、リポジトリ内に保存してください。 | -> クイックリビルドで問題の80%が解決します。迷ったときは躊躇せず**リビルド**をクリックしてください。 +> 簡単なリビルドで問題の 80% は解決します。迷ったときは、ためらわず **Rebuild** をクリックしてください。 diff --git a/docs/jp/web/missions.mdx b/docs/jp/web/missions.mdx new file mode 100644 index 000000000..f4b3e8765 --- /dev/null +++ b/docs/jp/web/missions.mdx @@ -0,0 +1,35 @@ +--- +title: Desktop/WebでのMissions +description: Factory MissionsをDesktopおよびWebアプリで使って、構造化されたオーケストレーションにより複数機能にまたがる大規模プロジェクトを計画・実行します。 +keywords: ['factory missions', 'missions', 'web', 'desktop', 'orchestration'] +--- + + + Desktop/WebでのMissionsは現在 **Research Preview** です。 + + + +
+ Mission Controlのオーケストレーション画面 +
+ + +## Mission Control ダッシュボード + +Missions は CLI から実行することもできますが、Factory Desktop と Web アプリケーションでは、視覚的で情報量の多い Mission Control ダッシュボードを利用できます。このインターフェースは、あなたがプロジェクトマネージャーとして動けるよう設計されており、オーケストレーター、ワーカー、バリデーターが何をしているのかをより明確に把握できます。 + +## Missionsの開始と再開 + +- **新しいミッションを開始:** 新しいセッションを作成するときに **Mission mode** を選ぶか、Mission Control ページから直接ミッションを開始できます。 +- **過去のミッションを続行:** [Mission Control タブ](https://app.factory.ai/missions)に移動すると、過去のミッションを見つけて現在の状態を確認し、中断した場所からそのまま実行を再開できます。 +- **リモートマシンで実行:** ミッションの開始時に、ターゲット環境として **Droid Computer** を選択できます。これにより、長時間実行されるミッションを、ローカルのワークスペースを占有せず、永続的なリモートマシン上のバックグラウンドで安全に実行できます。 + +## UIの見方 + +Mission Control ダッシュボードでは、マルチエージェントのワークフローをリアルタイムで可視化できます。 + +- **進捗の追跡:** ここまでに何が行われたかを正確に確認できます。上部バーには全体の時間とクレジットが表示され、右サイドバーには各ワーカーとマイルストーンの進捗ログがリアルタイムで表示されます。 +- **モデルの選択:** 右サイドバーのモデルドロップダウンを使って、オーケストレーター、ワーカー、バリデーターの各エージェントに異なるモデルをその場で設定できます。 +- **機能の確認:** メインビューには、アクティブなマイルストーンの概要が表示されます。任意の機能を掘り下げて、個別の検証基準やコミットを確認できます。 +- **ワーカーの確認:** 左サイドバーには、アクティブなワーカーと完了済みのワーカーが一覧表示されます。特定のワーカーを選択すると、詳細なターミナル出力、思考プロセス、完了したサブタスクを確認できます。 +- **介入とリダイレクト:** ミッションが行き詰まっているように見える場合や優先順位が変わった場合は、UI から直接オーケストレーターを一時停止し、再評価や再計画を指示したうえで実行を再開できます。