Rethinking Search as Code Generation

原始來源與檔名:2026-06-09T093904+0800-Rethinking Search as Code Generation.md


NAPKIN | 餐巾纸

餐巾纸公式

Search as Code (SaC) = LLM (Control Plane) + Agentic Search SDK (Primitives) + Compute Sandbox (Execution) 將傳統單體的搜尋引擎解構成底層 API 原語,讓 LLM 透過生成 Python 代碼,針對每個任務動態編排專屬的檢索與處理管線。

一句话

Perplexity 提出的 Search as Code 架構,打破傳統搜尋 API 的僵化,讓 AI 代理透過寫程式直接控制底層的檢索、排序與聚合原語,大幅提升複雜任務效能。

餐巾纸草图

[Traditional Search]           [Search as Code (SaC)]
LLM -> Query -> [Monolith]     LLM -> (Generates Python Code)
                              |
                              v
                        [Compute Sandbox]
                        - sdk.search.web_many()
                        - dedupe()
                        - summarize()
                              |
                              v
                           (Targeted, dense context back to LLM)

ROUND 1: SKELETON | 骨架掃描

“这本书在说什么”

章节骨架

  1. The Rigidity of Traditional Search: 傳統搜尋管線的剛性導致三大失敗模式:粗糙的上下文污染、無法利用領域知識引導搜尋、缺乏效率的控制流 (只能線性呼叫)。
  2. Designing a Programmable Search Architecture: 介紹 SaC 三層架構。
    • Agentic Search SDK: 將搜尋打碎為可組合的基元 (Python)。
    • Sandboxes: 執行環境,利用檔案系統 (Filesystem + Serde) 傳遞跨回合的狀態,而非使用 REPL 避免命名空間混亂。
    • Models: 控制層,結合特定訓練的 Agent Skills 來教導模型使用 SDK。
  3. Case Study: CVE Vendor Advisories: 展示三段生成的程式碼,如何過濾網址格式、分析稀疏數據並驗證版本綁定。
  4. Evaluation Results: 在 BrowseComp, WideSearch, WANDR 等基準測試中,SaC 在效能與成本邊界 (Cost-Performance Frontier) 上大幅超越 OpenAI, Anthropic 等對手。
  5. Toward a New Architecture of Computing: 總結這是一種結合「Token-space 推理」與「確定性執行 (Deterministic runtime)」的混合計算架構。

ROUND 2: DISSECTION | 血肉解剖

“凭什么这么说”

论证链

[複雜任務需要非線性、去蕪存菁的檢索] --> [傳統 API 強制回傳完整結果,污染 LLM Context] --> [提供 SDK 讓 LLM 生成代碼在 Sandbox 內執行] --> [代碼執行過濾、聚合後,只回傳最高密度的資訊] --> [效能與成本雙贏]

关键证据

  1. 案例分析: 查詢 200 個 CVE。SaC 只用 42.9K Tokens 達到 100% 準確率;傳統基準線用了 288.7K Tokens 且其它非 Perplexity 系統得分低於 25%。
  2. 生成的代碼範例:
seed_hits = sdk.search.web_many(queries, limit_per_query=8, concurrency=12)
pages = [{"vendor": q["vendor"], "url": h.url, "text": join_result_fields(h)} ...]
# Agent 甚至能用 LLM 作為中間的判定函數來過濾
verified = sdk.llm.extract_many(items, instruction="...", schema={...})
  1. 基準測試結果 (WANDR): 處理複雜研究任務的 WANDR 測試中,SaC 取得 0.386 的分數,遙遙領先次佳系統 (Anthropic) 的 0.152,領先幅度達 2.5倍。

隐形假设与边界

ROUND 3: SOUL | 靈魂提取

“还能怎么用”

跨域映射


Rethinking Search as Code Generation (Architectural Deep Dive)

前言/背景

隨著 AI Agent 被要求執行持續數小時的複雜任務,傳統的搜尋 API 暴露出僵化與上下文污染的問題。Perplexity 發布了名為 Search as Code (SaC) 的新架構,賦予 AI 直接透過撰寫程式碼來編排檢索底層原語的能力。

章節詳細總結

傳統搜尋架構的瓶頸

傳統搜尋為人類設計,API 強制綁定檢索、排序與內容萃取,導致 AI 使用時遇到三大問題:

  1. 粗糙的上下文:為了獲取單一精準資訊被迫載入大量無關內容。
  2. 無法利用領域知識:模型無法在檢索中途加入特定的業務邏輯 (如特定過濾條件)。
  3. 控制流效率低下:需要多次與 LLM 來回交互 (Roundtrips) 才能完成平行搜尋或合併結果。

Search as Code (SaC) 三層架構

實際案例與基準測試效能

總結與結論