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

# Code interpreter

> Изолированное выполнение кода в 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>Бета</span>
            </a>;
  }
  return <div className="betaBadge">
            <Icon />
            <span>
                Возможность в статусе бета. 
                <u>
                    <a href="/docs/beta-and-experimental-features#beta-features">
                        Подробнее.
                    </a>
                </u>
            </span>
        </div>;
};

Интерпретатор кода позволяет агенту выполнять код в управляемой песочнице. Используйте его для вычислений, преобразования данных, преобразования форматов, построения графиков и любых других задач, которые удобнее решать с помощью кода, а не естественного языка.

<div id="enable-it">
  ## Включите интерпретатор кода
</div>

В Конструкторе агентов включите **Запуск кода** в разделе **Возможности**, затем сохраните настройки. Агент сам определяет, когда запускать код, на основе запроса пользователя и собственных инструкций.

<Image img="https://mintcdn.com/private-7c7dfe99-mintlify-fbfa8bee/TCLsdkFwl4CgDiNY/images/cloud/agent-builder/run-code/run-code.png?fit=max&auto=format&n=TCLsdkFwl4CgDiNY&q=85&s=9e91e8cf1e3b83151488bfd87327ca9e" alt="Раздел «Запуск кода» на панели «Возможности» с установленным флажком «Запуск кода» и кнопкой 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>

Песочница — это Unix-среда с двумя универсальными средами выполнения и несколькими утилитами командной оболочки:

* **Python 3** — вариант по умолчанию для задач, связанных с данными.
* **Node.js (JavaScript)** — когда агенту для задачи предпочтительнее JS.
* **Bash** и **sh** — сценарии оболочки для объединения команд в цепочки и быстрого ввода-вывода.
* **AWK** и **sed** — построчная обработка текста.
* **bc** — вычисления с произвольной точностью.

Агенты в первую очередь используют Python для всего, что связано с разбором, преобразованием или вычислением данных.

<Tip>
  Используйте инструменты оболочки только для задач, которым действительно подходит однострочная команда.
</Tip>

<div id="files">
  ## Файлы
</div>

Пользователи могут загружать файлы в диалог; интерпретатор кода имеет к ним доступ в рабочем каталоге песочницы. Код также может создавать выходные файлы (CSV, графики, архивы), которые появляются в диалоге как скачиваемые вложения.

<div id="sandbox-isolation">
  ## Изоляция в песочнице
</div>

Каждое выполнение происходит в эфемерной песочнице без доступа к сети и без постоянного хранения данных. Сеансы не разделяют общее состояние — переменные и файлы из одного запуска не переходят в следующий, если агент явно не загрузит их заново.

Применяются лимиты ресурсов в зависимости от плана (память, количество файлов на запуск, ежемесячные квоты на запросы). Ошибки и `stderr` выводятся в диалоге рядом с `stdout`.

<div id="when-to-use-it">
  ## Когда его использовать
</div>

Используйте интерпретатор кода, когда для ответа нужны детерминированные вычисления, которые языковая модель не может надежно выполнить только за счет рассуждений.
Обычно это уместно в таких случаях:

* Разбор CSV- или JSON‑файла, загруженного пользователем.
* Вычисление сводной статистики или запуск быстрой симуляции.
* Преобразование данных между форматами (Parquet, JSON, CSV).
* Построение графика по результатам запроса.

<Tip>
  Не используйте его для задач, на которые модель уже может ответить на основе контекста.
  Выполнение кода увеличивает задержку и расходует квоту.
</Tip>
