Skip to content
简体中文

Agent Card and Discovery ​

The Agent Card is A2A's discovery entry point. Any agent that fetches it learns who Caoliao is, what it can do, where to call it and what comes back — no separate integration document required.

Three discovery URLs ​

URLPurpose
https://a2a.objqr.com/.well-known/agent-card.jsonStandard discovery path of the service
https://qr61.cn/.well-known/agent-card.jsonThe same card, on a code domain
https://qr71.cn/.well-known/agent-card.jsonThe same card, on a code domain

All three return the same card.

Serving it from the code domains is deliberate. An agent that scans a Caoliao code receives a link like https://qr71.cn/..., and can discover the A2A service from that domain's .well-known path without knowing a2a.objqr.com beforehand.

Tip: clients still on A2A 0.2.x probe the older /.well-known/agent.json. That path is kept and returns the same card.

What is on the card ​

json
{
  "protocolVersion": "0.3.0",
  "name": "草料二维码实体查询 Agent",
  "description": "...",
  "url": "https://a2a.objqr.com/a2a/jsonrpc",
  "preferredTransport": "JSONRPC",
  "version": "0.1.0",
  "documentationUrl": "https://a2a.objqr.com/ext/caoliao-entity/v2",
  "iconUrl": "https://static.clewm.net/cli/images/cli_logo_new.png",
  "provider": {
    "organization": "草料二维码 (cli.im)",
    "url": "https://cli.im"
  },
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false,
    "extensions": [ "..." ]
  },
  "defaultInputModes": ["text/plain", "application/json"],
  "defaultOutputModes": ["application/json", "text/plain"],
  "skills": [ "..." ]
}
FieldDescription
protocolVersionTarget A2A protocol version, currently 0.3.0
descriptionBilingual (Chinese + English) capability description, for calling agents to decide whether to use this service
urlThe single JSON-RPC endpoint clients post to
preferredTransportTransport, JSONRPC
versionVersion of this agent itself, unrelated to the protocol version
documentationUrlPoints at the read-only contract extension spec
capabilitiesWhich protocol capabilities are supported, and which extensions are declared
defaultInputModesAccepted input types: plain text or JSON
defaultOutputModesReturned output types: JSON or plain text
skillsThree read-only skills, see Skills

Note: the card's name and provider.organization are in Chinese (the name means "Caoliao QR Entity Query Agent"). The description on the card — and on each skill — is bilingual, so an English-speaking agent can rely on the English half for capability selection.

The card carries no security or securitySchemes fields. That is intentional: the service requires no authentication, and per the A2A specification omitting these fields signals exactly that.

All three capabilities booleans are false, meaning: no streaming responses, no push notifications, no state-transition history.

Each skill uses the same input and output modes as the top-level defaults, so per-skill modes are omitted rather than repeated.

The read-only contract extension ​

The card declares an extension that spells out what comes back and which boundaries apply:

json
{
  "uri": "https://a2a.objqr.com/ext/caoliao-entity/v2",
  "required": false,
  "params": {
    "profile": "read-only",
    "schemaUrl": "https://a2a.objqr.com/ext/caoliao-entity/v2/schema.json",
    "appliesTo": ["get_entity", "get_records", "list_actions"],
    "invocation": "explicit-datapart-only",
    "rules": {
      "readOnly": true,
      "publicOnly": true,
      "singleOrgView": true,
      "actionsExecutable": false
    }
  }
}

A2A currently has no per-skill output schema field, so Caoliao uses the official extension mechanism to fill that gap. The extension provides two things:

  • Specification (human-readable): https://a2a.objqr.com/ext/caoliao-entity/v2
  • JSON Schema (machine-readable): https://a2a.objqr.com/ext/caoliao-entity/v2/schema.json

The schema is generated from the backend's own type definitions, so it cannot drift from what the service actually returns.

required is false: clients that do not recognize the extension can ignore it and still call normally.

About GB/Z 185—2026 ​

The card declares a second extension:

json
{
  "uri": "urn:gb-z-185:aip",
  "required": false,
  "params": {
    "standard": "GB/Z 185(所有部分)—2026",
    "alignment": "field-level",
    "descriptionUrl": "https://a2a.objqr.com/.well-known/aip-agent.json"
  }
}

Caoliao also publishes a description file conforming to GB/Z 185—2026 (Artificial Intelligence — Agent Interconnection, a Chinese national guiding technical document) at /.well-known/aip-agent.json.

This is a pointer, not a format conversion. The A2A card itself follows the A2A specification exactly — not one field was changed for the standard. Parties needing the national-standard description fetch it separately from descriptionUrl. It is likewise required: false, so clients that do not recognize it simply ignore it.

Next ​