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