plano
무엇인가
Plano는 에이전트 애플리케이션과 LLM·외부 서비스 사이에 놓이는 아웃오브프로세스 데이터 플레인이다. 각 코드베이스에 bespoke로 들어가던 라우팅, 가드레일, 평가·관측 연결 코드를 애플리케이션 밖으로 끌어낸다. 언어와 AI 프레임워크를 가리지 않는다.
어떻게 동작하나
구현은 Envoy 코어 컨트리뷰터들이 만든 Envoy 기반 Rust 서버다. 에이전트는 YAML로 선언하고, 각 에이전트는 OpenAI 호환 chat completions 엔드포인트를 구현한 HTTP 서버로 등록한다. 요청은 프록시를 통과하며 Filter Chains를 거쳐 모델명·시맨틱 별칭·선호도 기반 라우팅 규칙에 따라 목적지가 정해진다. 라우팅 판단에는 GPT-4급 모델 대신 4B 파라미터급 경량 오케스트레이터 LLM을 쓴다. 모든 요청은 계측 코드 없이 OpenTelemetry 트레이스와 메트릭으로 기록된다.
무엇과 다른가
프레임워크 내장 추상화나 앱별 미들웨어와 달리 라우팅과 가드레일이 프로세스 밖에 있다. 새 에이전트를 추가할 때 애플리케이션 코드를 수정하지 않고 설정만 바꾼다. 모델 제공자별 차이와 별칭·재시도 규칙이 애플리케이션 코드에 흩어지지 않는다.
어떻게 쓰나
사용 흐름은 세 단계다. 에이전트를 YAML로 정의하고, 각 에이전트를 HTTP 서버로 띄운 뒤, Plano를 실행하고 그 주소로 질의한다. 엣지 프록시로만 쓸 수도 있고, 기존 서비스에서 LLM 라우팅만 가져다 쓸 수도 있으며, 둘을 함께 쓸 수도 있다. 동작 예제는 저장소의 demos/agent_orchestration/travel_agents/에 있다.
전제와 한계
Plano와 Plano-Orchestrator 같은 자체 LLM은 미국 중부 리전에서 무료로 호스팅된다. 프로덕션 규모로 쓰려면 해당 LLM을 로컬에서 돌리거나 Discord로 API 키를 받아야 한다. 에이전트는 OpenAI 호환 엔드포인트 규격을 따라야 하며, 프록시 실행 환경이 선행 설치로 필요하다.
관련 논문 1
유사 도구
- gateway1,600개 이상 LLM과 40개 이상 가드레일을 하나의 OpenAI 호환 API로 중계하는 TypeScript 기반 AI 게이트웨이다. 재시도·폴백·로드밸런싱을 설정으로 처리한다.
- litellm100개 이상 LLM 제공자를 OpenAI 포맷 단일 엔드포인트로 중계하는 오픈소스 AI 게이트웨이다. 가상 키·비용 추적·로드밸런싱을 프록시 계층에서 처리한다.
- bifrost23개 이상 LLM 제공자를 하나의 OpenAI 호환 API로 중계하는 Go 기반 AI 게이트웨이다. 5천 RPS에서 요청당 11µs 오버헤드를 추가한다.
- 9router여러 AI 코딩 CLI 도구를 40개 이상 제공자에 연결하고, 구독→저가→무료 순 폴백과 tool_result 압축으로 토큰을 줄이는 로컬 라우팅 프록시다.
- headroomLLM에 도달하기 전에 도구 출력·로그·파일·RAG 청크를 압축해 토큰을 줄이는 Python 라이브러리 겸 로컬 프록시 겸 MCP 서버다.
- rtk명령 출력을 LLM 컨텍스트에 넣기 전에 필터·압축해 토큰을 줄이는 Rust 단일 바이너리 CLI 프록시다. Bash 훅으로 명령을 가로채 필터를 적용한다.