# 一頁版：4 工具搜尋盲區地圖 + 自己拉 PK 的 SOP

> 給認真用 AI 找資料的人。一張表帶走「6 個常用搜尋工具的盲區」+「下次該選哪個」+「怎麼自己驗證」的紀律。
> 留言關鍵字：**搜尋盲區**
> 來源：N 在 ai-curator 自己拉的 28 題 × 14 種題目 × 3 個工具 PK + 3 題對照組驗證（2026-05-08）。

---

## Part 0 — 6 個工具我這年用過的真實位置

| 工具 | 強項 | 盲區 | 這次 PK 是否包 |
|------|------|------|--------------|
| **Anthropic 自帶搜尋** | 第二場 PK 全勝、整合最深、不要錢、會持續進步 | 沒辦法存 Workspace 私人資料 | 包（第二場 PK 對照組 A） |
| **Gemini 搜尋（gsearch）** | 內容深度題、JSON 格式、Google 全索引 | X 內容、付費牆、學術論文較弱 | 包（第一場 + 第二場 PK） |
| **Grok 搜尋（grok-search）** | X 平台、付費牆、學術論文、推理深 | 兩岸/政治/性別議題有 bias、平均 50 秒慢 | 包（第一場 PK） |
| **Tavily 搜尋** | GitHub 程式碼、4.4 秒最快 | 完整度 1.54 倒數第一、廣告高估 | 包（第一場 PK） |
| **JINA r.jina.ai** | 網址→乾淨文字、anonymous 兜底 | 免費額度用完、IP 限制不穩 | 沒包（已退場、anonymous fallback 留著） |
| **Firecrawl** | 抓網址全文（含動態網站）、未來重啟拼裝必含 | 不是搜尋工具、免費 500 credits/月 | 沒包（不同層） |

---

## Part 1 — 下次選工具直接看這張

### 拼完兩場 PK 改掉的工具選用規則

| 場景 | 推薦工具 | 為什麼（一句話） |
|------|---------|------------------|
| **預設 / 不確定** | **Anthropic 自帶搜尋** | 第二場 PK 4.83/5 全勝、不要錢、整合最深 |
| 一句話查證 | 自帶搜尋 | 同上 |
| Blog 主文核對 | 自帶搜尋 | 高風險場景自帶碾壓拼裝 |
| 競品深度比較 | 自帶搜尋 | 同上 |
| 找 KOL 原話 | 自帶搜尋 | 同上 |
| 結構化網址列表（給程式吃） | Gemini 搜尋（gsearch） | 第一場 PK 8/14 贏家、回 JSON |
| X / Twitter 內容 | Grok 搜尋（grok-search） | X 平台特權 + 推理深 |
| 付費牆內容（HBR / WSJ / Substack） | Grok 搜尋 | 第一場 PK 完整度 5.0 贏家 |
| 學術論文 / arXiv | Grok 搜尋 | 第一場 PK 具體度 5.0 贏家 |
| Reddit thread 深度 | Grok 搜尋 | 第一場 PK 贏家 |
| Google Workspace（Drive/Gmail/Cal） | Gemini CLI（OAuth） | 自帶沒辦法存私人 Workspace |
| 長 PDF / 多模態 | Gemini CLI | 同上 |
| GitHub 程式碼深度 | Tavily（免費額度內） | 第一場 PK 唯一贏家題型 |
| 網址→乾淨全文 | Firecrawl | 抓網址全文強項 |
| 影片字幕 | youtube-transcript | 專用 |
| 影片內容理解 | claude-video-vision | 專用 |
| 登入站爬取 | browser-sessions | 認證 |

### 不要用的
- ❌ 自己拼的「對抗式拼裝」（第二場 PK 證明輸 1.58 分 + 會自信地寫錯數字）
- ❌ Voyage 排序器「只看標題 + 網址」（沒戰場、需要拼出「抓全文 + 排序」流程才解鎖）
- ❌ Tavily 當預設搜尋（廣告 vs 實測倒數第一）

---

## Part 2 — 兩條紀律（這比工具表更重要）

### 紀律 1：選工具不靠官網廣告、自己拉去 PK

廠商定位常常是「越大聲越要小心」 — 講越大聲、實測落差越可能大。

實測案例：
- Tavily 官網「為 AI 設計的搜尋」→ 實測完整度 1.54/5 倒數第一
- Voyage 廣告「200M tokens 永久免費」→ 沒填付款方式 = 3 RPM / 10K TPM 隱藏限制、不能用
- Anthropic 自帶搜尋沒大力宣傳 → 第二場 PK 4.83/5 全勝

實用 SOP：
1. 評估新工具不准只看 README / 定價頁 / 廠商 demo
2. 選 5-10 題你真實會用的問題拉一場 PK
3. 對比至少 2-3 個工具（含「最簡單的既有方法」當對照組）
4. 用獨立 AI 評分（不要 Claude 評 Claude / Gemini 評 Gemini）
5. 結果存進個人知識庫、定期重跑（工具會進化）

### 紀律 2：自己拼的也要驗證

這條比紀律 1 更重要、更難執行。

實測案例：
- 我自己設計的三層工具選用規則 + 對抗式拼裝、邏輯聽起來合理
- 預期勝過 Anthropic 自帶搜尋
- 拉第二場 PK：3 題全敗、輸 1.58 分、其中一題自信地寫錯五倍誤差
- 設計撤回

自己拼的東西自己會偏愛、是天性。這在自我設計場景特別嚴重。

強制機制：
1. 任何「我設計的更聰明的方法」不准直接 deploy
2. 必拉一場 PK：對照組 = 既有方法 / 新方法 = 你的設計
3. 至少 3 題 / 新方法（不同題目類型）
4. 用獨立 AI 評分
5. 顯著贏出 = 平均 ≥ 對照組 + 0.5 分（5 分制）才能採用
6. 沒贏出 = 撤回設計、誠實寫進復盤留歷史軌跡、不要因為「沉沒成本」強行採用

---

## Part 3 — 28 題第一場 PK 完整數據

### 設計
- 14 種題目 × 2 題/種 = 28 題
- 3 工具：Gemini 搜尋（gsearch） / Grok 搜尋（grok-search） / Tavily 搜尋
- AI 評分：Gemini 2.5 Pro 評完整度 / 具體度 / 出處可驗證度（0-5 分）
- 程式判：出處信度（白名單） / 時敏度（解日期 regex） / 速度

### 整體分（28 題平均）

| 工具 | 完整度 | 具體度 | 出處 | 出處信度 | 時敏度 | 平均速度 | 28 題成本 |
|------|--------|--------|------|----------|--------|----------|-----------|
| **gsearch** | 3.46 | 4.14 | 2.43 | 2.5 | 3.36 | 10.12 秒 | $0 |
| **grok-search** | 3.29 | 4.29 | 4.14 | 3.5 | 3.36 | 50.39 秒 | $1.4 |
| **tavily** | 1.54 | 1.36 | 3.93 | 3.16 | 2.43 | 4.44 秒 | $0 |

### 14 種題目贏家分佈

| 題目 | 贏家 | 第二名 |
|------|------|--------|
| Google 通用 | grok-search | gsearch |
| HN discussion | gsearch | grok-search |
| Reddit thread | grok-search | gsearch |
| Threads/IG content | gsearch | grok-search |
| X/Twitter content | grok-search ⭐ | gsearch |
| YouTube content | gsearch | grok-search |
| 趨勢新聞 | gsearch | grok-search |
| 個人 blog/Substack | gsearch | grok-search |
| 付費牆內容 | grok-search | gsearch |
| 動態網站 | gsearch | grok-search |
| 官方文檔 | gsearch | grok-search |
| 學術論文 | grok-search | tavily |
| GitHub 程式碼 | tavily ⭐唯一 | gsearch |
| 台灣媒體 | gsearch | grok-search |

---

## Part 4 — 第二場 PK 完整數據（自己拼的方法翻車記）

### 設計
- 3 個硬骨頭題目（找原話 / 競品深度 / 核對事實基準題）
- 3 個方案：A 自帶搜尋 / B Gemini 搜尋單跑 / C 我自己拼的
- 同一個 AI 評分、4 個面向：完整度 / 具體度 / 出處可驗證度 / 整理品質

### 每題分數

| 題目 | A 自帶 | B Gemini 單跑 | C 我自己拼的 |
|------|--------|--------------|--------------|
| m1 — Karpathy 2026 Sequoia AI Ascent 原話 | 5/5/5/4 | 4/4/1/5 | 3/3/5/4 |
| m2 — Cursor/Windsurf/Cline/Claude Code 4 面向比較 | 4/5/5/5 | 5/5/1/4 | 2/2/5/4 |
| m6 — Claude Opus 4.7 核對事實 | 5/5/5/5 | 5/4/1/3 | **1**/2/5/3 ❌ |

m6 我拼的方法完整度 1/5 — 因為合成 AI 把 Claude 4.7 一次能讀字數寫成 200K（真實 1M、差五倍）。自帶搜尋答對。

### 平均分

| 方案 | 完整度 | 具體度 | 出處 | 整理 | 平均 |
|------|--------|--------|------|------|------|
| **A 自帶搜尋** | 4.67 | 5.00 | 5.00 | 4.67 | **4.83** ⭐ |
| B gsearch 單跑 | 4.67 | 4.33 | 1.00 | 4.00 | 3.50 |
| C 我自己拼的 | 2.00 | 2.33 | 5.00 | 3.67 | **3.25** ❌ |

### 為什麼自己拼的會輸

1. **排序器只看標題 + 網址 + 300 字摘要、沒看內文** — 排序基於不充分資訊
2. **合成 AI 也沒原文、只能照標題編答案** — m6 自信地寫錯就是這樣產生
3. **Anthropic 自帶搜尋已經做完「全文 + AI 看內容 + 整理重點」全套**、自己拼的重做但少了最關鍵那步

### 真正能 work 的拼裝方法（未來探索）

```
題目 → Gemini 搜尋 + Grok 搜尋（拿到大概 30 條出處）
     → Firecrawl 把前 30 條全文抓回來  ← 關鍵步驟
     → Voyage 排序器看「題目 vs 全文」排第二輪 → 拉前 10 條
     → Claude/Gemini 看著前 10 條全文合成最終答案
```

需要 Firecrawl 月費方案（19 美金）+ 60-120 秒等待 + 跟自帶比是否真贏還要再拉一場 PK。不確定值不值得、暫時擱置。

---

## Part 5 — 自己拉 PK 的 SOP（你可以複製）

### Step 1：題目集（5-10 題真實會用的）

從你過去 30 天真的查過的東西採樣。不要用「我覺得讀者會問的」假題。

候選類型參考：
- 類型 A — 對標研究：「[對標 KOL] 最近寫什麼」
- 類型 B — 新工具發布：「[工具] 2026 新功能」
- 類型 C — 行銷/成長：「[平台] 演算法 2026 改動」
- 類型 D — 技術深度：「[概念 A] 跟 [概念 B] 差別」
- 類型 E — 時敏：「[事件] 2026 重點」

### Step 2：評分面向（建議 3-5 個正交面向）

AI 評分（主觀解讀）：
- 完整度：答案涵蓋預期答案的完整度
- 具體度：具體事實 vs 泛論
- 出處：source 是否可驗證

程式判（量化客觀）：
- 出處信度：domain 白名單分級
- 時敏度：時敏題回的 2026 內容比例
- 速度：subprocess 計時

### Step 3：runner 腳本模板（Python）

```python
import json, subprocess, time
from concurrent.futures import ThreadPoolExecutor, as_completed

def run_tool(tool: str, query: str) -> dict:
    t0 = time.time()
    res = subprocess.run([tool, query], capture_output=True, text=True, timeout=120)
    return {
        "tool": tool, "query": query,
        "ok": res.returncode == 0,
        "latency": round(time.time() - t0, 2),
        "answer": json.loads(res.stdout).get("answer", ""),
        "sources": json.loads(res.stdout).get("sources", []),
    }

TOOLS = ["gsearch", "grok-search"]  # 加你要對比的工具
QUERIES = [...]  # 你的 5-10 題

for q in QUERIES:
    with ThreadPoolExecutor(max_workers=len(TOOLS)) as ex:
        futures = {ex.submit(run_tool, t, q): t for t in TOOLS}
        for f in as_completed(futures):
            print(f.result())
```

### Step 4：AI 評分提示詞模板

```
你是搜尋工具評審。N 家工具回答了同一題、請依下表打分（0-5 分）。

# 題目
{query}

# 預期答案應該包含
{expected_facts}

# 工具 A 答案
{tool_a_answer}
{tool_a_sources}

# 工具 B 答案
...

# 評分面向（0=完全沒做到、3=及格、5=完美）

1. 完整度：答案涵蓋預期答案的完整度
2. 具體度：具體事實 / 數字 / 名稱 / 引用 / 日期 vs 泛論
3. 出處可驗證度：source 是否可驗證（raw URL、清楚出處）

# 輸出格式（嚴格 JSON）
{"tool_a": {"coverage": <0-5>, "specificity": <0-5>, "citation_rigor": <0-5>, "note": "<40 字內理由>"},
 "tool_b": {"coverage": <0-5>, "specificity": <0-5>, "citation_rigor": <0-5>, "note": "<40 字內理由>"}}
```

工程紀律：
- 評分用獨立 AI（不要 Claude 評 Claude）
- 超時 240 秒（長提示詞 5-10K 字會超 120 秒）
- try/except 包單次呼叫（一次失敗不該殺整個 batch）
- JSON parser 帶 fallback（剝 ``` markdown / 抓第一個 {...} bracket）

### Step 5：對比結果 + 撤回紀律

跑完看新方法的平均分：
- 顯著贏出對照組（≥ 0.5 分）→ 採用、寫進工作守則
- 沒贏出 / 輸 → 撤回設計、寫復盤、不要因為「沉沒成本」強行採用

---

## Part 6 — Voyage 排序器用法 + 失效原因（給想拼裝的人）

### Voyage 排序器 API 模板

```python
import requests

def voyage_rerank(query: str, documents: list, top_k: int = 10) -> list:
    res = requests.post(
        "https://api.voyageai.com/v1/rerank",
        headers={"Authorization": f"Bearer {VOYAGE_API_KEY}"},
        json={
            "query": query,
            "documents": documents,
            "model": "rerank-2.5",
            "top_k": top_k,
        },
        timeout=30,
    )
    return res.json()["data"]
```

### 隱藏限制（沒人講的事）

- 「200M tokens 永久免費」是真的、但**沒填付款方式 = 3 RPM + 10K TPM 嚴重限制**
- 撞 TPM = 整個 batch 卡住
- 解：在 Voyage billing page 填張卡（即使在免費額度內也要）

### Voyage 真價值在哪

不在「只看標題 + 網址排第二輪」（這場 PK 證明失效）。
在「Firecrawl 抓全文後 + Voyage 排序」流程 — 排序器有原文可看、才有用武之地。

---

## 完整原始數據 + 腳本

GitHub gist 暫不公開（這是我自己拼的工具集）。
有興趣個別場景我可以單獨對話分享 — Threads DM「搜尋盲區」我直接傳給你。

---

## 給認真想拉 PK 的你

兩條紀律我希望你帶走：

1. **選工具不靠官網廣告、自己拉去 PK**
2. **自己拼的也要驗證**

第二條比第一條難 — 自己誇自己是天性、需要強制機制打斷。

下次當你想設計一個「更聰明的方法」之前，
先問自己：**對照組是什麼？我憑什麼認為這比對照組強？**

如果答不出第二題、別 deploy。先拉一場 PK。

— N
