Search as Code:Perplexity如何让AI模型自主编写搜索管线,Token成本降低85%
Search as Code:Perplexity如何让AI模型自主编写搜索管线,Token成本降低85%
在AI Agent快速发展的2026年,一个长期困扰研究型AI系统的问题正在被重新定义:AI模型如何更高效地搜索和检索信息? 6月8日,Perplexity发布了其全新的"Search as Code"(SaC)架构,从根本上改变了AI与搜索引擎的交互方式——模型不再调用固定的搜索API,而是自主编写Python代码来执行搜索、过滤、去重和排序操作。这一范式转变不仅在基准测试中碾压了OpenAI和Anthropic的方案,更将Token消耗降低了85%。
传统搜索API的瓶颈:为什么AI Agent需要新范式?
"蓝色链接"时代的遗产
当今的搜索引擎——无论是Google、Bing还是Perplexity自身——本质上都是为人类用户设计的。它们返回一个整齐的蓝色链接列表,用户自行判断点击哪个、阅读哪个。但对于AI Agent来说,这种交互模式存在根本性的效率问题:
1. 查询黑箱:Agent只能修改搜索词,无法控制过滤逻辑、排序策略或去重机制 2. 信息膨胀:每次搜索返回大量无关结果,迅速填满Agent有限的上下文窗口 3. 循环低效:Agent反复执行"查询→阅读→再查询"的循环,大量Token浪费在无用信息上 4. 缺乏精确性:无法针对特定场景(如CVE漏洞追踪)定制搜索策略
Perplexity在其技术报告中指出:当前的搜索架构是为人类设计的"一刀切"方案,对需要在几分钟内执行数百次搜索的AI Agent来说,这个架构太僵化了。
一个真实的痛点场景
以网络安全领域的CVE漏洞追踪为例:Agent需要找到200个关键软件漏洞,对每个漏洞获取厂商公告、受影响软件和修补版本号。使用传统搜索API,Agent需要:
- 为每个CVE执行多次搜索(厂商公告、补丁信息、版本号)
- 阅读大量新闻文章和博客(大部分无用)
- 手动验证信息一致性
这个过程不仅缓慢,而且准确率极低——竞品系统在类似任务上的正确率不到25%。
Search as Code的三层架构
从"调用API"到"编写代码"
Search as Code的核心思想可以用一句话概括:让AI模型不再"使用"搜索工具,而是"编程"搜索工具。
传统的Agent搜索流程: `` Agent → 调用Search API(query) → 获取结果列表 → 阅读 → 再次调用API
SaC的流程:
`
Agent → 编写Python搜索脚本 → 在沙箱中执行 → 精确获取所需信息
`
这一架构分为三层:
层级 组件 功能 上层 AI模型(如GPT-4o、Claude) 理解任务、制定搜索策略、编写搜索代码 中层 安全沙箱 执行模型生成的Python代码,隔离运行环境 底层 Agentic Search SDK 将Perplexity搜索引擎拆解为可组合的SDK函数
Agentic Search SDK:搜索的"乐高积木"
SaC的底层是一套精心设计的SDK函数,将搜索引擎的能力原子化:
- retrieve():基础检索,返回原始搜索结果
- filter():按条件过滤结果(如日期范围、域名、内容类型)
- deduplicate():去除重复信息
- rerank():根据相关性重新排序
- validate():验证结果是否符合预期格式
模型可以根据任务需求,自由组合这些函数,甚至并行执行多个搜索子任务。
实战效果:碾压竞品
基准测试结果
Perplexity在多个基准测试上对比了SaC与传统搜索方案:
基准测试 SaC OpenAI Responses API Anthropic Managed Agents 提升幅度 WANDR(广域研究) 89.2% 61.3% 58.7% +45% CVE漏洞追踪 95.0% 23.5% 21.8% +304% 多源事实验证 87.6% 68.2% 65.1% +28% 长文档摘要 91.3% 72.4% 70.8% +26% Token效率(相对传统方案) 15% 100% 100% -85%
注:WANDR是Perplexity自研的广域研究基准测试,即将开源发布。
CVE漏洞追踪的三阶段脚本
以文中提到的CVE追踪任务为例,模型生成的SaC脚本分为三个阶段:
阶段一:并行定向搜索
`python
针对不同厂商的公告格式,编写专门的搜索逻辑
queries = [ retrieve(f"site:security.google.com CVE-{year}"), retrieve(f"site:security.mozilla.org advisory {cve_id}"), retrieve(f"vendor security bulletin {affected_software}") ] results = filter(queries, date_range=("2023-01-01", "2025-12-31"))
`
阶段二:差距检测与补充查询
`python
missing = detect_gaps(results, expected_fields=["vendor", "product", "patch_version"]) supplementary = retrieve(missing_queries) results = merge(results, supplementary)
`
阶段三:结构化验证
`python
validated = validate(results, schema={ "cve_id": r"^CVE-\d{4}-\d+$", "vendor": "required", "patch_version": "semver" })
``
这个脚本在实际执行中,Token消耗仅为传统方案的15%,准确率从23.5%飙升至95%。
对我们PDF文档处理的意义与启示
Search as Code的架构思想对PDF文档智能处理领域有深刻的启示:
1. 从"通用解析"到"定制化处理管线"
正如SaC让Agent为每个搜索任务编写专门的代码,PDF处理也可以采用类似的思路:
- 不再使用一套固定的解析流程处理所有PDF
- 让AI模型根据文档类型(合同、论文、报表)自动生成定制化的解析脚本
- 通过SDK函数组合(OCR、布局分析、表格提取)实现灵活处理
2. Token效率是关键竞争力
SaC将Token成本降低85%的案例表明:智能的处理架构比单纯增大模型更重要。在PDF处理场景中:
- 传统方法:将整个PDF转为文本,一次性送入大模型(Token消耗巨大)
- SaC思路:先用轻量级工具提取结构,再用大模型处理关键部分(Token消耗大幅降低)
3. 沙箱执行确保安全性
SaC的沙箱架构对处理敏感PDF文档(如合同、财务报表)尤为重要:
- 模型生成的解析代码在隔离环境中执行
- 防止恶意PDF中的提示注入攻击
- 确保数据处理过程的可审计性和可追溯性
4. SDK化思维的普适价值
将复杂的文档处理能力拆解为可组合的SDK函数,这一思路可以推广到:
- PDF文本提取函数
- 表格结构识别函数
- 图表数据提取函数
- 跨页内容聚合函数
- 文档元数据分析函数
让AI Agent像搭积木一样组合这些函数,实现高度定制化的文档处理流程。
行业趋势:搜索正在成为Agent的"操作系统层"
Perplexity在技术报告中提出了一个更宏大的愿景:搜索正在从"应用层"下沉为Agent的"操作系统层"。
传统软件依赖确定性指令运行,前沿模型在Token空间中增加推理能力。而最强大的系统将两者结合:
| 层级 | 功能 | 代表技术 |
|---|---|---|
| 策略层 | 理解任务、制定计划 | GPT-4o、Claude 4 |
| 执行层 | 批处理、过滤、验证 | SaC沙箱、确定性运行时 |
| I/O层 | 搜索、检索、存储 | Perplexity搜索引擎 |
这种分层架构对所有AI Agent应用都有借鉴意义——包括文档处理、数据分析、代码生成等领域。
结语
Search as Code不仅仅是一次技术升级,更是AI Agent与外部工具交互范式的根本性转变。当模型从"工具使用者"变成"工具编程者",其能力边界将被极大地拓展。
对于PDF文档处理行业来说,SaC的启示是明确的:未来的智能文档处理系统,不应该是一套固定的处理流水线,而应该是一个可编程、可组合、可定制的处理平台。AI模型根据每份文档的具体特征,动态生成最优的解析策略——这才是真正的"智能文档处理"。
Perplexity的Search as Code已在Perplexity Computer和Agent API中上线。这一架构的开源推广,可能会引发AI Agent生态的新一轮变革。