ARD — Agentic Resource Discovery: A Camada que Faltava no Ecossistema de Agentes
Entenda o ARD, a especificação que permite agentes descobrirem tools, skills e outros agentes automaticamente via catálogos e registries.
ARD — Agentic Resource Discovery: A Camada que Faltava no Ecossistema de Agentes
Imagine um hotel cinco estrelas com 200 quartos, spa, três restaurantes e um centro de conferências. Agora imagine que o concierge não tem acesso à lista de serviços. Ele sabe atender — é treinado, educado, eficiente — mas quando o hóspede pergunta “vocês têm um chef japonês?”, ele precisa ligar para cada setor, um por um, perguntando se existe. Multiplique isso por 50 hóspedes simultâneos.
Esse é o estado atual do ecossistema de agentes IA.
Temos o MCP para um agente chamar ferramentas. Temos o A2A para agentes conversarem entre si. Mas quando um agente precisa responder “quem, nesse ecossistema, sabe fazer o que eu preciso?” — não há protocolo padrão. Ele depende de configuração manual, listas estáticas ou, pior, hardcode de endpoints.
O ARD — Agentic Resource Discovery é a especificação que resolve esse gap. É a lista de serviços do hotel, atualizada em tempo real, com verificação de identidade e busca semântica. Publicada em 17 de junho de 2026 como v0.9 (Draft), já conta com contribuições de Google, Microsoft, Hugging Face, GoDaddy, GitHub, Cisco, Databricks, NVIDIA, Salesforce, ServiceNow e Snowflake.
Não é coincidência que essas empresas estejam todas na mesa. O discovery é o gargalo que impede agentes de operarem em ecossistemas abertos. Sem ele, cada integração é um contrato bilateral negociado manualmente. Com ele, a web de agentes funciona como a web de documentos: publicou, está descobrível.
O que é ARD
ARD é uma especificação aberta (Apache 2.0) que define como agentes de IA descobrem capabilities, ferramentas e outros agentes disponíveis em um ecossistema. Foi construída sobre o ai-catalog standard da Linux Foundation AI Catalog Working Group.
Os autores — Junjie Bu (Google), R.V. Guha (Microsoft) e Shaun Smith (Hugging Face) — atacam um problema fundamental: à medida que o número de agentes e ferramentas cresce, o discovery manual não escala.
O repositório oficial fica em github.com/ards-project/ard-spec (398 stars, 46 forks, 91 commits em julho de 2026), com documentação em agenticresourcediscovery.org.
A arquitetura se apoia em duas primitivas:
- Catálogo estático — um arquivo
ai-catalog.jsonque cada publisher hospeda no seu domínio - Registry dinâmico — uma API com endpoint
POST /searchpara busca semântica em tempo real
Pense no catálogo como a plaquinha na porta do quarto de hotel (“Suíte Master, capacidade 4 pessoas, vista mar”). O registry é o sistema de reservas que cruza sua busca (“quarto com vista mar para amanhã”) com tudo que está disponível.
Catálogo Estático: ai-catalog.json
O ponto de entrada mais simples do ARD é o catálogo estático. Você cria um arquivo JSON e hospeda em /.well-known/ai-catalog.json no seu domínio. Qualquer agente que conheça essa convenção pode fazer discovery automático dos seus recursos.
Aqui está a estrutura real de um catálogo:
{
"specVersion": "1.0",
"host": {
"displayName": "Acme Corp AI",
"identifier": "did:web:acme.corp"
},
"entries": [
{
"identifier": "urn:air:acme.corp:agents:invoice-processor",
"displayName": "Invoice Processor Agent",
"type": "application/a2a-agent-card+json",
"url": "https://agents.acme.corp/invoice-processor/.well-known/agent.json",
"description": "Processa faturas em PDF, extrai dados estruturados e reconcilia com o ERP",
"capabilities": ["pdf-extraction", "data-reconciliation", "erp-integration"],
"representativeQueries": [
"processar fatura em PDF e extrair dados",
"reconciliar nota fiscal com ERP"
],
"trustManifest": {
"identity": "spiffe://acme.corp/agents/invoice-processor",
"identityType": "spiffe",
"attestations": [
{ "type": "SOC2-Type2", "uri": "https://trust.acme.corp/reports/soc2.pdf" },
{ "type": "GDPR", "uri": "https://trust.acme.corp/compliance/gdpr" }
]
}
},
{
"identifier": "urn:air:acme.corp:tools:sentiment-analysis",
"displayName": "Sentiment Analysis Tool",
"type": "application/mcp-server-card+json",
"url": "https://tools.acme.corp/sentiment/mcp.json",
"description": "Análise de sentimento multilíngue via MCP server",
"capabilities": ["text-analysis", "multilingual", "batch-processing"],
"representativeQueries": [
"analisar sentimento de reviews em português",
"classificar tom de mensagens de suporte"
]
}
]
}Observe os pontos-chave:
typediferencia o tipo de recurso. O ARD suportaapplication/a2a-agent-card+json(agentes A2A),application/mcp-server-card+json(MCP servers),application/ai-skill,application/ai-registry+jsoneapplication/ai-catalog+jsoncapabilitiespermite busca por competência, não só por nomerepresentativeQueriessão exemplos de perguntas em linguagem natural que o recurso responde — os registries usam esses exemplos para construir embeddings semânticos e ranquear resultadostrustManifestinclui identidade verificável e attestations de compliance- Cada entry exige exatamente um de
url(referência remota) oudata(artefato inline) — nunca ambos
O catálogo estático é determinístico e cacheável. Não exige infraestrutura além de um web server. Um desenvolvedor indie pode publicar um ai-catalog.json no mesmo domínio onde já hospeda seu site e tornar seus tools descobríveis por qualquer agente que implemente ARD.
Mecanismos de Discovery
Para que agentes encontrem o catálogo, o ARD define quatro mecanismos de discovery:
- Well-Known URI —
/.well-known/ai-catalog.json(o padrão primário) - Agentmap em robots.txt — diretiva
Agentmap:apontando para o catálogo - HTML Link Tag —
<link rel="ai-catalog" href="/ai-catalog.json">no head - DNS Service Binding records — para discovery a nível de infraestrutura
Isso é deliberado. O catálogo funciona como o robots.txt funciona para crawlers: uma convenção simples que qualquer agente sabe onde buscar.
Registry Dinâmico: POST /search
O catálogo estático resolve o caso de “eu conheço o domínio e quero saber o que ele oferece”. Mas e quando você precisa buscar “quem no ecossistema faz análise de sentimento em português?”
Para isso existe o registry dinâmico. O ARD define uma API com três endpoints:
| Endpoint | Método | Obrigatório? | Função |
|---|---|---|---|
/search | POST | ✅ Sim | Busca semântica com filtros |
/explore | POST | Opcional | Agregações e facets |
/agents | GET | Opcional | Listagem determinística completa |
O endpoint obrigatório é o POST /search. Aqui está um request real:
{
"query": {
"text": "process invoices and extract structured data from PDF documents",
"filter": {
"type": ["application/a2a-agent-card+json"],
"trustManifest.attestations.type": ["SOC2-Type2"]
}
},
"federation": "auto",
"pageSize": 5
}E a resposta:
{
"results": [
{
"identifier": "urn:air:acme.corp:agents:invoice-processor",
"displayName": "Invoice Processor Agent",
"type": "application/a2a-agent-card+json",
"url": "https://agents.acme.corp/invoice-processor/.well-known/agent.json",
"description": "Processa faturas em PDF, extrai dados estruturados e reconcilia com o ERP",
"score": 92,
"source": "https://registry.acme.corp/api/v1/"
},
{
"identifier": "urn:air:fintech.io:agents:doc-extractor",
"displayName": "Document Extraction Service",
"type": "application/a2a-agent-card+json",
"url": "https://api.fintech.io/.well-known/agent.json",
"description": "Extração de dados de documentos financeiros com OCR avançado",
"score": 78,
"source": "https://finder.external.org/api/"
}
],
"referrals": [
{
"identifier": "urn:air:nlweb.ai:registry:public",
"displayName": "Public Agent Finder",
"type": "application/ai-registry+json",
"url": "https://finder.nlweb.ai/search"
}
],
"pageToken": "eyJwYWdlIjogMn0="
}O campo score merece atenção: é um valor de 0 a 100 representando relevância semântica da busca — não é um trust score. Um agente com score 92 é altamente relevante para a query textual, mas a decisão de confiar nele depende do trustManifest.
Repare no array referrals na resposta: quando o registry está no modo referrals ou auto, ele pode retornar ponteiros para outros registries que o cliente pode consultar. Isso é a federação em ação.
Identificadores URN: Endereçamento Global de Recursos
Cada recurso no ARD recebe um identificador único no formato URN (Uniform Resource Name) ancorado ao domínio do publisher:
urn:air:<publisher>:<namespace>:<resource-name>Exemplos concretos:
| URN | O que identifica |
|---|---|
urn:air:acme.corp:agents:invoice-processor | Agente de processamento de faturas da Acme |
urn:air:huggingface.co:tools:text-generation | Tool de geração de texto do Hugging Face |
urn:air:snowflake.com:agents:cortex-analyst | Agente Cortex Analyst da Snowflake |
O design é domain-anchored por uma razão: o domínio funciona como raiz de confiança. Se o URN diz urn:air:acme.corp:..., você sabe que o publisher controla acme.corp e pode verificar a identidade via DNS/TLS. Não existe um registro central — o namespace é tão distribuído quanto a própria web.
Isso resolve o problema de colisão de nomes sem exigir uma autoridade centralizada. Dois publishers podem ter um agente chamado “invoice-processor” sem conflito, porque o domínio os diferencia.
Trust Manifest: Verificação Criptográfica
Discovery sem trust é um vetor de ataque. Se qualquer agente pode se listar em um registry, como o consumidor sabe que aquele “Invoice Processor” não é um impostor?
O ARD resolve isso com o trustManifest — um objeto de metadados criptográficos que acompanha cada entry do catálogo. Ele cobre três dimensões:
1. Identidade
O publisher prova quem é através de mecanismos padronizados:
- HTTPS FQDN — o mais simples: o recurso está no domínio X, e o TLS do domínio X prova ownership
- SPIFFE IDs — identidade workload-level para ambientes cloud-native (ex:
spiffe://acme.corp/agents/invoice-processor) - DIDs (Decentralized Identifiers) — para cenários onde identidade descentralizada é necessária
2. Attestations
Certificações e compliance verificáveis. Cada attestation tem um type e um uri apontando para o documento de prova:
{ "type": "SOC2-Type2", "uri": "https://trust.acme.corp/reports/soc2.pdf" }{ "type": "HIPAA-Audit", "uri": "https://trust.acme.corp/compliance/hipaa" }{ "type": "GDPR", "uri": "https://trust.acme.corp/compliance/gdpr" }
Não é um campo free-text. O formato estruturado permite que um agente consumidor filtre programaticamente por compliance requirements antes de consumir o recurso.
3. Proveniência
Metadados sobre a origem do recurso: quem criou, quando foi publicado, qual versão da spec implementa, histórico de atualizações.
O trustManifest não substitui uma avaliação de segurança completa — mas dá ao agente consumidor informações verificáveis para tomar decisões de trust automaticamente. Um agente enterprise pode ser configurado com uma política: “só consumir recursos com attestation SOC2 e identidade via SPIFFE”. O registry filtra antes de retornar resultados.
Federação: Como Registries Conversam
Em produção, não vai existir um único registry global. Empresas terão registries privados, provedores de cloud terão registries públicos, comunidades open-source terão os deles. A spec define três modos de federação para interconexão:
| Modo | Comportamento | Use case |
|---|---|---|
| auto | Merge automático — o registry combina resultados locais com resultados de registries federados | Discovery amplo, maximiza cobertura |
| referrals | Retorna ponteiros para outros registries em vez de resultados diretos | Quando o registro federado exige autenticação separada |
| none | Só resultados locais, sem federação | Ambientes isolados, compliance strict |
Na prática, federação funciona assim: seu agente faz POST /search no registry corporativo. O registry verifica localmente, e se estiver no modo auto, também consulta registries federados (ex: o registry público do Hugging Face). Os resultados voltam unificados, com indicação de origem.
O modo referrals é mais conservador — o registry diz “não tenho isso, mas o registry X pode ter” e retorna o endpoint dele. O agente decide se quer seguir o referral. Isso é útil quando registries federados exigem autenticação própria ou operam sob jurisdições diferentes.
O modo none existe para ambientes regulados onde nenhum dado deve sair do perímetro — bancos, hospitais, governo. O registry funciona como catálogo interno e ponto final.
ARD vs MCP vs A2A: O Stack Completo
“Mais um protocolo? Por que não resolve tudo com MCP?”
Porque cada um resolve uma camada diferente — e as três são necessárias:
| Dimensão | MCP | A2A | ARD |
|---|---|---|---|
| Pergunta que responde | “Como chamo essa tool?” | “Como falo com esse agente?” | “Quem sabe fazer o que eu preciso?” |
| Camada | Execução | Comunicação | Discovery |
| Analogia | O telefone | A língua franca | A lista telefônica |
| Publisher | Anthropic | Google + Microsoft + Hugging Face | |
| Timing | Nov 2024 | Abr 2025 | Jun 2026 |
| Pré-requisito | — | — | MCP e/ou A2A |
ARD não substitui MCP ou A2A. É a camada que senta na frente deles. O fluxo completo funciona assim:
- ARD — Agente busca “quem processa faturas em PDF com compliance SOC2?”
- A2A — Agente inicia comunicação com o Invoice Processor descoberto
- MCP — Durante a conversa, o Invoice Processor chama tools de OCR e ERP via MCP
Sem ARD, o passo 1 é manual — um humano configura quais agentes cada sistema conhece. Com ARD, esse discovery acontece programaticamente, em tempo real, com verificação de trust.
Os três protocolos resolvem camadas diferentes: MCP deu braços aos agentes (tools). A2A deu voz (comunicação peer-to-peer). ARD dá visão (discovery do ecossistema).
Quem Já Implementou
A spec tem pouco mais de um mês desde a publicação, mas as implementações já estão em produção ou em beta avançado:
Hugging Face — A implementação de referência. O Discover Tool (hf discover search) faz busca semântica sobre os Spaces, retornando agentes e tools no formato ARD. Se você já usa o Hugging Face, pode testar hoje.
Snowflake — Cortex Agents com auto-registro ARD. Quando você deploya um agente via Cortex, ele se registra automaticamente no registry corporativo, ficando descobrível por outros agentes do mesmo tenant.
Google Cloud — Agent Registry no Gemini Enterprise Agent Platform. Anunciado na Cloud Next ’26, disponível em breve. Será o registry nativo para quem usa Vertex AI Agent Builder.
GoDaddy — Agent Name Service (ANS), uma abordagem fascinante que usa DNS e PKI existentes como infra de identidade para agentes. Parceria com Cloudflare e Infoblox. Em vez de inventar uma nova camada de identidade, reutiliza a infraestrutura de nomes que já opera na internet há décadas.
IETF — O draft draft-hood-agtp-ard-00 está em processo de formalização, sinalizando que o ARD pode se tornar um padrão da internet (RFC), não só uma spec de indústria.
Implementações independentes — O Suganthan.com publicou um ai-catalog.json no seu domínio e relatou que um agente externo o descobriu automaticamente e interagiu com seus recursos — validando o modelo de discovery descentralizado na prática. Isso demonstra que ARD não é só para big tech: qualquer publisher com um domínio e um JSON pode participar do ecossistema.
O que Muda pra Você
Se você trabalha com agentes de IA — como desenvolvedor, arquiteto, ou product owner — o ARD altera o jogo em três dimensões:
Se você publica ferramentas ou agentes
Publicar um ai-catalog.json no seu domínio é o novo “SEO para agentes”. Assim como você otimiza páginas para o Google encontrá-las, agora precisa publicar metadados estruturados para agentes encontrarem seus serviços.
O custo é mínimo — um arquivo JSON estático no well-known path. O retorno potencial é descobribilidade automática por qualquer agente que implemente ARD. Se você mantém um MCP server público ou um agente A2A, o catálogo é o que conecta esse recurso ao ecossistema sem depender de cadastro manual em marketplaces terceiros.
Se você constrói sistemas multi-agente
Discovery dinâmico via registry significa que seu orquestrador não precisa de uma lista estática de agentes disponíveis. Ele pode buscar capabilities em tempo real, adaptar-se a novos agentes que aparecem no ecossistema, e respeitar políticas de trust automaticamente.
Isso transforma arquiteturas multi-agente de “configuração manual para cada integração” para “discovery e composição em runtime”.
Se você opera agentes em enterprise
O trust manifest é a peça que faltava para governança. Políticas corporativas podem ser expressas como filtros de registry: “só agentes com SPIFFE ID do nosso cluster”, “só recursos com SOC2 e GDPR”, “federar com o registry da consultoria X mas não com registries públicos”.
Isso dá ao security team controle programático sobre quais recursos os agentes internos podem descobrir e consumir — sem bloquear a agilidade dos times que deployam novos agentes.
MCP para execução, A2A para comunicação, ARD para discovery. Cada camada resolve um problema distinto, e juntas formam a infraestrutura para agentes operarem em ecossistemas abertos — não em silos configurados à mão.
O ARD v0.9 ainda é draft. Vai evoluir, schemas vão mudar, e haverá edge cases não cobertos. Mas o modelo mental — catálogo estático para publishers, registry dinâmico para busca, trustManifest para segurança, federação para escala — já está claro. E já está em produção.
Se você publica tools ou agentes: crie seu ai-catalog.json. Se você consome: comece a integrar busca via registry. O custo de adoção é baixo, e o ecossistema não vai esperar.