diff --git a/README.md b/README.md index 814d92a..6d68fb3 100644 --- a/README.md +++ b/README.md @@ -27,22 +27,27 @@ failure was fixed, not just papered over. ## Architecture Four small agents, each with one job, coordinated by plain Rust control -flow — not a framework's agent graph, not an LLM deciding when to stop: +flow — not a framework's agent graph, not an LLM deciding when to stop — +plus an optional retrieval step when `--doc` documents are supplied: ``` -┌─────────────┐ approve/reject ┌──────────┐ -│ researcher │ ───────────────► │ reviewer │ -│ (tool-using)│ ◄─────────────── │ │ -└──────┬──────┘ gaps/feedback └────┬─────┘ - │ turn budget exhausted │ approved, - │ mid-investigation │ or out of rounds - ▼ ▼ -┌──────────────┐ ┌──────────────┐ -│ summarizer │──findings───►│ writer │──► report -│ (recovery) │ │ │ -└──────────────┘ └──────────────┘ +┌────────────┐ excerpts ┌─────────────┐ approve/reject ┌──────────┐ +│ retriever │ ───────────► │ researcher │ ───────────────► │ reviewer │ +│(--doc only)│ │ (tool-using)│ ◄─────────────── │ │ +└────────────┘ └──────┬──────┘ gaps/feedback └────┬─────┘ + │ turn budget exhausted │ approved, + │ mid-investigation │ or out of rounds + ▼ ▼ + ┌──────────────┐ ┌──────────────┐ + │ summarizer │──findings───►│ writer │──► report + │ (recovery) │ │ │ + └──────────────┘ └──────────────┘ ``` +- **retriever** (only when `--doc` paths are given) — chunks and embeds + user-supplied documents with a dedicated embedding model, then retrieves + the excerpts most relevant to the topic once up front and folds them into + the researcher's task, cited with the same footnote scheme as web sources. - **researcher** — a tool-calling agent (`search_web`, `fetch_page`) that gathers and cross-checks evidence, capped at a fixed model-call budget so a confused model can't loop forever.