作者来自 Elastic Greg Crist用纯英文在终端中查询你的 Elasticsearch 数据。官方 Elastic GitHub Copilot CLI 插件会自动生成并运行针对你集群的 ES|QL 查询。无需 Kibana无需手动编写语法。在终端中输入一个自然语言问题。官方 Elastic GitHub Copilot CLI 插件会检查你的索引 schema生成 Elasticsearch 查询语言ES|QL查询并执行它然后返回一个格式化表格。无需 Kibana无需手动编写查询语法。一条命令即可完成。该插件现已在 Awesome GitHub Copilot marketplace 上提供。Elastic 已将我们的 skills 和插件源码发布在官方 elastic/agent-skills 仓库中。什么是 GitHub Copilot CLI它如何安装GitHub Copilot CLI 是一个 AI agent它将 Copilot 的模型直接带入你的终端。它可以帮助开发者在本地开发环境的上下文中生成代码、编辑文件以及运行 shell 命令。当与 Elastic 插件结合时它允许开发者通过自然语言在 shell 中直接查询 Elasticsearch 数据。你可以使用你偏好的包管理器进行安装例如通过npmnpm install -g github/copilot(如果你更喜欢 Homebrew可以运行brew install copilot-cli。Windows 用户可以使用winget install GitHub.Copilot。安装完成后通过运行以下命令来验证你的 Copilot 会话身份copilot然后输入/login并按照浏览器中的提示完成操作。登录成功后输入/quit返回到 shell。安装 Elasticsearch 插件Elastic 插件已发布在 Awesome GitHub Copilot marketplace这是 GitHub 面向 Copilot CLI 的社区精选集合包含 agents、skills 以及配置。该 marketplace 在 Copilot CLI 中默认已注册。安装只需一条命令。copilot plugin install elasticsearchawesome-copilot要验证它是否安装正确请输入copilot plugin list。你应该会看到elasticsearchawesome-copilot处于 active 状态并可正常使用。配置 Elasticsearch该插件通过三个环境变量连接 ElasticsearchELASTICSEARCH_URL、ELASTICSEARCH_API_KEY和ELASTIC_MCP_URL。如果你想使用 Model Context ProtocolMCP 服务器集成则需要 Elasticsearch 9.2 或 Elastic Cloud Serverless。1. 激活集群你可以在 Elastic Cloud 上启动免费试用或者使用 start-local 脚本 在本地运行curl -fsSL https://elastic.co/start-local | sh。2. 获取你的ELASTICSEARCH_URL该值可以在 Kibana 首页右上角找到通常以 “.es.region.elastic.cloud:443” 结尾。3. 获取你的ELASTICSEARCH_API_KEY在 Kibana 中进入Stack Management Security API Keys或者在右上角搜索框中输入 “API Keys”然后创建一个 API key。给 API key 起一个名称并保留默认设置。复制编码后的 key。完成本次练习后你可以回去删除该 key以避免留下过期的全权限 key。3. 获取你的ELASTICSEARCH_API_KEY在 Kibana 中进入Stack Management Security API Keys或者在右上角搜索框中输入 “API Keys”然后创建一个 API key。给你的 API key 命名并保留默认设置。复制编码后的 key。完成本次练习后你可以回到这里删除这个 key以避免留下一个已过期的、具有完整权限的 key。4. 获取你的ELASTIC_MCP_URL进入Agents View all tools Manage MCP然后复制你的 MCP Server URL。在你的项目目录中创建一个.env文件这样插件就可以进行身份验证而不需要全局 shell 配置。ELASTICSEARCH_URLyour-elasticsearch-url ELASTICSEARCH_API_KEYyour-encoded-api-key ELASTIC_MCP_URLyour-elasticsearch-mcp-url这种方式比在~/.bashrc或~/.zshrc中导出变量更推荐尤其是在你需要在多个集群或环境之间切换时。使用以下 shell 命令加载.env文件set -a source .env set a安装示例数据用于测试你的 Elasticsearch 查询为了进行测试我们建议安装 Kibana 中提供的 ecommerce 订单数据集。该数据集包含一个名为kibana_sample_data_ecommerce的索引其中包含 4,675 条订单记录涵盖产品类别、价格以及地理信息。要安装示例数据请打开 Kibana 的Integrations页面在顶部搜索栏中输入 “Integration”然后安装 “Sample Data”。更多详情请参考文档Explore and analyze data with Kibana | Elastic Docs。如何使用 elasticsearch agent安装完成后Copilot 会通过自定义的elasticsearchagent 自动处理工具路由。你可以直接询问关于集群的问题它会自动调用 Elasticsearch MCP 工具。我们来做一个快速发现检查discovery check。建议添加--allow-tool shell参数以确保 Copilot 有权限执行底层后台查询copilot -p elasticsearch Can you list my available Elasticsearch indices? --allow-tool shellCopilot 将会连接你的 cluster获取 index data并直接在你的 terminal 中返回一个干净的 tableHere are your available Elasticsearch indices: | Index Name | Health | Status | | :--- | :--- | :--- | | kibana_sample_data_ecommerce | green | open | | system-logs-2026 | green | open |如何使用自然语言和 ES|QL 查询 ElasticsearchElastic GitHub Copilot CLI 插件基于 ES|QL这是 Elastic 用于数据探索的管道式查询语言。你不需要手动查语法也不需要切换到 Kibana只需用自然语言向 Copilot 提问你的数据即可。尝试运行以下提示copilot -p elasticsearch Use ES|QL to find the top 5 product categories by total sales revenue in the kibana_sample_data_ecommerce index. Show me the results in a table. --allow-tool shell在底层这个 agent 会尝试几种不同的执行方式。首先它会尝试 node.js 命令但会失败然后它会检查你的集群是否在本地机器上运行https://localhost:9200但也会失败。接着它会检查你的环境变量并最终成功。调用 MCP server 来检查kibana_sample_data_ecommerce的 mapping。构建正确的 ES|QL 查询FROM kibana_sample_data_ecommerce | STATS total_revenue SUM(taxful_total_price) BY category.keyword | SORT total_revenue DESC | LIMIT 5在 Elasticsearch API 上执行该查询。将结果渲染为格式化的 Markdown 表格。Here are the top 5 product categories by total sales revenue: | Rank | Category | Total Revenue | |---|---|---| | 1 | Mens Clothing | 149,393.91 | | 2 | Womens Clothing | 135,099.91 | | 3 | Womens Shoes | 105,479.17 | | 4 | Mens Shoes | 91,797.92 | | 5 | Womens Accessories | 60,830.31 |模式发现Schema discovery、查询生成以及执行都会在后台完成。你只会看到最终结果。从终端开始查询你的 Elasticsearch 数据将 Model Context Protocol 直接引入 GitHub Copilot CLI使开发者可以通过自然语言与 Elasticsearch 数据交互。无论你是在排查应用日志中的生产问题还是在分析电商收入现在都可以即时获得答案。常见问题Frequently asked questions如何在不切换到 Kibana 的情况下从终端查询 Elasticsearch安装 Elastic GitHub Copilot CLI 插件。完成设置后用纯英文向 elasticsearch agent 提问它会生成并执行针对你集群的 ES|QL 查询并在终端以格式化表格返回结果。我可以用自然语言生成 ES|QL 查询吗可以。Elastic GitHub Copilot CLI 插件使用 Elasticsearch 的 MCP server 来检查你的 index schema并自动将自然语言问题转换为有效的 ES|QL 查询。你不需要了解 ES|QL 语法也能获得结果。MCP 集成需要哪个版本的 ElasticsearchMCP server 集成需要 Elasticsearch 9.2 或更高版本或 Elastic Cloud Serverless 部署。较早版本不支持基于 MCP 的查询流程。Elastic GitHub Copilot CLI 插件是开源的吗是的。该插件发布在 github.com/elastic/agent-skills可用于安装、贡献或 fork。它在本地运行并通过环境变量连接你的 Elasticsearch 集群。该插件也可以在 Awesome GitHub Copilot marketplace 中找到。自然语言 ES|QL 查询生成有哪些限制查询准确性取决于你的 index mapping 对数据的描述程度。字段名歧义或复杂的多 index 查询可能需要手动优化 ES|QL。该插件更适合探索性查询和数据发现而不是生产级查询流水线。使用这个功能需要付费的 GitHub Copilot 订阅吗需要任意 Copilot 计划Free、Pro、Business、Enterprise免费层级有一定的 premium requests 限制。原文Query Elasticsearch with natural language in your terminal - Elasticsearch Labs