介绍 Elastic 的 Agent Builder - 9.2

作者:来自 Elastic Anish Mathur

介绍 Elastic Agent Builder,这是一个框架,可以让你使用自己的数据在 Elasticsearch 中轻松构建可靠的、上下文驱动的 AI 代理。这个功能在即将发布的 9.2 版本中提供。目前已经在 Elastic Serverless 里提供。

更多阅读:Elastic AI agent builder 介绍(一)

Elastic AI Agent builder

Agent Builder 现已作为技术预览版推出。你可以通过 Elastic Cloud 试用开始体验,并在此查看 Agent Builder 的文档


生成式 AI 带来了巨大的潜力,可以提升效率并提供更好的客户体验,这也是为什么每个企业和初创公司都在推出聊天机器人和代理。但为了让 AI 代理真正有用,开发者需要处理内部且往往混乱的数据,并且不仅仅是检索并将这些数据传递给 LLM。他们需要实现 Context Engineering 的实践 ------ 一种让代理获得正确工具和上下文以提供准确答案并采取可靠行动的系统。要高质量、安全且可靠地实现这一点,对开发者来说是一个巨大的挑战。

凭借在搜索相关性、检索增强生成和向量数据库方面的长期深度投入,Elasticsearch 已经提供了许多强大的上下文工程基础。今天我们很高兴地宣布推出 Elastic AI Agent Builder。Agent Builder 提供了一套完整的功能,能显著简化与基于 Elasticsearch 构建上下文驱动 AI 代理的交互与开发方式。

Elastic AI Agent Builder

Agent Builder 提供了一个开箱即用的对话代理,让你可以立即开始与 Elasticsearch 中的任何数据聊天 ------ 或者通过集成访问外部数据 ------ 整个体验都在 Kibana 中构建,并可通过 API 访问。开发者还可以自定义工具以搜索特定索引,或使用 ES|QL 实现业务逻辑、相关性调优或个性化。它能够将自然语言转换为直观的、管道式的多步 ES|QL,使代理能够执行分析型和混合语义搜索。最后,开发者可以基于用户定义的指令集和可配置的工具集创建自定义代理,这些代理可以通过 Kibana 聊天界面或通过 API、MCP 和 A2A 进行交互。

Agent Builder 核心功能

Agent Builder 让你能够:

  • 立即与数据对话:Agent Builder 包含一个内置的原生对话代理。开箱即用,你就可以向 Elasticsearch 中的任何数据提问并交互,让你的数据成为一个主动的对话伙伴。
  • 利用智能内置工具提升相关性:Agent Builder 附带一组内置工具,包括强大的搜索功能,可以选择合适的索引、理解数据结构、将自然语言转换为优化的语义、混合或结构化查询,并仅将最相关的上下文返回给 LLM。
  • 构建自定义工具:创建你自己的自定义工具,为代理赋予新技能,充分利用 Elasticsearch 的查询语言(ES|QL),精确控制用于上下文的数据。这让你能细粒度地控制代理响应的相关性、准确性和安全性。
  • 定义自定义代理:超越内置代理,从零开始定义你自己的代理。你可以通过自定义系统提示控制代理的整体角色,精确决定它可以访问哪些工具,并配置其特定的安全配置以满足你的需求。
  • 与外部代理和应用集成:除了完整的 API 支持外,Agent Builder 还提供原生的 MCP 和 A2A 集成,使你能够轻松将 Elasticsearch 工具与代理的相关性与上下文工程能力引入任何外部代理、框架或自定义应用中。
  • 其他功能
    • 内置聊天可视化,支持可编辑的图表类型,并可添加到 Dashboard

    • 完整的代理追踪功能,可在 Discover 中查看和编辑查询结果(日志功能即将推出)

    • 模型灵活性,允许用户将 Agent Builder 配置为使用任意首选的 LLM 提供商

开始使用 Agent Builder

有四种快速方式可以开始交互或构建你的第一个代理:使用原生 Elastic AI Agent、创建自定义工具、配置代理以及通过 API 进行外部集成。以下是高层概述,你可以通过 Elastic Cloud 试用开始体验。

原生聊天

在 Kibana 中,进入侧边导航栏的 Agents (如果未显示,可按此步骤启用),然后点击原生聊天界面,使用默认的 Elastic AI Agent 自然地与数据交互和分析。该代理利用一组内置工具,能够分析并推理索引、映射和查询,从而提供准确且有依据的答案。这些工具包括:

  • 一个强大的搜索工具,可通过多步迭代确定要搜索的正确索引,理解索引结构,构建最有效的查询,并将最相关的上下文返回给 LLM。

  • 自然语言生成并执行 ES|QL 的工具。这使得可以在 ES 中对任何数据进行自然语言搜索和分析,包括生成带有高级功能(如 JOIN)的查询。

  • 一个用于选择最相关索引的工具 。在存在多个用途不同的数据源的环境中,index_explorer 可以帮助代理识别应使用的索引,从而减少噪声和成本。

使用文本输入区域与代理进行实时聊天。默认情况下,你将与内置的 Elastic AI Agent 进行对话。

该代理利用其内置功能来分析你的数据、理解其结构,并推断你的意图,从而提供准确且相关的答案。

同样的交互也可以通过 Agent Builder API 实现,只需发出请求即可,这使你能够在 Agent Builder 之上完全构建独立的应用程序。

创建自定义工具

工具代表可执行的功能,例如搜索、索引探索或代理可用来满足用户请求的自定义 ES|QL 逻辑。Elasticsearch 中包含的默认工具有(platform.core.search、platform.core.list_indices、platform.core.get_index_mapping、platform.core.get_document_by_id)。

自定义工具(tools)使代理的功能能够与特定业务逻辑和需求保持一致。

在 Kibana 中,进入 Agents -> Manage tools,然后点击 New Tool。工具有两种类型:

  • Index Search:当你想将通用搜索功能限定在特定索引范围内,并为 LLM 提供有关索引及其包含数据的更多信息时使用。

  • ES|QL:用于定义包含显式 ES|QL 查询的工具,以实现自定义业务逻辑并微调相关性。

对于这两种工具类型,建议从一个有意义的描述开始,因为它有助于人类和代理理解工具的用途。

对于 Index Search:

  • 添加与你部署中索引匹配的目标模式。

对于 ES|QL:

  • 定义 ES|QL 查询 :使用 Elasticsearch Query Language 创建新工具,以访问、准备和在数据上运行推理。例如,可以编写一个使用 LOOKUP JOIN 连接索引、关联数据集的 ES|QL 查询。

  • 添加 ES|QL 参数:引入如 ?time_duration 等受保护变量,以在保持灵活性的同时安全地限制 LLM 生成的输入。

  • 验证查询:通过 "save & test" 运行该工具进行验证。

创建新代理

自定义代理允许你定义代理应如何响应用户请求,并利用它可访问的工具和数据源。

在 Kibana 中,进入 Agents,然后点击 New Agent。为你的代理设置唯一的 Agent ID,设置 Display Name,并添加简要 Description。你也可以使用 Agent Builder API 自动化相同的流程,发送 POST 请求到 /api/agent_builder/agents。

  1. 定义自定义指令:首先编写一个精确的提示(prompt)来指导代理的操作。该提示会直接嵌入代理配置中,因此每个响应都遵循相同的逻辑、语气和工作流程。Starter prompts 示例见此处。
  2. 分配工具:指定代理允许调用的工具。限制工具访问可以确保安全性和可靠性,防止代理调用未预期的操作,同时在其定义的领域内保持有效。
  3. 聊天:使用代理界面或通过 API 嵌入与自定义代理进行对话。

通过 API、MCP 或 A2A 集成

Agent Builder 基于一组 APIs 构建,允许你将此功能直接集成到自己的应用程序、CI/CD 流水线或自动化脚本中。你将使用的三个核心端点是:

  • /api/agent_builder/tools:用于创建、列出和管理代理可使用的可复用技能的端点。

  • /api/agent_builder/agents:用于定义代理角色的端点,包括重要的指令和工具分配。

  • /api/agent_builder/converse:用于与代理交互、开始对话和获取答案的端点。

    • converse API 会返回完整的思考和推理步骤以及任何查询结果,使你可以根据需要重现或扩展体验。

最后,你可以通过 MCP 与任意工具进行交互。Agent Builder 提供一个 MCP 端点,包括所有内置和自定义工具,可与任何 MCP 客户端使用。大多数 MCP 客户端(如 Claude Desktop、Cursor、VS Code 等)具有类似的配置模式。要连接到你的 Elastic 实例,你需要在客户端的配置文件中提供 Kibana URL 和 API key,通常格式如此处所述。

有关更详细的入门信息,请阅读此博客,并查看我们 GitHub 仓库中的 Jupyter Notebook 以及按需工作坊

可用性

Agent Builder 现已作为技术预览版推出。你可以通过 Elastic Cloud 试用开始体验,并在此查看 Agent Builder 的文档。

我们很快还会有更多更新,期待分享,祝你愉快地(代理)构建!

原文:www.elastic.co/search-labs...

相关推荐
老纪的技术唠嗑局21 小时前
告别OpenClaw配置丢失——Mindkeeper内测版邀测
大数据·elasticsearch·搜索引擎
Elasticsearch21 小时前
使用 Elasticsearch + Jina embeddings 进行无监督文档聚类
elasticsearch
勇哥的编程江湖1 天前
flinkcdc streaming 同步数据到es记录过程
大数据·elasticsearch·flink·flinkcdc
曾阿伦1 天前
Elasticsearch 7.x 常用命令备忘录
大数据·elasticsearch·搜索引擎
斯特凡今天也很帅1 天前
Elasticsearch数据库专栏(二)DSL语句总结(更新中)
大数据·elasticsearch·搜索引擎
要记得喝水1 天前
适用于 Git Bash 的脚本,批量提交和推送多个仓库的修改
git·elasticsearch·bash
二十七剑1 天前
Elasticsearch的索引问题
大数据·elasticsearch·搜索引擎
A__tao1 天前
Elasticsearch Mapping 一键生成 Java 实体类(支持嵌套 + 自动过滤注释)
java·python·elasticsearch
A__tao1 天前
Elasticsearch Mapping 一键生成 Proto 文件(支持嵌套 + 注释过滤)
大数据·elasticsearch·jenkins
Devin~Y1 天前
高并发电商与AI智能客服场景下的Java面试实战:从Spring Boot到RAG与向量数据库落地
java·spring boot·redis·elasticsearch·spring cloud·kafka·rag