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