首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >使用 Elasticsearch 和 GitHub Copilot SDK 构建 RAG 智能体

使用 Elasticsearch 和 GitHub Copilot SDK 构建 RAG 智能体

作者头像
点火三周
发布2026-06-04 13:19:18
发布2026-06-04 13:19:18
381
举报
文章被收录于专栏:Elastic Stack专栏Elastic Stack专栏

使用 Elasticsearch 和 GitHub Copilot SDK 构建 RAG 智能体

智能体构建器(Agent Builder)现已正式发布(GA)。您可以从 Elastic Cloud 试用版开始体验,并在此处查看智能体构建器的文档:Elastic Agent Builder。

只需大约五行 C# 代码,即可将 Elasticsearch 连接到 GitHub Copilot SDK,让您的智能体从实际数据中检索信息,而不是进行猜测。Copilot 负责规划和编排,而 Elasticsearch 则负责对您的日志、文档和专有记录进行检索。结果是:智能体不会因为过时的训练数据而产生幻觉,而是基于您系统中的实际内容提供答案。本文将通过 Elastic.Extensions.AI 桥接库,详细介绍完整的设置过程。

为什么 RAG 智能体在没有检索层时会产生幻觉

如果没有检索层,AI 智能体仅凭训练数据生成响应,这意味着当被问及您的日志、文档或专有系统时,它们会产生幻觉。GitHub Copilot SDK 为您提供了一个经过生产环境验证的编排引擎。Elasticsearch 则为您的日志、文档和操作数据提供快速、准确的检索。当您将它们连接起来时,您的智能体将停止猜测。

在本文中,我们将探讨如何使用 Elastic.Extensions.AI 桥接库建立这种连接,并提供一个完整的 .NET 代码示例,以便您能够创建一个可工作的检索增强生成(RAG)智能体,该智能体使用 Copilot 的引擎进行规划,并从 Elasticsearch 中检索信息。

核心技术栈概览:GitHub Copilot SDK 和 Elastic AI 生态系统

GitHub Copilot SDK 负责编排和规划;Elasticsearch 负责检索和提供上下文。以下是每个组件的贡献方式。

GitHub Copilot SDK

GitHub Copilot SDK 是一个多平台工具集,目前处于技术预览阶段。它支持 Python、TypeScript、Go、.NET 和 Java。从架构上看,该 SDK 通过 JSON 远程过程调用(JSON-RPC)与 Copilot 命令行界面(CLI)服务器通信,并自动管理进程生命周期。它承担了智能体行为的繁重工作:规划复杂任务、调用工具以及管理模型交互。

Elastic AI 生态系统

在技术栈的另一端,Elastic 提供了两个主要的 AI 组件:

  • Elastic AI Assistant:一个专门用于可观测性和安全性的工具,可帮助构建查询、故障排除和威胁调查。
  • Elastic Agent Builder:一个用于创建基于 Elasticsearch 数据的自定义智能体的框架。它使用可视化聊天界面,并支持由 Elasticsearch 查询语言(ES|QL)驱动的技能和工具。

功能划分:在此集成中,GitHub Copilot 是编排器(负责规划和决策的“大脑”),而 Elasticsearch 是上下文提供者(包含您的日志、文档和专有数据的“记忆”和“图书馆”)。

GitHub Copilot SDK 和 Elastic
GitHub Copilot SDK 和 Elastic

图 1:GitHub Copilot SDK 和 Elastic 组件如何交互。

Elasticsearch 和 Copilot 集成的架构模式

有三种主要方式可以将 Elasticsearch 与 GitHub Copilot SDK 进行桥接。

用例

关键协议/库

开发者益处

RAG / 混合搜索

Microsoft.Extensions.AI / Elastic.Extensions.AI

以“五行代码”的简洁性,将智能体基于私有文档、日志和工单。

集群管理操作

Elasticsearch 管理 API / SDK 工具

通过自然语言控制集群健康状况和重新索引。(注意:索引生命周期管理 [ILM] 复杂度较高。)

智能体互操作性

Model Context Protocol (MCP) / Agent2Agent (A2A) Protocol

无需编写新的工具函数,即可原生调用预构建的 Elastic 智能体。

架构细节:操作的现实情况

尽管将 Elasticsearch 管理 API 作为 Copilot 工具暴露可以减少站点可靠性工程师(SRE)的上下文切换,但开发者应区分简单和复杂的操作。基本任务,例如检查集群健康状况或触发重新索引,都是直接明了的。然而,通过自然语言管理 ILM 策略则要困难得多,因为策略逻辑本身固有的复杂性。高级架构师应优先考虑健康和发现工具,然后再尝试完全的策略自动化。

分步指南:构建一个由 Elasticsearch 驱动的 Copilot 智能体

步骤 1:先决条件和环境设置

  • GitHub Copilot 订阅:必需,除非使用自带密钥(BYOK)。
  • Copilot CLI:已安装并可在您的 PATH 中访问。
  • Elasticsearch 集群:一个活跃的实例(Elasticsearch Serverless 或 Elastic Cloud)。

步骤 2:安装 SDK

该 SDK 支持 Python、TypeScript、Go、.NET 和 Java(开发中)。本文中的示例使用 .NET,其中 Elastic.Extensions.AI 桥接库提供了最紧密的集成。要安装 .NET 包:

代码语言:javascript
复制






1
2
3

dotnet add package GitHub.Copilot.SDK
dotnet add package Elastic.Clients.Elasticsearch
dotnet add package Elastic.Extensions.AI



3. 将 Elasticsearch 注册为原生工具

该集成通过 Elastic.Extensions.AI 桥接库运行,该库由 Martijn Laarman(Elastic 前 .NET 客户端维护者)编写,用于连接 Elastic Agent Builder 到 GitHub Copilot SDK。其核心模式包含四个步骤,大约 20 行 C# 代码,可归结为五个逻辑操作:

代码语言:javascript
复制






1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

// 1. 初始化 Elasticsearch 客户端
var client = new ElasticsearchClient(
    new Uri(Environment.GetEnvironmentVariable("ES_URL")!),
    new ApiKey(Environment.GetEnvironmentVariable("ES_API_KEY")!));
 
// 2. 将搜索方法装饰为 Copilot 工具
[Description("Search Elasticsearch for documents relevant to the query")]
async Task<string> SearchAsync(
    [Description("Natural-language search query")] string query)
{
    // 3. 定义 schema:让 LLM 通过 SearchAsync 驱动查询 DSL
    var response = await client.SearchAsync<JsonElement>(s => s
        .Index("your-index")
        .Query(q => q.Match(m => m.Field("content").Query(query))));
    return JsonSerializer.Serialize(response.Documents.Take(5));
}
 
// 4. 通过 Elastic.Extensions.AI 桥接库注册工具并运行
var agent = CopilotAgent.Create(new CopilotAgentOptions());
agent.AddTool(AIFunctionFactory.Create(SearchAsync));
await agent.StartAsync();



步骤 4:实施安全防护和隐私保护

Copilot SDK 包含一个内置的安全模型,用户必须确认工具的使用(除非使用 --allow-all-tools 标志)。

关于数据隐私:Elastic 不会将客户数据(提示、查询或事件数据)用于模型训练。对于需要零配置 AI 的团队,可通过 Elastic Inference Service (EIS) 使用 Elastic 管理的大语言模型(LLM),这提供了对生成式功能的即时访问,尽管这些服务会根据 Elastic Cloud 定价产生额外费用。如果您使用 EIS,数据将由您选择的第三方 LLM 提供商处理。

入门:使用 GitHub Copilot SDK 构建您的 Elasticsearch RAG 智能体

利用您自己的数据进行“接地”(grounding)可以解决幻觉问题。通过 Elastic.Extensions.AI 桥接库将 Elasticsearch 连接到 GitHub Copilot SDK,您可以让您的智能体以最少的样板代码访问您的数据。Copilot 负责规划和编排;Elasticsearch 负责快速、准确的检索。结果是一个智能体,它基于您系统中的实际内容进行推理,而不是基于几个月前训练的模型。

后续步骤:设置您的 Elasticsearch RAG 智能体

  • 探索源代码:查看 elastic-ingest-dotnet 仓库 以获取 Elastic.Extensions.AI 桥接库。
  • 查阅手册:参考 GitHub Copilot SDK Cookbook 以获取多语言示例。
  • 实施警告:从简单的工具开始,例如集群健康检查(Cluster Health)。ILM 管理要复杂得多,在智能体工作流中应谨慎处理。

技术说明:GitHub Copilot SDK 目前处于技术预览阶段。在正式发布之前,可能会出现潜在的重大变更。

附加资源:您可以在这篇博客中阅读更多关于如何将 Elasticsearch 和 Microsoft Agent Framework 结合使用的内容。

常见问题
对 AI 智能体而言,“接地”意味着什么?

“接地”(Grounding)意味着智能体在生成响应之前,会从像 Elasticsearch 这样的来源检索真实数据,而不是仅仅依赖 LLM 的训练数据。这可以防止幻觉,并确保答案反映您的实际环境,基于您的日志、文档和专有记录。

Elastic 是否使用我的查询或数据来训练 AI 模型?

不。Elastic 不会使用客户数据,包括提示、查询或事件数据,来训练模型。通过 BYOK(自带密钥),您的数据将保留在您自己的环境中。如果您使用第三方 LLM 提供商,其数据政策将单独适用。

MCP 互操作性如何与 Elastic Agent Builder 协同工作?

Elastic Agent Builder 智能体会暴露一个 MCP 服务器端点,GitHub Copilot SDK 直接连接到该端点。现有的 Elastic 智能体可以从 Copilot 原生调用,无需重写工具函数。

我可以使用 GitHub Copilot 来管理 Elasticsearch 集群操作吗?

基本操作,例如检查集群健康状况或触发重新索引,作为 Copilot 工具运行良好。复杂操作,例如 ILM 策略管理,通过自然语言自动化更难以安全实现,在智能体工作流中应谨慎处理。

GitHub Copilot SDK 支持哪些语言进行 Elasticsearch 集成?

截至撰写本文时,该 SDK 支持 Python、TypeScript、Go 和 .NET,Java 正在开发中。对于 Elasticsearch 集成,Python 和 .NET 提供了最直接的路径。由于这两种语言都与 Microsoft Agent Framework 深度集成,开发者可以使用现有的桥接库(如 Elastic.Extensions.AI)无缝连接 Copilot 和 Elasticsearch。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-06-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 点火三周 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用 Elasticsearch 和 GitHub Copilot SDK 构建 RAG 智能体
    • 为什么 RAG 智能体在没有检索层时会产生幻觉
    • 核心技术栈概览:GitHub Copilot SDK 和 Elastic AI 生态系统
      • GitHub Copilot SDK
      • Elastic AI 生态系统
    • Elasticsearch 和 Copilot 集成的架构模式
      • 架构细节:操作的现实情况
    • 分步指南:构建一个由 Elasticsearch 驱动的 Copilot 智能体
      • 步骤 1:先决条件和环境设置
      • 步骤 2:安装 SDK
      • 3. 将 Elasticsearch 注册为原生工具
      • 步骤 4:实施安全防护和隐私保护
    • 入门:使用 GitHub Copilot SDK 构建您的 Elasticsearch RAG 智能体
      • 后续步骤:设置您的 Elasticsearch RAG 智能体
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档