Configuration Reference

The following is a complete reference of the arch_conifg.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
34    provider_interface: openai
35    access_key: $OPENAI_API_KEY
36    model: gpt-4o
37    default: true
38
39  - name: Mistral8x7b
40    provider_interface: openai
41    access_key: $MISTRAL_API_KEY
42    model: mistral-8x7b
43
44  - name: MistralLocal7b
45    provider_interface: openai
46    model: mistral-7b-instruct
47    endpoint: mistral_local
48
49# provides a way to override default settings for the arch system
50overrides:
51  # By default Arch uses an NLI + embedding approach to match an incomming prompt to a prompt target.
52  # The intent matching threshold is kept at 0.80, you can overide this behavior if you would like
53  prompt_target_intent_matching_threshold: 0.60
54
55# default system prompt used by all prompt targets
56system_prompt: You are a network assistant that just offers facts; not advice on manufacturers or purchasing decisions.
57
58prompt_guards:
59  input_guards:
60    jailbreak:
61      on_exception:
62        message: Looks like you're curious about my abilities, but I can only provide assistance within my programmed parameters.
63
64prompt_targets:
65  - name: information_extraction
66    default: true
67    description: handel all scenarios that are question and answer in nature. Like summarization, information extraction, etc.
68    endpoint:
69      name: app_server
70      path: /agent/summary
71      http_method: POST
72    # Arch uses the default LLM and treats the response from the endpoint as the prompt to send to the LLM
73    auto_llm_dispatch_on_response: true
74    # override system prompt for this prompt target
75    system_prompt: You are a helpful information extraction assistant. Use the information that is provided to you.
76
77  - name: reboot_network_device
78    description: Reboot a specific network device
79    endpoint:
80      name: app_server
81      path: /agent/action
82    parameters:
83      - name: device_id
84        type: str
85        description: Identifier of the network device to reboot.
86        required: true
87      - name: confirmation
88        type: bool
89        description: Confirmation flag to proceed with reboot.
90        default: false
91        enum: [true, false]
92
93tracing:
94  # sampling rate. Note by default Arch works on OpenTelemetry compatible tracing.
95  sampling_rate: 0.1