Use case · Research agents

Research agents with fewer things in the window, and better ones

Give a research agent two hundred documents and it will summarise all of them. Give it the six that matter and it will actually answer the question.

The mixture

01 · Persistent memory
Uses
02 · Current context
Uses
03 · Traceable decisions
Uses
04 · Shared context
Light
05 · Scoped retrieval
Leads
01 · What breaks

More context, worse answers

Research agents are usually starved of precision, not recall.

  1. 01

    Top-K is not relevance

    The ten most similar chunks are often ten paraphrases of the same point. The contradicting source, the one that changes the conclusion, scores eleventh.

  2. 02

    Everything is in scope

    The agent searched the whole corpus: last year's reports, drafts, another client's research. Precision fell, and so did trust.

  3. 03

    Long windows hide the signal

    Models degrade well before their advertised window. Stuffing more in costs more, runs slower and buries the passage that mattered.

02 · What it's made of

Mostly scoped retrieval. Then three others.

Every application on Alchemyst is a different mixture of the same five jobs. That mixture is what makes this a different piece of software from the one next to it, even though the API underneath is identical.

Leads · Scoped retrieval

The nearest match stops winning

Context arithmetic decides what enters the window: intersect the project, period and source scopes, subtract superseded and duplicate material, then rank what survives. The model sees a small, deliberate set instead of a long list of lookalikes.

  • Duplicates and paraphrases are subtracted.
  • Scope narrows before similarity ranks.
  • Smaller windows, lower cost, better answers.

Uses · Traceable decisions

Every claim, cited

Each finding carries the sources and scores it came from.

Uses · Persistent memory

What the analyst already ruled out

Rejected hypotheses and sources are remembered, so they are not suggested again.

Uses · Current context

The latest edition

Superseded reports are subtracted when a new edition lands.

That is four of the five. The fifth, shared context (what one agent learns, the next one already knows, on the same definitions), is what leads in Sales agents, Customer success and Enterprise operations instead. Same API, different mixture.

03 · What feeds it

The sources you already have

Bring sources in through the data-source integrations (PostgreSQL, MongoDB, Google Docs, Google Sheets, Amazon S3), an n8n workflow, or a direct context.add call. Each one lands scoped, so retrieval can intersect it with everything else.

Research reports (PDF)Web researchInternal memosInterview notesGoogle DriveAmazon S3
  1. 01 · Ingest

    Scope what you ingest

    Every document lands with a groupName: the sets it belongs to. Those sets are what retrieval intersects later, so the structure you choose here is the precision you get there.

    context.add
    import AlchemystAI from "@alchemystai/sdk";const client = new AlchemystAI(); // reads ALCHEMYST_AI_API_KEYawait client.v1.context.add({  context_type: "resource",  scope: "internal",  source: "research",  documents: [{    content: "H1 2026: LFP share of new EV battery capacity reached 48%, up from 41% in 2025.",  }],  metadata: {    fileName: "ev-battery-market-2026-h1.pdf",    groupName: ["research", "ev_batteries", "2026"],   // the sets this belongs to  },});
  2. 02 · Write

    Remember what was ruled out

    Research is as much about what you rejected as what you kept. Write rejected sources and hypotheses back, so the agent stops proposing them.

    context.memory.add
    await client.v1.context.memory.add({  sessionId: "project_ev_batteries",  contents: [{    role: "user",    content: "Exclude the 2024 vendor-sponsored survey: 60 respondents, all existing customers.",  }],  metadata: { groupName: ["research", "ev_batteries", "exclusions"] },});
  3. 03 · Search

    Search before synthesising

    Search intersects the scopes, subtracts superseded and duplicate content, and ranks what survives. Only that reaches the model, and the whole decision is recorded as a Context Trace.

    context.search
    const { contexts } = await client.v1.context.search({  query: "What is driving LFP adoption in 2026?",  scope: "internal",  similarity_threshold: 0.8,  minimum_similarity_threshold: 0.5,  metadata: { groupName: ["research", "ev_batteries", "2026"] },   // ∩ narrow scope});// − superseded, deduplicated → ranked → into the window// Every search is recorded as a Context Trace.const reply = await llm.respond(message, { context: contexts });

npm install @alchemystai/sdk or pip install alchemystai, both ship the same client. Full reference in the docs.

04 · Where it runs

Research is often someone else's data

Licensed reports, client materials and interview notes come with terms. Scope them per project and per client, so an agent working for one client never reads another's materials.

Security & compliance
Deployment
  • Managed cloud

    Encrypted in transit and at rest, isolated per organization, and scoped at write time.

  • Dedicated infrastructure

    Enterprise

    Single-tenant, with VPC peering when your data cannot share a network boundary.

  • Self-hosted

    On-premise

    Run the context layer on your own infrastructure, with OpenTelemetry for observability.

Talk to us

Bring the question it over-answers.

The one where the summary was long and the answer was missing.