plano

AI GatewaysCLIRust

★ 7,047주당 +12조회 5

무엇인가

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

유사 도구