최근 많은 사람들이 검색엔진 대신 챗GPT나 클로드 같은 AI 비서에게 직접 질문을 던집니다. AI는 인터넷을 돌아다니며 웹사이트의 본문을 수집하고, 이를 지능적으로 재가공하여 사용자에게 보여줍니다. 이로 인해 검색 환경은 기존 SEO(검색엔진 최적화)를 넘어 **AEO(Answer Engine Optimization, 답변 엔진 최적화)** 및 **GEO(Generative Engine Optimization, 생성형 엔진 최적화)**의 영역으로 빠르게 전환되고 있습니다.

하지만 AI 봇이 기존의 복잡한 HTML 문서(메뉴, 배너, 분석 스크립트 등)를 그대로 읽어가면, AI의 콘텍스트 윈도우 한계로 인해 토큰 비용이 낭비될 뿐만 아니라 정보가 왜곡되어 잘못된 답변을 내놓을 확률이 커집니다.

이 문제를 말끔히 해결하기 위해 fast.ai의 Jeremy Howard가 제안한 비공식 웹 표준이 바로 llms.txt입니다. 이 글에서는 내 웹사이트나 라이브러리 문서를 AI 친화적으로 가꿔주는 llms.txt의 개념, 작성 포맷, 기존 표준과의 차이, 그리고 자동화 빌드 체인 세팅법을 완벽히 정리해 드립니다.


📊 robots.txt vs sitemap.xml vs llms.txt 한눈에 보기

비교 기준 robots.txt sitemap.xml llms.txt
주요 목적 웹사이트 콘텐츠 접근 권한 제어 색인 대상인 전역 페이지 URL 정보 제공 AI 모델 및 에이전트용 색인 지도 및 큐레이션
작성 포맷 단순 Key-Value 규칙 텍스트 구조화된 XML 파일 가독성 높은 마크다운 (Markdown)
최적화 대상 일반 검색엔진 크롤러 봇 구글, 네이버 등 기존 검색 인덱서 챗GPT, 클로드, TUI 코딩 에이전트 등
주요 사용 시점 데이터 수집 및 크롤링 단계 주기적인 사이트 검색엔진 반영 사용자 질문에 응답하는 실시간 추론 (Inference)

1. llms.txt의 정체와 작동 메커니즘

쉽게 설명해 llms.txt"AI 에이전트가 내 사이트를 이해하기 위해 먼저 읽어야 할 추천 필독서 리스트"입니다. 웹사이트 루트 주소인 https://내도메인/llms.txt 경로에 텍스트 파일 형태로 호스팅해 두면, 영리한 코딩 에디터(VS Code, Cursor 등)나 AI 봇이 이 주소에서 색인 데이터를 읽어들입니다.

이 제안의 핵심은 AI 봇이 참조할 문서들의 실제 마크다운 버전 주소를 함께 명기해 두는 것입니다. 예를 들어 사용자가 일반 웹 브라우저로 https://yourdomain.com/docs/intro.html을 읽을 때, AI 봇은 https://yourdomain.com/docs/intro.html.md로 직접 접근하여 광고 없는 깨끗한 문서를 한 번에 획득할 수 있습니다.


2. llms.txt 공식 포맷 규격 스펙

비록 비공식 제안이지만, AI 파서가 기계적으로 해석해 문서를 안전하게 병합하기 위해서는 llmstxt.org 표준에서 지정한 순서 규격을 만족해야 합니다.

# FastHTML [H1: 프로젝트명 - 필수]
> FastHTML is a python library which brings together Starlette, Uvicorn, and HTMX. [blockquote 요약 - 필수]
When writing FastHTML apps remember to use serve() for uvicorn. [추가 상세 지침 문단]
## Docs [H2: 리소스 그룹 분류 섹션]
- [Quick Start](https://fastht.ml/docs/quickstart.html.md): A brief overview of FastHTML. [문서 링크 및 요약]
## Optional [H2: 특수 의미를 지닌 Optional 섹션]
- [Starlette Reference](https://fastht.ml/docs/starlette.md): A subset of Starlette documentation. [용량 초과 시 스킵 가능한 문서]
💡 **Optional 섹션의 숨은 스펙:** "Optional 헤더 아래에 나열된 링크들은 빌드 컴파일 시 스킵할 수 있는 대상으로 예약됩니다. 이를 통해 컨텍스트 윈도우가 작은 경량 LLM 모델을 사용할 때는 핵심 지식만 담은 컴팩트 버전을 생성할 수 있습니다."

3. RAG 자동화 연계 및 CLI 빌드 도구

llms.txt를 작성해 두는 것만으로도 훌륭하지만, 실제 빌드 도구와 결합하면 그 위력이 배가됩니다. 대표적인 파이프라인 자동화 툴 두 가지를 소개합니다.

1) llms-txt 라이브러리 (llms_txt2ctx CLI)

파이썬 기반의 llms-txt 패키지는 내 도메인 `llms.txt`를 읽고 링크된 모든 원격 마크다운 파일을 수집하여 클로드(Claude) 등의 모델이 즉시 해독하기 쉬운 **XML 포맷의 단일 컨텍스트 문서**로 병합합니다.

# llms-txt 패키지 설치
pip install llms-txt

# Optional 섹션을 제외한 컴팩트 컨텍스트 빌드
llms_txt2ctx llms.txt > compiled_context.md

# Optional 섹션까지 포함한 전체 대용량 컨텍스트 빌드
llms_txt2ctx llms.txt --optional true > compiled_full_context.md

2) pysymbol-llm 모듈

파이썬 모듈의 소스코드와 docstring 주석 정보를 직접 파싱하여, 마크다운 형태의 최신 API 카탈로그 레퍼런스 문서인 apilist.txt를 생성해 주는 유용한 CLI 도구입니다.

# 특정 모듈의 최신 API 카탈로그를 markdown 명세서로 생성
pysym2md my_python_package

❓ 자주 묻는 질문 (FAQ)

Q. 일반 블로그나 맛집 소개 홈페이지에도 llms.txt가 필요한가요?

A. 네. 맛집의 영업시간, 주차 여부, 시그니처 메뉴 등을 일반 사이트에서 챗GPT가 읽으려고 하면 복잡한 광고 레이아웃 때문에 정보 누락이 잦습니다. 메뉴와 운영 시간을 깔끔한 마크다운과 llms.txt 파일로 구성해 주면, ChatGPT나 Siri 같은 어시스턴트가 매장 정보를 정확하게 인지하여 가이드할 수 있어 AEO 최적화에 탁월한 효과를 발휘합니다.

Q. llms.txt 파일이 있으면 AI 학습에 자동으로 쓰이나요?

A. `llms.txt`는 주로 사용자가 에이전트를 통해 실시간 RAG 검색을 수집하는 추론(Inference) 단계에 최적화된 설계입니다. 다만 미래의 대형 AI 훈련 모델(Training)도 llms.txt를 감지하여 고품질의 지식을 우선적으로 편입해 갈 확률이 큽니다.