Skip to content

Proposal: agent-governance-vocabulary — canonical naming layer over existing governance specs #13

@aeoess

Description

@aeoess

Proposal: agent-governance-vocabulary — canonical naming layer over existing specs

Contribution bar (read before commenting)

This thread moves fast. To keep signal high:

  1. Artifact, not description. Open a PR with a working crosswalk/<system>.yaml file. Comments proposing a crosswalk without the file attached will be acknowledged but not treated as contributions until the PR exists.
  2. Field-level mappings against verifiable specs or live endpoints. Each canonical term you claim to map needs a concrete source: a spec section, an I-D number, a JWKS URL, a live API response. "We have something like this" is not enough.
  3. Explicit no_mapping for honest gaps. If your system genuinely diverges from a canonical term, document the divergence as no_mapping with rationale. Forced mappings hide exactly the differences the vocabulary layer is supposed to surface.

Repo: https://github.com/aeoess/agent-governance-vocabulary


Problem

Six governance implementations (APS, AgentNexus, MolTrust, AgentID, qntm, SINT) are converging structurally on the same primitives but using different names for the same things. The qntm#7 Authority Constraints thread has a 6-system table showing this directly. Same issue across crewAI#4560 (physical constraints), A2A#1717 (governance metadata), x402#1777 (identity resolution), insumer-examples#1 (multi-attestation).

A consumer trying to cross-verify signals across implementations has to learn every vocabulary separately. That's not sustainable as the ecosystem grows past 10 systems.

Non-solution: force everyone to rename internal code

Each implementation has years of internal APIs, SDKs in production, documentation, and existing users. Renaming breaks all of that. The proposal is NOT to force convergence on internal names.

Proposal: a naming layer that sits over existing specs

A canonical vocabulary repository (aeoess/agent-governance-vocabulary) containing:

  1. vocabulary.yaml — canonical names for the ~50 things every governance system has. Endpoints, fields, signals, decisions, constraints. Human-readable, versioned, namespaced.

  2. crosswalk/ — one YAML per implementation mapping its internal names to the canonical vocabulary. APS publishes crosswalk/aps.yaml, AgentNexus publishes crosswalk/agentnexus.yaml, etc.

  3. context.jsonld — JSON-LD @context so any JSON-LD-aware consumer can resolve canonical terms programmatically.

  4. examples/ — worked cross-system requests/responses using canonical names, proving the crosswalk roundtrips.

Prior art this is modeled after

  • IANA JWT claim registry — canonical names (iss, sub, aud, exp) with implementation-specific extensions
  • JSON-LD @context — decentralized term mapping via IRIs
  • W3C DID Core method registry — each DID method publishes its own spec, canonical resolution patterns apply across
  • CACAO (CAIP-74) — chain-agnostic capability object, exactly this pattern for cross-chain

What this is NOT

  • Not yet-another-spec competing with existing ones
  • Not a requirement to rename internal code
  • Not a centralized authority — the vocabulary is proposed, the crosswalks are contributed by each implementation
  • Not a replacement for implementation-level specs (APS, AgentNexus, qntm AAE, etc. all remain as-is)

Starter canonical vocabulary (draft v0)

Endpoints:

  • validate_capabilities — evaluate an agent's requested action against its active authorization
  • resolve_identity — resolve a DID to its verification key material
  • verify_attestation — verify a signed attestation against an issuer's JWKS
  • check_revocation — check whether a credential has been revoked
  • issue_credential — produce a signed attestation or delegation
  • get_trust_profile — retrieve an agent's trust signals

Envelope fields:

  • agent_did — the agent being described
  • issuer_did — the party making the attestation
  • delegation_chain_hash — content-addressable identifier for the authorization chain
  • active_constraints — the live constraint set governing the agent's actions
  • scope — permitted action classes
  • spend_limit — budget ceiling
  • validity_window{not_before, not_after}
  • wallet_binding — cryptographic binding to a specific wallet
  • attestation_timestamp — when the attestation was produced
  • expires_at — when the attestation becomes stale
  • signature_alg — cryptographic algorithm
  • canonicalization — serialization rule (JCS, etc.)

Signal types:

  • governance_attestation — signed decision about whether an action is authorized
  • identity_proof — signed proof of DID ownership
  • behavioral_fingerprint — signed summary of behavioral patterns
  • wallet_state — signed wallet binding + state
  • compliance_credential — signed regulatory conformance evidence
  • reputation_score — signed aggregate trust signal

Decisions:

  • permit — action proceeds unconditionally
  • deny — action blocked
  • conditional — action proceeds with additional constraints
  • defer — decision delayed pending additional evidence
  • step_up — action requires elevated authentication

Constraints:

  • retention_permitted — may the agent retain observed data
  • derivation_classes — what kinds of derivations are allowed
  • max_delegation_depth — how many hops the authority chain can extend
  • reversibility_ceiling — upper bound on action irreversibility
  • trust_floor — minimum trust score required

How this composes with qntm#7 Authority Constraints WG scope

The 6-system table I posted there is already a crosswalk in narrative form. Formalizing it as YAML + JSON-LD context gives the WG a concrete deliverable: each system contributes its crosswalk, the canonical vocabulary emerges from the overlap, and the interop layer (envelope + decision artifact from qntm#7) sits on top of the vocabulary layer.

Next steps

  1. Open aeoess/agent-governance-vocabulary as public repo with the v0 vocabulary above
  2. Publish crosswalk/aps.yaml as the first contributor crosswalk
  3. Invite AgentID (Harold), AgentNexus (Kevin), MolTrust (MoltyCel), SINT (pshkv), qntm (vessenes), Signet (NicholaiVogel), ScopeBlind (tomjwxf), and Cedar implementations to contribute their crosswalks
  4. Cross-link from qntm#7 as the concrete deliverable for the Authority Constraints WG scope
  5. After 3 crosswalks land, publish an examples/ directory with worked cross-system request/response pairs proving the roundtrip

This is a low-cost, high-leverage coordination mechanism. Nobody has to rename anything. The ecosystem gets a shared reference that grows incrementally with each contribution.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions