> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sluice.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# Agent Configuration

> Complete reference for the Sluice Go agent — all environment variables, defaults, and behaviors.

The Sluice agent is configured entirely via environment variables. There is no config file.

## Required environment variables

These three variables must be set. The agent refuses to start if any are missing.

| Variable           | Description                                                                           | Example                 |
| ------------------ | ------------------------------------------------------------------------------------- | ----------------------- |
| `SLUICE_API_KEY`   | Your Sluice API key. Starts with `sk_`. Found in the dashboard under **Connections**. | `sk_live_abc123...`     |
| `SLUICE_API_URL`   | The Sluice backend API endpoint.                                                      | `https://sluice.sh/api` |
| `SLUICE_REDIS_URL` | Redis connection string for your Celery broker. Must include the scheme.              | `redis://redis:6379/0`  |

If any required variable is missing, the agent exits with an error listing every missing variable and a link to the troubleshooting docs.

## Optional environment variables

| Variable               | Default     | Description                                                                                                                                                                  |
| ---------------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `SLUICE_CONNECTION_ID` | `"default"` | Identifies this connection. Must be unique across all agents connecting to the same Redis instance in multi-agent deployments. Found in the dashboard under **Connections**. |
| `SLUICE_FRAMEWORK`     | `"celery"`  | The adapter to use. Only `celery` is supported in V0.                                                                                                                        |
| `SLUICE_HEALTH_ADDR`   | `":8081"`   | Listen address for the health check HTTP endpoint. Set to a different port if 8081 conflicts with another service.                                                           |
| `SLUICE_LOG_LEVEL`     | `"info"`    | Log verbosity. Valid values: `debug`, `info`, `warn`, `error`.                                                                                                               |

## Full example

### Docker

```bash theme={null}
docker run -d \
  --name sluice-agent \
  -e SLUICE_API_KEY=sk_live_... \
  -e SLUICE_API_URL=https://sluice.sh/api \
  -e SLUICE_CONNECTION_ID=production-celery \
  -e SLUICE_REDIS_URL=redis://your-redis:6379/0 \
  -e SLUICE_LOG_LEVEL=info \
  ghcr.io/sluice-sh/agent:v0.1.0
```

### Docker Compose

```yaml theme={null}
services:
  sluice-agent:
    # Pin to a specific version — avoid :latest in production
    image: ghcr.io/sluice-sh/agent:v0.1.0
    environment:
      SLUICE_API_KEY: ${SLUICE_API_KEY}
      SLUICE_API_URL: https://sluice.sh/api
      SLUICE_CONNECTION_ID: production-celery
      SLUICE_REDIS_URL: redis://redis:6379/0
      SLUICE_LOG_LEVEL: info
    restart: unless-stopped
```

## Validation

The agent validates configuration at startup:

1. **Presence check** — all three required variables must be non-empty.
2. **URL format check** — both `SLUICE_REDIS_URL` and `SLUICE_API_URL` must be valid URLs with a scheme (e.g., `redis://`, `https://`).

If validation fails, the agent prints a structured error message and exits with a non-zero status code. The error message includes a link to the relevant troubleshooting page.

## Health endpoint

The agent exposes a health check endpoint at the address configured by `SLUICE_HEALTH_ADDR` (default `:8081`). Use this for Kubernetes liveness/readiness probes:

```yaml theme={null}
livenessProbe:
  httpGet:
    path: /healthz
    port: 8081
  initialDelaySeconds: 5
  periodSeconds: 10
```

## Broker support

<Warning>
  **The agent requires Redis.** RabbitMQ and other AMQP brokers are not supported in V0. The agent reads Celery events via Redis PUB/SUB and polls queue depths via Redis `LLEN` — these mechanisms don't exist in AMQP. If your Celery deployment uses RabbitMQ, use the [Python SDK](/quickstart/sdk) instead.
</Warning>

| Broker         | Supported | Notes                                                                        |
| -------------- | --------- | ---------------------------------------------------------------------------- |
| Redis 6+       | Yes       | Fully supported and tested.                                                  |
| Redis 7+       | Yes       | Fully supported and tested.                                                  |
| Redis Cluster  | Not yet   | Planned for a future release.                                                |
| Redis Sentinel | Not yet   | Planned for a future release.                                                |
| RabbitMQ       | No        | Use the [Python SDK](/quickstart/sdk) for RabbitMQ-based Celery deployments. |
