コードインタープリターを使うと、エージェントが管理されたサンドボックス環境でコードを実行できます。計算、データ変換、フォーマット変換、プロットの作成など、自然言語よりもコードで行うほうが適した作業に利用できます。
エージェントビルダーの Capabilities セクションで Run Code を有効にし、保存します。コードを実行するタイミングは、ユーザーのリクエストとエージェントへの指示に基づいてエージェントが判断します。
このサンドボックスは、2 つの汎用ランタイムと、いくつかのシェルユーティリティを備えた Unix 環境です。
- Python 3 - データ処理タスクのデフォルトです。
- Node.js (JavaScript) - エージェントがそのタスクで JS を優先する場合に使用します。
- Bash and sh - コマンドをつないだり、簡単な I/O を行ったりするためのシェルスクリプト用です。
- AWK and sed - 行単位のテキスト処理用です。
- bc - 任意精度の計算用です。
エージェントは、データのパース、変換、計算を伴う処理では、まず Python を使います。
シェルツールは、ワンライナーで本当に効果があるタスクに限って使ってください。
ユーザーは会話にファイルをアップロードできます。コードインタープリターは、サンドボックスの作業ディレクトリ内でそれらのファイルにアクセスできます。コードは出力ファイル (CSV、プロット、アーカイブ) を書き出すこともでき、それらは会話内にダウンロード可能な添付ファイルとして表示されます。
各実行は、ネットワークアクセスも永続ストレージもない一時的なサンドボックス内で実行されます。セッション間で状態は共有されません。つまり、エージェントが明示的に再読み込みしない限り、ある実行で使用した変数やファイルが次の実行に引き継がれることはありません。
プランごとのリソース制限 (メモリ、1 実行あたりのファイル数、月間リクエストクォータ) が適用されます。エラーと stderr は、stdout とあわせて会話内に表示されます。
答えを得るのに、言語モデルが推論だけでは確実に実行できない決定論的な計算が必要な場合は、コードインタープリターを使用してください。
一般的なケースは次のとおりです。
- ユーザーがアップロードしたCSVまたはJSONファイルをパースする。
- 要約統計量を計算したり、簡単なシミュレーションを実行したりする。
- フォーマットを変換する (Parquet、JSON、CSV) 。
- クエリ結果からプロットを生成する。
モデルがコンテキストだけですでに答えられるタスクには使用しないでください。
コードの実行はレイテンシを増やし、クォータを消費します。