v2/wiki/decisions/2026-06-18-content-source-multi-agent.md
ADR: Content-source multi-agent (Maverick + specialists)
Date: 2026-06-18 Status: Accepted
Context
Panels 3 & 4 need a "multi-agent" flow. The reference codebases rc2-algolia and rc3-phoenix were read in full: both are sales-discovery orchestrators (Maverick AE + 8-signal discovery + Elena/Bruno sales specialists) built on a two-index Atlas + Ledger schema + Golden Map, assuming NeuralSearch. rc3 is a fragile Agent-Studio hybrid (~2,355 lines backend remain; documented P0 defects). None maps to our single-www-index, answer-quality experiment.
Decision
Build a content-source specialist multi-agent, coordinated by Maverick (orchestrator + human interface). Each specialist owns one knowledge domain and is implemented as the shared index scoped by a source facet filter — native Algolia, near-zero custom code. Borrow only the rc2 pattern (orchestrator → specialist A2A + mechanical grounding discipline), not its sales-discovery purpose or Atlas schema.
Locked roster (names final 2026-06-18; validated against the live source facet):
| Agent | Role / charter | source filter |
|---|---|---|
| Maverick | Orchestrator/coordinator: discovery, entity extraction, routes to the right specialist; broad/unscoped view; parallel fan-out + synthesis | broad / all |
| Technical | Documentation, APIs, integration guides, best practices, customer case studies | Documentation + Developers + Customer Stories |
| Marketer | Website content: marketing pages, news, blogs, pricing, security, resources, other | Website + Blog + Resources + Other |
| Academy | All things Academy (training, certification, courses, content) | Academy |
| Support | All things Support (cases, known issues, support levels/hours, URLs) | Support |
- v2, not legacy: rc2/rc3 are the POC that proved the idea and its mechanics; Algolia-Central2 is the v2 evolution. The roster is data-driven (real
sourcepartitions) — explicitly NOT a carry-over of rc2's SE/SA (Elena/Bruno) persona structure. Treat rc2/rc3 as legacy. - Case studies sit with Technical (proof for a feature/integration). "Pricing/security" marketing pages fall under Marketer (
source:Website); pricing/security documentation stays with Technical (source:Documentation). Edge cases refined at build viacategory. - Maverick: answers first to best ability, peels the onion with follow-ups, extracts entities, then routes; can fan out to multiple specialists in parallel and synthesize.
- Specialists scale automatically: new content under a
sourceis picked up with no code change.
Data validation (live Visibility ALGOLIA_WWW_PROD_V2, 1QDAWL72TQ)
12,064 records; langs en 11,063 / fr 2,083 / de 2,033. source is a clean single-value facet (9 values): Documentation 4177 · Blog 2749 · Support 1691 · Website 1236 · Developers 867 · Resources 810 · Customer Stories 229 · Other 165 · Academy 139. English-only counts sum to 8,019 (= the dashboard screenshot). facets.facet4 already tags integrations (Adobe, Contentstack, Shopify, commercetools).
Rationale
- Specialist boundaries are real partitions already in the data (
source), not invented personas. - Honors "minimise custom code / native Algolia": specialists are facet-scoped views of one index.
- Keeps the 2×2 honest: specialists query the MULTI index (same data as SINGLE), so only architecture varies.
Alternatives Considered
| Option | Why rejected |
|---|---|
| Port rc2 wholesale | Sales-discovery purpose contaminates answer-quality comparison; Atlas schema absent; weeks of coupling |
| Port rc3 | Fragile hybrid, lower quality, no custom-code savings; eval harness already exceeded by our judge |
| Decompose-and-synthesize answerer | Helps only complex questions; weaker fit than real source partitions |
| Separate index/corpus per specialist | Unnecessary — a source facet filter on one index achieves it |
Consequences
- Need to define agent personas/instructions/knowledge charters + Maverick's routing & parallel-synthesis logic in Agent Studio.
- Panel 3 (multi + keyword) needs a keyword query path; Panel 4 uses neural.
- Phase 2: enrich the dataset (attributes/config) so specialists get richer charters.
- Open: name for the Technical agent.