搜索将进入生命周期第三个阶段:搜索即代码

Perplexity 在最新技术博客中明确否定传统搜索形态,宣告搜索将进入“Search as Code (SaC)”的第三阶段。与第一阶段“链接索引”和第二阶段“AI 摘要”不同,SaC 将搜索本身视为一个可编程的连续过程——用户不再被动接收结果,而是通过代码化定义、构建、测试和部署搜索管道,就像 DevOps 团队处理软件发布一样。

Perplexity 宣告搜索迈入第三纪元

Perplexity 的首席技术官在博客中写道:“我们正处于搜索历史的转折点。第一个阶段是静态的网页抓取与排序,第二个阶段是大模型驱动的即时摘要,第三个阶段则是将搜索完全代码化。” 博客指出,SaC 意味着搜索任务不再是黑盒提问,而是开发者和终端用户能够编写“搜索脚本”,设定查询意图、数据源、过滤规则、验证逻辑,甚至触发后续动作。例如,一个投资分析师可以编写一段代码,每天自动搜索特定财报关键词,经 NLP 验证后直接写入仪表盘——整个过程由 CI/CD 管道驱动,无需人工干预。

当搜索变成代码:DevOps 式生命周期的启示

SaC 的核心灵感来源于 DevOps 生命周期。正如 DevOps 将软件交付划分为计划、编码、构建、测试、发布、部署、运维和监控八个阶段,SaC 也为搜索流程建立了同理的循环。传统搜索是“提问→结果”的线性瞬态动作,而 SaC 是“定义意图→编写搜索代码→自动化构建查询→持续测试结果质量→部署到生产环境→监控召回率与延迟→根据反馈迭代代码”的无限循环。这意味着搜索不再是一次性行为,而是一个持续优化、可版本控制的工程产物。

搜索将进入生命周期第三个阶段:搜索即代码

计划与编码:用代码而非关键词定义搜索

在 SaC 的“计划”阶段,团队将业务需求转化为明确的搜索目标,例如“获取过去 24 小时内所有提及‘量子计算’且作者来自 MIT 的 arXiv 论文”。在“编码”阶段,开发者使用类似 YAML 或 Python 的 DSL(领域特定语言)编写搜索管线:指定源(数据库、API、网页)、过滤器(时间、地域、实体)、排序规则及后处理逻辑(去重、摘要、置信度阈值)。Perplexity 已开源其 SaC 参考实现,允许用户将搜索代码与版本控制系统(如 Git)绑定,实现变更追踪与协作。

构建与测试:让每一次搜索都通过质量门禁

SaC 的“构建”阶段自动将搜索代码编译为可执行的查询计划,例如生成多个并行子查询并合并结果。“测试”阶段则通过“英雄响应”(Hero Responses)基准进行评估——即预设的理想结果样本,自动验证搜索输出是否包含关键实体、排除噪声、满足延迟要求。如同 DevOps 中的单元测试和集成测试,SaC 测试用例会被纳入 CI/CD 管道,确保每次代码修改不会损坏召回质量。Perplexity 透露,其内部已使用超过 10 万组测试用例,覆盖金融、医疗、科研等垂直领域。

部署、运维与监控:从“搜索一次”到“搜索永远”

一旦搜索代码通过测试,CD 工具会自动将其部署到生产环境,容器化搜索代理(如基于 Kubernetes 的微服务)开始实时响应请求。运维团队通过可观测性指标(召回率、准确率、响应时间、资源消耗)和预警机制持续监控。若某条搜索管道的准确率从 92% 降至 88%,系统会立即触发回滚或通知维护者。这一阶段完美复刻了 DevOps 的“无限循环”:部署后收集监控数据,反馈给计划阶段,优化新一轮的搜索代码。DevSecOps 也被左移,安全扫描器会在搜索代码中检查 SQL 注入、API 密钥泄露等风险,右移则检测生产环境中的异常查询模式,形成全方位安全防护。

SaC 将重塑开发者与普通用户的搜索体验

对于开发者,SaC 意味着他们可以像管理软件一样管理搜索:分支、合并、回滚、自动化测试。对于普通用户,Perplexity 计划提供图形化“搜索构建器”,将复杂查询封装为可复用的“搜索组件”,用户可以像搭积木一样配置自己的搜索管道。长远来看,随着搜索功能与 GitLab、Jenkins 等 DevOps 工具的深度集成,“搜索即代码”可能成为 CI/CD 管道中的标准测试节点,甚至与基础设施即代码(IaC)并列,成为软件交付的又一基础部件。搜索不再只是获取信息的手段,而是驱动业务决策的自动化环节。