Proposal: Verifiable Reputation Pointer extension (typed, content-addressed reputation field on the Agent Card)
- Lenguaje dominante
- Shell
- Estrellas
- 25.7k
- Forks
- 2.6k
- Merge medio
- 3 d 6 h
- PR fusionados (30 d)
- 16
Descripción
## Abstract
A data-only extension defining a typed field an `AgentCard` MAY carry: a pointer to an agent's reputation record that is **content-addressed and independently recomputable**, not merely a link a caller has to trust on the issuer's word.
## Motivation
An `AgentCard` can already carry an arbitrary URL to a reputation page in `metadata` or free text. That's insufficient for three reasons the core protocol doesn't currently address:
1. **No commitment to a specific export.** A bare URL can change server-side at any time with no caller-visible signal — no way to confirm the record checked five minutes ago is the same one being served now.
2. **No fork detection.** A server could show different histories to different callers, each individually plausible, with no way to catch it without comparing notes out of band.
3. **No explicit start-of-history marker.** A caller walking a reputation feed backward can't distinguish "this is genuinely where history starts" from "the history before this point was truncated" — both look identical (an absent predecessor).
None of this is achievable with the core protocol or `metadata` alone, since it requires a *typed*, *checkable* contract (a defined verification procedure a caller runs), not just a place to put a string.
## Technical approach
Full RFC 2119 specification + a zero-dependency Python reference implementation, checked against a real, live example (not a synthetic fixture) — this repo:
**https://github.com/babyblueviper1/a2a-ext-reputation-pointer**
The pointer carries `issuer`/`scheme`/`ref`, a `verifyingKey`, an anchored `committedAt`, a content-addressed `headCommitment` chaining the record into an ordered history, a `publishedHeadLocation` (independent locations a caller compares to catch a fork), and an explicit `genesisMarker` (a fixed, checkable constant distinguishing start-of-chain from truncation).
The reference implementation's example is a real `AgentCard` extension declaration pointing at entry #40 of [invinoveritas](https://api.babyblueviper.com/ledger)'s own reputation ledger — the documented root its content-addressed head-chain starts from. `python3 v1/reference-python/verify_reputation_pointer.py` independently recomputes `headCommitment` and `genesisMarker` from the record's own bytes and confirms both are tamper-sensitive.
Originated from a real design discussion: #1962.
Guía de contribución
Evaluación
Este issue todavía no se ha evaluado.