LangStudio のコードモードを使用すると、Python コードでエージェントアプリケーションを構築できます。作成からデバッグ、クラウドへのデプロイまで、エンドツーエンドでサポートします。このガイドでは、ツール呼び出し、スキル、ストリーミング出力に対応するエージェントを 5 分 未満で構築する手順を説明します。
製品戦略の調整に伴い、PAI-LangStudio は 2027 年 3 月 9 日 16:00 に廃止されます。廃止日以降、PAI コンソールで LangStudio の機能を使用できなくなり、関連するサポートサービスもすべて提供終了となります。詳細については、「PAI-LangStudio retirement and migration guide」をご参照ください。
前提条件
開始する前に、次の項目を用意してください:
PAI が有効化された Alibaba Cloud アカウント
Alibaba Cloud Model Studio の API キー
手順 1:アプリケーションの作成
PAI コンソール にログインします。上部メニューでリージョンを選択します (例: China (Hangzhou))。
左側のナビゲーションペインで、[モデルアプリケーション] > [アプリケーション開発 (LangStudio)] を選択します。
[アプリケーション] タブで、[アプリケーションの作成] をクリックし、ドロップダウンリストから [コードモード] を選択します。
[アプリケーションの作成] ページで、次のパラメーターを設定します。
パラメータ
説明
[作成方法]
[Create from Template] を選択し、次に [LLM Basic] を選択します。
[名前]
アプリケーションの名前を入力します (例: agent_demo)。
[ランタイムの選択]
ランタイムは、コードを実行およびデバッグするためのコンピューティング環境です。ドロップダウンリストから既存のランタイムを選択します。利用可能なランタイムがない場合は、[新規ランタイム] をクリックして、デフォルト設定で 1 つ作成します。複数のアプリケーションで同じランタイムを共有できます。
[作業パス]
ワークフロー設定、ログ、一時ファイルを保存するための OSS バケットパスです。ランタイムを選択すると自動的に入力されます。
説明
(任意) アプリケーションの簡単な説明です。
[確認] をクリックします。 LangStudio の開発者ページに移動します。
手順 2:環境変数の設定
agent_loop.py で設定されている Alibaba Cloud Model Studio の Base URL を必ず確認してください。適切なリージョンに切り替え、そのリージョンの API キーを取得してください。詳細については、「Obtain an API key」をご参照ください。
左側の EXPLORER パネルで、プロジェクトのルートディレクトリに .env ファイルを作成し、次の内容を記述します:
注意:この操作には、紐付けられて実行中のランタイム環境が必要です。
DASHSCOPE_API_KEY=your-api-key-hereランタイムは起動時に .env ファイルから環境変数を自動的に読み込みます。

国際アカウントを使用している場合は、agent_loop.py を開き、118 行目の base_url を更新します:
# 変更前:
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
# 変更後:
base_url="https://dashscope-intl.aliyuncs.com/compatible-mode/v1"国際 API キーを中国本土のエンドポイントで使用すると、接続に失敗します。
手順 3:プロジェクト構造
LLM Basic テンプレートには、すぐに使えるエージェントプロジェクトが含まれています:
project/
├── agent.py # エントリファイル:FastAPI アプリと API エンドポイントを定義します
├── agent_loop.py # コアロジック:LLM 呼び出しとツール実行ループを処理します
├── agui.py # AG-UI Protocol のイベントストリーム変換
├── skills.py # スキルシステム:スキルの検出、読み込み、実行
├── skills/ # スキルディレクトリ
│ ├── get-current-time/
│ └── create-plan/
├── requirements.txt # Python 依存関係
├── .env # 環境変数ファイル (手動で作成)
└── README.md # 詳細ドキュメントagent.py はデフォルトのエントリファイルであり、グローバルな FastAPI オブジェクト (app) を公開する必要があります。LangStudio はこのオブジェクトを検出して読み込み、サービスを起動します。
テンプレートの拡張方法の詳細については、README.md を参照してください。
手順 4:エージェントのデバッグ
開発者ページの右上隅にある [実行] をクリックします。LangStudio がランタイムを起動し、コードをロードします。準備が完了すると、右側にデバッグパネルが表示されます。
API デバッグでのテスト
[API デバッグ] タブで、テストする API エンドポイント (たとえば POST /) を選択し、リクエストパラメーターを入力してリクエストを送信します。
リクエスト例:
{
"question": "What is the weather like in Beijing today?"
}想定されるレスポンス:
{
"answer": "The weather in Beijing today is sunny, with temperatures between 10°C and 20°C."
}
チャットパネルでのテスト
[チャット] ページに移動してメッセージを直接送信し、マルチターンセッションを開始します。
チャットパネルは AG-UI Protocol を使用するため、サービスは /ag-ui エンドポイントをサポートする必要があります。
トレース分析の確認
テスト方法に関係なく、すべてのリクエストは自動的にトレースされます。トレースには次の情報が含まれます:
リクエスト時間:各ステージに要した時間
LLM 呼び出しの詳細:モデルパラメータとトークン使用量
ツール呼び出しの記録:呼び出されたツールと返された結果
エラーメッセージ:エラー発生時の詳細なスタックトレース

コードが例外をスローした場合、[実行] ページでワーカーログを確認してください。
手順 5:サービスのデプロイ
デバッグが完了したら、アプリケーションをスケーラブルなオンラインサービスとしてデプロイします。
開発者ページの右上隅にある[確認]をクリックします。
ダイアログボックスで、デプロイリソース、サービス名、Virtual Private Cloud (VPC)、vSwitch を設定します。LangStudio は FastAPI アプリを PAI-EAS サービスとしてパッケージ化します。
重要LLM サービスにはパブリックインターネットへのアクセスが必要ですが、PAI-EAS サービスは、デフォルトでは外部へのインターネットアクセスがありません。これを有効にするには、VPC と vSwitch に NAT ゲートウェイを関連付けてください。関連付けない場合、すべての LLM 呼び出しが失敗します。設定手順については、「Access public or private network resources from EAS」をご参照ください。
[デプロイメントフロー] ページで、デプロイ内容を確認し、[デプロイを送信] をクリックします。
デプロイには 5~10 分かかります。完了したら、右上隅の [EAS に移動] をクリックします。
[概要] タブの [基本情報] セクションで [エンドポイント情報を表示] をクリックして、エンドポイント URL と認証トークンを取得します。
デプロイしたサービスのテスト:
# <EAS_ENDPOINT> と <EAS_TOKEN> を、お使いのエンドポイント URL と認証トークンに置き換えてください。
curl -X POST '<EAS_ENDPOINT>' \
-H 'Authorization: Bearer <EAS_TOKEN>' \
-H "Content-Type: application/json" \
-d '{"question": "What is the weather like in Beijing today?"}'EAS サービスページのモニタリング機能とトレース機能を使用して、パフォーマンスメトリクスを追跡し、リクエストトレースをリアルタイムで確認できます。
手順 6:エージェントのカスタマイズ
LLM Basic テンプレートは、カスタマイズの出発点です。ここでは、よくある拡張方法を紹介します。
システムプロンプトの変更
agent.py の to_messages() メソッドを編集し、エージェントの役割と振る舞いを定義します:
def to_messages(self) -> list:
return [
{"role": "system", "content": "You are a professional travel planning assistant. Your answers should be concise, actionable, and presented as a checklist."},
{"role": "user", "content": self.question},
]カスタムツールの追加
agent.py で標準的な Python 関数を定義します。関数名がツール名になり、型アノテーションによりツールスキーマが自動生成されます。同期関数と async def 関数の両方に対応しています。
def geocode(city: str) -> str:
"""都市の地理座標を取得します。"""
# 実際の API 呼び出しに置き換えます
return '{"lat": 39.9042, "lng": 116.4074}'API エンドポイントでツールリストを agent_loop に渡します:
@app.post("/")
async def query(req: QueryRequest) -> QueryResponse:
tools = [get_weather, geocode]
async for chunk in agent_loop(req.to_messages(), tools=tools):
# ...スキルの追加
スキルは、エージェントが使用する複雑な指示やスクリプトを整理するための仕組みです。
例として
my-skillのように、skills/配下にスキル用のサブディレクトリを作成します。このディレクトリにはSKILL.mdファイルが必須です:skills/ └── my-skill/ ├── SKILL.md # 必須:スキル定義ファイル └── scripts/ # 任意:このスキルで実行するスクリプト └── run.pySKILL.mdにスキル定義を記述します:--- name: my-skill description: Use this skill when the user needs to perform a specific task. --- # マイスキル ## ゴール このスキルが何をするかを 1 文で記述します。 ## 手順 詳細な操作手順...
エージェントはシステムプロンプトを通じて利用可能なスキルを自動的に検出し、組み込みの load_skill_file ツールと execute_script ツールを使用して実行します。