Compare commits

...

2 commits

Author SHA1 Message Date
8d7f8b6683 Merge pull request 'docs: add retriever to the architecture diagram' (#13) from docs/update-architecture-diagram into master
All checks were successful
CI / test (push) Successful in 1m1s
Reviewed-on: #13
Reviewed-by: Austin Schaefer <austin.schaefer@mailo.eu>
2026-08-19 15:54:57 +00:00
Austin Schaefer
0790b2b6d0 docs: add retriever to the architecture diagram
All checks were successful
CI / test (pull_request) Successful in 1m3s
The diagram still showed the original four-agent pipeline
(researcher/reviewer/writer/summarizer) with no mention of the
document embedding/retrieval step added in #10. Added a retriever
box feeding excerpts into the researcher, plus a bullet describing
it, matching the retrieval pipeline already documented in prose
further down the README.
2026-08-19 17:48:32 +02:00

View file

@ -27,22 +27,27 @@ failure was fixed, not just papered over.
## Architecture ## Architecture
Four small agents, each with one job, coordinated by plain Rust control 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 ┌──────────┐ ┌────────────┐ excerpts ┌─────────────┐ approve/reject ┌──────────┐
│ researcher │ ───────────────► │ reviewer │ │ retriever │ ───────────► │ researcher │ ───────────────► │ reviewer │
│ (tool-using)│ ◄─────────────── │ │ │(--doc only)│ │ (tool-using)│ ◄─────────────── │ │
└──────┬──────┘ gaps/feedback └────┬─────┘ └────────────┘ └──────┬──────┘ gaps/feedback └────┬─────┘
│ turn budget exhausted │ approved, │ turn budget exhausted │ approved,
│ mid-investigation │ or out of rounds │ mid-investigation │ or out of rounds
▼ ▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ summarizer │──findings───►│ writer │──► report │ summarizer │──findings───►│ writer │──► report
│ (recovery) │ │ │ │ (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 - **researcher** — a tool-calling agent (`search_web`, `fetch_page`) that
gathers and cross-checks evidence, capped at a fixed model-call budget so gathers and cross-checks evidence, capped at a fixed model-call budget so
a confused model can't loop forever. a confused model can't loop forever.