proof/b10
Benchmark B10

Knowledge Provenance
Two attribution layers. Every fact traceable.

Iranti attributes any stored fact to both (a) the agent ID that stored it and (b) the source label the agent declared at write time. This two-layer chain — session identity plus semantic source — lets downstream agents and operators ask not just what is known, but who established it and under what role.

Executed 2026-03-215 facts · iranti_who_knows APIn=5, single namespace

Results at a glance

5/5Facts attributed correctly with both agentId and source
2Attribution layers per fact (session identity + semantic source)
100%Provenance coverage — validFrom timestamps on all 5 facts
FindingEvery stored fact returned by iranti_who_knows carried a two-layer attribution chain: agentId (the authenticated session) and source (the declared semantic identity). No application-level tagging was required — the storage layer preserved both automatically.

What this measures

In a multi-agent system, knowledge accumulates fast. Facts get written by many agents across many sessions. Without provenance, a downstream agent has no way to evaluate the trustworthiness of a stored fact — it cannot tell whether the fact came from a high-confidence research agent or an early brainstorm.

B10 tests whether Iranti's iranti_who_knows API correctly returns two independent attribution layers for every stored fact: the session-level identity of the writer (agentId) and the semantic role the agent declared itself as (source).

Five facts about a research project were written under the project/stellar_echo/ namespace. Each was stored by benchmark_program_main acting as research_agent. iranti_who_knows was then called on the namespace — returning all five facts with both attribution fields present.

The benchmark does not test attribution across multiple distinct agentIds or sources. All five facts share the same writer identity. Cross-source disambiguation is not verified here.

The two-layer attribution chain

Each stored fact connects to two independent provenance layers. Amber = session identity (agentId). Teal = declared semantic source (source).

session identityagentIdbenchmark_program_mainStored Factproject/stellar_echosemantic sourcesource labelresearch_agentstored bydeclared astwo independent attribution layers — session identity + semantic source

What each layer means

The two layers answer different questions. AgentId answers who ran the code. Source answers what role that agent was playing.

Layer 1: agentId (session identity)

Automatically captured from the authenticated session that called iranti_write. This is who actually ran the code — the process or agent runtime that holds the session token.

agentId: benchmark_program_main
Layer 2: source (semantic source)

Declared by the agent at write time as a named attribute. This is who the agent claims to be acting as — a role, persona, or sub-agent identity. It is asserted, not verified.

source: research_agent

The evidence — 5-fact attribution grid

All five facts stored under project/stellar_echo/, with the agentId and source fields returned by iranti_who_knows.

Key (project/stellar_echo/)ValueagentIdsourceAttributed
primary_researcher"Dr. Elena Vasquez"benchmark_program_mainresearch_agent
research_focus"quantum error correction algorithms"benchmark_program_mainresearch_agent
institution"MIT Quantum Computing Lab"benchmark_program_mainresearch_agent
current_phase"Phase 2: algorithm optimization"benchmark_program_mainresearch_agent
expected_publication"Q4 2026"benchmark_program_mainresearch_agent
Total5 facts5/5 agentId5/5 source5/5

API response shape

The full response structure returned per fact by iranti_who_knows. Both attribution fields, value, and timestamp are present on every fact in the response.

iranti_who_knows("project/stellar_echo") — response shape (one fact)
{
  "entity": "project/stellar_echo",
  "key": "primary_researcher",
  "value": "Dr. Elena Vasquez",
  "agentId": "benchmark_program_main",
  "source": "research_agent",
  "validFrom": "2026-03-21T09:14:22.441Z",
  "confidence": 0.9
}

validFrom timestamps were present on all five returned facts, making provenance time-aware — a downstream agent can determine how old a fact is and factor recency into its reasoning.

Honest limitations

LimitationSource label is not cryptographically verified. source=research_agent is a declared attribute, not a verified session identity. Any agent with write access to the namespace can declare any source label. The attribution is useful for semantic organization but should not be treated as a trust boundary.
LimitationSmall test set (n=5). Five facts under a single namespace with a single writer identity is sufficient to confirm the attribution mechanism works. It does not characterize behavior with multiple competing writers, conflicting source labels, or high-volume provenance queries.
LimitationSingle writer — no cross-source disambiguation tested. All five facts were written by the same agentId with the same source label. B10 does not verify that iranti_who_knows correctly distinguishes between facts written by different agents under the same namespace. That is a separate capability not tested here.
NoteNamespace scope only. The query was scoped to project/stellar_echo. Cross-namespace provenance queries were not tested.

Key findings

FindingTwo-layer attribution is automatic. Both agentId and source were preserved by the storage layer without any application-level tagging. Provenance requires no extra engineering effort at write time.
Findingiranti_who_knows returns full attribution context. A single API call on a namespace returns all stored facts with complete provenance — value, agentId, source, validFrom, and confidence — enabling downstream agents to make trust-weighted decisions.
FindingProvenance is time-aware. validFrom timestamps on all five facts mean downstream agents can determine recency and weight older knowledge appropriately.
FindingSession identity and semantic role are decoupled. A single agentId (benchmark_program_main) can act as multiple semantic sources across different operations. This lets runtime identity stay stable while declared roles shift with context.
Raw data

Full trial execution records, agent logs, provenance payloads, and methodology notes in the benchmarking repository.