> ## Documentation Index
> Fetch the complete documentation index at: https://docs.base44.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 独自エージェントの持ち込み

> 独自の AI コーディングエージェントやスクリプトを、アプリのコードを保持するクラウド環境に接続します

独自の AI コーディングエージェントやスクリプトをサンドボックスに接続することで、Base44 アプリに持ち込めます。サンドボックスは、アプリエディタで現在アクティブなブランチのコードを保持し、開発サーバーを実行するプライベートなクラウド環境です。これは Base44 アプリエディタ自体が編集するのと同じ環境、同じコードであり、同期を保つためのフォークやコピーはありません。サンドボックスコマンドでファイルを書き込むと、アプリエディタと同じ方法で、実際のアプリをそのアクティブブランチ上で直接変更することになります。

これにより、ローカルチェックアウトなしで、インストールするものもなしに、アプリエディタではなく独自のツールでアプリを開発できます。コピーを持たないマシンからアプリを操作したり、アプリエディタで完全に構築したアプリ全体に変更をスクリプトで加えたりできます。

<Note>
  サンドボックスを通じた編集は、公開と同じではありません。編集はすぐにアプリのコードの一部となり、アプリエディタとそのライブプレビューに表示されますが、アプリの公開サイトに反映するには、アプリエディタでの変更と同じ公開ステップが必要です。
</Note>

<Warning>
  アプリエディタの外部からアプリのサンドボックスに到達するには、[**Builder plan**](/Account-and-billing/Billing-and-plans) 以上が必要です。プランがない場合、コマンドは `PREMIUM_REQUIRED` で失敗します。
</Warning>

サンドボックス自体はストレージだけでなく、ライブのコンピュートプロセスです: しばらくアイドル状態になるとスピンダウンし、次のコマンドでスピンアップします。コードはそのプロセスではなく git に保存されるため、どちらの場合でも影響を受けません。サンドボックスが現在実行されていない場合、最初のコマンドで起動し、その呼び出しはその後のものより時間がかかります。

## 2 通りの接続方法

サンドボックスは、同じ実装に支えられた 2 つのサーフェスを通じて、同じ操作セットを公開します。ご自身のセットアップに合うほうを使用してください。

* **[CLI](/developers/references/cli/get-started/overview):** ローカルのコーディングエージェントや独自スクリプトなど、ご自身のマシンで実行するものに適しています。[`base44 login`](/developers/references/cli/commands/login) で一度認証し、[`--app-id`](/developers/references/cli/commands/introduction#select-a-target-app) または `BASE44_APP_ID` 環境変数でアプリを対象にします。ローカルプロジェクトは不要です。
* **[MCP server](/developers/backend/overview/mcp-server):** MCP で接続する AI アシスタント (CLI をまったく実行できない Web ベースのアシスタントを含む) に適しています。一度接続して OAuth で承認します。

| 操作         | CLI コマンド                                                                       | MCP ツール             |
| ---------- | ------------------------------------------------------------------------------ | ------------------- |
| ディレクトリの一覧  | [`sandbox ls`](/developers/references/cli/commands/sandbox-ls)                 | `list_directory`    |
| ファイルの読み取り  | [`sandbox read`](/developers/references/cli/commands/sandbox-read)             | `read_file`         |
| ファイル内容の検索  | [`sandbox grep`](/developers/references/cli/commands/sandbox-grep)             | `grep`              |
| ファイルの作成    | [`sandbox write`](/developers/references/cli/commands/sandbox-write)           | `write_file`        |
| 既存ファイルの変更  | [`sandbox edit`](/developers/references/cli/commands/sandbox-edit)             | `edit_file`         |
| シェルコマンドの実行 | [`sandbox run`](/developers/references/cli/commands/sandbox-run)               | `run_command`       |
| 復元ポイントの保存  | [`sandbox checkpoint`](/developers/references/cli/commands/sandbox-checkpoint) | `create_checkpoint` |

コネクタはサンドボックスのファイルシステムを経由しないため、上の表には含まれません。この方法で作業しているアプリにコネクタをセットアップするには、代わりに [`connectors initiate`](/developers/references/cli/commands/connectors-initiate) を使用します。これは、サンドボックスやローカルプロジェクトなしに同じアプリ ID を直接対象にします。

<Tip>
  独自のコーディングエージェントで始める最速の方法は、Base44 アプリエディタで **Send to Coding Agent** を使うことです。デスクトップでは、**More actions** (右上の **Publish** の横の 3 つのドット) を開き、**Send to Coding Agent** を選択します。ローカル CLI エージェントか Web チャットを選ぶと、貼り付けるだけで済むプロンプトが用意されるので、手作業でセットアップする必要がありません。モバイルアプリや管理外のソースコードを持つアプリでは提供されません。
</Tip>

## 変更は自動保存されます

[`sandbox write`](/developers/references/cli/commands/sandbox-write) または [`sandbox edit`](/developers/references/cli/commands/sandbox-edit) の呼び出しは、コマンドが戻る前に同じリクエスト内で変更をコミットするので、別途の保存、デプロイ、プッシュのステップはありません。[`sandbox run`](/developers/references/cli/commands/sandbox-run) を通じて行われる `rm` や `mv` などのファイル変更は、代わりに数秒後、短いデバウンスウィンドウが閉じるとコミットされます。以前のデバウンスされたコミットが完了する前に再度書き込みまたは編集を行うと、新しい呼び出しはそれを待機し、コミットが時間内に完了したことを確認できない場合は `COMMIT_FLUSH_PENDING` で失敗します。コミットが完了すると:

* 変更は Base44 アプリエディタで表示されます。
* サンドボックスのコンピュート環境がアイドル後にリサイクルされても安全です。新しい環境は常に古いスナップショットではなく最新のコミットから起動するためです。
* 次回アプリを公開するときに含まれます。

構造化リソースも同じ方法で同期されます: ローカルプロジェクトでファイルを追加した後に [`entities push`](/developers/references/cli/commands/entities-push) や [`functions deploy`](/developers/references/cli/commands/functions-deploy) を実行するのとは異なり、サンドボックスで `base44/functions/send-email/entry.ts` を作成するだけで、その関数が追加されます。

<Warning>
  * サンドボックスで編集中のアプリに対して、[`deploy`](/developers/references/cli/commands/deploy)、[`functions deploy`](/developers/references/cli/commands/functions-deploy)、[`entities push`](/developers/references/cli/commands/entities-push)、その他のプッシュコマンドを実行しないでください。これらのコマンドはローカルプロジェクトを Base44 に同期しますが、サンドボックスで作業する場合はローカルプロジェクトはありません。
  * 最後のアクションが `write` や `edit` の呼び出しではなく `sandbox run` を通じたシェルコマンドだった場合、そのコミットはまだ少し遅れています。切断する前に数秒待ってください。
</Warning>

## チェックポイント

チェックポイントは、特定のコミットにアンカーされたアプリのバージョン履歴上の復元ポイントです。[`sandbox checkpoint`](/developers/references/cli/commands/sandbox-checkpoint) で作成して既知の良好な状態をマークし、後で変更がうまくいかない場合はアプリエディタから復元します。チェックポイントを取得する前に保留中の変更がコミットされるため、常に最新のコードをキャプチャします。

## アプリエディタと並行して作業する

コーディングエージェントと Base44 アプリエディタは、同じアプリで同時に作業できます。取得するロックはなく、解放するセッションもありません。どちらの側の変更も同じ場所に反映されるので、同じプロジェクトを編集する同僚と同じように扱ってください。

<Warning>
  マージステップはありません。コーディングエージェントとアプリエディタが同じ時期に同じファイルを変更すると、最後に書き込まれたほうが勝ち、以前の変更は失われます。両方の側で同じ作業期間中に同じファイルに触れることは避けてください。
</Warning>

## パーミッション

サンドボックスへのアクセスを制御する 2 つの別々のチェックがあります: このアプリにアクセスできるかどうか、そして現在のセッションに書き込みアクセスが付与されているかどうかです。

### アプリアクセス

アプリ自体への管理者アクセスが必要です。ワークスペース管理者か、この特定のアプリの共同編集者のいずれかです。アクセスは呼び出しごとにチェックされるので、ワークスペースのロールを変更するとすぐに反映されます。

単なるワークスペースビューアはサンドボックスにまったくアクセスできません。唯一の例外は、ワークスペースがロールベースアクセスに移行する前からの旧アプリごとの編集者ロールも持つビューアです。その組み合わせであれば、サンドボックスから読み取ることはできますが、何も変更はできません。スーパーエージェントはサンドボックスコマンドをサポートしていません。

### セッションスコープ

アプリアクセスに加えて、サンドボックスの読み取りと変更にはセッション上で異なるパーミッションが必要です:

| コマンド                                                              | 必要なパーミッション             |
| ----------------------------------------------------------------- | ---------------------- |
| `sandbox ls`、`sandbox read`、`sandbox grep`                        | `apps:read` (デフォルトで付与) |
| `sandbox write`、`sandbox edit`、`sandbox run`、`sandbox checkpoint` | `sandbox:write`        |

セッションのパーミッションは作成時に固定され、後から拡張できません。CLI は `base44 login` 中に `sandbox:write` を要求し、MCP では OAuth 同意ステップで付与します。既存セッションの更新では追加されません。

そのため、読み取りコマンドは動作するが変更コマンドが `NOT_AUTHORIZED` で失敗する場合、`sandbox:write` が付与されていないセッションを使用しています。それを持つセッションを開始するには、[`base44 login`](/developers/references/cli/commands/login) を再度実行するか、MCP サーバーを再接続してサンドボックスアクセスを承認してください。

## 制限とガードレール

ファイルコマンドはアプリのルートに限定されます。絶対パスとルートを超えて上に登るパスは `PATH_OUTSIDE_SANDBOX` で拒否されます。`.agents` と `.git` ディレクトリはファイルコマンドから到達できず、`PROTECTED_PATH` で失敗します。これらはアプリのシークレットとリポジトリ資格情報を保持しているためです。唯一の例外は `.agents/skills` で、エージェントがアプリにインストールされた [skills](/developers/backend/overview/skills) と連携できるように読み書きできます。

機能全体で、アプリごとに 1 分あたり 120 の読み取りリクエスト、60 の変更リクエスト、30 の run コマンドに制限されます。いずれかを超えると `RATE_LIMITED` で失敗します。各コマンドの参照ページでは、`sandbox read` が受け入れるパス数や `sandbox write` が許可するファイルサイズなど、独自のサイズとカウント制限が説明されています。

## 関連情報

* [Base44 MCP server](/developers/backend/overview/mcp-server): AI アシスタントを Base44 アカウントに接続する
* [CLI Overview](/developers/references/cli/get-started/overview): Base44 CLI のインストールと使用
* [Project structure](/developers/backend/overview/project-structure): Base44 プロジェクトファイルの構成
* [Local development](/developers/backend/overview/local-dev/local-development-overview): 代わりに Base44 プロジェクトを自分のマシンで実行
* [Skills](/developers/backend/overview/skills): AI コーディングエージェントに Base44 との連携方法を教える
* [`connectors initiate`](/developers/references/cli/commands/connectors-initiate): サンドボックスやローカルプロジェクトなしでアプリにコネクタをセットアップ

<Note>このページは AI によって翻訳されました。最も正確で最新の情報については、[英語版](/) を参照してください。</Note>
