摘要: Exa 於 2026 年 9 月 18 日發表 Snapshot,可在 /search 或 /contents 請求帶入日期參數,取得超過 4000 億個網頁快照中該時點的內容,跨度約 20 年。適合降低評估資料洩漏與支援金融回測,但目前仍是 research preview,索引覆蓋率需自行抽樣驗證。
為什麼需要「過去的網頁」?
資料洩漏是訓練搜尋型 agent 時最棘手的難題之一。想像你在六月就擬好一批任務與標準答案,訓練卻一路拖到九月才跑。這幾個月裡,解法說不定早已寫進論文、GitHub pull request 或部落格文章。Agent 動動手指搜尋就能取得答案,於是它究竟是靠自己推理,還是照抄網路上的現成解法,你無從分辨。
Exa 於 2026 年 9 月 18 日發表的 Snapshot,正是針對這種「時間點」測試需求而來。它底下累積了超過 4000 億個網頁快照,時間跨度達 20 年。你只要給出一個日期,Exa 便回傳那個日期當時的網頁樣貌。
在搜尋請求中帶入 snapshotAsOf
用法並不複雜:在 /search 或 /contents API 端點上附帶 snapshotAsOf 參數即可。底下是透過 Python SDK 取得某個過去時點 Python 版本資訊的示範:
from exa_py import Exa
exa = Exa()
result = exa.search(
"latest stable Python release notes",
num_results=3,
contents={
"snapshot_as_of": "2026-05-01T00:00:00Z",
"highlights": True,
},
)
for r in result.results:
print(r.title, r.url)
想針對某個特定 URL 取出它過去的內容,同樣可行:
result = exa.get_contents(
["https://docs.python.org/3/whatsnew/changelog.html"],
snapshot_as_of="2026-05-01T00:00:00Z",
text=True,
)
print(result.results[0].text[:300])
Exa 在公告中提醒,這項功能仍處於 research preview 階段,後續會持續開發。至於完整的索引覆蓋率、rate limits 與 ZDR 等資訊,則必須直接向他們的團隊洽詢。
模型評估之外的其他場景
類似困擾也出現在金融回測上。量化研究人員習慣以 point-in-time datasets 來保證回測只採用當下能取得的資訊,可是網頁資料並沒有對應的做法。若交易訊號是從網頁內容推導出來的,通常得先花好幾個月人工蒐集資料,才有辦法測試。有了 Snapshot,你就能直接在「版本化的網頁」上回測,前置作業大幅減輕。
這也和我們先前的討論相互呼應——為代理挑選網頁搜尋 API:挑選搜尋工具時,除了結果品質,還得考慮它能不能配合你需要的評估流程。對講求嚴謹驗證的團隊而言,像 Snapshot 這樣的時間點能力,重要性或許還高於搜尋速度本身。
一項該注意的限制
公告中並未交代 Snapshot 的索引覆蓋率究竟多完整,快照多久更新一次也沒說。萬一你要回測的網頁不在涵蓋範圍內,結果就會出現缺口。因此,在把 Snapshot 納入正式的評估 pipeline 之前,建議先挑幾個關鍵日期與網域抽樣試跑,確認資料真的可用。
對產品團隊而言,Snapshot 的關鍵價值是把「時間」轉化為一個可操控的參數。同一個評估可以一再重跑,不必憂心網頁內容變動導致結果走樣。對於得長期觀察模型表現、或需要對外說明評估具可重現性的團隊,這會是相當實用的工具。
