Behind the graph

Every entry traces back to who searched, where, and how many times.

This is not a model writing a summary. Every topic is produced by an agent-orchestrated pipeline: plan the retrieval first, gather evidence chain by chain, attach a mandatory retrieval log to every research document, fail the mechanical validator and it goes straight back, and clear a global deduplication gate before anything is admitted.

Pipeline

Four stages, plus an admission plane.

The gates are mechanical — a script decides, a failure means exit 1, and the output does not enter the registry. There is no “close enough, let it through”.

A1
Chain derivation
A boundary brief fixes the topic, its siblings and exclusions; three technical routes are derived and admitted through the chain-list gate.
● gate — chain list
A2
Isolated research
One agent per chain: source-grounded search and asset verification, ending in an evidence document with decisions, URLs, negatives and a retrieval ledger.
● gate — document + stage
B
Typed assembly
A topic assembly agent reads one chain at a time, normalizes entities and adjudicates overlap into an incremental topic JSON.
● gate — overlap adjudication
C
Finalization
Schema and graph gates run; one bounded repair is allowed; the record is accepted or written to the failure ledger.
● gate — schema + graph
ADMISSION
Admission plane
Locked registry sync, duplicate/conflict ledgers, graph materialization, semantic views and incremental index. Agent output never writes the registry directly.
● gate — dedup adjudication
Evidence

How “we didn't make it up” is enforced.

An agent will naturally smooth things over. So we do not rely on good intentions — we rely on countable floors: a finished document must hand over its retrieval ledger, and one that falls short is sent back to be rerun.

Hard floors, per document

Written into the agent prompt, mechanically enforced by script.

WebSearch≥ 10 calls
WebFetch≥ 8 calls
check_github.pyrepo is alive
fetch_paper.pypaper full text
Nothing invented, and no back-filling the log after the fact — a document that misses the floor is rerun, not patched. Every query must also name the section it fed, so each conclusion maps to its source.

A real ledger, verbatim

chain_02, navigation efficiency weighted metrics · 12 WebSearch / 8 WebFetch
chain_02_navigation_efficiency_weighted.md — § 12.1 WebSearch log
#QueryHitsKey hitUsed inNote
1Anderson 2018 "On Evaluation of Embodied Navigation Agents" SPL formula definition5paper notes§1, §10mostly Chinese results
3arxiv 1807.06757 SPL formula geodesic distance5paper notes§1, §10paper identity confirmed
7aihabitat.org challenge PointNav ObjectNav evaluation rules success SPL threshold1no direct hitsearch failed
8"SPL" "Success weighted by Path Length" formula "S * l" geodesic shortest path5contains SPL formula§1, §8formula confirmed
11"soft-SPL" habitat definition formula "distance_to_goal" "start_distance"5soft_spl found in nav.py§5, §8SoftSPL confirmed
Look at row 7: that search returned nothing, and it is logged anyway. The ledger records the process, not the trophies — you can only trust it if you can see the failures in it.
Recording

What it looks like running.

85 seconds, unedited and not sped up.

Three narrow slices, stated up front:
  1. The workflow entry document (the batch launch prompt)
  2. A resumed run, as it appears in the front end
  3. The research summary for one chain inside a single topic
The full pipeline is considerably more involved. The raw research data and a large volume of intermediate documents do not appear on screen.
Raw materials

The originals, to read yourself.

The files that appear in the recording, published as they are and unedited. These are frozen snapshots — however the pipeline changes later, the versions here do not move. The research documents are in Chinese, the source language of the compiled corpus.

Five per-chain deep-research documents under that topic — section 12, “Retrieval log”, is the full version of the ledger above: