こんな人に
同じメニューをモデルに貼り付けるのはやめましょう
109 ページのコーパス(直接比較の測定)で、Clean Web Clipper が残した重複ナビゲーションの行は 102 行でした。ほかの 3 つの抽出エンジンは 282、478、491 行で、残った HTML タグは一つもありませんでした。モデルに届くのは記事と、出典の URL と公開日を示す frontmatter のヘッダーです。
貼り付けたページの本当のコスト
ドキュメントのページをブラウザからコピーしてチャットに貼ると、モデルには Cookie の通知、サイドバー、バージョンの切り替え、「このページの内容」のレール、4 列のフッターのリンク、「次に読む」の帯が送られます。その 1 行 1 行が支払うトークンで、読んでほしかった 2 つの段落とモデルの注意を奪い合います。
2 つ目のコストはもっと分かりにくく、繰り返されるナビゲーションは構造のように見えることです。ページの要約を頼まれたモデルはメニューの項目を話題として並べ、主張の出どころを聞かれるとリンクのラベルを指します。雑な変換ツールが残した div や table のマークアップは、モデルが文にたどり着く前に読み飛ばすべき層をもう一つ増やします。
コストが膨らみ始めるのは 2 回目の貼り付けです。会話が長くなって履歴が削られ、ページをもう一度貼る。ところがページは朝から変わっていて、モデルは少し違うテキストをもとに考え、そのことはスレッドのどこにも記録されません。毎回同じ URL を取得するエージェントにも同じ問題があり、さらにレート制限と、通れないログインが加わります。ディスク上のファイルは毎回同じ入力で、サイトが落ちていても読めます。
代わりにモデルが受け取るもの
- 重複したナビゲーションは、比較したエンジンの平均のおよそ 4 分の 1。 繰り返された行は 102 行、ほかは 282、478、491 行です。
- テストした 512 ページで残った HTML タグは 0。 モデルが読み飛ばすべきものがありません。
- frontmatter に出典の URL と公開日を記載するので、主張は推測ではなく出典に帰属できます。
- キーボードショートカット 1 つでページを Markdown としてコピーし、どのチャットにもすぐ貼り付けられます。
- 画像を丸ごと外せるので、文脈から長い画像の URL がなくなります。
- 記事のないページはそう報告します。 フィードや検索結果が、プロンプトの中のリンク 300 件になることはありません。
- 切れ端のような行が少ない。 25 文字未満の行の割合は 0.221 で、比較したエンジンは 0.278、0.262、0.263 でした。短い行の多くは、文の形をしたリンクのラベルです。
- 参照リンクは末尾にまとめた
[^1]の脚注になるので、本文の番号付きの出典はリンク切れのアンカーで途切れず、出典にたどり着きます。
---
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")
```プロンプト向けの設定
設定の大半を共有する 2 つの構成があります。チャットに貼り付けるためのものと、エージェントが読むフォルダを満たすためのものです。どちらも 5 分ほどで済みます。
- アイコンを右クリックして オプション を開き、アイコンをクリックしたときを「Markdown をコピー」にします。これが最短の道です。クリックし、チャットに切り替え、貼り付ける。
- 画像を 含めない にします。CDN の画像の URL は 1 つでリサイズのパラメーターだけで 200 文字になることがあり、テキストのモデルにとってはどれも意味がありません。
- frontmatter の欄では
sourceとdateをオンのままにし、authorとextractionをオフにします。モデルが主張の出典を示すにはヘッダー 2 行で十分で、残りはお金を払って送るヘッダーです。 Alt+Shift+Mでページをクリップして貼り付けます。拡張機能が「記事なし」と答えたら、それでも貼るのはやめてください。その答えはページの大半がリンクのラベルだったという意味で、まさにモデルにメニューの項目を話題として並べさせる入力です。- チャットではなくエージェント向けなら、保存先をプロジェクト内の
context/のような、エージェントがすでに読んでいるフォルダにし、ファイル名のテンプレートを{domain}-{title}にします。 - タスクが実際に依存している 6〜8 ページを、そのフォルダにクリップします。エージェントはローカルのファイルを読むので、取得も、レート制限も、通れないログインもなく、毎回同じテキストになります。
- よくクリップするサイトにサイト別ルールを追加し、
reddit.comを画像なしで専用のサブフォルダに入れます。考えなくてもフォルダが整理されたままになります。
文脈のコストを削る設定
どれも、モデルが読むことで課金されるものを減らします。間違えやすいのは frontmatter の行で、出典の表示に必要なのは 5 行ではなく 2 行です。
| 設定 | 値 | ここでこの値にする理由 |
|---|---|---|
| アイコンをクリックしたとき | Markdown をコピー | クリック、切り替え、貼り付け。ファイルもウィンドウもダイアログもない |
| 画像 | 含めない | 画像の URL は長く、テキストのモデルには無意味で、隣の段落より長いことも多い |
| frontmatter | `source` と `date` をオン、`author` と `extraction` をオフ | 主張の出典を示すには十分で、モデルが使わない欄にコストをかけない |
| 保存先(エージェント) | プロジェクト内のフォルダ `context/` | ローカルのファイルなら取得もレート制限もなく、毎回同じ入力になる |
| ファイル名のテンプレート | `{domain}-{title}` | フォルダを grep するエージェントが、2 つの「Overview」を区別できる |
| 選択範囲 | ページではなく選択範囲をクリップ | 1 つのセクションが質問に答えるなら、残りの 9 つは純粋なコスト |
| サイト別ルール | `reddit.com` → サブフォルダ、画像なし | スレッドとリファレンスは別の山にしておく価値がある |
このページには記事がありません。 抽出したテキストの 4 分の 1 を超える部分がリンクのラベルの中にありました。 これはフィード、ストアのトップ、検索結果の特徴です。 クリップボードには何も書き込んでいません。 調べたブロック 41 選んだブロック <section class="cards"> リンクの割合 0.71 実際のテキスト 740 文字
3 つの使われ方
1 ページに 1 つの質問
仕様書を読んでいて、あるセクションの自分の解釈をモデルに確かめてほしいとします。セクションを選択し、Alt+Shift+M を押して貼り付けます。届くのはそのセクションと source の行と date の行だけです。Cookie の通知も、バージョンの切り替えも、「このページの内容」のレールも、8 列のフッターもありません。
違いが表れるのは請求額より答えのほうです。貼り付けたページの要約を頼まれると、ナビゲーションを渡されたモデルはメニューの項目を話題に含めます。各セクションで繰り返される語句は、本当に構造のように見えるからです。それを取り除けば、間違いの元がなくなります。
取得の代わりにエージェントが読むフォルダ
コーディングエージェントに SDK の API リファレンスが必要です。8 ページを context/ にクリップし、それぞれドメインとタイトルから名前を付けます。エージェントはローカルのファイルを読むので、何も取得されず、レート制限もかからず、ログイン済みのセッションの内側にあるページも公開ページと同じように読めます。
しかも内容が動きません。取得したページは同じタスクの 2 回の実行のあいだに変わることがあり、そのことはトランスクリプトのどこにも書かれません。クリップしたファイルが変わるのはもう一度クリップしたときだけで、差分を取るための古いファイルも残っています。
モデルがまったく届かないページ
文書がシングルサインオンの内側にある社内 wiki や、有料で購読しているサービスにあります。その URL の取得を頼まれたモデルはログイン画面を受け取り、検索ツールを持つモデルはボット向けの版を受け取ります。拡張機能は、あなたのセッションでブラウザがすでに描画したページを読むので、見えているテキストがそのまま貼り付けられるテキストです。
その途中でページの本文があなたのパソコンを離れることはなく、クリップ自体もどこにもアップロードされません。クリップはクリップボードに行き、「AI チャットへ」ボタンは自分で何かを送信するのではなく、コピーしてタブを開くだけです。
ページを渡すほかの方法との比較
ウェブページをモデルの前に置くために実際に使われている 5 つの経路です。下の各列は、得られるものとそのコストで、この拡張機能も含みます。
| 今のやり方 | 得られるもの | コスト |
|---|---|---|
| URL を貼る | プロンプトに 1 行 | 取得できないモデルが多く、できてもボット向けの版を受け取ることがある |
| ページをコピー&ペースト | 付属物も含めてすべて | 同等の出力で重複したメニューの行は 282〜491、こちらは 102 |
| スクリーンショットをマルチモーダルモデルに | 見たとおりのページ | 画像のトークン、出典の行なし、日付なし、あとで grep できるものもない |
| ページを HTML として保存 | ディスク上の忠実なコピー | ファイルの大半はマークアップで、送る中身のうち記事はごく一部 |
| リーダーモードからコピー | ときには、よりきれいなテキスト | 動くページと動かないページがあり、出典や日付のヘッダーもない |
| Clean Web Clipper | 2 行のヘッダー付きの記事のテキスト | 1 回に 1 ページ。要約も分割も埋め込みもしない |
答えがおかしく返ってきたとき
モデルが記事ではなくナビゲーションを要約した
フィードのページをプロンプトに入れるとそうなります。クリップウィンドウの表示を確認してください。「記事なし」と報告していたなら、抽出した文字の約 4 分の 1 を超える部分がリンクのラベルの中にあったということで、それはカテゴリページ、検索結果、ストアのトップの特徴です。記事そのもののページを探してクリップしてください。プロンプトの言い回しをどう変えるより、答えが大きく変わります。
クリップが、見た目のページよりずっと短い
よくある原因は 2 つです。スクロールに合わせて本文を読み込むページで、クリップした時点では描画済みの部分しかなかった場合は、先に最後までスクロールしてからクリップします。あるいは、閉じたアコーディオンや開いていないタブの中にセクションがあり、開くまで DOM にない場合です。ブラウザが描画していないものは、どの拡張機能にも読めません。
モデルが引用できる日付がない
ページが日付を示していませんでした。欄は今日の日付で埋めずに空のままにしています。モデルの文脈では、自信のある間違った日付は日付がないより悪いからです。それは事実としてあなたに引用されます。日付を持つ頻度はコーパスによって大きく違い、トルコとチェコの上位 50 サイトでは公開日が本当にまれです。これは抽出ではなく、そうしたサイトの性質です。
画像のリンクがまだ文脈を食っている
画像は初期設定でリンクとして残ります。読むには正しく、プロンプトには不向きです。画像を「含めない」に、全体またはサイト別ルールで設定すると、Markdown には画像への参照が一切含まれなくなります。プレースホルダーも空の括弧も、何もありません。
しないこと
どの AI サービスとも通信しません。クリップはどこにも送られず、クリップボードかディスクに行くだけで、「AI チャットへ」ボタンもコピーしてタブを開くだけです。テキストの要約、分割、埋め込みはしません。それはクリッパーではなくモデルの仕事です。クローラーはなく、1 回に 1 ページ、開いているページだけをクリップします。そしてページが一度も描画しなかったものは取り込めません。