웹사이트를 에이전트 준비 상태로 만드는 방법
게시일:
「에이전트 준비 상태」란 세 가지 종류의 AI 에이전트에게 각각 다른 의미를 가지며, 이 레이어들은 서로 쌓입니다. 여기서는 이 검증기를 에이전트 준비 상태로 만든 방법을 실제 배포한 코드와 함께 정확히 설명하므로, 동일한 패턴을 적용할 수 있습니다.
세 가지 독립적인 레이어가 있습니다. 각각 단독으로 도입할 수 있으며, 함께 사용하면 사이트를 읽는 크롤러, 브라우저에서 UI를 구동하는 에이전트, 네트워크를 통해 호출하는 또 다른 에이전트까지 모두 커버합니다.
레이어 1 — llms.txt: 크롤러를 위한 컨텍스트
기본 중의 기본입니다. 루트 경로에 위치한 일반 텍스트 llms.txt는 AI 크롤러에게 사이트가 무엇인지, 어떤 페이지가 중요한지를 우선순위 순서로 알려줍니다. JavaScript나 별도 프로토콜 없이 가져오는 시점에 바로 읽힙니다. 여기서 시작하세요: llms.txt 만드는 방법.
레이어 2 — WebMCP: 브라우저 내 에이전트를 위한 도구
WebMCP를 사용하면 페이지가 브라우저 내에서 실행되는 AI 에이전트에게 호출 가능한 도구를 노출할 수 있어, 에이전트가 폼을 추측하는 대신 타입이 지정된 액션을 직접 호출합니다. 두 가지 방식이 있으며, 저희는 두 가지 모두 제공합니다.
선언적 방식 — 실제 폼에 어노테이션을 추가하면 브라우저가 자동으로 도구를 생성합니다:
<form toolname="open_llms_txt_report"
tooldescription="Validate a site's llms.txt and open its report.">
<input name="url" toolparamdescription="Domain or URL to validate">
</form>
명령적 방식 — JavaScript로 도구를 등록하여 구조화된 데이터를 직접 반환합니다:
navigator.modelContext?.registerTool({
name: "validate_llms_txt",
description: "Validate a website's llms.txt; returns a 0-100 score and findings.",
inputSchema: { type: "object", properties: { url: { type: "string" } }, required: ["url"] },
execute: (input) => fetch("/api/validate?url=" + encodeURIComponent(input.url))
.then(r => r.json())
.then(data => ({ content: [{ type: "text", text: JSON.stringify(data) }] }))
});
명령적 호출은 if (navigator.modelContext)로 보호하여 WebMCP가 없는 환경에서는 아무 동작도 하지 않도록 하세요. 현재 Chrome 오리진 트라이얼 단계이므로 실제 도달 범위는 작습니다 — 트래픽이 아닌 미래를 위한 신호로 취급하세요.
레이어 3 — A2A: 다른 에이전트가 호출할 수 있는 에이전트
Agent2Agent (A2A) 프로토콜을 사용하면 다른 에이전트가 여러분의 서비스를 검색하고 호출할 수 있습니다. 에이전트 카드를 공개하고 JSON-RPC 엔드포인트로 뒷받침합니다:
// GET /.well-known/agent-card.json
{
"name": "llms.txt Validator",
"url": "https://llms-txt-validator.dev/a2a",
"skills": [{ "id": "validate_llms_txt", "name": "Validate llms.txt" }]
}
url은 A2A를 지원하는 실제 작동하는 엔드포인트를 가리켜야 합니다 — 저희는 동기 message/send 메서드를 구현하여 동일한 검증 로직을 스킬로 래핑했습니다. 카드는 메타 태그가 아닌 계약입니다.
한 가지 규칙: 뒷받침할 수 없는 신호는 공개하지 말 것
감사 결과를 녹색으로 만들기 위해 빈 에이전트 카드를 추가하거나 가짜 폼 어노테이션을 넣고 싶은 유혹이 생길 수 있습니다. 하지 마세요. 카드를 가져와서 죽은 엔드포인트를 호출하거나 아무 동작도 하지 않는 도구를 실행한 에이전트는 이후 여러분을 덜 신뢰하게 됩니다. 여기의 모든 신호는 실제 무언가로 연결되어야 합니다. 그렇기 때문에 이 검증기는 WebMCP 또는 A2A 신호를 실제 작동하는 구현이 뒷받침할 때만 「존재」로 보고합니다.
각 레이어 검증 방법
- llms.txt — 도메인을 검증기에 붙여넣으세요; 깨진 링크 없이 100/100을 목표로 하세요.
- WebMCP — Chrome 149 이상에서
chrome://flags/#enable-webmcp-testing을 활성화하고 Lighthouse의 Agentic Browsing 감사를 실행하세요; 도구가 목록에 표시되어야 합니다. - A2A —
/.well-known/agent-card.json을 가져온 다음, 해당url로message/send호출을 POST하여 완료된 태스크가 반환되는지 확인하세요.