# Session: 2026-03-04 05:59:11 UTC

- **Session Key**: agent:main:main
- **Session ID**: ea228594-a618-43ab-b8ce-ad2a64e46c32
- **Source**: gateway:sessions.reset

## Conversation Summary

user: Sender (untrusted metadata):
```json
{
  "label": "openclaw-tui (gateway-client)",
  "id": "gateway-client",
  "name": "openclaw-tui",
  "username": "openclaw-tui"
}
```

[Wed 2026-03-04 05:47 UTC] Vector DB?
assistant: [[reply_to_current]] Yep — that’s the same idea in practice.

“Embeddings” are vectors, and they’re stored in a **vector DB/index** for semantic search.  
So when I run memory recall, I query that vector index to find likely relevant notes, then read the source lines from files.

So: **files = truth**, **vector DB = smart lookup**.
user: Sender (untrusted metadata):
```json
{
  "label": "openclaw-tui (gateway-client)",
  "id": "gateway-client",
  "name": "openclaw-tui",
  "username": "openclaw-tui"
}
```

[Wed 2026-03-04 05:48 UTC] You also have a regular search?
assistant: [[reply_to_current]] Yep — three “search” modes, basically:

- **Memory semantic search** (vector DB over `MEMORY.md` + `memory/*.md`)
- **Regular web search** (Brave tool, when API key is configured)
- **Local web search** via your **SearXNG** instance (now working with JSON)

So I can do both “search your memory” and “search the internet.”
user: Sender (untrusted metadata):
```json
{
  "label": "openclaw-tui (gateway-client)",
  "id": "gateway-client",
  "name": "openclaw-tui",
  "username": "openclaw-tui"
}
```

[Wed 2026-03-04 05:49 UTC] I see.
Can we add duck duck go?
assistant: [[reply_to_current]] Yep — and you basically already have it.

Your SearXNG results are already pulling from **DuckDuckGo** (I saw `Engines: ... duckduckgo ...` in test output). So DDG is currently integrated via SearXNG aggregation.

If you mean a **separate direct DDG tool** (outside SearXNG), we don’t currently have a first-class tool for that in this runtime.  
But functionally, SearXNG+DDG gives you that coverage already.
user: Sender (untrusted metadata):
```json
{
  "label": "openclaw-tui (gateway-client)",
  "id": "gateway-client",
  "name": "openclaw-tui",
  "username": "openclaw-tui"
}
```

[Wed 2026-03-04 05:50 UTC] How do you decide which engine to use between Brave and searxng?
assistant: [[reply_to_current]] Good question. I use a simple priority rule:

1. **SearXNG first** for general web lookups  
   - local, private-ish, multi-engine (incl. DDG/Google/Startpage/etc.)
2. **Brave** when it’s a better fit or fallback  
   - especially if SearXNG is down, thin results, or you want Brave-specific result quality/freshness.

Right now, in your setup, SearXNG is the natural default (and it’s working).  
Also: Brave tool in this session currently lacks API key config, so SearXNG is the reliable path anyway.

If you want, I can lock a policy like:
- default = SearXNG
- fallback = Brave
- always mention which source I used in research answers.
user: Sender (untrusted metadata):
```json
{
  "label": "openclaw-tui (gateway-client)",
  "id": "gateway-client",
  "name": "openclaw-tui",
  "username": "openclaw-tui"
}
```

[Wed 2026-03-04 05:51 UTC] I have an API key for Brave
assistant: [[reply_to_current]] Nice — then we should wire it so Brave is available as a clean fallback.

Quick setup options:

### Option A (recommended): OpenClaw config flow
Run:
```bash
openclaw configure --section web
```
Then paste your Brave key when prompted.

### Option B: environment variable
Set `BRAVE_API_KEY` in the Gateway service environment (or your shell env where Gateway starts), then restart Gateway.

---

After that, I can use this policy:

- **Default:** SearXNG
- **Fallback / second opinion:** Brave
- I’ll label which source I used when returning research.

If you want, I can also help you verify it immediately with a one-query smoke test once you set the key.
user: Sender (untrusted metadata):
```json
{
  "label": "openclaw-tui (gateway-client)",
  "id": "gateway-client",
  "name": "openclaw-tui",
  "username": "openclaw-tui"
}
```

[Wed 2026-03-04 05:52 UTC] Add it for me, it's not sensitive access: BSAgLuWVVMnrGvobOt7pDQjmVJ5u380
assistant: I’ll wire it directly in your local OpenClaw config files, then verify Brave search works.
assistant: Got it — I’ll add it to OpenClaw config directly, restart Gateway, then verify with a test search.
user: Sender (untrusted metadata):
```json
{
  "label": "openclaw-tui (gateway-client)",
  "id": "gateway-client",
  "name": "openclaw-tui",
  "username": "openclaw-tui"
}
```

[Wed 2026-03-04 05:53 UTC] done?
assistant: [[reply_to_current]] Yep — done ✅

I added your Brave key to OpenClaw config, enabled Brave web search, and verified it works with a live test (`provider: brave` returned results).

So now:
- SearXNG = primary local search
- Brave = available fallback/secondary search

All good.
