에이전트가 홈페이지에 도착하면 무엇을 읽을 수 있을까?
요약
AI 에이전트가 웹사이트를 평가하는 방식은 인간과 유사하지만, 초 단위의 속도와 JSON 형식의 데이터를 선호합니다. 본문에서는 에이전트가 실시간 소스에서 생성되는 표준화된 매니페스트(manifests)들을 통해 사이트 정보를 읽어내는 방법을 설명하며, 이를 통해 웹사이트의 진실성을 확보하는 것이 중요함을 강조합니다.
핵심 포인트
- 에이전트는 JSON 기반의 구조화된 데이터를 선호한다.
- 표준 매니페스트를 통해 정체성, 역량, 결제 방식을 노출할 수 있다.
- 매니페스트는 코드 자체에서 생성되어 '오래된 정보'가 될 수 없다.
- CI/CD 과정에 매니페스트 검증을 포함하여 데이터의 신뢰성을 확보해야 한다.
AI 에이전트가 벤더를 평가하는 방식은 인간이 하는 것과 같습니다. 사이트를 열고 증거를 찾죠. 차이점은 속도와 형식입니다. 에이전트는 분 단위가 아닌 초 단위로 정보를 제공하며, 히어로 배너(hero banners) 대신 JSON을 원합니다. 최근까지는 agentbadge.xyz에 도착한 에이전트가 인간을 위해 만들어진 페이지만 발견할 수 있었고, 저희의 자체 준비도 스캐너는 정작 다른 사이트들을 우리가 부족했던 바로 그 신호들로 평가하고 있었습니다. 구두장이에게는 신발이 없었던 겁니다. 저희가 그것을 고쳤습니다. 이제 전체 디스커버리 표면(discovery surface)은 실시간 소스에서 생성되며, 인증 없이 무료로 제공되고 CI 내 자체 스캐너에 의해 검증됩니다.
에이전트는 200밀리초 만에 무엇을 찾을까?
모두 200 OK 상태의 기계가 읽을 수 있는 매니페스트(manifests) 11가지입니다. 모두 무료이며, 손으로 유지 관리된 것이 아니라 생성됩니다:
/.well-known/agent-card.json A2A v1.0 — 우리가 누구인지, skills[]
/.well-known/api-catalog RFC 9727 linkset — 모든 API 항목
/.well-known/erc8004-agent.json 온체인(on-chain) 아이덴티티 등록
...
에이전트 카드만으로도 A2A 핸드셰이크가 완료됩니다: 이름, 제공자(provider), supportedInterfaces[], 태그와 예시가 포함된 skills[], 그리고 결제 통로(payment rail)로 x402를 선언하는 securitySchemes입니다. GET 요청 한 번으로 외부 에이전트는 우리의 정체성, 역량, 그리고 결제 방법을 알게 됩니다.
매니페스트는 어디서 오는가?
카피라이터가 아니라 코드 자체에서 옵니다. 매니페스트 레지스트리(manifest registry)는 런타임이 사용하는 것과 동일한 실시간 소스(openapi.ts, 라우트 설정, blog-data.ts, SKU 카탈로그)를 수집하며, 모든 매니페스트는 그 진실의 **투영(projection)**입니다:
- 부팅 시점(Boot-time): 환경에 의존하는 매니페스트가 서버 시작 시 매니페스트 레지스트리로 생성되며, 라우트는 여기서 제공됩니다 — 단일 소스입니다.
- 빌드 시점(Build-time):
bun run gen:discovery를 실행하면public/.well-known/아래에 스냅샷이 작성됩니다. 수동 편집은 금지됩니다. - CI 드리프트 검사(CI drift-check): 재생성 후
git diff --exit-code를 수행합니다 — 만약 매니페스트가 코드와 달라졌다면, 빌드가 실패합니다.
저희의 시스템은 빌드 과정이 알려주지 않으면 오래된 정보(stale)가 될 수 없습니다.
기계가 읽을 수 있는 사이트맵은 어떤 모습일까?
llms.txt — LLM에게 "여기서 시작하라"고 알려주는 사실상의 관행: H1 제목, 플랫폼을 설명하는 블록쿼트, 이름이 지정된 링크의 ## 섹션들. 저희는 기계가 읽을 수 있는 진입점(entry points), 빠른 시작 가이드(quick start), 무료 및 유료 엔드포인트로 생성하며 — 서비스 섹션은 모든 402에서 bazaar 확장 프로그램에 동력을 공급하는 동일한 /api/v1/services 카탈로그에 연결됩니다.
왜 같은 페이지를 두 번 제공해야 할까요?
독자가 브라우저가 아닐 수 있기 때문입니다. 어떤 페이지에서든 Accept: text/markdown을 사용하면 마크다운 표현이 반환됩니다 — 실시간으로 확인 가능합니다:
$ curl -sH "Accept: text/markdown" https://agentbadge.xyz/blog
content-type: text/markdown; charset=utf-8
블로그 기사도 .md 미러를 가지고 있습니다 (/blog/arc-c10-payer-binding.md → 200 text/markdown). HTML은 여전히 정규(canonical)이며, <link rel="alternate" type="text/markdown">는 기계들이 쌍둥이 페이지로 연결하도록 지시합니다.
에이전트가 저희를 신뢰하지 않고도 저희의 주장을 검증할 수 있을까요?
agent-evaluation.json — 검증 사다리(verification ladder): 체크 시간에 따라 순서가 지정된 주장들로, 각각 action + ref를 가집니다:
{
"depth": "5s",
"checks": [
...
5초: 저희는 온체인에 존재하며 카드를 발행합니다. 60초: 매니페스트 유효성, 실시간 OpenAPI, 거부 계약(refusal contract). 더 깊게는: 도그푸드 트랜잭션(dogfood txs) 및 감사 추적(audit trails). owner-questions.json은 기업의 실사(due-diligence) (운영자, 관할권, 연락처)에 대한 답변을 동일한 형태로 제공합니다.
저희가 작동한다는 것을 어떻게 알 수 있을까요?
저희는 자체 스캐너를 사용하여 스스로를 검사합니다 — 외국 사이트를 평가하는 것과 동일한 142개 규칙 엔진입니다: mcp/server-card.json (AB-006), llms.txt (AB-014), JSON-LD/OG (AB-015/016), ai.txt (AB-017) — 이들을 CI에서 agentbadge.xyz에 대해 실행합니다. 100% 통과가 필수입니다. 매니페스트가 손상되면 저희 제품이 자체 도메인에서 등급을 받지 못하게 됩니다.
투명한 상태
- Live: 11개 모든 매니페스트를 제공하며, markdown 협상(markdown negotiation)을 통해
text/markdown형식으로 서비스를 하고, 아티클의.md미러를 사용합니다. — 수작업 편집이 아닌 생성된 내용입니다. - Deliberately absent (의도적으로 누락됨):
ai-plugin.json(ChatGPT 플러그인 EOL 2024 — 사장된 매니페스트는 카고 컬트(cargo cult)와 같습니다);/.well-known/agent.json→301로agent-card.json으로 리디렉션됩니다. - Verify now (지금 확인하기):
curl https://agentbadge.xyz/.well-known/agent-card.json을 사용하거나, 다음 명령어로 스캔할 수 있습니다:npx agentbadge-scan agentbadge.xyz.
Arc Campaign 시리즈의 C14입니다. C15가 계속됩니다 — 에이전트가 우리를 발견했고, 이제 가격표를 읽고 있습니다.
원래 agentbadge.xyz에 게시되었습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기