Configuration Reference

The following is a complete reference of the plano_config.yml that controls the behavior of a single instance of the Arch 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# Arch 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://host.docker.internal:10510
  8
  9  - id: flight_agent # Example agent for flights
 10    url: http://host.docker.internal: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://host.docker.internal: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        filter_chain:
 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
 70  # Prompt listener for function calling (for prompt_targets)
 71  - type: prompt
 72    name: prompt_function_listener
 73    address: 0.0.0.0
 74    port: 10000
 75    # This listener is used for prompt_targets and function calling
 76
 77# Reusable service endpoints
 78endpoints:
 79  app_server:
 80    endpoint: 127.0.0.1:80
 81    connect_timeout: 0.005s
 82
 83  mistral_local:
 84    endpoint: 127.0.0.1:8001
 85
 86# Prompt targets for function calling and API orchestration
 87prompt_targets:
 88  - name: get_current_weather
 89    description: Get current weather at a location.
 90    parameters:
 91      - name: location
 92        description: The location to get the weather for
 93        required: true
 94        type: string
 95        format: City, State
 96      - name: days
 97        description: the number of days for the request
 98        required: true
 99        type: int
100    endpoint:
101      name: app_server
102      path: /weather
103      http_method: POST
104
105# OpenTelemetry tracing configuration
106tracing:
107  # Random sampling percentage (1-100)
108  random_sampling: 100