Pi 1.0, 하네스 내 도구 오케스트레이션을 위한 Codemode 도입
핵심 내용
Pi 1.0이 샌드박스 내 JavaScript 실행으로 도구 호출을 오케스트레이션하는 Codemode를 출시했다.
자세히 보기
Codemode 아키텍처 및 이점
Pi 1.0은 LLM이 하네스 환경 내에서 복잡한 작업을 직접 오케스트레이션할 수 있는 Codemode 기능을 도입했다. 기존 도구 호출이 LLM의 컨텍스트 창을 거치는 것과 달리, Codemode는 WASM 런타임 내의 샌드박스화된 QuickJS 환경에서 실행된다. 이 설정은 네트워크, 파일 시스템, 타이머를 금지하고 RAM을 제한하는 엄격한 보안 한계를 적용하지만, 에이전트가 여러 도구 호출을 프로그래밍 방식으로 구성할 수 있도록 허용한다.
주요 기능은 다음과 같다:
- 컨텍스트 효율성: Codemode 내에서 데이터를 처리함으로써 에이전트는 원시 출력으로 LLM 컨텍스트를 채우지 않는다. 예를 들어 2000줄을 초과하는 bash 출력물은 잘리거나 오버플로 파일로 보내지는 대신 Codemode가 구조적으로 처리한다.
- 동시성 및 워크플로: 에이전트는
Promise.all과 같은 JavaScript 기능을 사용하여 여러 항목을 탐색하거나 배치를 처리하는 등 동시 작업을 실행할 수 있으며, Pi는 총 동시 도구 실행 수를 4개로 제한한다. - 상태 관리: Codemode는 세션 트랜스크립트에 데이터를 저장하여 이후 호출 시 결과를 검색하고 재사용할 수 있다.
- 내부 API 접근: 컨텍스트 절약을 위해 표준 도구로 제공되지 않는 이미지 생성 및 분류와 같은 내부 모델 API를 노출한다.
MCP 통합 및 한계
Codemode는 Model Context Protocol (MCP) 서버와의 상호작용을 개선하도록 설계되었다. 에이전트는 모든 MCP 도구를 LLM에 노출하는 대신 Codemode를 사용하여 점진적 발견을 수행하고 MCP 도구를 직접 호출한다. 그러나 현재 MCP 구현은 이 패턴에 완전히 최적화되지 않았다는 점이 지적된다:
- 구조화된 콘텐츠: 많은 MCP 서버가 Codemode의 효율적인 처리에 필요한 구조화된 JSON을 아직 반환하지 않는다.
- 이진 데이터: MCP는 현재 대용량 이진 데이터 지원을欠如하여 사전 서명된 URL과 같은 우회책을 강요한다.
- 이중 이스케이핑: Codemode를 자체 구현한 MCP 서버(예: Cloudflare)를 사용할 때 에이전트는 복잡한 이중 JSON 이스케이프 문제에 직면한다.
향후 방향
저자는 Codemode가 단순한 CLI 사용을 넘어 더 풍부한 하네스 내 오케스트레이션으로 나아가는 'Code Is All You Need' 철학의 진화라고 주장한다. 향후 개선 사항으로는 내구성 향상을 위한 Starlark와 같은 결정적 언어 채택, 그리고 소형 모델 및 이진 데이터 처리 관련 한계 해결 등이 포함될 수 있다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.