|
| 1 | +--- |
| 2 | +title: "The crawl's search substrate is fixed to Anthropic web search — the operator expected to choose" |
| 3 | +lede: "The manual 🔍 has a provider palette (SearXNG free-first, Tavily, Exa, SerpAPI…); the didi crawl has no dial at all — one Claude turn with Anthropic's server-side web_search, per the crawl plan's Decision 1. The operator assumed the choice would carry over. It should at least be visible, and probably choosable." |
| 4 | +date_created: 2026-07-24 |
| 5 | +date_modified: 2026-07-24 |
| 6 | +authors: |
| 7 | + - Michael Staton |
| 8 | +augmented_with: |
| 9 | + - Claude Code on Claude Fable 5 |
| 10 | +semantic_version: 0.0.0.1 |
| 11 | +tags: |
| 12 | + - Issue |
| 13 | + - Augment-It |
| 14 | + - Didi-Crawl |
| 15 | + - Search-Providers |
| 16 | + - Prompt-Runner |
| 17 | +status: Open · Jotted |
| 18 | +--- |
| 19 | + |
| 20 | +# The crawl has no provider dial |
| 21 | + |
| 22 | +## Current state (by decision, not accident) |
| 23 | + |
| 24 | +`organization.crawl` = one model turn (CRAWL_MODEL, default |
| 25 | +claude-sonnet-4-6) with Anthropic's server-side `web_search` tool — the |
| 26 | +model composes and runs its own searches against Anthropic's backend. The |
| 27 | +connector registry (SearXNG/Tavily/Exa/SerpAPI/GDELT) never enters this |
| 28 | +path; it remains the manual 🔍's substrate with its palette. Per |
| 29 | +[[../plans/Didi-Crawl-Three-Targets-Relevance-Brief-And-Staged-Team-Ingest]] |
| 30 | +Decision 1, with the packs+Haiku pipeline named as the documented fallback |
| 31 | +substrate. |
| 32 | + |
| 33 | +## The gap |
| 34 | + |
| 35 | +1. **Invisibility:** nothing in the crawl UI says what's searching. The |
| 36 | + status bar should at least name the substrate ("didi crawl · Anthropic |
| 37 | + web search · sonnet-4-6") — the provider chip the manual flow already |
| 38 | + has, honestly filled in. |
| 39 | +2. **No choice:** the operator expected the palette to carry over. Lost |
| 40 | + with the fixed substrate: the free-first discipline (SearXNG costs |
| 41 | + nothing; Anthropic web search bills per search), per-provider strengths |
| 42 | + (Exa semantic, SerpAPI knowledge-graph), and comparability with manual |
| 43 | + results. |
| 44 | + |
| 45 | +## Directions (jotted, in ascending ambition) |
| 46 | + |
| 47 | +- **Name it** (trivial): surface substrate + model in the crawl bar and in |
| 48 | + the reply's `provider` field (already returns 'didi-crawl' — make it |
| 49 | + 'didi-crawl · anthropic-web-search · <model>'). |
| 50 | +- **Model dial** (cheap): expose CRAWL_MODEL choice per-crawl (sonnet vs |
| 51 | + haiku for cost, opus for hard orgs). |
| 52 | +- **Substrate dial** (the real ask): implement the plan's documented |
| 53 | + fallback — a connector-driven crawl mode (packs + Firecrawl + Haiku |
| 54 | + filter vs the brief) — and let the crawl bar choose between |
| 55 | + "Anthropic web search (agentic)" and "connector packs (registry)". |
| 56 | + This is where the palette returns. |
| 57 | + |
| 58 | +## Open questions |
| 59 | + |
| 60 | +- [ ] Does the substrate choice live per-crawl (a chip on the crawl bar) or |
| 61 | + per-workspace (a line in the relevance brief / a workspace setting)? |
| 62 | +- [ ] Cost visibility: Anthropic web search bills per search — should the |
| 63 | + crawl reply report how many searches it ran? (Pairs with |
| 64 | + [[Crawl-Progress-Is-A-Black-Box-Needs-Traces-The-Operator-Can-Watch]].) |
0 commit comments