코드 인터프리터를 사용하면 에이전트가 관리형 샌드박스에서 코드를 실행할 수 있습니다. 계산, 데이터 변환, 포맷 변환, 시각화, 그 밖에 자연어보다 코드로 처리하는 편이 더 적합한 작업에 활용하십시오.
Agent Builder의 Capabilities 섹션에서 Run Code를 활성화한 다음 저장합니다. 에이전트는 사용자 요청과 에이전트 지침에 따라 코드를 실행할지와 실행 시점을 결정합니다.
샌드박스는 2개의 범용 런타임과 몇 가지 셸 유틸리티를 제공하는 Unix 환경입니다:
- Python 3 - 데이터 작업의 기본값입니다.
- Node.js (JavaScript) - 에이전트가 작업에 JS를 선호할 때 사용합니다.
- Bash 및 sh - 명령을 연결하거나 빠른 IO를 처리하기 위한 셸 스크립팅용입니다.
- AWK 및 sed - 줄 단위 텍스트 처리용입니다.
- bc - 임의 정밀도 연산용입니다.
에이전트는 데이터 파싱, 변환 또는 계산이 필요한 작업에서는 우선 Python을 사용합니다.
한 줄 명령으로 처리하는 것이 정말 유리한 작업에만 셸 도구를 사용하세요.
사용자는 대화에 파일을 업로드할 수 있으며, 코드 인터프리터는 샌드박스 작업 디렉터리에서 해당 파일에 접근할 수 있습니다. 또한 코드는 출력 파일(CSV, 플롯, 아카이브)을 생성할 수 있으며, 이러한 파일은 대화에 다운로드 가능한 첨부 파일로 표시됩니다.
각 실행은 네트워크에 접근할 수 없고 영구 저장소도 없는 임시 샌드박스에서 수행됩니다. 세션 간에는 상태가 공유되지 않으므로, 한 번의 실행에서 생성된 변수와 파일은 에이전트가 명시적으로 다시 로드하지 않는 한 다음 실행으로 넘어가지 않습니다.
플랜별 리소스 제한(메모리, 실행당 파일 수, 월간 요청 쿼터)이 적용됩니다. 오류와 stderr는 stdout과 함께 대화에 표시됩니다.
답변에 언어 모델이 추론만으로는 안정적으로 수행할 수 없는 결정론적 계산이 필요할 때는 코드 인터프리터를 사용하십시오.
일반적인 예는 다음과 같습니다.
- 사용자가 업로드한 CSV 또는 JSON 파일을 파싱하는 경우
- 요약 통계를 계산하거나 간단한 시뮬레이션을 실행하는 경우
- 포맷 간 변환(Parquet, JSON, CSV)
- 쿼리 결과에서 그래프를 생성하는 경우
모델이 이미 문맥만으로 답할 수 있는 작업에는 사용하지 마십시오.
코드 실행은 지연 시간을 늘리고 할당량을 소모합니다.