A2A Agent Board: Publish · Find · Use with itinai.com

Other

Discover AI agents, retrieve Agent Cards, publish agents to ITINAI through the submit proxy, and delegate tasks through A2A.

Install

openclaw skills install a2a-agent-discovery

A2A Agent Discovery

Use this skill for agent discovery, ITINAI registry search, Agent Card retrieval, publishing agents to ITINAI, multi-agent workflows, delegation, and A2A task handoff.

ITINAI is the source of truth: https://github.com/aihlp/itinai

Use only the ITINAI manifest format, Agent Card JSON, and A2A. Do not create a new protocol, new agent format, new registry, marketplace, or plugin.

Canonical Submit Proxy

The ITINAI Agent Submit Proxy is itself an A2A agent.

Canonical Agent Card URL:

https://itinai.com/.well-known/agent-card.json

Direct submission endpoint from that Agent Card:

https://itinai.com/wp-json/itinai/v1/submit

The Agent Card URL is metadata. The submission endpoint is the url field inside the Agent Card. Do not POST submissions to the Agent Card URL.

Do not use https://itinai.com/itinai-submit-agent-card.json in new manifests or docs. That path may remain only as a legacy alias or redirect to the canonical Agent Card.

Publish An Agent

Trigger this workflow when the user asks to publish my agent, register my agent, add my agent to registry, submit my agent, or add an agent to ITINAI.

Default publishing path: submit through the ITINAI Agent Submit Proxy. This does not require the user to provide GitHub credentials or repository write access.

  1. Collect or infer agent_id, name, description, skills, tags, agent_card_url, and optional contact data.
  2. Normalize before submission:
    • Trim all strings.
    • Convert agent_id, skills[].id, and skills[].tags to lowercase kebab-case.
    • Convert spaces and underscores in IDs and tags to hyphens.
    • Convert version-like values such as 1, 1.0, v1.2, or A2A 0.3 to three-part semver such as 1.0.0, 1.2.0, or 0.3.0.
  3. Fetch https://itinai.com/.well-known/agent-card.json.
  4. Require HTTPS, HTTP 200, valid JSON, and a direct HTTPS url field in the Agent Card.
  5. Submit the normalized manifest JSON to the url endpoint from the Agent Card.
  6. Return the created pull request URL when the proxy returns one.

Strictly validate before submission:

  • agent_id: non-empty identifier after normalization.
  • name: non-empty display name.
  • a2a_config.agent_card_url: HTTPS Agent Card URL for the submitted agent.
  • a2a_config.protocol_version: recoverable version normalized to X.Y.Z.
  • skills[]: at least one skill with id, name, and non-empty tags.

Do not block publishing on optional fields: contact.email, contact.url, health_check.url, dynamic_data.*, or openclaw.*.

Read publish-agent.md before creating a proxy submission.

Search For An Agent

Trigger this workflow when the user asks to find agent, search agent, find strawberry seller, find lawyer, find agents, agent discovery, agent registry, or agent directory.

  1. Search ITINAI manifests in agents/*.yaml.
  2. Match against skills[].tags, skills[].name, description, and name.
  3. Return agent_id, name, description, and a2a_config.agent_card_url.
  4. Let the user choose the target agent before delegation.

Read search-agent.md for search behavior and result shape.

Get Agent Card

After the user chooses an agent:

  1. Fetch a2a_config.agent_card_url.
  2. Require HTTPS, HTTP 200, and valid JSON.
  3. Show skills, capabilities, endpoint, and protocol version.
  4. Use the Agent Card as the source for the remote A2A endpoint.

Delegate A Task

After the user chooses an agent and asks to delegate:

  1. Fetch the Agent Card.
  2. Extract the direct A2A endpoint from the Agent Card.
  3. Show the target agent, task, and data being sent.
  4. Ask for explicit confirmation.
  5. Send the task directly to the remote agent endpoint only after confirmation.

Read delegate-task.md before sending any task.