> ## 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>

Agent Builder의 **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** 및 **sh** - 명령을 연결하거나 빠른 IO를 처리하기 위한 셸 스크립팅용입니다.
* **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>
