Configuration Reference
The following is a complete reference of the plano_config.yml that controls the behavior of a single instance of
the Plano gateway. This where you enable capabilities like routing to upstream LLm providers, defining prompt_targets
where prompts get routed to, apply guardrails, and enable critical agent observability features.
1# Plano Gateway configuration version
2version: v0.3.0
3
4# External HTTP agents - API type is controlled by request path (/v1/responses, /v1/messages, /v1/chat/completions)
5agents:
6 - id: weather_agent # Example agent for weather
7 url: http://localhost:10510
8
9 - id: flight_agent # Example agent for flights
10 url: http://localhost:10520
11
12# MCP filters applied to requests/responses (e.g., input validation, query rewriting)
13filters:
14 - id: input_guards # Example filter for input validation
15 url: http://localhost:10500
16 # type: mcp (default)
17 # transport: streamable-http (default)
18 # tool: input_guards (default - same as filter id)
19
20# LLM provider configurations with API keys and model routing
21model_providers:
22 - model: openai/gpt-4o
23 access_key: $OPENAI_API_KEY
24 default: true
25
26 - model: openai/gpt-4o-mini
27 access_key: $OPENAI_API_KEY
28
29 - model: anthropic/claude-sonnet-4-0
30 access_key: $ANTHROPIC_API_KEY
31
32 - model: mistral/ministral-3b-latest
33 access_key: $MISTRAL_API_KEY
34
35 # Example: Passthrough authentication for LiteLLM or similar proxies
36 # When passthrough_auth is true, client's Authorization header is forwarded
37 # instead of using the configured access_key
38 - model: openai/gpt-4o-litellm
39 base_url: https://litellm.example.com
40 passthrough_auth: true
41
42# Model aliases - use friendly names instead of full provider model names
43model_aliases:
44 fast-llm:
45 target: gpt-4o-mini
46
47 smart-llm:
48 target: gpt-4o
49
50# HTTP listeners - entry points for agent routing, prompt targets, and direct LLM access
51listeners:
52 # Agent listener for routing requests to multiple agents
53 - type: agent
54 name: travel_booking_service
55 port: 8001
56 router: plano_orchestrator_v1
57 address: 0.0.0.0
58 agents:
59 - id: rag_agent
60 description: virtual assistant for retrieval augmented generation tasks
61 input_filters:
62 - input_guards
63
64 # Model listener for direct LLM access
65 - type: model
66 name: model_1
67 address: 0.0.0.0
68 port: 12000
69 # Optional: attach input filters for guardrails on direct LLM requests
70 # input_filters:
71 # - input_guards
72
73 # Prompt listener for function calling (for prompt_targets)
74 - type: prompt
75 name: prompt_function_listener
76 address: 0.0.0.0
77 port: 10000
78 # This listener is used for prompt_targets and function calling
79
80# Reusable service endpoints
81endpoints:
82 app_server:
83 endpoint: 127.0.0.1:80
84 connect_timeout: 0.005s
85
86 mistral_local:
87 endpoint: 127.0.0.1:8001
88
89# Prompt targets for function calling and API orchestration
90prompt_targets:
91 - name: get_current_weather
92 description: Get current weather at a location.
93 parameters:
94 - name: location
95 description: The location to get the weather for
96 required: true
97 type: string
98 format: City, State
99 - name: days
100 description: the number of days for the request
101 required: true
102 type: int
103 endpoint:
104 name: app_server
105 path: /weather
106 http_method: POST
107
108# OpenTelemetry tracing configuration
109tracing:
110 # Random sampling percentage (1-100)
111 random_sampling: 100