# Vision Configuration (auxiliary vision)

Hermes uses the `auxiliary.vision` config section for image analysis, not the top-level `vision` section. This was discovered after multiple failed attempts to configure vision using `hermes config set vision.provider` — those changes set the wrong key and had no effect.

## Working Configuration

```yaml
auxiliary:
  vision:
    provider: admin-ai
    model: gemini-flash-latest
    timeout: 120
```

## Set via CLI

```bash
hermes config set auxiliary.vision.provider "admin-ai"
hermes config set auxiliary.vision.model "gemini-flash-latest"
```

## Gateway Restart Required

Changes to `auxiliary.*` take effect ONLY after a gateway restart. The `/restart` command from within a Telegram session works for this — it gracefully drains active runs and restarts.

## Common Mistakes

| Wrong | Right |
|-------|-------|
| `hermes config set vision.provider admin-ai` | `hermes config set auxiliary.vision.provider admin-ai` |
| Setting it but not restarting the gateway | Run `/restart` after changing |
| Using a model name that the provider doesn't support | List available models first: `curl -s https://admin-ai.itpropartner.com/v1/models` |
| Expecting local file paths to work | The vision provider fetches images via HTTP URL. Local files in /root/.hermes/cache/images/ need to be served or copied to a public URL first |

## Testing

```bash
# After restart, send an image via Telegram or use:
vision_analyze(image_url="https://example.com/image.jpg", question="What's in this image?")
```
