6月2日消息,Perplexity发布"搜索即代码"(Search as Code,SaC)架构,这是一种专为AI Agent设计的新型搜索范式。核心思路是:AI模型不再通过传统的函数调用(function calling)逐个循环执行搜索操作,而是直接生成Python代码来调用Perplexity搜索栈的底层组件,在安全沙箱中一次性执行完整的检索策略。 该架构已集成至Perplexity Agent API,并作为默认模式应用于Perplexity Computer产品。
传统搜索架构为什么撑不住了
在Agent出现之前,搜索的使用模式很简单:用户输入查询,搜索引擎返回结果,模型消费结果作为上下文。这套模式在单轮问答场景下运行良好,但在Agent时代暴露出三个结构性问题。
上下文粒度过粗。传统搜索返回的是预定义格式的完整结果集,模型无法控制检索的颗粒度。如果模型只需要一条精确信息却拿到了一整页搜索结果,多余的内容会污染上下文,降低推理质量。
无法利用领域知识。模型在推理过程中可能已经知道应该优先搜索哪些来源、用什么策略组合词法和语义信号,但传统搜索接口只暴露查询参数,模型无法把这些判断传递给搜索引擎。
控制流低效。很多搜索任务天然需要并行扇出、条件分支、去重聚合等非线性控制流,但通过函数调用串行执行时,每次搜索都要经历一次完整的模型推理往返,延迟和token消耗急剧膨胀。
Perplexity在研究博客中明确指出:在Perplexity Computer中,单个任务在几分钟内调用数百甚至数千次检索操作已经很常见——这种工作负载对人类不可能,但对Agent完全自然。传统搜索架构无法支撑这种强度。
Search as Code怎么工作
SaC的设计思路是把搜索栈"拆开",将检索、排序、过滤、渲染等各个环节作为SDK中的原子化组件暴露给模型。模型根据具体任务生成Python代码,在安全沙箱中组装这些组件,构建一条为当前请求量身定制的检索管道。
整个架构包含三层。模型层作为控制平面,负责理解指令、分解任务、决定需要什么检索策略,并生成执行代码。计算沙箱提供确定性的代码执行环境,支持异步并行、条件分支等复杂控制流。Agentic Search SDK是底层搜索基础设施的编程接口,模型通过它直接控制每个搜索步骤。
与其他代码生成驱动的搜索方案不同,SaC不是简单地把传统搜索API放进一个shell里。它暴露的是搜索栈最底层的构建块,包括候选列表、排序信号等中间状态,让模型能够在执行过程中实时优化检索策略。
实际效果:85%的token消耗降低
Perplexity给出了一个具体案例:在某个CVE漏洞研究任务中,SaC架构相比传统函数调用方式减少了85%的token使用量,同时保持100%的准确率。
这个效率提升来自几个方面:代码可以批量并行执行多个检索操作,而不是逐个串行等待模型推理;模型可以精确控制每次检索返回的内容颗粒度,只取需要的信息进入上下文;中间状态不需要反复传回模型进行决策,减少了上下文污染。
对于企业级Agent工作流来说,这种级别的效率提升直接影响成本。当一个Agent每天执行数千次搜索操作时,85%的token节省意味着可观的运营成本下降。
与竞品的差异:搜索引擎自己下场做Agent基础设施
SaC的竞争定位比较独特。目前市面上的搜索解决方案大致分两类:一类是传统搜索API(Google Search API、Bing Search API),提供标准化的查询-返回接口;另一类是面向AI的搜索产品(如Tavily、Exa),在传统搜索之上做了AI友好的封装。
Perplexity的SaC走的是第三条路——直接把搜索引擎的内部组件以SDK形式开放,让模型自己"写"搜索管道。这需要搜索引擎对自身架构有足够的拆解能力,也需要与模型的代码生成能力深度配合。
这种模式的潜在风险在于:它对模型的代码生成质量有较高要求。如果模型生成的检索代码有bug或策略不当,可能导致比传统搜索更差的结果。SaC在设计上假设模型"足够聪明"来编排检索策略,但在实际部署中,不同模型、不同任务的代码质量差异可能很大。
此外,SaC目前仅在Perplexity自有产品和API中可用,开发者需要绑定Perplexity的搜索基础设施。对于已经使用其他搜索API的开发者来说,迁移成本是需要考虑的因素。
对开发者意味什么
如果你在构建需要大量搜索操作的Agent应用——信息调研、竞品分析、漏洞扫描、合规审查等场景——SaC值得认真评估。85%的token节省和更精准的上下文控制可以显著改善Agent的性能和成本表现。
更宏观地看,SaC代表了一个清晰的趋势:Agent时代的基础设施正在从"面向人类的API"向"面向AI的可编程组件"演进。搜索是第一个被重构的基础设施,数据库、文件系统、通信协议等其他基础层大概率会跟进。这不是一个产品更新,而是一次架构范式的转移。