> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-fix-nav-issues.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# コードインタープリター

> ClickHouse Agents でのサンドボックス環境でのコード実行

export const Image = ({img, alt, size}) => {
  return <Frame>
      <img src={img} alt={alt} />
    </Frame>;
};

export const galaxyOnClick = eventName => () => {
  try {
    if (typeof window !== "undefined" && window.galaxy && eventName) {
      window.galaxy.track(eventName, {
        interaction: "click"
      });
    }
  } catch (e) {}
};

export const BetaBadge = ({link, galaxyTrack, galaxyEvent}) => {
  if (link) {
    return <a href={link} target="_blank" rel="noopener noreferrer" className="betaBadge" onClick={galaxyTrack && galaxyEvent ? galaxyOnClick(galaxyEvent) : undefined}>
                <Icon />
                <span>Beta</span>
            </a>;
  }
  return <div className="betaBadge">
            <Icon />
            <span>
                Beta feature. 
                <u>
                    <a href="/docs/beta-and-experimental-features#beta-features">
                        Learn more.
                    </a>
                </u>
            </span>
        </div>;
};

コードインタープリターを使うと、エージェントが管理されたサンドボックス環境でコードを実行できます。計算、データ変換、フォーマット変換、プロットの作成など、自然言語よりもコードで行うほうが適した作業に利用できます。

<div id="enable-it">
  ## コードインタープリターを有効にする
</div>

エージェントビルダーの **Capabilities** セクションで **Run Code** を有効にし、保存します。コードを実行するタイミングは、ユーザーのリクエストとエージェントへの指示に基づいてエージェントが判断します。

<Image img="https://mintcdn.com/private-7c7dfe99-fix-nav-issues/huP88Vza7bEG09HU/images/cloud/agent-builder/run-code/run-code.png?fit=max&auto=format&n=huP88Vza7bEG09HU&q=85&s=06891a5870718ef780f120e541ba171f" alt="Capabilities パネルの Run Code セクション。Run Code のチェックボックスがオンになっており、Upload to Code Environment ボタンが表示されている" size="sm" width="616" height="1412" data-path="images/cloud/agent-builder/run-code/run-code.png" />

<div id="supported-languages">
  ## サポートされている言語
</div>

このサンドボックスは、2 つの汎用ランタイムと、いくつかのシェルユーティリティを備えた Unix 環境です。

* **Python 3** - データ処理タスクのデフォルトです。
* **Node.js (JavaScript)** - エージェントがそのタスクで JS を優先する場合に使用します。
* **Bash** and **sh** - コマンドをつないだり、簡単な I/O を行ったりするためのシェルスクリプト用です。
* **AWK** and **sed** - 行単位のテキスト処理用です。
* **bc** - 任意精度の計算用です。

エージェントは、データのパース、変換、計算を伴う処理では、まず Python を使います。

<Tip>
  シェルツールは、ワンライナーで本当に効果があるタスクに限って使ってください。
</Tip>

<div id="files">
  ## ファイル
</div>

ユーザーは会話にファイルをアップロードできます。コードインタープリターは、サンドボックスの作業ディレクトリ内でそれらのファイルにアクセスできます。コードは出力ファイル (CSV、プロット、アーカイブ) を書き出すこともでき、それらは会話内にダウンロード可能な添付ファイルとして表示されます。

<div id="sandbox-isolation">
  ## サンドボックスの分離
</div>

各実行は、ネットワークアクセスも永続ストレージもない一時的なサンドボックス内で実行されます。セッション間で状態は共有されません。つまり、エージェントが明示的に再読み込みしない限り、ある実行で使用した変数やファイルが次の実行に引き継がれることはありません。

プランごとのリソース制限 (メモリ、1 実行あたりのファイル数、月間リクエストクォータ) が適用されます。エラーと stderr は、stdout とあわせて会話内に表示されます。

<div id="when-to-use-it">
  ## 使用するタイミング
</div>

答えを得るのに、言語モデルが推論だけでは確実に実行できない決定論的な計算が必要な場合は、コードインタープリターを使用してください。
一般的なケースは次のとおりです。

* ユーザーがアップロードしたCSVまたはJSONファイルをパースする。
* 要約統計量を計算したり、簡単なシミュレーションを実行したりする。
* フォーマットを変換する (Parquet、JSON、CSV) 。
* クエリ結果からプロットを生成する。

<Tip>
  モデルがコンテキストだけですでに答えられるタスクには使用しないでください。
  コードの実行はレイテンシを増やし、クォータを消費します。
</Tip>
