作者:来自 Elastic Craig Angulo 及 James Williams

学习如何在 Elasticsearch 中实现 agentic 搜索,以根据记录的用户数据自动训练相关性模型。
Agent Builder 现在作为技术预览版提供。通过 Elastic Cloud Trial 开始使用,并在这里查看 Agent Builder 的文档。
每个搜索栏都是一个破碎的承诺。用户输入自然语言查询,比如 "夏威夷拥有厨师厨房的海滨天堂",但从词法搜索中得到的却是无关的结果。我们用 agentic 搜索和相关性自动调优解决了这个问题:一种参考架构,将自然语言理解与能够从每次用户交互中自我改进的搜索结合在一起。不需要数据科学家。不需要手动调优。搜索会自动变得更智能。在这篇文章中,我将准确展示你如何构建它。
这能帮助谁:
-
保险公司:客户无需理解保单术语也能找到正确的保障
-
SaaS 公司:开发者可以用自然语言查找文档
-
电商:买家可以用对话式查询发现商品
-
任何有搜索的业务:让你的搜索栏从成本中心变成竞争优势
目标
在这篇博客中,我们将逐步演示启用一个 agentic 搜索 解决方案 所需的步骤,该方案可利用你选择的任何 LLMs 和 Elastic 平台。该搜索解决方案将基于用户交互自动训练一个 Learn-to-Rank 模型。我们将利用一个房产数据集来构建一个 home-search-agent ,使用户可以提出自然语言查询"向我展示在 夏威夷 出售、拥有 3 间卧室、带游泳池、且价格低于 100 万 的房子",并返回丰富的搜索结果。
架构概览

- 用户自然提问 → "向我展示在夏威夷出售、拥有 3 间卧室的房子"
- agent 理解 → 转换为优化后的 Elasticsearch 查询
- 结果返回 → 相关结果,无需关键词技巧
- 系统学习 → 每次交互都会教会模型用户真正想要什么
Learn-to-Rank(LTR)实现
训练 Learn-to-Rank 算法最困难的部分是创建判断列表;现在这部分由 Elastic Logging 自动处理。随着用户使用你的 home-search-agent 进行搜索,这些搜索、结果,以及后续提问都会被记录下来用于训练。
在这个示例中会查看 48 个特征,范围从房产属性(泳池、房间数量)到参与度信号(点击率、后续问题)。
一旦记录了足够多的对话,就会在这些数据上训练一个基于 XGBoost 的重排模型,并将其部署回 Elasticsearch。
反馈循环:搜索 → 记录事件 → 训练模型 → 改进搜索
设置和部署
Github 的 readme 部分提供了详细的分步说明,以及技术深度解析。
- 确保你安装了 Node.js、Git 和 Python >=3.10,<3.13
- 克隆提供的代码仓库: https://github.com/jwilliams-elastic/agentic-search-o11y-autotune
- 使用提供的 requirements.txt 创建一个虚拟环境
- 创建一个 Elastic Serverless 项目并复制以下内容:
- ELASTIC_URL
- ELASTIC_API_KEY
- 创建一个 .env 文件,并提供第 4 步中的凭据(另外,你还需要提供你的 LLM 的 API_KEY)
- 在你的虚拟环境中打开一个 Terminal 并运行 npm run dev 。这会启动你的 Mastra 服务器,并给你一个类似 http://localhost:4111/ 的 URL
部署了什么以及如何使用
- 在部署流程中创建了多个搜索模板
- 这些搜索模板分别提供了从 V1 到 V4 不同的配置
- home-search-agent 有一个提示词,使 LLM 能填写搜索模板
- LLM 可以通过 agent 可访问的 ElasticSearch 工具,将自然语言查询转换并填写到搜索模板中

演示流程
- 打开 http://localhost:4111/workflows
- 运行 elastic-setup-workflow(.env 文件有默认值,但你可以在 Mastra UI 中覆盖)
- 运行 search-autotune-workflow(LOW 和 HIGH 选项会生成不同的模拟搜索参与行为 ------ HIGH = 高端/luxury,LOW = 经济/affordable)
- 打开 http://localhost:4111/agents 并运行 "Home Search Agent"
- 通过输入诸如 "affordable home"、"luxury home" 和 "6 bed, 6 bath single family home near orlando fl with garage and pool under 5M with designer finishes throughout" 这样的查询,展示 LTR 和无 LTR 的 LLM 判断差异
- 你可以通过为特定结果请求更多细节来触发参与(例如:告诉我更多关于 v4 结果中第 20 条的内容)
- 打开 "Agentic Search Analytics" 仪表板 ------ 查看 CTR、平均点击位置以及搜索模板使用情况等 KPI
Agents 实战
在 Mastra Framework 上运行你的 Elastic Agents 后,你现在可以在 home-search-agent(允许你进行房产搜索)和 home-search-agent-ltr-comparison(允许你直接看到基于个性化数据训练的好处)之间进行选择。
home-search-agent

home-search-agent-ltr 比较:

为什么是现在推出呢?
随着用户越来越期待类似 ChatGPT 的搜索体验,传统搜索引擎因相关性差和复杂的手动调优而流失客户。这种架构通过使非技术用户无需构建复杂查询就能找到所需内容,实现了访问的民主化,同时 LTR 模型持续适应个人行为模式以提高相关性。自动重训练使结果随着趋势变化保持最新,内置的可观测性仪表板显示使用模式和产品空白。这些洞察直接指导功能开发,让你与实际用户需求保持一致,而不是基于假设。准备好提升你的搜索引擎相关性了吗?访问 elastic.co/contact 联系我们,了解你的搜索如何开始为你工作。
原文:https://www.elastic.co/search-labs/blog/agentic-search-relevance-autotuning-elasticsearch