Configuration Reference
The following is a complete reference of the arch_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.
1version: v0.1
2
3listeners:
4 ingress_traffic:
5 address: 0.0.0.0
6 port: 10000
7 message_format: openai
8 timeout: 5s
9 egress_traffic:
10 address: 0.0.0.0
11 port: 12000
12 message_format: openai
13 timeout: 5s
14
15# Arch creates a round-robin load balancing between different endpoints, managed via the cluster subsystem.
16endpoints:
17 app_server:
18 # value could be ip address or a hostname with port
19 # this could also be a list of endpoints for load balancing
20 # for example endpoint: [ ip1:port, ip2:port ]
21 endpoint: 127.0.0.1:80
22 # max time to wait for a connection to be established
23 connect_timeout: 0.005s
24
25 mistral_local:
26 endpoint: 127.0.0.1:8001
27
28 error_target:
29 endpoint: error_target_1
30
31# Centralized way to manage LLMs, manage keys, retry logic, failover and limits in a central way
32llm_providers:
33 - name: openai/gpt-4o
34 access_key: $OPENAI_API_KEY
35 model: openai/gpt-4o
36 default: true
37
38 - access_key: $MISTRAL_API_KEY
39 model: mistral/mistral-8x7b
40
41 - model: mistral/mistral-7b-instruct
42 base_url: http://mistral_local
43
44# Model aliases - friendly names that map to actual provider names
45model_aliases:
46 # Alias for summarization tasks -> fast/cheap model
47 arch.summarize.v1:
48 target: gpt-4o
49
50 # Alias for general purpose tasks -> latest model
51 arch.v1:
52 target: mistral-8x7b
53
54# provides a way to override default settings for the arch system
55overrides:
56 # By default Arch uses an NLI + embedding approach to match an incoming prompt to a prompt target.
57 # The intent matching threshold is kept at 0.80, you can override this behavior if you would like
58 prompt_target_intent_matching_threshold: 0.60
59
60# default system prompt used by all prompt targets
61system_prompt: You are a network assistant that just offers facts; not advice on manufacturers or purchasing decisions.
62
63prompt_guards:
64 input_guards:
65 jailbreak:
66 on_exception:
67 message: Looks like you're curious about my abilities, but I can only provide assistance within my programmed parameters.
68
69prompt_targets:
70 - name: information_extraction
71 default: true
72 description: handel all scenarios that are question and answer in nature. Like summarization, information extraction, etc.
73 endpoint:
74 name: app_server
75 path: /agent/summary
76 http_method: POST
77 # Arch uses the default LLM and treats the response from the endpoint as the prompt to send to the LLM
78 auto_llm_dispatch_on_response: true
79 # override system prompt for this prompt target
80 system_prompt: You are a helpful information extraction assistant. Use the information that is provided to you.
81
82 - name: reboot_network_device
83 description: Reboot a specific network device
84 endpoint:
85 name: app_server
86 path: /agent/action
87 parameters:
88 - name: device_id
89 type: str
90 description: Identifier of the network device to reboot.
91 required: true
92 - name: confirmation
93 type: bool
94 description: Confirmation flag to proceed with reboot.
95 default: false
96 enum: [true, false]
97
98tracing:
99 # sampling rate. Note by default Arch works on OpenTelemetry compatible tracing.
100 sampling_rate: 0.1