Research

Preview

A first-class subsystem for multi-source retrieval, comparison, citation and synthesis.

Research is not "search then summarize". It is a planned investigation with source selection, cross-checking, conflict detection and an explicit confidence assessment.

Research pipeline#

question ─▶ research plan ─▶ source selection ─▶ retrieval
                                                      │
              ┌───────────────────────────────────────┘
              ▼
        extraction ─▶ cross-comparison ─▶ conflict detection
                                              │
                        ┌─────────────────────┤
                        ▼                     ▼
                  resolved evidence     unresolved conflict
                        │                     │
                        └────────┬────────────┘
                                 ▼
                    synthesis + citations + confidence

Source classes#

ClassExamplesDefault weight
Primary documentsFilings, standards, specifications, source codeHighest
AcademicPeer-reviewed papers, preprints (flagged as such)High
Official documentationVendor docs, API references, changelogsHigh
Structured dataDatasets, market data, chain dataHigh for facts, not for interpretation
NewsReporting from identifiable outletsMedium, recency-weighted
CommunityForums, issue threads, discussionsLow, corroboration required
Weights are heuristics applied during synthesis, not absolute rankings.

Conflict detection#

When two sources disagree on a material claim, Pimsy does not average them. It records both, attempts to explain the divergence — different date, different methodology, different scope — and reports the disagreement if it cannot be resolved.

evidence record (conceptual)
{
  class="tok-str">"claim": class="tok-str">"Median time-to-first-token for the 8B model is under 300ms",
  class="tok-str">"status": class="tok-str">"contested",
  class="tok-str">"support": [
    { class="tok-str">"source": class="tok-str">"vendor-benchmark-class="tok-num">2026-class="tok-num">04", class="tok-str">"value": class="tok-str">"210ms", class="tok-str">"class": class="tok-str">"vendor", class="tok-str">"weight": class="tok-num">0.4 }
  ],
  class="tok-str">"contradiction": [
    { class="tok-str">"source": class="tok-str">"independent-eval-class="tok-num">2026-class="tok-num">06", class="tok-str">"value": class="tok-str">"480ms", class="tok-str">"class": class="tok-str">"academic", class="tok-str">"weight": class="tok-num">0.8 }
  ],
  class="tok-str">"explanation": class="tok-str">"Vendor figure measured on cached prompts; independent figure on cold requests.",
  class="tok-str">"reported_confidence": class="tok-str">"low"
}

Citation tracking#

  • Every extracted claim carries the URL or document identifier, retrieval timestamp and the quoted span it came from.
  • Citations are resolvable: a verification check re-fetches a sample and confirms the span still supports the claim.
  • Claims produced from model knowledge rather than a retrieved source are labelled unsourced and cannot satisfy a citation requirement.

Invoking research directly#

ts
const report = await pimsy.research.run({
  question: class="tok-str">"What changed in EU AI Act obligations for general-purpose models in class="tok-num">2026?",
  depth: class="tok-str">"deep",              // quick | standard | deep
  sourceClasses: [class="tok-str">"primary", class="tok-str">"official", class="tok-str">"news"],
  requireCitations: true,
  maxSources: class="tok-num">40
});

report.claims.filter(c => c.status === class="tok-str">"contested");

Last updated 2026-09-09