280개 이상의 piece를 MCP 서버로 노출하는 오픈소스 AI 워크플로 자동화.
한국어는 runchr 제공 번역입니다. 원문 README는 English tool page.
plano
Plano는 에이전틱 앱을 위한 Envoy 기반 AI 네이티브 프록시이자 데이터 플레인으로, 스마트 LLM 라우팅, 에이전트 오케스트레이션, 가드레일, 관측 기능을 제공합니다.
- Runs
- LLM proxy and agent orchestration data plane
- Hardware
- CPU
- API
- OpenAI-compatible
프로젝트 README (번역)
GitHub ↗Written by the project's own authors, not by runchr. Snapshot taken 2026-10-31.
에이전트 앱을 위한 AI 네이티브 프록시 서버이자 데이터 플레인.
Plano는 반복적인 배관 작업을 걷어내고 취약한 프레임워크 추상화로부터 여러분을 분리하며, 모든 코드베이스에서 맞춤 제작되어서는 안 되는 것들을 중앙화합니다. 예를 들어 에이전트 라우팅과 오케스트레이션, 지속적 개선을 위한 풍부한 에이전틱 시그널과 트레이스, 안전과 모더레이션을 위한 가드레일 필터, 모델 민첩성을 위한 스마트 LLM 라우팅 API 등이 있습니다. 어떤 언어나 AI 프레임워크를 사용하든, 에이전트를 더 빠르게 프로덕션에 출시하세요.
퀵스타트 가이드 •
Plano로 에이전틱 앱 빌드하기 •
문서 •
문의하기
Plano가 유용했다면 저장소에 Star ⭐️를 눌러주세요 — 새 릴리스와 업데이트가 여기에 가장 먼저 올라옵니다.
개요
에이전틱 데모를 만드는 것은 쉽습니다. 에이전틱 애플리케이션을 안전하고, 안정적이며, 반복 가능하게 프로덕션에 출시하는 것은 어렵습니다. 빠른 해킹의 짜릿함이 지나면, 프로덕션에 도달하기 위한 "숨겨진 미들웨어"를 만들게 됩니다. 올바른 에이전트에 도달하기 위한 라우팅 로직, 안전과 모더레이션을 위한 가드레일 훅, 지속적 학습을 위한 평가 및 관측성 글루, 그리고 프레임워크와 애플리케이션 코드 전반에 흩어진 모델/프로바이더의 특이점들 말입니다.
Plano는 핵심 딜리버리 관심사를 통합된 아웃오브프로세스 데이터플레인으로 옮겨 이를 해결합니다.
🚦 오케스트레이션: 에이전트 간 저지연 오케스트레이션; 앱 코드를 수정하지 않고 새 에이전트 추가.
🔗 모델 민첩성: 모델 이름, 별칭(시맨틱 이름) 또는 preferences 를 통한 자동 라우팅.
🕵 에이전틱 시그널™: 모든 에이전트에 걸쳐 시그널과 OTEL 트레이스/메트릭을 제로 코드로 캡처.
🛡️ 모더레이션 및 메모리 훅: Filter Chains 를 통해 일관되게 탈옥 방지, 모더레이션 정책, 메모리 추가.
Plano는 반복적인 배관 작업을 프레임워크에서 걷어내어, 가장 중요한 것, 즉 에이전틱 애플리케이션의 핵심 제품 로직에 집중할 수 있게 합니다. Plano는 업계를 선도하는 LLM 연구의 지원을 받으며, 현대적 워크로드를 위한 핵심 인프라를 대규모로 구축한 Envoy 핵심 기여자들에 의해 Envoy 위에 구축되었습니다.
고수준 네트워크 시퀀스 다이어그램 :
Plano를 사용하여 에이전틱 애플리케이션의 속도, 안전성, 관측성을 개선하는 방법을 알아보려면 문서로 이동하세요.
중요
Plano와 Plano LLM 제품군(예: Plano-Orchestrator)은 Plano의 훌륭한 첫 실행 개발자 경험을 제공하기 위해 미국 중부 리전에서 무료로 호스팅됩니다. 프로덕션 규모로 확장하고 실행하려면 이 LLM들을 로컬에서 실행하거나 Discord에서 API 키를 문의하세요.
Plano로 에이전틱 앱 빌드하기
Plano는 오케스트레이션, 모델 관리, 관측성을 모듈식 빌딩 블록으로 처리합니다. 필요한 것만 구성하여(에이전틱 오케스트레이션과 가드레일을 위한 엣지 프록싱, 또는 서비스에서의 LLM 라우팅, 또는 둘 다 함께) 기존 아키텍처에 깔끔하게 통합할 수 있습니다. 아래는 세 가지 핵심 기능을 모두 보여주는 Plano로 구축한 간단한 멀티 에이전트 여행 에이전트입니다.
📁 전체 작동 코드: 로컬에서 실행할 수 있는 완전한 날씨 및 항공편 에이전트는 demos/agent_orchestration/travel_agents/ 를 참조하세요.
1. YAML로 에이전트 정의하기
# config.yaml
version : v0.3.0
# 선언하는 것: 에이전트 URL과 자연어 설명
# 작성하지 않는 것: 의도 분류기, 라우팅 로직, 모델 폴백, 프로바이더 어댑터, 트레이싱 계측
agents :
- id : weather_agent
url : http://localhost:10510
- id : flight_agent
url : http://localhost:10520
model_providers :
- model : openai/gpt-4o
access_key : $OPENAI_API_KEY
default : true
- model : anthropic/claude-3-5-sonnet
access_key : $ANTHROPIC_API_KEY
listeners :
- type : agent
name : travel_assistant
port : 8001
router : plano_orchestrator_v1 # 4B 파라미터 라우팅 모델로 구동됩니다. 다른 모델로 변경할 수 있습니다
agents :
- id : weather_agent
description : |
전 세계 모든 도시의 실시간 날씨와 예보를 가져옵니다.
처리: "파리의 날씨는 어때?", "도쿄에 비가 올까?"
- id : flight_agent
description : |
실시간 상태와 스케줄로 공항 간 항공편을 검색합니다.
처리: "NYC에서 LA로 가는 항공편", "시애틀행 항공편 보여줘"
tracing :
random_sampling : 100 # 평가를 위한 트레이스 자동 캡처
2. 간단한 에이전트 코드 작성하기
에이전트는 OpenAI 호환 채팅 완료 엔드포인트를 구현하는 HTTP 서버일 뿐입니다. 어떤 언어나 프레임워크든 사용하세요:
# weather_agent.py
from fastapi import FastAPI , Request
from fastapi . responses import StreamingResponse
from openai import AsyncOpenAI
app = FastAPI ()
# Plano의 LLM 게이트웨이를 가리킵니다 - 모델 라우팅을 대신 처리합니다
llm = AsyncOpenAI ( base_url = "http://localhost:12001/v1" , api_key = "EMPTY" )
@ app . post ( "/v1/chat/completions" )
async def chat ( request : Request ):
body = await request . json ()
messages = body . get ( "messages" , [])
days = 7
# 에이전트 로직: 데이터 가져오기, API 호출, 도구 실행
# 전체 구현은 demos/agent_orchestration/travel_agents/ 를 참조하세요
weather_data = await get_weather_data ( request , messages , days )
# Plano를 통해 응답을 스트리밍합니다
async def generate ():
stream = await llm . chat . completions . create (
model = "openai/gpt-4o" ,
messages = [{ "role" : "system" , "content" : f"Weather: { weather_data } " }, * messages ],
stream = True
)
async for chunk in stream :
yield f"data: { chunk . model_dump_json () } \n \n "
return StreamingResponse ( generate (), media_type = "text/event-stream" )
3. Plano 시작하고 에이전트 쿼리하기
사전 요구사항: Plano를 설치하고 환경을 설정하려면 사전 요구사항 가이드를 따르세요.
# Plano 시작
planoai up config.yaml
...
# 쿼리 - Plano가 단일 대화에서 두 에이전트 모두로 지능적으로 라우팅합니다
curl http://localhost:8001/v1/chat/completions \
-H " Content-Type: application/json " \
-d ' {
"model": "gpt-4o",
"messages": [
{"role": "user", "content": "다음 주에 NYC에서 파리로 여행하고 싶어요. 그곳 날씨는 어떤가요, 그리고 항공편을 좀 찾아줄 수 있나요?"}
]
} '
# → Plano가 파리 날씨를 위해 weather_agent로 라우팅 ✓
# → 그다음 NYC → 파리 항공편을 위해 flight_agent로 라우팅 ✓
# → 날씨 정보와 항공편 옵션을 모두 담은 완전한 여행 계획 반환
4. 관측성과 모델 민첩성을 무료로 얻기
모든 요청은 OpenTelemetry로 엔드투엔드 추적됩니다 - 계측 코드가 필요 없습니다.
구축하지 않아도 되었던 것
인프라 관심사
Plano 없이
Plano와 함께
에이전트 오케스트레이션
의도 분류기 + 라우팅 로직 작성
YAML에 에이전트 설명 선언
모델 관리
각 프로바이더의 API 특이점 처리
상태 관리가 포함된 통합 LLM API
풍부한 트레이싱
모든 서비스를 OTEL로 계측
자동 엔드투엔드 트레이스와 로그
학습 시그널
스팬을 캡처/내보내는 파이프라인 구축
제로 코드 에이전틱 시그널
에이전트 추가
라우팅 코드 업데이트, 테스트, 재배포
설정에 추가, 재시작
효율적인 이유: Plano는 라우팅에 무거운 프레임워크나 GPT-4 대신 목적에 맞게 제작된 경량 LLM(예: 4B 파라미터 오케스트레이터)을 사용하여, 비용과 지연의 일부만으로 프로덕션급 라우팅을 제공합니다.
문의
저희와 연락하려면 discord 서버 에 참여해 주세요. 저희가 적극적으로 모니터링하며 그곳에서 지원을 제공합니다.
시작하기
Plano를 사용해 볼 준비가 되셨나요? 포괄적인 문서를 확인하세요:
퀵스타트 가이드 - 몇 분 만에 시작하고 실행하기
LLM 라우팅 - 모델 이름, 별칭 또는 지능형 preferences로 라우팅
에이전트 오케스트레이션 - 멀티 에이전트 워크플로 구축
Filter Chains - 가드레일, 모더레이션, 메모리 훅 추가
관측성 - 트레이스, 메트릭, 로그
기여
Roadmap 에 대한 피드백을 환영하며 Plano 에 대한 기여도 환영합니다! 버그 수정, 새 기능 추가, 문서 개선, 튜토리얼 제작 등 어떤 것이든 여러분의 도움에 감사드립니다. 자세한 내용은 기여 가이드 를 방문해 주세요
Plano가 유용했다면 저장소에 Star ⭐️를 눌러주세요 — 새 릴리스와 업데이트가 여기에 가장 먼저 올라옵니다.
Other tools that do the same work
Python과 .NET에서 프로덕션 AI 에이전트와 멀티 에이전트 워크플로를 구축하세요.
Python 프레임워크로, 구조화된 방식으로 신뢰할 수 있는 GenAI 에이전트 백엔드를 구축하기 위한
No comments yet.
to comment.