2026-01-15 00:06:28 +01:00
$schema : 'http://json-schema.org/draft-07/schema#'
2024-10-01 09:22:08 -07:00
type : object
properties :
version :
type : string
2025-05-31 01:11:14 -07:00
enum :
- v0.1
- v0.1.0
- 0.1 -beta
2025-09-16 11:12:08 -07:00
- 0.2 .0
2025-10-14 14:01:11 -07:00
- v0.3.0
2026-03-30 13:46:52 -07:00
- v0.4.0
2025-10-14 14:01:11 -07:00
agents :
type : array
items :
type : object
2025-12-17 17:30:14 -08:00
properties :
id :
type : string
url :
type : string
additionalProperties : false
required :
- id
- url
filters :
type : array
items :
type : object
properties :
id :
type : string
url :
type : string
type :
type : string
enum :
- mcp
2025-12-23 17:14:50 -08:00
- http
2025-12-17 17:30:14 -08:00
transport :
type : string
enum :
- streamable-http
tool :
type : string
additionalProperties : false
required :
- id
- url
2025-02-14 19:28:10 -08:00
listeners :
2025-10-14 14:01:11 -07:00
oneOf :
- type : array
2025-02-14 19:28:10 -08:00
additionalProperties : false
2025-10-14 14:01:11 -07:00
items :
type : object
properties :
name :
type : string
port :
type : integer
address :
type : string
timeout :
type : string
2025-12-22 18:05:49 -08:00
router :
type : string
enum :
- plano_orchestrator_v1
2026-01-28 20:31:01 -08:00
max_retries :
type : integer
2025-10-14 14:01:11 -07:00
type :
type : string
enum :
- model
- prompt
- agent
2026-01-24 12:00:49 -08:00
agents :
type : array
items :
type : object
properties :
id :
type : string
description :
type : string
default :
type : boolean
2026-03-18 17:58:20 -07:00
input_filters :
2026-01-24 12:00:49 -08:00
type : array
items :
type : string
additionalProperties : false
required :
- id
- description
2026-03-18 17:58:20 -07:00
input_filters :
type : array
items :
type : string
output_filters :
type : array
items :
type : string
2026-01-24 12:00:49 -08:00
additionalProperties : false
2025-10-14 14:01:11 -07:00
required :
- type
- name
- type : object # deprecated legacy format, use list format instead
2025-02-14 19:28:10 -08:00
additionalProperties : false
2025-10-14 14:01:11 -07:00
properties :
ingress_traffic :
type : object
properties :
address :
type : string
port :
type : integer
message_format :
type : string
enum :
- openai
timeout :
type : string
additionalProperties : false
egress_traffic :
type : object
properties :
address :
type : string
port :
type : integer
message_format :
type : string
enum :
- openai
timeout :
type : string
additionalProperties : false
2024-10-01 09:22:08 -07:00
endpoints :
type : object
patternProperties :
2026-01-15 00:06:28 +01:00
'^[a-zA-Z][a-zA-Z0-9_]*$' :
2024-10-01 09:22:08 -07:00
type : object
properties :
endpoint :
type : string
2026-01-15 00:06:28 +01:00
pattern : '^.*$'
2024-10-01 09:22:08 -07:00
connect_timeout :
type : string
2024-12-06 14:37:33 -08:00
protocol :
type : string
enum :
- http
- https
2025-02-03 14:51:59 -08:00
http_host :
type : string
2024-10-01 09:22:08 -07:00
additionalProperties : false
required :
- endpoint
2025-10-14 14:01:11 -07:00
model_providers :
type : array
items :
type : object
properties :
name :
type : string
access_key :
type : string
model :
type : string
default :
type : boolean
base_url :
type : string
2026-01-15 00:06:28 +01:00
passthrough_auth :
type : boolean
description : "When true, forwards the client's Authorization header to upstream instead of using the configured access_key. Useful for routing to services like LiteLLM that validate their own virtual keys."
2025-10-14 14:01:11 -07:00
http_host :
type : string
provider_interface :
type : string
enum :
2026-03-15 09:36:11 -07:00
- plano
2025-10-14 14:01:11 -07:00
- claude
- deepseek
- groq
- mistral
- openai
- gemini
routing_preferences :
type : array
items :
type : object
properties :
name :
type : string
description :
type : string
additionalProperties : false
required :
- name
- description
additionalProperties : false
required :
- model
llm_providers : # deprecated for legacy support, use model_providers instead
2024-10-01 09:22:08 -07:00
type : array
items :
type : object
properties :
name :
type : string
access_key :
type : string
model :
type : string
default :
type : boolean
2025-03-05 17:20:04 -08:00
base_url :
type : string
2026-01-15 00:06:28 +01:00
passthrough_auth :
type : boolean
description : "When true, forwards the client's Authorization header to upstream instead of using the configured access_key. Useful for routing to services like LiteLLM that validate their own virtual keys."
2025-02-03 14:51:59 -08:00
http_host :
type : string
2025-07-11 16:42:16 -07:00
provider_interface :
2025-05-19 09:59:22 -07:00
type : string
2025-07-11 16:42:16 -07:00
enum :
2026-03-15 09:36:11 -07:00
- plano
2025-07-11 16:42:16 -07:00
- claude
- deepseek
- groq
- mistral
- openai
- gemini
routing_preferences :
type : array
items :
type : object
properties :
name :
type : string
description :
type : string
additionalProperties : false
required :
- name
- description
2024-10-01 09:22:08 -07:00
additionalProperties : false
required :
2025-07-11 16:42:16 -07:00
- model
2025-09-16 11:12:08 -07:00
model_aliases :
type : object
patternProperties :
2026-01-15 00:06:28 +01:00
'^.*$' :
2025-09-16 11:12:08 -07:00
type : object
properties :
target :
type : string
additionalProperties : false
required :
- target
2024-10-01 09:22:08 -07:00
overrides :
type : object
properties :
prompt_target_intent_matching_threshold :
type : number
2025-02-07 19:14:15 -08:00
optimize_context_window :
type : boolean
2025-03-19 15:21:34 -07:00
use_agent_orchestrator :
type : boolean
2026-02-18 01:19:20 -08:00
upstream_connect_timeout :
type : string
description : "Connect timeout for upstream provider clusters (e.g., '5s', '10s'). Default is '5s'."
upstream_tls_ca_path :
type : string
description : "Path to the trusted CA bundle for upstream TLS verification. Default is '/etc/ssl/certs/ca-certificates.crt'."
2026-03-15 09:36:11 -07:00
llm_routing_model :
type : string
description : "Model name for the LLM router (e.g., 'Arch-Router'). Must match a model in model_providers."
agent_orchestration_model :
type : string
description : "Model name for the agent orchestrator (e.g., 'Plano-Orchestrator'). Must match a model in model_providers."
2024-10-01 09:22:08 -07:00
system_prompt :
type : string
prompt_targets :
type : array
items :
type : object
properties :
name :
type : string
default :
type : boolean
description :
type : string
2024-10-02 20:43:16 -07:00
auto_llm_dispatch_on_response :
type : boolean
2024-10-01 09:22:08 -07:00
parameters :
type : array
items :
type : object
properties :
name :
type : string
additionalProperties : false
required :
type : boolean
default :
2025-02-14 19:28:10 -08:00
anyOf :
- type : string
- type : integer
- type : boolean
2024-10-01 09:22:08 -07:00
description :
type : string
type :
type : string
2024-11-25 17:51:25 -08:00
enum :
type : array
items :
2025-02-14 19:28:10 -08:00
anyOf :
- type : string
- type : integer
- type : boolean
2024-12-06 14:37:33 -08:00
in_path :
type : boolean
2024-12-20 13:25:01 -08:00
format :
type : string
2024-10-01 09:22:08 -07:00
additionalProperties : false
required :
- name
- description
- type
endpoint :
type : object
properties :
name :
type : string
path :
type : string
2024-12-06 14:37:33 -08:00
http_method :
type : string
enum :
- GET
- POST
2025-02-06 11:48:09 -08:00
http_headers :
type : object
additionalProperties :
type : string
2024-10-01 09:22:08 -07:00
additionalProperties : false
required :
- name
- path
system_prompt :
type : string
additionalProperties : false
required :
- name
- description
ratelimits :
type : array
items :
type : object
properties :
2024-10-03 10:57:01 -07:00
model :
2024-10-01 09:22:08 -07:00
type : string
selector :
type : object
properties :
key :
type : string
value :
type : string
additionalProperties : false
required :
- key
- value
limit :
type : object
properties :
tokens :
type : integer
unit :
type : string
additionalProperties : false
required :
- tokens
- unit
additionalProperties : false
required :
2024-10-03 10:57:01 -07:00
- model
2024-10-01 09:22:08 -07:00
- selector
- limit
2024-10-08 16:24:08 -07:00
tracing :
type : object
properties :
random_sampling :
type : integer
2024-11-07 22:11:00 -06:00
trace_arch_internal :
type : boolean
2026-03-01 04:05:45 -08:00
opentracing_grpc_endpoint :
type : string
2026-02-25 16:27:20 -08:00
span_attributes :
type : object
properties :
header_prefixes :
type : array
items :
type : string
static :
type : object
additionalProperties :
type : string
additionalProperties : false
additionalProperties : false
2024-10-09 15:47:32 -07:00
mode :
type : string
enum :
- llm
- prompt
2025-12-17 12:18:38 -08:00
state_storage :
type : object
properties :
type :
type : string
enum :
- memory
- postgres
connection_string :
type : string
description : Required when type is postgres. Supports environment variable substitution using $VAR or ${VAR} syntax.
additionalProperties : false
required :
- type
# Note: connection_string is conditionally required based on type
# If type is 'postgres', connection_string must be provided
# If type is 'memory', connection_string is not needed
allOf :
- if :
properties :
type :
const : postgres
then :
required :
- connection_string
2024-11-25 17:16:35 -08:00
prompt_guards :
type : object
properties :
input_guards :
type : object
properties :
jailbreak :
type : object
properties :
on_exception :
type : object
properties :
message :
type : string
additionalProperties : false
required :
- message
additionalProperties : false
required :
- on_exception
additionalProperties : false
required :
- jailbreak
2026-03-30 13:46:52 -07:00
routing_preferences :
type : array
items :
type : object
properties :
name :
type : string
description :
type : string
models :
type : array
items :
type : string
minItems : 1
selection_policy :
type : object
properties :
prefer :
type : string
enum :
- cheapest
- fastest
- none
additionalProperties : false
required :
- prefer
additionalProperties : false
required :
- name
- description
- models
model_metrics_sources :
type : array
items :
oneOf :
- type : object
properties :
type :
type : string
2026-03-30 17:12:20 -07:00
const : cost
provider :
2026-03-30 13:46:52 -07:00
type : string
2026-03-30 17:12:20 -07:00
enum :
- digitalocean
2026-03-30 13:46:52 -07:00
refresh_interval :
type : integer
minimum : 1
2026-03-30 17:12:20 -07:00
description : "Refresh interval in seconds"
model_aliases :
2026-03-30 13:46:52 -07:00
type : object
2026-03-30 17:12:20 -07:00
description : "Map DO catalog keys (lowercase(creator)/model_id) to Plano model names used in routing_preferences. Example: 'openai/openai-gpt-oss-120b: openai/gpt-4o'"
additionalProperties :
type : string
2026-03-30 13:46:52 -07:00
required :
- type
2026-03-30 17:12:20 -07:00
- provider
2026-03-30 13:46:52 -07:00
additionalProperties : false
- type : object
properties :
type :
type : string
2026-03-30 17:12:20 -07:00
const : latency
provider :
type : string
enum :
- prometheus
2026-03-30 13:46:52 -07:00
url :
type : string
query :
type : string
refresh_interval :
type : integer
minimum : 1
description : "Refresh interval in seconds"
required :
- type
2026-03-30 17:12:20 -07:00
- provider
2026-03-30 13:46:52 -07:00
- url
- query
additionalProperties : false
2024-10-01 09:22:08 -07:00
additionalProperties : false
required :
- version
2025-10-14 14:01:11 -07:00
- listeners