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_urldefaults to{argo_base_url}/v1native_anthropic_base_urldefaults 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:
- Current directory (
./config.yaml) - User config directory (
~/.config/argoproxy/config.yaml) - 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:
This will verify:
- Configuration file syntax
- Required fields presence
- URL connectivity (native endpoint in universal mode, gateway endpoints in legacy mode)
- Value validity