2026-03-14 marked the day a live research pipeline that served product engineers, data scientists, and legal reviewers hit a hard plateau. The service crawled internal docs, vendor PDFs, and public research to answer developer queries; during a product launch the throughput dropped and results became noisy. The stakes were real: developer productivity stalled, SLOs slipped, and stakeholders threatened to freeze feature work until search became reliable again. The Category Context for this effort was clear-this is about AI Research Assistance and where AI Search meets Deep Search for engineering teams that must move from quick answers to defensible evidence.
Discovery
We traced the outage to two simultaneous faults: first, the conversational search component returned short, poorly sourced answers when queries required synthesis across 20+ documents; second, the pipeline kept re-processing unchanged PDFs because our file-hash logic missed embedded OCR layers. That meant long tail queries timed out and our front-end showed stale metadata.
A measured snapshot before remediation showed three failure modes:
- High latency for multi-document queries (95th percentile spiked).
- Incorrect source attribution for synthesized answers.
- Repeated work on unchanged artifacts that increased cost and queue length.
This was less a model accuracy problem and more an architecture mismatch: the system had been built like a fast AI Search layer but was being asked to perform Deep Research. The decision point became obvious-either keep tuning short-answer search or introduce a research-oriented workflow capable of planning and deeper aggregation.
Implementation
We designed a phased intervention that used three tactical maneuvers: retrieval hardening, plan-driven synthesis, and artifact-level deduplication. Keywords used as tactical pillars were applied deliberately as part of the roll-out.
Phase 1 - Retrieval hardening
A tighter, chunk-aware retriever replaced the naive page-index approach. Retrieval scoring combined dense embeddings with a vote of BM25 ranks, and we added an explicit retriever confidence score so downstream logic could decide when to escalate.
Context before code:
We validated chunking rules with a small script that allowed deterministic hashing and chunk checks.
# chunk_hash.py - produce deterministic chunk hashes for PDF pages
from hashlib import sha256
def chunk_hash(text, idx):
return sha256(f"{idx}|{text}".encode()).hexdigest()
# used to detect changes across OCR layers and skip reprocessing
Phase 2 - Planner-led synthesis
Instead of passing a single prompt to an LLM and trusting its summary, the pipeline used a two-stage flow: plan -> fetch -> synthesize. The plan enumerated sub-questions and required explicit citation of top-3 sources per sub-answer. This is where adopting a focused Deep Research Tool style workflow paid off, because the agent could produce structured sections, not just a paragraph-level reply, and we measured fewer hallucinations as a result.
Phase 3 - Artifact deduplication and orchestration
The file ingestion service was changed to inspect OCR layers and compute a stable fingerprint that incorporated layout tokens. This prevented repeated CPU-heavy OCR runs and removed the largest queue offender. The following command-line snippet shows the hash-and-skip logic used in CI for upstream ingestion:
# ingest-check.sh - skip ingest if fingerprint matches
FINGERPRINT=$(python -c "from ingest import fingerprint; print(fingerprint(file.pdf))")
if grep -q $FINGERPRINT fingerprints.db; then
echo "skip"
else
python ingest.py file.pdf && echo $FINGERPRINT >> fingerprints.db
fi
Why this path, not alternatives?
- We rejected a complete move to a single, larger LLM because cost and latency would have ballooned and degraded developer UX.
- We rejected simple caching because the root cause was repeated OCR rework and poor retrieval relevance for long queries.
- The chosen path traded some implementation complexity for long-term stability and reproducibility: a planner + hardened retriever provides explainable outputs and easier debugging.
Friction & pivot
Mid-implementation a stubborn issue appeared: planner-generated plans sometimes requested sources that were present but behind authorization gates; that caused timeouts and partial outputs. The temporary fix was to add a preflight authorization check and a secondary plan branch that would fall back to "public-evidence only" mode. We logged the planner decisions for audit and used them to refine access rules. The error pattern looked like this:
"FetchError: 401 unauthorized for https://internal.corp/docs/2025-study.pdf"
Handling it required integrating access tokens earlier in the fetch step and adding a retry with token-refresh. That extra integration work cost a sprint but eliminated intermittent 30-60s stalls in the research flow.
Integration with existing tools
To align developer workflows we exposed the planner outputs in a compact UI, and integrated a lightweight "evidence panel" so engineers could click to view the original paragraph. The evidence panel pattern mirrored what product teams expect from good AI Research Assistance: structured claims + direct links to proof.
Results
The after-state converted the pipeline from brittle ad-hoc search into a resilient research assistant for engineering teams. Key outcomes included:
- Latency: 95th-percentile query time dropped from prior spike levels to a stable range, significantly reducing developer wait time during peak load.
- Cost: eliminating repeated OCR runs reduced CPU spend on ingestion by a substantial margin and shortened the processing backlog.
- Trust: planner-led answers were accompanied by explicit source citations, which dramatically reduced manual verification work for reviewers.
Before/after comparisons (technical):
- Old: single-prompt LLM synth -> unclear sources -> manual triage.
- New: plan + retrieval + synth -> structured sections with top-3 citations -> immediate triage.
Concrete artifacts provided to stakeholders included the planner logs, a sample evidence panel snapshot, and production traces demonstrating reduced queue length. The primary ROI was in reclaimed engineering time and predictable SLOs: once the pipeline stabilized, feature velocity resumed without adding headcount.
Trade-offs and limits
- This architecture adds orchestration complexity; teams with only occasional deep queries should not adopt the full planner model.
- There is a latency cost for deep reports; if sub-second answers are the requirement, a hybrid strategy (fast search for short queries, planner for deep queries) works better.
Final takeaway
Teams that need more than a quick answer-teams that require defensible, multi-document analysis-benefit from treating research as a workflow: retrieval, plan, synthesize, and then present. Where quick fact-checks are the goal, an AI Search approach suffices; where evidence and depth matter, a Deep Research AI pattern is the right investment. If your stack needs in-depth crawling, multi-document synthesis, and reproducible evidence trails, the kind of toolkit found at the center of modern research platforms will feel inevitable.
Top comments (0)