Context
Following up on #1010 (AVPProvider, merged Apr 16).
The TrustProvider interface now lets toolkit consumers plug in reputation/trust sources. Scores are returned to the caller at call time, but there is currently no standardized way for downstream systems — identity directories, admin UIs, or policy engines — to surface those scores as agent attributes without each consumer writing glue code per provider.
This issue proposes a lightweight schema addition so TrustProvider output becomes a normalized, discoverable surface on the agent record, not just the return value of a one-off call.
Problem
Today (post-#1010), a TrustProvider returns structured data like:
{
"score": 0.85,
"tier": "trusted",
"confidence": 0.92,
"risk_level": "low",
"provider": "avp",
"updated_at": "2026-04-21T04:00:09Z"
}
Useful for runtime can_trust(did) decisions. Not visible in any downstream directory or UI.
An admin of any agent directory, or a DevOps dashboard, has no native way to see "this agent's reputation is 0.85 (trusted)" next to identity — unless each one writes a custom fetch against each configured TrustProvider. Entra Agent ID is one example of such a consumer; the pattern applies equally to internal admin panels and A2A policy engines.
Proposal
Introduce an optional trust_attributes section on the agent metadata schema, keyed by provider name, so multiple TrustProviders can contribute in parallel without one provider's schema locking out another.
Suggested schema addition
agent:
id: <did or agent id>
display_name: ...
identity: ...
# NEW optional section — keyed by provider
trust_attributes:
avp:
score: 0.85
tier: trusted
confidence: 0.92
risk_level: low
updated_at: 2026-04-21T04:00:09Z
source_uri: https://agentveil.dev/v1/reputation/{did}
# other TrustProviders can populate here in parallel
# example-internal-provider:
# score: 0.70
# ...
Each provider's subtree is self-contained. Common fields (score, updated_at, source_uri) can be standardized in the spec; provider-specific fields (tier, risk_level, custom dimensions) remain provider-scoped under the same key.
Surface, not storage
The toolkit's job here is to expose a normalized trust-attribute surface that downstream consumers can persist, cache, or render as they see fit. Persistence model, refresh cadence, and push-vs-pull semantics can remain implementation-defined — this proposal is about the shape of the data, not the plumbing.
What this is NOT
- Not a claim that AVP is the default or only TrustProvider — the schema is provider-agnostic by design.
- Not a requirement for any specific downstream consumer (Entra Agent ID or otherwise). Downstream consumption is out-of-scope here; the schema is the contract.
- Not a breaking change —
trust_attributes is optional, existing consumers unaffected.
Questions for maintainers
- Is there already a path in the toolkit for TrustProvider output to be normalized into agent metadata, or is this genuinely missing?
- Does the per-provider keyed map match how you see multi-provider scenarios evolving, or would you prefer a different shape (e.g. a list)?
- Any concerns about staleness semantics we should spec here (e.g.
updated_at as required field, max-age hints)?
Happy to prototype in a follow-up PR once direction is confirmed. AVPProvider could serve as one early implementation example; the schema is designed to be straightforward to populate from any TrustProvider.
Context
Following up on #1010 (AVPProvider, merged Apr 16).
The
TrustProviderinterface now lets toolkit consumers plug in reputation/trust sources. Scores are returned to the caller at call time, but there is currently no standardized way for downstream systems — identity directories, admin UIs, or policy engines — to surface those scores as agent attributes without each consumer writing glue code per provider.This issue proposes a lightweight schema addition so TrustProvider output becomes a normalized, discoverable surface on the agent record, not just the return value of a one-off call.
Problem
Today (post-#1010), a TrustProvider returns structured data like:
{ "score": 0.85, "tier": "trusted", "confidence": 0.92, "risk_level": "low", "provider": "avp", "updated_at": "2026-04-21T04:00:09Z" }Useful for runtime
can_trust(did)decisions. Not visible in any downstream directory or UI.An admin of any agent directory, or a DevOps dashboard, has no native way to see "this agent's reputation is 0.85 (trusted)" next to identity — unless each one writes a custom fetch against each configured TrustProvider. Entra Agent ID is one example of such a consumer; the pattern applies equally to internal admin panels and A2A policy engines.
Proposal
Introduce an optional
trust_attributessection on the agent metadata schema, keyed by provider name, so multiple TrustProviders can contribute in parallel without one provider's schema locking out another.Suggested schema addition
Each provider's subtree is self-contained. Common fields (
score,updated_at,source_uri) can be standardized in the spec; provider-specific fields (tier,risk_level, custom dimensions) remain provider-scoped under the same key.Surface, not storage
The toolkit's job here is to expose a normalized trust-attribute surface that downstream consumers can persist, cache, or render as they see fit. Persistence model, refresh cadence, and push-vs-pull semantics can remain implementation-defined — this proposal is about the shape of the data, not the plumbing.
What this is NOT
trust_attributesis optional, existing consumers unaffected.Questions for maintainers
updated_atas required field, max-age hints)?Happy to prototype in a follow-up PR once direction is confirmed. AVPProvider could serve as one early implementation example; the schema is designed to be straightforward to populate from any TrustProvider.