A porcelain magnifying glass with a violet lens on a stack of porcelain tiles

Authority for research agents that buy data

Data vendors, per-source budgets and a purpose that keeps a research agent on its question.

Neltava Team · Updated

What research agents buy

A research agent answers a question by finding sources — and good sources increasingly cost money. Market reports, industry datasets, paywalled articles, API access to financial or company data, transcripts, survey panels. Each purchase is small; together they are a real budget, spread across dozens of vendors the agent found on its own.

That shape — many small purchases from an open set of vendors — is exactly where fixed vendor lists stop working and spend authority has to carry the judgment.

The real risk: drift

Research agents rarely overspend in one go. They drift. The question was the European market for payments infrastructure; three steps later the agent is buying a consumer survey because a search result looked relevant, or a dataset about a neighbouring market because the vendor ranked first. Every purchase is cheap, plausible and slightly off-topic.

Budgets bound how much drift costs. Only a purpose check can notice that it is happening — by comparing each purchase with the question the budget was given for.

An authority for a research agent

research agent · authority
{
  "purpose": {
    "objective": "Size the European market for payments infrastructure",
    "success_criteria": [
      "Sources cover European payments infrastructure",
      "Every purchased source is cited in the weekly research report"
    ],
    "constraints": [
      "No personal consumer data",
      "No sources about unrelated markets"
    ],
    "context": "Strategy team, weekly market-sizing report"
  },
  "currency": "EUR",
  "per_transaction_limit_minor": 30000,
  "review_threshold_minor": 15000,
  "monthly_budget_minor": 200000,
  "velocity": {
    "max_count": 10,
    "window_seconds": 3600
  }
}
  • A purpose that states the question. The objective is the research question itself; the success criteria say what a useful source looks like; the constraints say what the budget must never buy.
  • A low review threshold. Most sources cost tens of euros. At €150 a person looks — the difference between a report and a full dataset licence.
  • Velocity. Ten purchases an hour is generous for real research and far too few for a loop.
  • No merchant allowlist, deliberately. The value of a research agent is finding sources you didn’t know. An allowlist would remove that; the purpose check and the thresholds replace it.

Three purchases

On the question

A market-sizing report about exactly the market in the objective:

request
curl -X POST https://api.neltava.com/v1/decisions \
  -H "x-api-key: $NELTAVA_AGENT_KEY" \
  -H "idempotency-key: run-7-step-3" \
  -H "content-type: application/json" \
  -d '{
    "task": "Weekly report: European payments infrastructure market size",
    "action": {
      "type": "purchase",
      "merchant": "MarketLens",
      "amount_minor": 9900,
      "currency": "EUR",
      "description": "Report: European payments infrastructure market sizing, 2026 edition"
    }
  }'

ALLOW — within every limit and aligned with the question. It happens without anyone noticing, which is the point.

Off the question

A cheap dataset the agent found along the way:

response · Enforce
{
  "decision_id": "dec_7f3c…",
  "decision": "REVIEW",
  "effective_decision": "REVIEW",
  "reason_code": "PURPOSE_MISALIGNED",
  "requested_amount_minor": 4900,
  "authorized_amount_minor": null,
  "currency": "EUR",
  "mode": "ENFORCE",
  "explanation": "Within every limit, but the spend is assessed as not serving the delegated purpose; a person decides."
}

€49 is nothing to a budget, and no rule would stop it. The purpose check sees that a dataset about sneaker popularity among teenagers doesn’t serve a question about European payments infrastructure — and asks a person rather than refusing it outright. A reviewer can still allow it, with a reason, if there is one.

On the question, but big

The full country-by-country dataset from the same vendor:

response · Enforce
{
  "decision_id": "dec_7f3c…",
  "decision": "REVIEW",
  "effective_decision": "REVIEW",
  "reason_code": "REVIEW_THRESHOLD_EXCEEDED",
  "requested_amount_minor": 24000,
  "authorized_amount_minor": null,
  "currency": "EUR",
  "mode": "ENFORCE",
  "explanation": "240.00 EUR is above the agent's autonomous approval threshold; a person decides."
}

Aligned, but €240 is above the €150 threshold: a person decides whether the report is enough or the dataset is needed. That is the kind of question a research lead should answer anyway.

Why the trace matters here

Research purchases are hard to judge in isolation. “€49 dataset” means little; “searched for European payment volumes, compared three providers, picked the one with country-level data” means a lot. When the agent sends its task and the steps that led to a purchase, the purpose check asks whether that path actually ends in this purchase — and the reviewer sees the same path.

Personal data and constraints

Research budgets can buy things an organization must not hold: lists of people, scraped profiles, personal consumer data. Write those out as constraints in the purpose — “no personal consumer data” — so a purchase that conflicts with them is sent to a person. And where a category of seller must never be paid at all, block it with a rule: rules are the only thing that refuses outright.

Rolling it out

  1. Connect the agent in Shadow Mode, with its task and steps attached to each request.
  2. Label a few dozen of its purchases: did this source serve the question? Those labels measure the purpose check against your own judgment.
  3. Set the threshold from what you see — most research budgets need one clear line between a source and a licence.
  4. Switch to Enforce once the readiness criteria are met.

When you don’t need it

Start in Shadow Mode

See what your agents would have done — before anything is blocked.

Connect one agent through the SDK, MCP or one HTTP call. Shadow Mode is free: every spend is decided and recorded, nothing is blocked.

Start free in Shadow Mode →no card · one agent in minutes

Keep reading