elastic/agent-skills
GitHub: elastic/agent-skills
Elastic 官方维护的 AI Agent 技能库,为 Cursor、Copilot 等编程助手提供 Elasticsearch、Kibana 及 Elastic 安全与可观测性产品的正确使用指南。
Stars: 41 | Forks: 6
# Elastic Agent 技能
Elastic Agent Skills —— 由构建 Elastic 的团队打造 —— 将原生平台专业知识直接交付给您的 AI 编码 Agent。这是官方的 Agent Skills 库,兼容 Cursor、GitHub Copilot、Windsurf、Gemini CLI 等 Agentic IDE。Skills 遵循 [Agent Skills](https://agentskills.io/) 开放标准。
## 关于
本仓库包含精心策划的 skills,它们是指令、上下文和工具的集合,旨在教会任何 AI Agent 如何正确地使用 Elasticsearch、Kibana、Elastic Observability 和 Elastic Security。将它们放入您已使用的 Agent 运行时,您的助手将不再使用过时的模式,并开始正确执行任务。
## 什么是 skills?
Skills 是独立的包,为 AI Agent 提供以可重复方式完成特定任务所需的知识和工具。每个 skill 都位于其自己的文件夹中,包含一个 `SKILL.md` 文件,其中包含 Agent 遵循的元数据和指令。
有关 Agent Skills 标准的更多背景信息,请参阅 [agentskills.io](http://agentskills.io/)。
## 范围
本仓库中的 Skills 侧重于:
- 与 Elasticsearch APIs 交互(搜索、索引、集群管理)
- 构建和管理 Kibana 内容,例如 alerts、connectors 等
- Elastic Observability、Elastic Security 和 Agent Builder 的模式
## 安全注意事项
AI 编码 Agent 使用真实的凭证、真实的 shell 访问权限,并且通常拥有运行它们的用户的完整权限。当这些 Agent 指向安全工作流时,风险会更高。在开始之前,这值得对风险进行坦诚的讨论。
- **进行您自己的威胁建模。** 评估 Agent 可以访问哪些数据、可以采取哪些操作,以及如果其行为异常会发生什么。[CISA 关于安全部署 AI 系统的联合指南](https://www.cisa.gov/news-events/alerts/2024/04/15/joint-guidance-deploying-ai-systems-securely)是一个很好的起点。
- **注意流经 Agent 的数据。** 安全数据可能包含 PII、嵌入在命令行中的凭证以及其他受监管的数据。当 Agent 查询 alerts 或进程事件时,该内容会进入模型的上下文,并可能发送到第三方 API。尽早让您的信息安全 (infosec) 和合规团队参与。
- **这些 Agent 处理攻击者控制的输入。** Alerts、事件字段和文件内容经常包含由攻击者精心构造的字符串。Prompt injection 在这里不是理论上的;它是操作环境的一个固有属性。诸如 [Brainworm](https://www.originhq.com/blog/brainworm) 的研究表明,仅 Agent 上下文文件就可以充当 promptware 的持久化机制。
- **严格限制权限范围。** 给予 API keys 所需的最小权限。广泛的响应权限尤其危险。在验证行为之前,只读访问是一个良好的默认设置。
- **限制 Agent 工具访问和网络覆盖范围。** 大多数 AI 编码 Agent 具有广泛的默认设置:shell 执行、文件系统写入、互联网访问。减少可用的工具面可以限制受损或被误导的 Agent 能做的事情。
- **从非生产环境开始。** 使用 Serverless 试用项目、开发集群或隔离的 Kibana space 在连接到任何承载实时安全数据的系统之前评估 skills。
这些 skills 是开源的,正是为了让您能审计它们的作用。我们鼓励您在运行之前阅读它们。
## 入门指南
您可以使用 `skills` CLI 配合 `npx` 安装 Elastic skills,或者通过克隆本仓库并运行捆绑的安装程序脚本。`npx` 方法要求您的环境中安装了 `Node.js` 并支持 `npx`。
### npx (推荐)
安装 skills 最快的方法是使用 [`skills`](https://github.com/vercel-labs/skills) CLI。无需克隆本仓库 —— 只需运行:
```
npx skills add elastic/agent-skills
```
这将启动一个交互式提示符,以选择 skills 和目标 agents。CLI 将每个 skill 文件夹复制到 Agent 能发现的正确位置。
按名称安装特定的 skill:
```
npx skills add elastic/agent-skills --skill elasticsearch-esql
```
或者使用 `@` 快捷方式将 skill 直接指定为 `repo@skill`(等同于 `--skill`):
```
npx skills add elastic/agent-skills@elasticsearch-esql
```
安装到特定的 agents:
```
npx skills add elastic/agent-skills -a cursor -a claude-code
```
列出可用 skills 而不安装:
```
npx skills add elastic/agent-skills --list
```
安装所有 skills 到所有 agents(非交互式):
```
npx skills add elastic/agent-skills --all
```
| 标志 | 描述 |
| ----------------- | ------------------------------------------------- |
| `-a, --agent` | 指定目标 agents |
| `-s, --skill` | 按名称安装特定的 skills |
| `-g, --global` | 安装到用户主目录而不是项目目录 |
| `-y, --yes` | 跳过确认提示 |
| `--all` | 无需提示将所有 skills 安装到所有 agents |
| `--list` | 列出可用 skills 而不安装 |
### 本地克隆
如果您更喜欢从本地检出版本工作,或者您的环境没有 Node.js / npx,请克隆仓库并使用捆绑的 bash 安装程序:
```
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` | 目标 agent(可重复使用) |
| `-s, --skill` | 按名称安装特定的 skills |
| `-f, --force` | 覆盖已安装的 skills |
| `-y, --yes` | 跳过确认提示 |
列出所有可用的 skills:
```
./scripts/install-skills.sh list
```
### 支持的 agents
| Agent | 安装目录 |
| --------------- | ------------------------- |
| 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` |
## 更新 skills
Skills 在安装时会被复制到您的项目(或主目录)中。当本仓库更新时 —— 新的指令、错误修复、额外资源 —— 这些更改**不会**自动同步到您的本地副本。您需要手动更新。
更新过程取决于 skills 的安装方式(`npx` 或本地克隆)。
### npx
检查是否有已安装的 skills 在上游发生了变化:
```
npx skills check
```
拉取所有已安装 skills 的最新版本:
```
npx skills update
```
CLI 会在锁文件中跟踪每个 skill 的源仓库和内容哈希。`check` 将您的本地哈希与 GitHub 进行比较;`update` 会重新下载任何有变动的文件。
### 本地克隆
使用 `--force` 重新运行安装程序以覆盖现有的 skills:
```
git pull
./scripts/install-skills.sh add -a --force
```
如果没有 `--force`,脚本将跳过已安装的 skills。
## Skill 格式
每个 skill 文件夹都包含一个带有 YAML frontmatter 和 markdown 指令的 `SKILL.md`:
```
---
name: elasticsearch-my-skill
description: >
What the skill does AND when an agent should activate it.
metadata:
version: 0.1.0
visibility: public
---
# 我的 Skill
[Instructions that the agent follows when this skill is active]
```
`description` 字段是唯一的触发机制 —— Agent 运行时读取它以决定何时加载 skill。有关完整的格式规范,请参阅 [agentskills.io/specification](https://agentskills.io/specification)。
## 问题
发现问题或有建议?[提交一个 issue](https://github.com/elastic/agent-skills/issues/new),我们会进行审查。
## 免责声明
这些 skills 按原样提供。在依赖它们执行关键任务之前,请务必在您自己的环境中彻底测试 skills。标签:Agent Skills, AI编程助手, API交互, API集成, Cursor, Elasticsearch, GitHub Copilot, LLM, MITM代理, RAG, Ruby, Unmanaged PE, Windsurf, 代码提示, 可观测性, 威胁情报, 应用安全, 开发者工具, 开源, 提示注入, 生成式AI, 知识库, 索引, 网络调试, 自动化, 自定义脚本, 防御加固, 集群管理