kibana-agent-builder
Create and manage Kibana Agent Builder agents and custom tools.
Skill by elasticOfficial
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/elastic-kibana-agent-builder
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: testing, agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/kibana-agent-builder
What's inside
- Skill name
kibana-agent-builder- Description
- Create and manage Kibana Agent Builder agents and custom tools. Use when asked to create, update, delete, test, or inspect agents or tools in Agent Builder, or when the user wants to understand what agents or tools already exist.
- License
- Apache-2.0
- Metadata
- author: elastic · version: 0.3.0 · universal: true
- Instructions
- 215 lines in SKILL.md · view on GitHub
Files (3)
- SKILL.md
- architecture-guide.md · references/
- use-cases.md · references/
SKILL.md (first lines)
# Kibana Agent Builder
Create, inspect, update, delete, and test Agent Builder **tools** and **agents**. Ground LLM responses in Elasticsearch
data through scoped search tools, parameterized ES|QL, and workflow integrations.
<!-- begin-partial: preamble -->
## Environment Configuration
This skill executes Elasticsearch operations through the `elastic` CLI. If the
[`elastic` CLI](https://github.com/elastic/cli#configuration) is not installed, tell the user what it is needed for. Do
not guess credentials, call the HTTP API directly, or attempt other workarounds.
This skill references operations in HTTP-shorthand form (e.g., `GET /`, `GET /_cat/indices`, `GET /{index}/_mapping`,
`GET /{index}/_settings/index.mode`, `POST /_query`). The [Operations](#operations) table at the end of this document
maps each shorthand to the equivalent `elastic` CLI command — always use the CLI rather than calling the HTTP API
directly.
<!-- end-partial: preamble -->
## Resource model
Agent Builder exposes three distinct resource kinds — do not conflate them:
| Kind | Purpose | Typical API |
| ----------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------- |
| **Tool** | Reusable function an agent invokes to retrieve or act on data (`index_search`, `esql`, `workflow`) | `POST kbn:/api/agent_builder/tools` |
| **Agent** | LLM entity with instructions and a curated toolset | `POST kbn:/api/agent_builder/agents` |
| **Chat / conversation** | Ephemeral messaging session with an existing agent | `POST kbn:/api/agent_builder/converse/async` |
Creating a tool does **not** create an agent. Listing or chatting with an agent does **not** create a tool. When the
user asks to "create an agent" or "create a tool," identify which resource they mean before calling a write API.
Built-in tools use the `platform.core.*` prefix (for example `platform.core.search`). Custom tools and agents are
user-defined. Read [architecture-guide.md](references/architecture-guide.md) for built-in tool inventory, context
engineering, and security notes.
## Process
1. **Classify the task.** Decide whether the user needs a **tool**, an **agent**, or **chat** with an existing agent. If
they ask what already exists ("what agents are there?", "list agents"), treat the request as **read-only discovery**
— answer from live data before proposing any create, update, or delete.
2. **Discover existing resources before any write.** When creating or updating:
- Call `GET kbn:/api/agent_builder/tools` to list available tools (built-in and custom). Do not invent tool IDs.
- Call `GET kbn:/api/agent_builder/agents` to list existing agents and avoid duplicate IDs or names.
When the user only asks what agents exist, stop after `GET kbn:/api/agent_builder/agents`. Enumerate each agent's id
and name. If the list is empty, say so plainly — do not fabricate agents. Only proceed to creation when the user
explicitly asks to create one and you have confirmed the target id is unused.
3. **Choose the tool type (for tool tasks).** Match intent to the narrowest tool type:
- **Open-ended search over a known index pattern** → `index_search` with a **specific pattern** (for example
`customer-feedback-*`), never `*` or all-indices scope unless the user explicitly requires it.
- **Fixed analytics, aggregations, or parameterized queries** → `esql` with `?param` placeholders and a `params`
object (use `{}` when there are no parameters).
- **Multi-step automation beyond retrieval** → `workflow` referencing an existing workflow id.
For ES|QL syntax and query design, follow the `elasticsearch-esql` skill. For workflow YAML, follow the
`kibana-workflows` skill.
4. **Build the tool payload.** Required fields: `id`, `type`, `description`, `configuration`. Optional: `tags`.
**API constraints** (violations return 400):
- POST accepts only `id`, `type`, `description`, `configuration`, `tags`. **`name` is not valid** on tools.
- Index search configuration uses `"pattern"`, **not** `"index"`.
- ES|QL tools require `"params"` even when empty: `"params": {}`.
- Each param accepts only `type` and `description` — not `default` or `optional`. Hard-code defaults in the query.
- PUT on tools accepts only `description`, `configuration`, and `tags`. `id` and `type` are immutable.
**Index search example** (scoped pattern):
```json
{
"id": "customer_feedback_search",
"type": "index_search",
"description": "Searches customer feedback and support tickets in the customer-feedback indices.",
"configuration": {
"pattern": "customer-feedback-*"
}
}
```
**ES|QL example** (parameterized, with LIMIT):
```json
{
"id": "feedback_sentiment_trend",
"type": "esql",
"description": "Returns positive vs negative feedback counts by product category over a lookback window.",
"configuration": {
"query": "FROM customer-feedback-* | WHERE @timestamp >= NOW() - ?lookback_days::integer * 1d | STATS positive = COUNT(*) WHERE sentiment == \"positive\", negative = COUNT(*) WHERE sentiment == \"negative\" BY product_category | SORT negative DESC | LIMIT 20",
"params": {
"lookback_days": {
"type": "integer",
"description": "Number of days to look back, e.g. 7, 30, 90"
}
}
}
}
```
5. **Create and verify the tool.** Call `POST kbn:/api/agent_builder/tools` with the payload. Confirm success by calling
`GET kbn:/api/agent_builder/tools/{toolId}` and reporting the created id, type, description, and configuration back
to the user — do not claim success without a live API response.
Optionally validate ES|QL tools with `POST kbn:/api/agent_builder/tools/_execute`, passing `tool_id` and
`tool_params`. Always include `| LIMIT N` in ES|QL queries to control token use.
6. **Build the agent payload (for agent tasks).** Required fields: `id`, `name`, `description`, `configuration`.
Configuration must include `instructions` and a `tools` array with `tool_ids` drawn from Step 2 — only IDs returned
by `GET kbn:/api/agent_builder/tools`.
Derive a stable `id` from the name (lowercase, hyphens, alphanumeric). Check Step 2's agent list for conflicts before
posting.
```json
{
"id": "customer-feedback-agent",From elastic/agent-skills, Apache-2.0.
More from elastic/agent-skills
- 0.762score
elasticsearch-anomaly-detection
elasticOfficial
Create and manage Elastic ML anomaly detection jobs via the API.
SkillBFreshness: B★ 600Claude Code +9 - 0.762score
elasticsearch-anomaly-detection-explainer
elasticOfficial
Explain Elasticsearch ML anomaly detection scores, model behavior, and result interpretation.
SkillBFreshness: B★ 600Claude Code +9 - 0.762score
elasticsearch-esql
elasticOfficial
Execute ES|QL (Elasticsearch Query Language) queries, use when the user wants to query Elasticsearch data, analyze logs, aggregate metrics, explore data, or…
SkillBFreshness: B★ 600Claude Code +9 - 0.762score
elasticsearch-index-design
elasticOfficial
Design and review Elasticsearch index mappings for stated access patterns: correct field types, text+keyword multi-fields, doc_values tuning…
SkillBFreshness: B★ 600Claude Code +9 - 0.762score
elasticsearch-ingest
elasticOfficial
Load CSV and JSON files into Elasticsearch indices using the bulk API and explicit mappings when field types matter.
SkillBFreshness: B★ 600Claude Code +9 - 0.762score
elasticsearch-onboarding
elasticOfficial
Help developers new to Elasticsearch get from zero to a working search experience.
SkillBFreshness: B★ 600Claude Code +9 - 0.762score
elasticsearch-query-optimization
elasticOfficial
Diagnose slow Elasticsearch Query DSL searches and propose measured fixes.
SkillBFreshness: B★ 600Claude Code +9 - 0.762score
elasticsearch-reindex
elasticOfficial
Guide Elasticsearch reindex for performance: local and remote, slicing, throttling, task API.
SkillBFreshness: B★ 600Claude Code +9 - 0.762score
elasticsearch-search-relevance
elasticOfficial
Improve Elasticsearch search relevance for content and catalog indices: pin or promote results with query rules (correct rule type, criteria, and rule-query…
SkillBFreshness: B★ 600Claude Code +9 - 0.762score
kibana-alerting-rules
elasticOfficial
Create and manage Kibana alerting rules.
SkillBFreshness: B★ 600Claude Code +9 - 0.762score
kibana-anomaly-detection
elasticOfficial
Elastic ML anomaly detection — investigation/RCA, score explanation, job lifecycle troubleshooting, and job operations.
SkillBFreshness: B★ 600Claude Code +9 - 0.762score
kibana-dashboards
elasticOfficial
Create and manage Kibana Dashboards and Lens visualizations.
SkillBFreshness: B★ 600Claude Code +9
Compare and alternatives
Featured in
Signals
- Stars
- 600
- Forks
- 55
- Open issues
- 4
- Last commit (this folder)
- Sep 4, 2026 (1 month ago)
- Last release
- Sep 4, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- Version
- 0.3.0
- License
- Apache-2.0
- Repository
- github.com/elastic/agent-skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
More from elastic
- 0.762score
elasticsearch-anomaly-detection
elasticOfficial
Create and manage Elastic ML anomaly detection jobs via the API.
SkillBFreshness: B★ 600Claude Code +9 - 0.762score
elasticsearch-anomaly-detection-explainer
elasticOfficial
Explain Elasticsearch ML anomaly detection scores, model behavior, and result interpretation.
SkillBFreshness: B★ 600Claude Code +9 - 0.762score
elasticsearch-esql
elasticOfficial
Execute ES|QL (Elasticsearch Query Language) queries, use when the user wants to query Elasticsearch data, analyze logs, aggregate metrics, explore data, or…
SkillBFreshness: B★ 600Claude Code +9 - 0.762score
elasticsearch-index-design
elasticOfficial
Design and review Elasticsearch index mappings for stated access patterns: correct field types, text+keyword multi-fields, doc_values tuning…
SkillBFreshness: B★ 600Claude Code +9 - 0.762score
elasticsearch-ingest
elasticOfficial
Load CSV and JSON files into Elasticsearch indices using the bulk API and explicit mappings when field types matter.
SkillBFreshness: B★ 600Claude Code +9 - 0.762score
elasticsearch-onboarding
elasticOfficial
Help developers new to Elasticsearch get from zero to a working search experience.
SkillBFreshness: B★ 600Claude Code +9
Cite this page
kibana-agent-builder skill. Agent Mart. https://agentmart.dev/skills/elastic-kibana-agent-builder (last updated 2026-10-24)