
agent-skills v0.4.0
Elastic 官方技能
Elastic Agent Skills
Elastic Agent Skills — 由构建 Elastic 的团队打造 — 将原生平台专业知识直接交付给你的 AI 编码代理。这是官方 Agent Skills 库,兼容 Cursor、GitHub Copilot、Windsurf、Gemini CLI 等代理式 IDE。技能遵循 Agent Skills 开放标准。
[!NOTE] 技术预览
这些技能处于早期发布阶段,正在积极开发中。随着技能通过稳健的评估被固化,以及模型格局的演变,预计会有变化。请经常回来查看更新。
关于
本仓库包含精选技能,这些技能是指导、上下文和工具包的集合,教会任何 AI 代理如何正确地使用 Elasticsearch、Kibana、Elastic Observability 和 Elastic Security。将它们放入你已经在使用的代理运行时中,你的助手就会停止使用过时的模式,开始正确地工作。
什么是技能?
技能是自包含的包,为 AI 代理提供以可重复方式完成特定任务所需的知识和工具。每个技能都位于自己的文件夹中,包含一个 SKILL.md 文件,其中含有代理遵循的元数据和指令。
有关 Agent Skills 标准的更多背景信息,请参阅 agentskills.io。
范围
本仓库中的技能专注于:
- 与 Elasticsearch API 交互(搜索、索引、集群管理)
- 构建和管理 Kibana 内容,如告警、连接器等
- Elastic Observability、Elastic Security 和 Agent Builder 的模式
可用技能
Cloud (2)
| Skill | Description | Version | Author |
|---|---|---|---|
| cloud-onboarding | 引导 Elastic Cloud 组织入门:配置 elastic CLI 的 Cloud 上下文和 API 密钥,建立默认区域,然后邀请用户,分配预定义或自定义的 Serverless 项目角色,并创建或撤销 Cloud API 密钥。适用于设置 Cloud 身份验证,或授予、修改、审计用户对组织及其项目的访问权限时。 | 0.3.0 | elastic |
| cloud-provisioning | 配置和运维 Elastic Cloud 基础设施:创建、连接、更新和删除 Serverless 项目(Elasticsearch、Observability、Security);管理流量过滤器(IP 和 AWS PrivateLink 网络安全);以及管理 Elastic Cloud Hosted 部署的生命周期。适用于创建 Serverless 项目或托管部署,或对其执行日常运维操作,或限制其网络访问时。 | 0.3.0 | elastic |
Elasticsearch (10)
| Skill | Description | Version | Author |
|---|---|---|---|
| elasticsearch-anomaly-detection | 通过 API 创建和管理 Elastic ML 异常检测作业。适用于在索引或数据流上设置作业、配置作业和数据馈送,或打开、启动、停止它们时。 | 1.1.0 | elastic |
| elasticsearch-anomaly-detection-explainer | 解释 Elasticsearch ML 异常检测分数、模型行为和结果解读。适用于用户询问分数为何偏高或偏低、模型如何学习、数字的含义,或如何排查意外的异常分数时。 | 0.3.0 | elastic |
| elasticsearch-cluster-health | 诊断非绿色 Elasticsearch 集群,并给出最可能的单一原因及修复方案。适用于运维人员报告黄色或红色状态、未分配分片、分配失败,或希望在深入调查前进行只读分诊时。讲解副本与主分片的影响、分配决策器分类以及数据丢失意识。 | 0.1.0 | elastic |
| elasticsearch-esql | 执行 ES|QL(Elasticsearch 查询语言)查询,适用于用户想要查询 Elasticsearch 数据、分析日志、聚合指标、探索数据,或根据 ES|QL 结果创建图表和仪表板时。 | 0.7.0 | elastic |
| elasticsearch-index-design | 针对既定的访问模式设计和审查 Elasticsearch 索引映射:正确的字段类型、text+keyword 多字段、doc_values 调优、避免映射爆炸,以及显式分片设置。适用于创建新索引、审查映射的存储或查询性能、修复错误的字段类型,或用户询问某字段在搜索、过滤、排序或聚合时应使用哪种类型时。 | 0.1.0 | elastic |
| elasticsearch-ingest | 在字段类型重要时,使用批量 API 和显式映射将 CSV 和 JSON 文件加载到 Elasticsearch 索引中。适用于批量导入本地文件、将 CSV 行或 JSON 数组转换为 NDJSON 批量格式,或在摄取后验证文档数量和映射 — 不适用于 Logstash 管道、Beats、自定义脚本或索引到索引的重新索引。 | 0.1.0 | elastic |
| elasticsearch-onboarding | 帮助 Elasticsearch 新手开发者从零开始获得可用的搜索体验。引导他们理解意图、映射数据,并以内置最佳实践构建搜索体验。适用于用户表现出构建搜索相关功能的意图、询问与其用例相关的 Elasticsearch 概念,或表达需要帮助入门 Elasticsearch 时。 | 0.1.0 | elastic |
| elasticsearch-query-optimization | 诊断缓慢的 Elasticsearch Query DSL 搜索并提出经过测量的修复方案。适用于搜索缓慢、性能分析输出显示某个子句开销高昂、精确匹配过滤器处于评分上下文中,或前导通配符主导延迟时。将每条建议都建立在搜索性能分析之上 — 将非评分子句移至过滤上下文、消除前导通配符,并重新分析以确认改进。 | 0.1.0 | elastic |
| elasticsearch-reindex | 指导 Elasticsearch 重新索引以提升性能:本地和远程、切片、限流、任务 API。适用于复制或迁移索引、更改映射,或在重新索引期间进行转换时。 | 0.2.0 | elastic |
| elasticsearch-search-relevance | 改善内容和目录索引的 Elasticsearch 搜索相关性:使用查询规则固定或提升结果(正确的规则类型、条件和规则-查询连接),并通过 multi_match、字段提升和基于索引映射的分析来调整自然排名。适用于搜索结果排名不佳、某个特定文档必须对某查询排在首位,或用户要求调整全文匹配时 — 不适用于 ES|QL 分析、索引摄取或集群健康。 | 0.1.0 | elastic |
Kibana (5)
| Skill | Description | Version | Author |
|---|---|---|---|
| kibana-agent-builder | 创建和管理 Kibana Agent Builder 代理和自定义工具。适用于被要求创建、更新、删除、测试或检查 Agent Builder 中的代理或工具,或用户想了解已存在哪些代理或工具时。 | 0.3.0 | elastic |
| kibana-alerting-rules | 创建和管理 Kibana 告警规则。适用于创建、更新或管理规则生命周期(启用、禁用、静音、暂停),选择指标阈值规则类型和参数,或使用标签过滤器进行只读查找/列出时。 | 0.3.0 | elastic |
| kibana-anomaly-detection | Elastic ML 异常检测 — 调查/根因分析、分数解释、作业生命周期故障排查和作业操作。适用于回答"什么坏了?"/"哪个实体?"/根因分析、"分数为何偏高/偏低?"/重新归一化、"数据馈送停止"/"内存限制"/hard_limit,或配置 ML 异常检测作业时。从 .ml-anomalies-* 读取结果,从 ML REST API 读取作业状态。 | 0.3.0 | elastic |
| kibana-dashboards | 创建和管理 Kibana 仪表板和 Lens 可视化。适用于需要以声明方式定义仪表板和可视化、对其进行版本控制,或自动化其部署时。 | 0.3.0 | elastic |
| kibana-workflows | 编写、验证、测试、运行和检查 Elastic Workflow YAML 定义。适用于用户想将自然语言转换为 Kibana 工作流、修复工作流 YAML、理解触发器或步骤,或针对真实 Kibana 运行快速测试循环时。 | 0.5.0 | elastic |
Observability (5)
| Skill | Description | Version | Author |
|---|---|---|---|
| observability-k8s-investigation | 使用 OTel 遥测(EDOT)调查 Kubernetes 工作负载、节点和控制平面问题。适用于诊断 Pod 故障(CrashLoopBackOff、OOMKilled、Error)、节点压力、资源耗尽、镜像拉取失败、准入拒绝、自动扩缩容异常,或将 K8s 状态与应用程序信号关联时。仅限 OTel 摄取路径 — 旧版 ECS Kubernetes 集成形态不在范围内。 | 0.5.1 | elastic |
| observability-llm-obs | 根据已摄取到 Elastic 中的数据回答有关 LLM 和代理式应用程序行为的问题:延迟和错误率、令牌和成本利用率、响应质量和护栏事件,以及代理式调用链编排。适用于用户询问 LLM 监控、GenAI 可观测性、令牌支出或 AI 成本、模型延迟、提示或护栏失败,或代理的工具调用链如何执行时。 | 0.3.1 | elastic |
| observability-onboarding | 使用 Elastic Distribution of OpenTelemetry(EDOT)将应用程序接入 Elastic Observability:根据语言和运行时进行路由,检测并替换经典 Elastic APM 代理,应用所需的 OTLP 配置,然后用 ES|QL 验证追踪、指标和日志确实以预期的服务名称到达。适用于为服务添加可观测性、从经典 Elastic APM 代理迁移,或调试为何已插桩的服务未出现在 Elastic 中时。 | 0.3.0 | elastic |
| observability-service-reliability | 在 Elastic Observability 中设计和运维服务可靠性目标:选择 SLI 类型和可辩护的目标,选择时间窗口和预算方法,通过 Kibana API 创建和维护 SLO,附加燃尽率告警规则,并判断何时 SLO 是错误的工具,而阈值规则、异常作业或合成监控才是正确的。适用于定义或审查 SLO 和错误预算、调整燃尽率告警、减少告警噪音,或为用户面向的端点设置可用性监控时。 | 0.4.1 | elastic |
| observability-sre-triage | 端到端分诊降级或可疑的服务:读取 SLO 状态和燃尽率,检查活动告警规则和 ML 异常,测量吞吐量、延迟和错误率,评估依赖健康状况和基础设施饱和度,并将日志层层筛选至能解释问题的故障。适用于有人询问服务是否健康、为何缓慢或报错、其日志中有什么,或哪个属性区分了失败的请求时。也适用于有人询问上述任何信号背后的查询 — 吞吐量、延迟百分位数、错误率、依赖健康状况或日志量 — 基于 APM/OTel 追踪、指标或日志时。 | 0.5.1 | elastic |
Security (4)
| Skill | Description | Version | Author |
|---|---|---|---|
| security-alert-triage | 分诊 Elastic Security 告警 — 收集上下文、分类威胁、创建案例并确认。适用于分诊告警、执行 SOC 分析或调查检测时。 | 0.1.0 | elastic |
| security-case-management | 通过 Kibana Cases API 创建、搜索、更新和管理 SOC 案例。适用于跟踪事件、将告警链接到案例、添加调查笔记,或管理分诊输出时。 | 0.1.0 | elastic |
| security-detection-rule-management | 创建、调整和管理 Elastic Security 检测规则(SIEM 和 Endpoint)。适用于处理误报、例外、新覆盖、噪音规则,或通过 Kibana API 管理规则时。 | 0.1.0 | elastic |
| security-generate-security-sample-data | 为 Elastic Security 生成示例安全事件、攻击场景和合成告警。适用于演示、填充仪表板、测试检测规则,或设置 POC 时。 | 0.1.0 | elastic |
安全注意事项
AI 编码代理以真实凭据、真实 shell 访问权限运行,且通常拥有运行它们的用户的完整权限。当这些代理被指向安全工作流时,风险更高。这值得在你开始之前就风险进行一次坦诚的对话。
- 进行你自己的威胁建模。 评估代理可以访问哪些数据、可以采取哪些操作,以及如果它行为异常会发生什么。CISA 关于安全部署 AI 系统的联合指南是一个很好的起点。
- 了解哪些数据流经代理。 安全数据可能包含 PII、嵌入命令行中的凭据以及其他受监管数据。当代理查询告警或进程事件时,该内容会进入模型的上下文,并可能被发送到第三方 API。请尽早让信息安全与合规团队参与。
- 这些代理处理攻击者控制的输入。 告警、事件字段和文件内容经常包含攻击者精心构造的字符串。提示注入在这里并非理论问题;它是运行环境的固有属性。像 Brainworm 这样的研究表明,仅代理上下文文件本身就可以作为提示软件的持久化机制。
- 严格限定权限范围。 给 API 密钥授予所需的最小权限。宽泛的响应权限尤其危险。在你验证行为之前,只读访问是一个好的默认设置。
- 限制代理工具访问和网络可达范围。 大多数 AI 编码代理出厂时带有宽泛的默认设置:shell 执行、文件系统写入、互联网访问。减少可用的工具面可以限制被入侵或误入歧途的代理能做什么。
- 从非生产环境开始。 使用 Serverless 试用项目、开发集群或隔离的 Kibana 空间来评估技能,然后再将它们连接到任何承载实时安全数据的环境。
这些技能之所以开源,正是为了让你可以审计它们做了什么。我们鼓励你在运行它们之前先阅读它们。
入门
你可以使用 Claude Code 原生插件系统、带 npx 的 skills CLI,或克隆本仓库并运行捆绑的安装脚本,来安装 Elastic 技能。npx 方法要求你的环境中具有 Node.js 且 npx 可用。
[!TIP] 不要安装每一个技能。 每个已安装的技能都会增加路由上下文,你的代理会在每次请求时对其进行评估。安装 cloud 和 elasticsearch 身份验证技能 — 大多数其他技能依赖它们 — 然后只添加与你的工作流相关的技能。保持已安装集合的专注可以避免上下文膨胀,并帮助代理可靠地路由到正确的技能。
Claude Code 插件(推荐 Claude Code 用户使用)
Claude Code 有一个原生插件系统,可以直接管理技能。首先将本仓库添加为市场源:```sh claude plugin marketplace add https://github.com/elastic/agent-skills
添加后,按名称安装各个插件:```sh
claude plugin install elastic-elasticsearch@elastic-agent-skills
claude plugin install elastic-kibana@elastic-agent-skills
claude plugin install elastic-observability@elastic-agent-skills
claude plugin install elastic-security@elastic-agent-skills
claude plugin install elastic-cloud@elastic-agent-skills
[!NOTE] 安装后,运行
/reload-plugins时技能可能不会立即显示。这是 Claude Code 的一个已知问题——请重启你的 Claude Code 会话以加载新安装的插件。
或者,在任意 Claude Code 会话中使用交互式插件浏览器:``` /plugins
这会打开一个菜单,用于浏览所有已配置市场中的可用插件、选择要安装的插件,并管理已安装的插件。
### GitHub Copilot CLI
GitHub Copilot CLI 具有原生插件系统。将此仓库添加为市场源:```sh
copilot plugin marketplace add elastic/agent-skills
添加后,按名称安装各个插件:```sh copilot plugin install elasticsearch@elastic-agent-skills copilot plugin install kibana@elastic-agent-skills copilot plugin install observability@elastic-agent-skills copilot plugin install security@elastic-agent-skills copilot plugin install cloud@elastic-agent-skills
或在 Copilot 会话中交互式浏览可用插件:```
/plugin list
npx(推荐)
安装技能最快的方式是使用 skills CLI。无需克隆此仓库——只需运行:```sh
npx skills add elastic/agent-skills
这会启动一个交互式提示,用于选择技能和[目标代理](https://github.com/vercel-labs/skills?tab=readme-ov-file#supported-agents)。CLI 会将每个技能文件夹复制到代理可发现的正确位置。
按名称安装特定技能:```sh
npx skills add elastic/agent-skills --skill elasticsearch-esql
或使用 @ 简写形式直接指定技能为 repo@skill(等同于 --skill):```sh
npx skills add elastic/agent-skills@elasticsearch-esql
安装到特定代理(参见[支持的代理](https://github.com/vercel-labs/skills?tab=readme-ov-file#supported-agents)):```sh
npx skills add elastic/agent-skills -a cursor -a claude-code
列出可用技能而不安装:```sh npx skills add elastic/agent-skills --list
将所有技能安装到所有代理(非交互式):```sh
npx skills add elastic/agent-skills --all
| 标志 | 描述 |
|---|---|
-a, --agent | 指定目标代理(参见支持的代理) |
-s, --skill | 按名称安装特定技能 |
-g, --global | 安装到用户主目录而非项目目录 |
-y, --yes | 跳过确认提示 |
--all | 无需提示即可将所有技能安装到所有代理 |
--list | 列出可用技能而不安装 |
本地克隆
如果你更倾向于从本地检出工作,或者你的环境没有 Node.js / npx,请克隆仓库并使用捆绑的 bash 安装程序:```sh git clone https://github.com/elastic/agent-skills.git cd agent-skills ./scripts/install-skills.sh add -a
该脚本需要 bash 3.2+ 以及标准 Unix 工具(`awk`、`find`、`cp`、`rm`、`mkdir`)。
| 标志 | 描述 |
| ----------------- | ------------------------------------- |
| `-a, --agent` | 目标代理(可重复) |
| `-s, --skill` | 按名称安装特定技能 |
| `-f, --force` | 覆盖已安装的技能 |
| `-y, --yes` | 跳过确认提示 |
列出所有可用技能:```sh
./scripts/install-skills.sh list
支持的代理
| 代理 | 安装目录 |
|---|---|
| claude-code | .claude/skills |
| cursor | .agents/skills |
| codex | .agents/skills |
| opencode | .agents/skills |
| pi | .pi/agent/skills |
| windsurf | .windsurf/skills |
| roo | .roo/skills |
| cline | .agents/skills |
| github-copilot | .agents/skills |
| gemini-cli | .agents/skills |
更新技能
更新过程取决于技能的安装方式。
Claude Code 插件
将所有已安装的插件更新到最新版本:```sh claude plugin update
更新特定插件:```sh
claude plugin update elastic-elasticsearch
要自动保持插件更新,请在 Claude Code 中使用 /plugins 启用自动更新。
开启自动更新后,Claude Code 会在启动时检查新的插件版本,并在后台进行更新。
GitHub Copilot CLI
将所有已安装的插件更新到最新版本:```sh copilot plugin update
更新特定插件:```sh
copilot plugin update elasticsearch
npx
检查任何已安装的技能是否在上游发生了变更:```sh npx skills check
拉取所有已安装技能的最新版本:```sh
npx skills update
CLI 会在锁文件中跟踪每个技能的源仓库和内容哈希。check 会将你的本地哈希与 GitHub 进行比对;update 会重新下载任何已发生偏移的内容。
提示: 默认的 npx 安装使用符号链接,因此每个 agent 都指向同一个规范副本。更新一次即可同时刷新所有 agent。
本地克隆
使用 --force 重新运行安装程序以覆盖现有技能:```sh
git pull
./scripts/install-skills.sh add -a --force
没有 `--force` 时,脚本会跳过已安装的技能。
## 技能格式
每个技能文件夹都包含一个 `SKILL.md`,其中带有 YAML frontmatter 和 markdown 指令:```yaml
---
name: elasticsearch-my-skill
description: >
What the skill does AND when an agent should activate it.
metadata:
version: 0.1.0
visibility: public
---
# My Skill
[Instructions that the agent follows when this skill is active]
description 字段是唯一的触发机制——agent 运行时通过读取它来决定何时加载技能。完整的格式规范请参见 agentskills.io/specification。
问题反馈
发现问题或有建议?提交 issue,我们会进行审核。
免责声明
这些技能按原样提供。在将其用于关键任务之前,请务必在您自己的环境中充分测试。