에이전트 대응형 웹사이트 구축하기: ChatGPT, Perplexity 및 자율 에이전트가 읽을 수 있는 사이트 만드는 법
요약
ChatGPT, Perplexity와 같은 AI 에이전트가 웹사이트 정보를 효율적으로 파싱하고 활용할 수 있도록 하는 '에이전트 대응형' 웹사이트 구축 전략을 소개합니다. llms.txt, OpenAPI, Agent skills, JSON-LD를 활용한 4계층 스택 구현 방법을 다룹니다.
핵심 포인트
- llms.txt를 통해 에이전트에게 서비스의 핵심 컨텍스트 제공
- OpenAPI 3.1 명세로 에이전트용 읽기 전용 API 엔드포인트 노출
- 에이전트 기술(Agent skills)을 통한 구조화된 작업 수행 능력 부여
- JSON-LD를 활용한 심층적인 구조화된 데이터 제공
몇 달 전, 저는 저희가 막 재구축 프로젝트를 맡게 된 소셜 성장 플랫폼인 FollowNow.io의 창업자와 Zoom 회의를 하고 있었습니다. 우리는 Next.js 스택, 다국어 콘텐츠, 지원을 위한 Intercom Fin 통합과 같은 일반적인 사항들을 다루었습니다. 회의 끝에 그는 전체 구축 방향을 재정립하게 만든 한 문장을 덧붙였습니다. "우리 사이트가 Google뿐만 아니라 ChatGPT와 Perplexity에서도 발견되기를 원합니다."
이 한 문장이 2024년형 웹사이트와 2026년형 웹사이트를 가르는 차이점입니다. 만약 당신의 사이트가 LLM(대규모 언어 모델)과 자율 에이전트(autonomous agents)에게 보이지 않는다면, 당신은 빠르게 성장하는 검색 트래픽의 한 축을 놓치게 되는 것이며, 몇 개의 스키마 태그(schema tags)만으로는 이를 다시 되찾을 수 없습니다. 여기 FollowNow.io를 에이전트 대응형(agent-ready)으로 만들기 위해 우리가 배포한 4계층 스택과 구체적인 파일 구조, 그리고 중요한 SDK 수준의 결정 사항들을 소개합니다.
"에이전트 대응형"의 실제 의미
에이전트 대응형 사이트는 LLM과 자율 에이전트가 마케팅용 HTML을 파싱(parse)할 필요 없이 소비할 수 있는 기계 판독 가능(machine-readable)한 접점을 노출합니다. 우선순위에 따른 4가지 계층은 다음과 같습니다:
- 루트(root)에 위치한
llms.txt→ 당신이 무엇을 하는지, 무엇을 하지 않는지, 그리고 공개 URL이 무엇인지를 설명하는 표준 텍스트 문서입니다. /openapi.json에 위치한 OpenAPI 3.1 명세(spec) → 에이전트가 호출할 수 있는 안전한 읽기 전용 API 엔드포인트(endpoints)에 대한 공식적인 설명입니다./.well-known/agent-skills/에 위치한 에이전트 기술(Agent skills) → 에이전트가 특정 작업을 수행하기 위해 습득할 수 있는 구조화된 "기술"입니다.- 심층적인 JSON-LD 구조화된 데이터(structured data) → 단순히 Organization(조직)뿐만 아니라, 관련 있는 모든 곳에 Product(제품), Offer(제안), FAQPage(FAQ 페이지), BreadcrumbList(브레드크럼 리스트)를 포함합니다.
이 중 구현하기 어려운 것은 없습니다. 핵심은 모든 계층이 단일한 표준 소스(canonical source)로부터 생성되도록 하여 실제 제품과 괴리되지 않도록 하는 규율입니다.
계층 1: llms.txt
robots.txt와 유사하지만, 제한하기보다는 초대하는 방식입니다. 에이전트의 컨텍스트 윈도우(context window)에 들어갈 수 있도록 10KB 미만으로 유지하세요. 우리가 사용하는 구조는 다음과 같습니다:
# FollowNow
> 실제적인 성장, 증거와 함께. 15개 플랫폼에 걸친 검증된 소셜 성장 주문.
...
"우리가 하지 않는 것(what we do NOT do)" 블록이 뜻밖의 승자입니다. LLM (Large Language Models)은 경쟁하는 소스들 사이에서 선택할 때 명시적인 제외 사항에 큰 가중치를 둡니다. 이는 여러분이 신뢰성을 직접 주장하지 않고도, 여러분을 신뢰할 수 있는 옵션으로 프레임화해 줍니다.
라이브 버전은 follownow.io/llms.txt에서 확인할 수 있습니다. Next.js App Router 프로젝트에서는 이것이 라우트 핸들러(route handler)에 위치하여 데이터 레이어(data layer)로부터 생성됩니다:
// app/llms.txt/route.ts
import { services } from "@/lib/catalog/services";
...
레이어 2: OpenAPI 3.1
이 단계는 에이전트가 여러분의 시스템을 안전하게 호출할 수 있도록 허용하는 단계입니다. 공개 스펙(public spec)은 작고 읽기 전용(read-only)으로 유지하세요. FollowNow의 경우 다음을 공개했습니다:
GET /api/healthPOST /api/target-lookup(공개 Instagram 핸들이 존재하는지 확인)POST /api/waitlist/signupGET /api/orders/{id}(공개 주문 추적)
관리자 엔드포인트(Admin endpoints)는 의도적으로 제외되었습니다. 전체 서비스 영역을 모두 공개하지 마세요. 라이브 스펙은 follownow.io/openapi.json에 있으며, 사람이 읽을 수 있는 보조 문서가 follownow.io/docs/api에 있습니다. OpenAPI 3.1을 읽는 에이전트는 문서 페이지를 스크래핑(scraping)할 필요 없이 직접 타입이 지정된 클라이언트(typed clients)를 생성할 수 있습니다.
레이어 3: /.well-known을 통한 에이전트 기술 (Agent skills)
이것은 가장 최신의 레이어이며, 대부분의 사이트가 아직 아무것도 갖추지 못한 부분입니다. 에이전트 기술(Agent skills)은 새롭게 등장하는 스펙에 따라 /.well-known/agent-skills/에 호스팅되는 구조화된 "vaardigheden" (기술)입니다.
FollowNow의 경우 4개의 읽기 전용 기술을 등록했으며, follownow.io/.well-known/agent-skills/index.json에서 찾아볼 수 있습니다:
// /.well-known/agent-skills/index.json
{
"skills": [
...
각 기술은 무엇을 하는지, 언제 사용하는지, 입력(inputs)과 출력(outputs)이 무엇인지를 설명하는 SKILL.md를 가리킵니다. index.json에 포함된 SHA-256 다이제스트(digest)를 통해 에이전트는 자신이 다운로드한 기술이 수정되지 않았음을 검증할 수 있습니다.
우리가 강제한 엄격한 규칙은 다음과 같습니다: 등록된 모든 스킬(skill)은 읽기 전용(read-only)이어야 합니다. 체크아웃, 결제, 상태 변경(mutation)은 허용되지 않습니다. 에이전트는 귀하의 카탈로그를 읽고, 입력 형식을 검증하며, 정책을 가져올 수 있습니다. 하지만 주문을 넣거나 상태를 변경할 수는 없습니다. 이러한 안전 경계(safety boundary)가 전체 패턴을 신뢰할 수 있게 만드는 핵심입니다.
레이어 4: LLM이 실제로 읽는 구조화된 데이터 (structured data)
약간의 변주가 가미된 가장 고전적인 SEO 레이어입니다. Schema.org를 통한 JSON-LD는 Google과 모든 주요 LLM(Large Language Model) 모두에 의해 읽힙니다. 중요한 것은 깊이(depth)입니다. Organization(조직)과 WebSite(웹사이트)는 기본 요건입니다. 에이전트 대응성(agent-readiness)을 위해서는 다음 항목들이 필요합니다:
- 서비스 등급별
Product(예: FollowNow의 Standard / Premium / Elite) - 가격, 통화 및 가용성이 포함된
Offer - 모든 서비스 페이지의
FAQPage - 모든 하위 페이지의
BreadcrumbList - 지리적 거점이 있는 경우
LocalBusiness
LLM은 추출 과정이 결정론적(deterministic)이기 때문에 HTML보다 JSON-LD를 선호합니다. HTML에만 존재하는 FAQ는 오류의 위험을 무릅쓰고 파싱(parsing)해야 합니다. 반면 FAQPage 스키마에 포함된 동일한 FAQ는 즉시 사용 가능합니다. 이 차이는 인용 빈도에서 나타납니다.
이것이 실제로 작동하는가?
FollowNow가 라이브된 지 3주 후, 우리는 ChatGPT, Perplexity, Claude를 대상으로 동일한 질문을 던져 수동 테스트를 진행했습니다: "환불 정책이 있는 검증된 인스타그램 팔로워를 구매할 수 있는 투명한 플랫폼은 무엇인가요?"
세 모델 모두 14일 환불 정책과 공개 타겟 검증(public target verification)에 대한 직접적인 인용과 함께 FollowNow를 언급했습니다.
같은 주에, 유사한 서비스를 제공하지만 llms.txt와 OpenAPI가 없는 경쟁사들은 전혀 인용되지 않았습니다. 이것은 연구가 아닌 단일 데이터 포인트일 뿐이지만, 더 넓은 패턴과 일치합니다. 에이전트가 선택을 해야 하는 상황에서는 구조화된 기계 판독 가능(machine-readable) 소스가 마케팅 페이지를 압도합니다.
모든 것을 재구축하지 않고 시작하는 방법
전체 코드를 다시 작성할 필요는 없습니다. 적절한 콘텐츠 타입(content type)으로 파일을 제공할 수만 있다면, 이 네 가지 레이어는 기존의 Next.js, WordPress 또는 Rails 사이트에 바로 적용할 수 있습니다. 제가 권장하는 순서는 다음과 같습니다:
- 심층 구조화된 데이터 (Deep structured data) 우선. Organization, WebSite, Product, FAQPage. 정규화된 소스 (canonical source)를 올바르게 구축하세요.
llms.txt차선. 데이터 모델이 어긋나지 않도록 동일한 데이터 모델로부터 생성하세요.- 공개 OpenAPI (Public OpenAPI) 삼선. 이미 보유하고 있는 읽기 전용 엔드포인트 (read-only endpoints)에 대해서만 적용하세요.
- 에이전트 기술 (Agent skills) 마지막. 가장 실험적이며, 향후 가장 큰 성장이 기대되는 영역입니다.
투입되는 비용은 적습니다. 검색이 LLM 매개 탐색 (LLM-mediated discovery)으로 점점 더 이동함에 따라 그 레버리지 (leverage)는 복리로 쌓일 것입니다.
저는 nexbridge.nl에서 이러한 주제에 대해 글을 쓰고 있습니다. 저희는 중소기업 (SMBs)을 위해 에이전트 대응형 Next.js 사이트와 AI 자동화를 구축하는 네덜란드 에이전시입니다. FAQ와 코드 스니펫 (code snippets)이 포함된 이 기사의 전체 네덜란드어 버전은 nexbridge.nl/blog/agent-ready-website-laten-maken에서 확인하실 수 있습니다. 이것이 귀하의 기술 스택 (stack)에 어떻게 적용될 수 있는지 궁금하시다면, 문의해 주세요.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기