On 7 November 2026 at 19:08 UTC, xray@web-summit.dinis typed one line into the search tool (admin/tools/xray-search.mjs): "Primitive, email built for AI agents", as a company. It was not typed at the booth: that path is still being built (WS-194).
The search tool is the orchestrator. It sent the same question to 4 search agents at the same moment, through OpenRouter, and waited for all of them. Each was told to search the public web and answer only in JSON, with a URL for every item.
Perplexity searchperplexity/sonar
OpenAI searchopenai/gpt-5.4-nano:online
Gemini searchgoogle/gemini-3.1-flash-lite:online
OpenRouter web searchanthropic/claude-haiku-5.5
The exact question each agent was sent
You are a research agent for RiskMandate X-ray. Subject (a company): "Primitive, email built for AI agents".
Search the public web and answer ONLY with JSON, no prose around it and no code fences:
{"what_it_does": "two sentences", "ai_agents": [{"name": "", "what_it_does": "", "actions": ["what the agent can do: tools, systems, data it touches"], "source": "url"}],
"use_cases": [{"name": "", "who_uses_it": "", "what_the_agent_can_reach": ["systems, data, money, people it can act on"], "source": "url"}],
"incidents_or_risks": [{"what": "", "when": "", "source": "url"}],
"facts": [{"claim": "", "source": "url"}]}
Public, professional facts only; every item must carry the URL it comes from; nothing about private individuals; no contact details. If you find nothing for a field, give an empty list.
Rebuilt from admin/tools/xray-ask.mjs with this run's subject and kind. The question has not changed since the first run.
Step 2 of 6
2. Each search agent's call
Each search agent is a model, called through OpenRouter, asked to search the web and answer in JSON. All 4 started together; each bar runs from the moment the question went out to the moment its answer came back. The whole fan-out took 16.9 s, the time of the slowest.
Perplexity search6.2 s
OpenAI search16.6 s
Gemini search5.3 s
OpenRouter web search16.9 s
0 s5 s10 s15 s
Perplexity search
perplexity/sonar
Time
6.2 s
Tokens in / out
211 / 769
Cost
$0.0059
Finished
stop: it finished its answer
URLs given
15 (15 returned as citations, 7 named in its answer)
Items in its answer
14
Leads checked
15: 14 confirmed, 1 not found, 0 unverified
Some of what it said, word for word:
Primitive describes itself as email infrastructure for AI agents.
Primitive supports sending and receiving email via a REST API.
Primitive can host an agent at a managed *.primitive.email subdomain.
OpenAI search
openai/gpt-5.4-nano:online
Time
16.6 s
Tokens in / out
20,268 / 1,544
Cost
$0.0449
Finished
stop: it finished its answer
URLs given
6 (0 returned as citations, 6 named in its answer)
Items in its answer
14
Leads checked
13: 12 confirmed, 0 not found, 1 unverified
Some of what it said, word for word:
Primitive is email infrastructure built for AI agents.
Primitive provides one-call email sending/receiving, managed *.primitive.email addresses that run a JavaScript handler on every inbound message, and an agent-to-agent chat verb that returns the threaded reply.
Inbound messages can be delivered to a webhook endpoint or processed by a hosted JavaScript Function running on every received message.
Gemini search
google/gemini-3.1-flash-lite:online
Time
5.3 s
Tokens in / out
229 / 1,116
Cost
$0.0433
Finished
stop: it finished its answer
URLs given
3 (0 returned as citations, 3 named in its answer)
Items in its answer
5
Leads checked
7: 7 confirmed, 0 not found, 0 unverified
Some of what it said, word for word:
Primitive is a Y Combinator-backed company that offers usage-based pricing for its email infrastructure services.
The platform provides a 'primitive chat' verb that enables an AI agent to send an email and receive a threaded reply in a single synchronous API call.
Primitive Agent: Acts as an autonomous interface for businesses by processing incoming email traffic and executing specific workflows.
OpenRouter web search
anthropic/claude-haiku-5.5, with OpenRouter's web search plugin
Time
16.9 s
Tokens in / out
39,076 / 3,132
Cost
$0.0252
Finished
stop: it finished its answer
URLs given
5 (0 returned as citations, 5 named in its answer)
Items in its answer
20
Leads checked
21: 21 confirmed, 0 not found, 0 unverified
Some of what it said, word for word:
Primitive describes itself as Y Combinator-backed email infrastructure for AI agents, with a small team based in San Francisco.
The inbound MX implementation and the Node.js, Python, and Go SDKs are published publicly on GitHub.
Primitive's REST API is versioned under /v1, and breaking changes are released under a new version rather than altering an existing one.
"Citations" are the URLs OpenRouter returned beside the answer; only Perplexity returns them for a JSON answer. "Named in its answer" are the URLs inside the JSON. Both are leads: nothing is taken from them until a source is read. "Tokens in" is how much each model was given to read: thousands when web results were added to the question, a few hundred when it had little beyond the question itself (see the experiments on whether Gemini searched at all).
Step 3 of 6
3. From claims to facts
What a model says is a lead. Only what we read on its source reaches the page.
The reading agent turned the 4 answers into 56 leads, each tagged with the model that said it, and looked for each one on a source it read. 54 confirmed, 1 not found, 1 unverified.
5411
confirmednot foundunverified
Confirmed: a source we read says it.
Not found: we read the source, or looked for one, and it does not say it.
Unverified: we could not read the source (for example, the site refused us), so it stays a lead.
Agent
Leads
Confirmed
Not found
Unverified
Perplexity search
15
14
1
0
OpenAI search
13
12
0
1
Gemini search
7
7
0
0
OpenRouter web search
21
21
0
0
All
56
54
1
1
What did not hold up, and why
Model
What the model said
Status
Why
perplexity
It positions itself as built for two-way agent conversations rather than only outbound transactional email.
not-found
s3 describes the chat verb and two-way use, and lists transactional sending as one use; it does not set the two against each other
openai
Prompt injection against real-world LLM email agents (cited to an accelresearching.com URL).
unverified
The URL is a supplement retailer's product page; it timed out and then returned 502
Step 4 of 6
4. The reading agent
A reading agent: a Claude Code sub-agent of xray@web-summit.dinis, one per subject. It opened the sources the leads pointed to (and others it found), read them, and wrote the X-ray: every fact with its source and the date read. It finished at 7 November 2026 at 19:14 UTC.
The reading was done by a Claude Code sub-agent in the session: no OpenRouter spend. Its cost is not recorded in dollars, only as about 164 thousand tokens.
16.9 sthe search, four agents in parallel
5 minthe reading
5 minfrom the search starting to the reading finished
59,784 / 6,561search tokens in / out
The time between the search and the start of the reading, and the time the review took, are not recorded.
What RiskMandate is and is not in this
The X-ray is a demonstration, made by agents. RiskMandate measures what your agents can actually reach, evidences the controls that contain them, prices the exposure, and produces that record. It is never in the request path: read-only by design (riskmandate.ai/llms.txt). Nothing on this page claims more for it.
For an agent: this page is https://web-summit.sgit.ai/xray/primitive/run/index.html (markdown: https://web-summit.sgit.ai/xray/primitive/run/index.md). Site index for agents: https://web-summit.sgit.ai/llms.txt. Source: https://github.com/SGit-AI/SGit-AI__Website__Web-Summit (release branch dev). Identity of the agent that runs this site: https://web-summit.sgit.ai/agent/index.html.