Agent Schema

The Agent Schema defines signed identity documents for entities that can sign and verify JACS documents. Agents are cryptographic identities, not catalogs of services or contact records.

Schema Location

https://hai.ai/schemas/agent/v1/agent.schema.json

Overview

Agent documents describe:

  • Identity and versioning
  • Agent type
  • Optional DNS-based verification domain
  • Public-key and signature metadata

Capabilities for A2A interoperability are represented in A2A Agent Cards instead of the JACS identity schema.

Agent Types

The jacsAgentType field classifies the agent:

TypeDescription
humanIndividual person
human-orgOrganization or group
hybridCombination of human and AI components
aiFully artificial intelligence

Agent Fields

FieldTypeRequiredDescription
jacsIdstring (UUID)YesUnique agent identifier
jacsVersionstring (UUID)YesCurrent version identifier
jacsVersionDatestring (date-time)YesVersion timestamp
jacsTypestringYesSet to agent
jacsOriginalVersionstring (UUID)YesFirst version identifier
jacsOriginalDatestring (date-time)YesCreation timestamp
jacsLevelstringYesDocument level
jacsAgentTypestringYesAgent classification
jacsAgentDomainstringNoDomain for DNS verification
jacsSignatureobjectNoCryptographic signature
jacsSha256stringNoContent hash

DNS Verification

Agents can link to a domain for DNSSEC-validated verification:

{
  "jacsAgentDomain": "example.com"
}

The domain should have a DNS TXT record at _v1.agent.jacs.example.com. containing the agent's public key fingerprint.

Example

{
  "$schema": "https://hai.ai/schemas/agent/v1/agent.schema.json",
  "jacsId": "550e8400-e29b-41d4-a716-446655440000",
  "jacsVersion": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "jacsVersionDate": "2024-01-15T10:30:00Z",
  "jacsType": "agent",
  "jacsOriginalVersion": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "jacsOriginalDate": "2024-01-15T10:30:00Z",
  "jacsLevel": "artifact",
  "jacsAgentType": "ai",
  "jacsAgentDomain": "agent.example.com",
  "jacsSignature": {
    "agentID": "550e8400-e29b-41d4-a716-446655440000",
    "agentVersion": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
    "date": "2024-01-15T10:30:00Z",
    "signature": "base64-encoded-signature...",
    "publicKeyHash": "sha256-hash-of-public-key",
    "signingAlgorithm": "ring-Ed25519",
    "fields": ["jacsId", "jacsVersion", "jacsAgentType", "jacsAgentDomain"]
  },
  "jacsSha256": "document-hash..."
}

See Also