前提条件
始める前に、以下を用意してください。- macOS または Linux のターミナル、Python 3.12 以降、および
uv。 SANDBOX_USERaction が付与された CoreWeave API アクセストークン。- Pi がサポートするモデルプロバイダーの認証情報。このガイドでは Serverless Inference を使用します。Serverless Inference の利用には推論クレジットが必要です。
- 公開 Git リポジトリの URL。非公開リポジトリを使用する場合は、サンドボックス内で別途 Git の認証を設定する必要があります。
ローカル環境を準備する
ローカルプロジェクトを作成し、サンドボックスのソフトウェア開発キット (SDK) をインストールします。[API-ACCESS-TOKEN] はご自身の CoreWeave API アクセストークンに置き換えてください。
サンドボックスを作成する
次のスクリプトをcreate_pi_sandbox.py として保存します。このスクリプトは CPU サンドボックスを作成し、Pi 0.87.1 をインストールしてから、リポジトリをクローンします。ランタイムと Git は Node.js イメージに含まれています。セットアップに失敗した場合、スクリプトはサンドボックスを停止してからエラーを送出します。
create_pi_sandbox.py
[REPOSITORY-URL] を使用するリポジトリの URL に置き換えてから、次のコマンドを実行します。
0.87.1 が出力されます。スクリプトの終了後も、サンドボックスは停止するか 4 時間の有効期間が切れるまで実行され続けます。有効期間には起動にかかる時間も含まれます。
ターミナルを接続する
次の内容をattach_sandbox.py として保存します。このスクリプトは、ターミナルからの入力をサンドボックス内の Bash シェルに転送し、シェルの終了時にローカルのターミナル設定を元に戻します。
attach_sandbox.py
[SANDBOX-ID] をサンドボックスの ID に置き換えます。
モデルプロバイダーを選択する
以下のいずれかのオプションを選択してください。このガイドでは、サンドボックスの認証とモデルの認証に別々の認証情報を使用します。Pi は自身のプロセスに提供された認証情報にアクセスできるほか、ワークスペースのコンテンツを選択したモデルプロバイダーに送信することもできます。Serverless Inference を使用する
この手順ガイドでは Serverless Inference の使用をおすすめします。この例ではzai-org/GLM-5.2 を使用します。タスクにより適したモデルがある場合は、モデルカタログから別のモデルを選択してください。
サンドボックスのシェルで、入力内容が表示されないプロンプトに、推論クレジットがあるアカウントの Forge APIキーを入力します。
~/.pi/agent/models.json ファイルが作成されます。ヒアドキュメントの区切り文字を引用符で囲んでいるため、環境変数の参照は展開されずにそのまま保持されます。これにより、ファイルにキーが書き込まれることはありません。
/workspace/project と zai-org/GLM-5.2 が表示されます。モデルにアクセスできることを検証するには、Pi を実行して作業を確認する の手順でタスクを送信してください。
この設定では、各応答の上限は 8,192 トークンです。モデルを変更する場合は、プロバイダーに合わせてモデル ID と機能を更新してください。その他の設定オプションについては、Pi のモデルの設定 を参照してください。
別のプロバイダーを使用する
Anthropic または OpenAI を直接使用するには、対応する APIキーを選択し、同じサンドボックスのシェルで Pi を起動します。- Anthropic
- OpenAI
/model を使用すると、プロバイダーで利用可能なモデルを選択できます。その他のプロバイダーやアカウントでのサインイン方法については、前提条件でリンクしている Pi のプロバイダーに関するドキュメントを参照してください。
Pi を実行して作業結果を確認する
Pi にプロジェクトの信頼を確認するプロンプトが表示された場合は、その指示に従ってください。Pi がクローンしたリポジトリ内でファイルを作成して読み取れることを確認するには、Pi で次のタスクを送信します。/quit を入力してサンドボックスのシェルに戻ります。Pi は pi --session コマンドを含む To resume this session: 行を出力します。この会話を再開できるよう、このコマンドを控えておいてください。
ファイルを Pi とは別に検証します。
Hello from CoreWeave が含まれていることを確認してください。
Forge のセットアップを使ってタスクを無人で実行するには、同じシェルから Pi を Print モードで実行します。
会話に再接続する
サンドボックスの実行中に再接続するには、attach_sandbox.py スクリプトをもう一度実行します。Pi を起動する前に、前回のシェルで指定した APIキーを再入力し、/workspace/project ディレクトリに戻ってください。対話型の会話を再開するには、[SESSION-ID] を、Pi の終了時に出力された To resume this session: 行の ID に置き換えます。
pi --continue を実行すると、その project で最後に使用したセッションが再開されます。対話型の会話の後に print モードの例を実行した場合は、print モードのセッションが再開されます。特定の会話に戻るには、--session を使用してください。
結果を取得して停止する
exit と入力してサンドボックスのシェルを終了します。ローカルのターミナルで、次の内容を collect_pi_result.py という名前で保存します。
collect_pi_result.py
[SANDBOX-ID] をご自身のサンドボックス ID に置き換えて、スクリプトを実行します。
stop_pi_sandbox.py として保存します。
stop_pi_sandbox.py
トラブルシューティング
よくある問題は、次の点を確認して解決してください。- サンドボックスの作成に失敗する場合は、サンドボックスの認証情報と、前提条件のリンク先に記載されているサンドボックスの認証要件を確認してください。
- Pi が認証できない場合は、Pi を起動するシェルでモデルの認証情報がエクスポートされていることを確認してください。Forge を使用している場合は、推論クレジットとモデル ID も確認してください。
- Pi がプロバイダーに接続できない場合は、プロバイダーのエンドポイントへのアウトバウンドアクセスを確認してください。インストールとクローンには、npm と Git ホストへのアクセスも必要です。
- 接続が切断された場合は、サンドボックスの実行中に再度アタッチしてください。ターミナルが切断されてもプロセスを継続させる必要がある場合は、
tmuxなどのターミナルマルチプレクサーを使用してください。
次のステップ
詳細については、次のリソースを参照してください。- インタラクティブシェルでは、SDK を使用したターミナルアクセスについて説明しています。
- ファイル操作では、ワークスペース内のファイルのアップロードと取得について説明しています。
- Pi のドキュメントでは、セッション、モデル選択、拡張機能について説明しています。