3.6 KiB
3.6 KiB
Code Execution (코드 실행)
📌 Brief Summary
코드 실행(Code Execution)은 에이전트 하네스가 대규모 언어 모델(LLM)에 자율적인 문제 해결 능력을 부여하기 위해 제공하는 핵심 기술 프리미티브이다 [1, 2]. 에이전트가 사전에 정의된 도구에만 의존하지 않고 Bash나 Python 등의 코드를 직접 작성하여 환경과 상호작용하도록 가상의 컴퓨터를 제공하는 역할을 한다 [3, 4]. 이러한 코드 실행은 호스트 시스템의 안전을 보장하기 위해 주로 샌드박스나 마이크로VM과 같은 격리된 환경에서 이루어진다 [5-7].
📖 Core Content
- 자율적 문제 해결 및 도구의 일반화: 코드 실행은 에이전트 하네스의 5대 핵심 프리미티브 중 하나로, 비정형 문제에 대한 동적 해결책을 자율적으로 생성할 수 있게 한다 [1, 2]. 에이전트 하네스에는 Bash 등의 일반 목적 도구가 포함되어 있어, 에이전트가 코드를 통해 스스로 도구를 설계하고 문제를 해결할 수 있다 [3, 4].
- 효율성 및 토큰 최적화: 다단계 도구 호출을 코드로 대체하면 효율성이 크게 향상된다. 예를 들어, MCP 서버와 상호작용할 때 에이전트가 개별 도구를 직접 여러 번 호출하는 대신 이를 수행하는 코드를 작성해 실행하도록 하면 토큰 오버헤드를 최대 98.7%까지 절감할 수 있다 [8]. 또한 셸(Shell) 접근을 활용하면 모델 추론을 거치거나 토큰 비용을 소모하지 않고도 가상 머신에서 명령을 직접 실행할 수 있다 [7].
- 샌드박싱 및 격리된 실행 환경: 에이전트가 작성한 코드를 실행할 수 있는 안전한 환경을 보장하기 위해 하네스는 온디맨드 샌드박스를 제공한다 [6]. Microsoft의 AutoGen은 Docker 네이티브 샌드박싱을 지원하여 코드 작성 에이전트를 호스트 시스템으로부터 격리하며 [9], AgentCore는 세션마다 전용 CPU, 메모리, 파일 시스템을 갖춘 독립된 마이크로VM(microVM)을 띄워 코드를 실행한다 [7, 10]. 이외에도 제공자 관리형 환경에서 명령을 실행하는 호스팅된 셸(Hosted shell) 방식도 존재한다 [11].
⚖️ Trade-offs & Caveats
- 보안 위험과 명시적 승인 요구: 모델이 생성한 코드를 로컬 호스트 환경에서 직접 실행하는 것은 높은 위험을 수반한다 [6]. 따라서 로컬 셸 실행 시에는 격리된 환경을 사용해야 하며, 명령이 실행되기 전에 애플리케이션 측에서 명확한 승인(Approval) 체크포인트를 두어 제어권을 유지해야 한다 [11-13].
- 실행 환경의 콜드 스타트 지연: 안전한 코드 실행을 위해 샌드박스나 마이크로VM을 온디맨드로 생성하고 파괴하는 과정에서 초기 구동 지연(Latency)이 발생할 수 있다 [5, 6]. 예를 들어 E2B와 같이 에이전트 도구 루프용으로 특별히 설계된 마이크로VM은 약 150ms의 콜드 스타트 시간을 제공하지만, 인프라의 아키텍처나 환경에 따라 지연율에 차이가 발생할 수 있다 [5].
- 출력물로 인한 컨텍스트 과부하: 코드 실행 결과로 반환되는 방대한 에러 로그나 출력물은 모델의 컨텍스트 윈도우를 빠르게 소모시켜 '컨텍스트 부패(Context Rot)'를 유발할 수 있다 [14, 15]. 이를 방지하기 위해 도구 호출 결과의 일부만 유지하고 나머지는 파일 시스템으로 오프로딩(Offloading)하는 등의 하네스 차원의 최적화 관리가 필수적으로 동반되어야 한다 [15].
Last updated: 2026-05-05