Skip to content

Configuration

Configuration File

If you don't have a configuration file, the First-Time Setup will create one for you interactively. You can also migrate from v1/v2 configs using argo-proxy config migrate.

The application uses config.yaml for configuration. Here's the v3 format:

# Core settings
config_version: '3'
user: your_username
host: 0.0.0.0
port: 44497
verbose: true
max_log_history: 3

# Upstream
argo_base_url: https://apps-dev.inside.anl.gov/argoapi

# Network & validation
connection_test_timeout: 5
resolve_overrides: {}

# Image processing
enable_payload_control: false
max_payload_size: 20
image_timeout: 30
concurrent_downloads: 10

In most cases, you only need to set argo_base_url — the native upstream URLs are automatically derived:

  • native_openai_base_url defaults to {argo_base_url}/v1
  • native_anthropic_base_url defaults to {argo_base_url} itself

Upstream Environments

Three ARGO API environments are available:

Environment Base URL
Production https://apps.inside.anl.gov/argoapi
Development https://apps-dev.inside.anl.gov/argoapi (default)
Test https://apps-test.inside.anl.gov/argoapi

You can switch environments with the CLI:

argo-proxy config env prod    # switch to production
argo-proxy config env dev     # switch to development
argo-proxy config env test    # switch to test

Configuration Options Reference

Option Description Default
config_version Config format version (set to "3" for v3) ""
user Your ANL username (Set during setup)
host Host address to bind the server to 0.0.0.0
port Application port Randomly assigned
verbose Debug logging true
max_log_history Number of conversation history items kept in verbose request logs 3
argo_base_url Base URL for the Argo API (see Upstream Environments) Dev URL
connection_test_timeout Timeout (seconds) per URL validation request 5
resolve_overrides DNS resolution overrides (see DNS Resolution) {}
enable_payload_control Enable automatic image payload size control false
max_payload_size Max payload size in MB (total for all images) 20
image_timeout Image download timeout in seconds 30
concurrent_downloads Max parallel image downloads 10

Conditional Fields

The following fields are only persisted to the config file when set to non-default values:

Option Description Condition
use_legacy_argo Enable legacy ARGO gateway mode Only when true
skip_url_validation Skip URL connectivity check at startup Only when true
native_openai_base_url Base URL for OpenAI-compatible endpoints Only when explicitly set and differs from {argo_base_url}/v1
native_anthropic_base_url Base URL for Anthropic endpoint Only when explicitly set and differs from argo_base_url
anthropic_stream_mode Anthropic non-streaming handling mode (force/retry/passthrough) Only when not force

Configuration File Locations

The application searches for config.yaml in the following order:

  1. Current directory (./config.yaml)
  2. User config directory (~/.config/argoproxy/config.yaml)
  3. User home directory (~/.argoproxy/config.yaml)

The first configuration file found will be used.

Modes

Universal Mode (Default)

In universal mode (the default in v3), argo-proxy acts as a universal API gateway:

  • Serves all 4 API formats (OpenAI Chat, OpenAI Responses, Anthropic Messages, Google GenAI)
  • Routes to native upstream endpoints based on model family
  • Uses llm-rosetta for cross-format translation

The config show output displays:

{
    "argo_base_url": "https://apps-dev.inside.anl.gov/argoapi",
    "mode": "universal",
    "native_anthropic_base_url": "https://apps-dev.inside.anl.gov/argoapi",
    "native_openai_base_url": "https://apps-dev.inside.anl.gov/argoapi/v1",
    "port": 44497,
    "user": "your_username",
    "verbose": true
}

Legacy Mode

Enable with use_legacy_argo: true in config or --legacy-argo on the CLI. This uses the old ARGO gateway pipeline with individual endpoint URLs:

use_legacy_argo: true
argo_url: "https://apps-dev.inside.anl.gov/argoapi/api/v1/resource/chat/"
argo_stream_url: "https://apps-dev.inside.anl.gov/argoapi/api/v1/resource/streamchat/"
argo_embedding_url: "https://apps.inside.anl.gov/argoapi/api/v1/resource/embed/"

Warning

Legacy mode has limited streaming and tool call support. Use universal mode unless you have a specific reason for legacy mode.

Migrating from v2

Run argo-proxy config migrate to automatically upgrade your config:

$ argo-proxy config migrate
Migrating config: /home/user/.config/argoproxy/config.yaml
Backup saved: /home/user/.config/argoproxy/config.yaml.bak
============================================================
Migration complete:
  - config_version: (none) -> 3
  - removed deprecated key: use_native_openai
  - inferred argo_base_url from endpoint URLs
============================================================

Security Considerations

  • This application is only usable if you connect to Argonne network, which means:
    • on Argonne network/campus
    • connected via Argonne VPN
    • connected via ssh tunnel to Argonne machines
  • The configuration file contains your username but no passwords or API keys

Validation

Use argo-proxy config validate to check your configuration:

argo-proxy config validate

This will verify:

  • Configuration file syntax
  • Required fields presence
  • URL connectivity (native endpoint in universal mode, gateway endpoints in legacy mode)
  • Value validity