Vercel AI SDK에 공식 '웹 페이지 읽기' 도구 — 어느 모델이든 주소만 주면 마크다운으로
Vercel AI SDK에 에이전트가 주소(URL)로 웹 페이지 · 문서를 읽어 오는 Web Fetch 도구가 생겼어요. 함수 호출을 지원하는 모델이면 어느 회사 모델이든 붙일 수 있고, 읽을 도메인을 정해 두는 안전 옵션도 있어요.
- 새 패키지 @ai-sdk/tool-web-fetch의 experimental_createWebFetchTool을 tools에 넣으면, 모델이 주소를 골라 페이지를 읽어 와요. npm 설명은 '특정 회사 모델에 묶이지 않는(provider-independent) 도구'이고, 1.0.0판이 10월 23일(UTC) 올라왔어요.
- 페이지는 마크다운으로 받아요. 사이트가 마크다운을 주면 그대로, 아니면 defuddle로 메뉴 · 바닥글을 걷어 내고 바꿔요. 한 번에 기본 5만 자까지 주고, 더 길면 offset으로 이어 읽어요.
- 다만 이름처럼 아직 실험(experimental) 단계예요. 자바스크립트로 그리는 페이지는 내용이 거의 안 나올 수 있고 PDF · 그림 · 영상은 못 읽어요. 공식 문서도 읽어 온 글에 프롬프트 주입이 숨어 있을 수 있다며 allowedDomains 같은 제한을 권해요.
AI SDK로 만든 에이전트에 '이 주소 요약해 줘' 기능을 직접 짜지 않고 붙일 수 있어요. allowedDomains · requireUrlInUserMessage로 읽을 곳을 묶어 두면 안전하게 시작할 수 있어요.
사내 문서 사이트 · 제품 안내 페이지만 읽는 상담 봇을 만들 때, 도메인을 허용 목록으로 묶어 두는 방식이 공식 옵션으로 있어요.
AI SDK로 '링크 넣으면 요약해 주는' 기능을 만들 때, 읽을 도메인을 묶어 두고 써 보면 좋을 것 같아요.
Vercel의 AI SDK 문서에 Web Fetch Tool이 새로 실렸어요. 에이전트가 주소(URL)로 웹 페이지와 문서를 읽어 오게 하는 공식 도구예요. npm 패키지 @ai-sdk/tool-web-fetch는 10월 23일(UTC) 1.0.0판이 올라왔고, 라이선스는 Apache-2.0이에요.
어떻게 붙이나
공식 문서의 설치 줄은 npm install ai @ai-sdk/tool-web-fetch이고, Node.js 22.13 이상이 필요해요. experimental_createWebFetchTool()을 tools: { webFetch }로 넣으면 끝이에요. 문서 예시엔 모델 자리에 '함수 호출(function calling)을 지원하는 모델'이라고만 적혀 있어요.
무엇을 돌려주나
- 마크다운 우선: Accept: text/markdown으로 먼저 요청하고, 아니면 HTML을 defuddle로 마크다운으로 바꿔요(메뉴 · 바닥글 같은 군더더기 제거). 일반 글 · JSON · XML · CSV는 그대로 줘요.
- 길이: 한 번에 기본 50,000자(maxLength). 더 길면 모델에게 offset으로 다시 부르라고 알려 주고, 바꾼 문서는 몇 분간 저장해 두어 다시 받지 않아요.
- 실패도 결과로: 못 읽으면 오류를 돌려줘서 모델이 다른 주소를 시도할 수 있어요.
자바스크립트는 실행하지 않아서, 브라우저에서 그리는 페이지는 내용이 거의 없을 수 있어요. PDF · 그림 · 소리 · 영상은 지원하지 않아요.
안전 옵션
- allowedDomains · blockedDomains: 읽을 도메인 허용 · 차단(리디렉션에도 적용, 둘은 같이 못 씀)
- requireUrlInUserMessage: 사용자가 보낸 메시지 속 주소만 읽기(기본은 꺼짐)
- 쿠키 · 로그인 정보 없이 GET만 보내고, localhost 같은 내부 주소는 막아요
공식 문서는 읽어 온 글에 프롬프트 주입(숨은 지시)이 들어 있을 수 있다고 경고해요. 개인 데이터를 다루는 에이전트라면 도메인 제한 · 사용자 메시지 주소만 읽기 · 도구 실행 승인 중 하나를 쓰라고 권해요.

