Clean Web Clipper Chrome에 추가 (무료)

누구를 위한 도구인가

같은 메뉴를 모델에 붙여 넣는 일은 이제 그만

109페이지 코퍼스(일대일 비교 측정)에서 Clean Web Clipper가 남긴 중복 내비게이션 줄은 102개였고, 다른 추출 엔진 세 개는 282, 478, 491개를 남겼습니다. 남은 HTML 태그는 전혀 없었습니다. 모델에 닿는 것은 기사와, 출처 URL과 게시일을 적은 frontmatter 머리글입니다.

붙여 넣은 페이지의 실제 비용

문서 페이지를 브라우저에서 복사해 채팅에 붙여 넣으면 모델에게 쿠키 안내, 사이드바, 버전 선택기, “이 페이지의 내용” 사이드바, 네 줄짜리 푸터 링크, “함께 읽을 기사” 띠까지 보내게 됩니다. 그 줄 하나하나가 비용을 내는 토큰이고, 읽히기를 바란 두 문단과 주의를 두고 다툽니다.

두 번째 비용은 더 미묘합니다. 반복되는 내비게이션은 구조처럼 보입니다. 페이지를 요약하라고 하면 모델은 메뉴 항목을 주제로 나열하고, 주장의 출처를 물으면 링크 텍스트를 가리킵니다. 허술한 변환기가 남긴 divtable 마크업은 모델이 문장에 닿기 전에 한 겹 더 헤쳐 나가야 할 층이 됩니다.

비용이 불어나기 시작하는 것은 두 번째로 붙여 넣을 때입니다. 대화가 길어져 기록이 잘리면 페이지를 다시 붙여 넣는데, 그사이 아침과 페이지가 달라져 모델은 조금 다른 텍스트로 추론하고, 스레드 어디에도 그 사실이 남지 않습니다. 실행할 때마다 같은 URL을 가져오는 에이전트도 같은 문제에 요청 제한과 통과할 수 없는 로그인까지 더해집니다. 디스크의 파일은 매번 같은 입력이고, 사이트가 열리지 않을 때도 읽을 수 있습니다.

대신 모델이 받는 것

모델이 받는 전부, 그 외에는 아무것도 없음docs.python.org/3/library/asyncio-task.html
---
title: "Coroutines and Tasks"
source: "https://docs.python.org/3/library/asyncio-task.html"
extraction: "dom"
---

## Awaitables

We say that an object is an *awaitable* object if it can be used in an
`await` expression. There are three main types: coroutines, Tasks and Futures.

```python
async def main():
    await asyncio.sleep(1)
    print("hello")
```

프롬프트용으로 설정하기

설정은 두 가지이고 대부분의 값을 공유합니다. 하나는 채팅에 붙여 넣기용, 하나는 에이전트가 읽는 폴더를 채우기용입니다. 둘 다 5분 정도 걸립니다.

  1. 아이콘을 마우스 오른쪽 버튼으로 눌러 옵션을 열고, 아이콘 클릭 동작을 “클립보드에 복사”로 설정합니다. 가장 짧은 경로입니다. 클릭하고, 채팅으로 전환하고, 붙여 넣으면 됩니다.
  2. 이미지를 제외로 설정합니다. CDN 이미지 URL 하나가 크기 조정 매개변수로만 200자가 될 수 있고, 텍스트 모델에게는 아무 의미가 없습니다.
  3. frontmatter 섹션에서 sourcedate는 켜 두고 authorextraction은 끕니다. 모델이 주장의 출처를 밝히는 데는 머리글 두 줄이면 충분하고, 나머지는 돈 내고 보내는 머리글입니다.
  4. Alt+Shift+M으로 페이지를 클리핑해 붙여 넣습니다. 확장 프로그램이 “기사 없음”이라고 답하면 그래도 붙여 넣지 마세요. 그 답은 페이지가 대부분 링크 텍스트였다는 뜻이고, 바로 그런 입력이 모델에게 메뉴 항목을 주제로 나열하게 만듭니다.
  5. 채팅이 아니라 에이전트용이라면 저장 위치를 에이전트가 이미 읽는 폴더(예: 프로젝트의 context/)로, 파일 이름 템플릿을 {domain}-{title}로 설정합니다.
  6. 작업이 실제로 의존하는 페이지 6~8개를 그 폴더에 클리핑합니다. 에이전트는 로컬 파일을 읽습니다. 가져오기도, 요청 제한도, 통과할 수 없는 로그인도 없고, 실행할 때마다 같은 텍스트입니다.
  7. 자주 들르는 사이트에는 사이트별 규칙을 둡니다. reddit.com은 이미지를 제외한 채 전용 하위 폴더로 보내면, 신경 쓰지 않아도 폴더가 정리된 채로 유지됩니다.

컨텍스트 비용을 줄이는 설정

아래 설정은 모두 모델이 읽는 데 비용이 드는 무언가를 없앱니다. 사람들이 가장 자주 틀리는 것은 frontmatter 행입니다. 출처 표기에는 다섯 줄이 아니라 두 줄이면 됩니다.

설정여기서 이 값인 이유
아이콘 클릭클립보드에 복사클릭, 전환, 붙여 넣기: 파일도 창도 대화 상자도 없음
이미지제외이미지 URL은 길고 텍스트 모델에게 의미가 없으며, 옆 문단보다 긴 경우도 많습니다
frontmatter`source`와 `date` 켬, `author`와 `extraction` 끔주장의 출처를 밝히기에 충분하고, 모델이 쓰지 않을 필드에 비용을 쓰지 않습니다
저장 위치(에이전트)프로젝트의 `context/` 폴더로컬 파일이면 가져오기도 요청 제한도 없고 매번 같은 입력입니다
파일 이름 템플릿`{domain}-{title}`폴더를 grep하는 에이전트가 “Overview” 페이지 두 개를 구분할 수 있습니다
선택 영역페이지가 아니라 선택 영역 클리핑한 섹션이 질문에 답한다면 나머지 아홉 섹션은 순수한 비용입니다
사이트별 규칙`reddit.com` → 하위 폴더, 이미지 제외스레드와 참고 자료는 따로 쌓아 두는 편이 좋습니다
링크 300개 대신 목록 페이지가 돌려주는 것카테고리 목록 페이지에서 연 클립 창
이 페이지에는 본문이 없습니다.

추출된 텍스트의 4분의 1 이상이 링크 텍스트 안에 있었습니다. 피드, 쇼핑몰
진열 페이지, 검색 결과가 이런 모양입니다. 클립보드에는 아무것도 기록하지
않았습니다.

  검사한 블록          41
  선택된 블록          <section class="cards">
  링크 비율            0.71
  실제 텍스트          740자

세 가지 활용 장면

페이지 하나, 질문 하나

명세서를 읽다가 한 섹션을 내가 제대로 이해했는지 모델에게 확인받고 싶습니다. 그 섹션을 선택해 Alt+Shift+M을 누르고 붙여 넣습니다. 도착하는 것은 섹션과 source 한 줄, date 한 줄입니다. 쿠키 안내도, 버전 선택기도, “이 페이지의 내용” 사이드바도, 여덟 열짜리 푸터도 없습니다.

차이는 비용보다 답에서 드러납니다. 붙여 넣은 페이지를 요약하라고 하면, 내비게이션까지 받은 모델은 주제 사이에 메뉴 항목을 나열합니다. 모든 섹션에서 반복되는 문구는 정말로 구조처럼 보이기 때문입니다. 그것을 없애면 실수도 원천에서 없어집니다.

가져오는 대신 에이전트가 읽는 폴더

코딩 에이전트에 SDK의 API 레퍼런스가 필요합니다. 페이지 여덟 개를 도메인과 제목으로 이름 붙여 context/에 클리핑합니다. 에이전트는 로컬 파일을 읽습니다. 가져오는 것도, 요청 제한도 없고, 로그인한 세션 뒤의 페이지도 공개 페이지만큼 잘 읽힙니다.

내용도 가만히 있습니다. 가져온 페이지는 같은 작업을 두 번 실행하는 사이에 바뀔 수 있고, 기록 어디에도 바뀌었다는 말이 남지 않습니다. 클리핑한 파일은 다시 클리핑할 때만 바뀌고, 비교할 이전 파일도 그대로 남아 있습니다.

모델이 전혀 닿을 수 없는 페이지

문서가 SSO 뒤의 사내 위키에 있거나 비용을 내는 구독 서비스에 있습니다. 그 URL을 가져오라고 하면 모델은 로그인 화면을 받고, 검색 도구가 있는 모델은 봇에게 보여 주는 버전을 받습니다. 확장 프로그램은 브라우저가 내 세션으로 이미 렌더링한 페이지를 읽으므로, 내가 볼 수 있는 텍스트가 곧 붙여 넣을 수 있는 텍스트입니다.

그 과정에서 페이지 텍스트는 컴퓨터를 떠나지 않고, 클립 자체도 어디에 업로드되지 않습니다. 클립은 클립보드로 가며, “채팅으로 보내기” 버튼은 스스로 무엇을 전송하는 것이 아니라 복사하고 탭을 엽니다.

페이지를 모델에 넣는 다른 방법과 비교

웹페이지를 모델 앞에 가져다 놓기 위해 사람들이 실제로 쓰는 경로입니다. 아래 각 열은 얻는 것과 치르는 비용이며, 이 확장 프로그램도 포함했습니다.

지금 쓰는 방법얻는 것치르는 비용
URL 붙여 넣기프롬프트에 한 줄많은 모델이 가져오지 못하고, 가져오는 모델도 봇용 버전을 받을 수 있습니다
페이지 복사해 붙여 넣기부가 요소까지 전부비교한 결과물에는 중복 메뉴 줄이 282~491개, 여기서는 102개
멀티모달 모델에 스크린숏보이던 그대로의 페이지이미지 토큰, 출처 줄도 날짜도 없고 나중에 grep할 수도 없음
페이지를 HTML로 저장디스크의 충실한 사본파일의 대부분이 마크업이고, 보내는 것 중 기사는 일부분
읽기 모드 후 복사가끔은 더 깔끔한 텍스트페이지에 따라 켜지기도 안 켜지기도 하고, 출처나 날짜 머리글이 없음
Clean Web Clipper두 줄 머리글이 붙은 기사 텍스트한 번에 한 페이지, 요약·청크 분할·임베딩은 하지 않음

답이 엉뚱하게 돌아올 때

모델이 기사가 아니라 내비게이션을 요약했습니다

피드 페이지가 프롬프트에 하는 일이 바로 그것입니다. 클립 창에 뭐라고 나왔는지 확인하세요. “기사 없음”이었다면 추출된 글자의 약 4분의 1 이상이 링크 텍스트 안에 있었다는 뜻이고, 카테고리 페이지, 검색 결과, 쇼핑몰 진열 페이지의 특징입니다. 기사 페이지 자체를 찾아 그것을 클리핑하세요. 프롬프트 문구를 아무리 다듬어도 이보다 답이 더 크게 바뀌지는 않습니다.

클립이 페이지보다 훨씬 짧습니다

흔한 원인은 두 가지입니다. 스크롤할 때 본문을 불러오는 페이지라서 클리핑하는 순간 렌더링된 부분만 있었거나(끝까지 스크롤한 뒤 클리핑하세요), 섹션이 접힌 아코디언이나 열지 않은 탭 안에 있어서 열기 전까지 DOM에 없었던 경우입니다. 브라우저가 렌더링하지 않은 것은 어떤 확장 프로그램도 읽을 수 없습니다.

모델이 인용할 날짜가 없습니다

페이지가 날짜를 밝히지 않았습니다. 오늘 날짜로 채우지 않고 비워 두는 이유는, 모델의 컨텍스트에서는 자신 있게 틀린 날짜가 빠진 날짜보다 나쁘기 때문입니다. 그 날짜는 사실처럼 다시 인용됩니다. 날짜가 훨씬 드문 코퍼스도 있습니다. 튀르키예와 체코의 상위 50개 목록에서는 게시일이 정말 드물고, 이는 추출이 아니라 그 사이트들의 특성입니다.

이미지 링크가 여전히 컨텍스트를 잡아먹습니다

이미지는 기본적으로 링크로 유지되는데, 읽기에는 맞지만 프롬프트에는 맞지 않습니다. 전체 또는 사이트별 규칙으로 이미지를 “제외”로 설정하면 Markdown에 이미지 참조가 전혀 남지 않습니다. 자리 표시자도, 빈 괄호도 없습니다.

하지 않는 일

어떤 AI 서비스와도 통신하지 않습니다. 클립은 어디에도 전송되지 않고 클립보드나 디스크로 가며, “채팅으로 보내기” 버튼은 복사한 뒤 탭을 열 뿐입니다. 텍스트를 요약하거나 청크로 나누거나 임베딩하지 않습니다. 그것은 클리퍼가 아니라 모델의 일입니다. 크롤러 없이 지금 보고 있는 페이지 하나씩 클리핑합니다. 그리고 페이지가 렌더링하지 않은 것은 캡처할 수 없습니다.

Chrome에 추가 (무료)전부 무료입니다. 계정도, 가입도, 제한도 없습니다.

자주 묻는 질문

그냥 모델에게 URL을 주면 안 되나요?
많은 모델은 페이지에 아예 닿지 못하고, 닿는 모델도 내가 읽는 버전이 아니라 봇에게 보여 주는 버전을 받는 경우가 많습니다. 클리핑은 내 화면에 있던 것을 정확히 담으며, 이미 로그인해서 쓰던 페이지도 포함됩니다.
확장 프로그램이 AI 서비스로 무언가를 보내나요?
그런 동작을 하는 버튼을 눌렀을 때만, 그리고 그때도 클립보드에 복사하고 채팅 탭을 열 뿐입니다. 확장 프로그램 자체는 페이지에 관한 어떤 것도 업로드하지 않습니다.
실제로 컨텍스트를 얼마나 아끼나요?
측정할 수 있는 부분은 중복 내비게이션입니다. 페이지 109개에서 반복 메뉴 줄이 102개였고, 비교한 엔진은 282, 478, 491개를 남겼습니다. 섹션마다 메뉴가 반복되는 페이지라면 그것이 잡음의 대부분입니다.
토큰을 아끼려고 이미지를 뺄 수 있나요?
네. 이미지를 “제외”로 설정하면 Markdown에 이미지 링크가 전혀 없습니다.
로그인이 필요한 페이지에서도 되나요?
네. 브라우저가 이미 렌더링한 페이지를 읽으므로, 사내 위키나 구독 중인 기사도 다른 페이지처럼 클리핑됩니다.
로컬 모델과도 쓸 수 있나요?
네, 다른 것을 전제로 하는 부분이 없습니다. 클립은 업로드되지 않고 클립보드나 디스크의 폴더로 가며, 그 뒤에 무엇이 그것을 읽는지는 전적으로 사용자의 몫입니다.
텍스트를 청크로 나누거나 임베딩하거나 요약하나요?
아니요. 페이지를 변환하고 멈춥니다. 청크 분할과 임베딩은 만들고 있는 파이프라인의 일이고, 요약하는 클리퍼는 원문의 어느 부분을 모델이 보지 못할지 대신 결정하게 됩니다.
같은 페이지가 내일도 같은 텍스트를 줄까요?
페이지가 같다면요. 파일을 보관해야 하는 이유가 그것입니다. 클립은 기록되는 순간 고정되므로 한 달 뒤 다시 실행한 작업도 같은 입력을 읽고, 이전 캡처도 비교할 수 있게 디스크에 남아 있습니다.
코드 예제가 모델이 읽을 만큼 잘 남나요?
네, 언어 태그까지 남습니다. 9페이지짜리 기술 코퍼스에서 태그는 코드 블록 156개 중 73개에 남았고, 비교한 엔진은 20개와 0개였습니다. 태그는 사이트의 구문 강조기가 남긴 클래스에서 가져오므로 추측이 아닙니다.
여러 탭을 한 프롬프트로 한 번에 클리핑할 수 있나요?
아니요. 일괄 모드도 크롤러도 없습니다. 지금 보고 있는 페이지를 클리핑합니다. 여러 페이지라면 하나씩 폴더에 클리핑하고 모델이나 에이전트가 그 폴더를 보게 하세요.