AURA 프로토콜 소개
**AURA (Agent-Usable Resource Assertion)**는 AI 에이전트가 웹사이트를 이해하고 조작할 수 있도록 설계된 오픈 프로토콜입니다. 현재 대부분의 AI 기반 웹 상호작용은 화면 스크래핑(screen scraping)이나 DOM 분석에 의존하지만, 이는 매우 취약하고 유지보수가 어렵습니다. 화면 배치가 조금만 변경되어도 동작이 깨지고, 다양한 사이트 간 HTML 구조 차이로 인해 코드 재사용이 어렵다는 문제가 있습니다. AURA는 이러한 문제를 해결하기 위해 웹사이트가 자신이 제공하는 기능을 **표준화된 manifest 파일(aura.json)**을 통해 명시적으로 선언하도록 합니다.
즉, AI 에이전트가 웹사이트에서 “어떻게 글을 작성할지” 추측하는 대신, 해당 사이트가 “create_post
라는 기능이 있으며, /api/posts
로 HTTP POST 요청을 보내고 title
과 content
파라미터를 받아야 한다”라고 직접 알려주는 구조입니다. 이는 ‘명령 기반 추측(imperative guessing)’에서 ‘선언적 상호작용(declarative interaction)’으로의 패러다임 전환입니다.
이 프로젝트는 단순한 API 문서 이상의 역할을 합니다. AURA는 사이트의 상태(AURA-State 헤더)까지 정의해, 예를 들어 사용자가 로그인되어 있는지 여부나 현재 가능한 기능 목록을 실시간으로 에이전트에 전달할 수 있습니다. 이를 통해 AI와 웹 간의 상호작용이 더욱 안전하고 예측 가능해집니다.
기존 방식과 AURA를 비교해 보면 다음과 같은 차이가 있습니다.
- 화면 스크래핑(Screen Scraping)
- 장점: 별도의 API 없이도 동작 가능
- 단점: 속도 느림, 유지보수 비용 높음, UI 변경 시 즉시 중단
- DOM 분석(DOM Manipulation)
- 장점: HTML 구조를 기반으로 직접 데이터 추출 가능
- 단점: 사이트별 HTML 구조 차이로 범용성 낮음, 변경 취약
- AURA 프로토콜
- 장점: 표준화된 manifest(aura.json)로 구조적 정보 제공, 사이트 상태 동기화 가능, 보안 및 제어 강화
- 단점: 사이트 측에서 AURA 지원 구현 필요
주요 내용
핵심 개념
- Manifest (aura.json) 각 사이트의 “AI 사용 설명서” 역할을 하며,
/.well-known/aura.json
경로에서 제공됩니다.여기에는 가능한 모든 리소스와 기능이 정의됩니다. - Capability AI 에이전트가 수행할 수 있는 개별 액션(예: list_posts, login, update_profile)을 의미합니다. 각 capability는 특정 HTTP 요청과 연결됩니다.
- State (AURA-State 헤더) 서버가 응답 시 동적으로 현재 사용자의 상태나 가능한 기능 목록을 제공하는 HTTP 헤더입니다.
저장소 구성
- packages/aura-protocol: 핵심 TypeScript 인터페이스와 공식 JSON Schema를 포함한 NPM 패키지 (
@aura/protocol
). - packages/reference-server: Next.js 기반 AURA 지원 서버 예제. 사이트를 AURA 호환으로 만드는 참고 자료.
- packages/reference-client: 브라우저나 확장 프로그램 없이 프로토콜을 소비할 수 있는 최소 백엔드 클라이언트 예제.
설치 및 빠른 시작 예제
-
의존성 설치
pnpm install
-
레퍼런스 서버 실행
pnpm --filter aura-reference-server dev
- 실행 후, 브라우저에서
http://localhost:3000/.well-known/aura.json
접속 시 manifest 확인 가능합니다.
- 실행 후, 브라우저에서
-
레퍼런스 에이전트 실행
# OpenAI API 키를 .env 파일에 설정 pnpm --filter aura-reference-client agent -- http://localhost:3000 "list all the blog posts"
-
크롤러 실행
pnpm --filter aura-reference-client crawler -- http://localhost:3000
- 사이트의 가능한 기능을 구조화된 JSON으로 출력합니다.
생태계 확장 가능성
AURA의 미래 비전은 단순한 프로토콜 표준화에 그치지 않고, 다양한 웹 프레임워크(Express, Laravel, Django, Rails) 어댑터, 여러 언어(Python, Go, Rust, Java) 클라이언트, 그리고 지능형 애플리케이션으로 확장되는 것입니다.
라이선스
AURA 프로젝트는 MIT 라이선스로 공개되어 있으며, 상업적 사용에 제한이 없습니다.
AURA 프로젝트 GitHub 저장소
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다.
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~