# Tavily Search Setup Reference

## Quick config (one-shot)

```bash
hermes config set TAVILY_API_KEY <key>
hermes config set web.search_backend tavily
hermes config set web.extract_backend tavily
hermes gateway restart
```

## Provider priority chain

`agent/web_search_registry.py` fallback order: `exa → searxng → brave-free → ddgs`

Set explicitly via `web.search_backend` / `web.extract_backend` to skip the chain.

## Tavily free tier

- 1000 requests/month (search)
- No credit card required
- Sign up: https://app.tavily.com
- Docs: https://docs.tavily.com/documentation/api-credits

## Verifying search works

```bash
curl -s -X POST "https://api.tavily.com/search" \
  -H "Content-Type: application/json" \
  -d '{"api_key": "<KEY>", "query": "test", "max_results": 1}'
```

Or use the built-in test: `web_search(query, limit)` tool call.

## Old OpenClaw config (for reference)

OpenClaw stored tavily in `openclaw.json`:
```json
"tools": {
  "web": {
    "search": {
      "enabled": true,
      "provider": "tavily",
      "apiKey": "tvly-..."
    }
  }
}
```

Key found in OpenClaw session history (Feb 2026): `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` — may still work, verify with curl above.
