
Kibana Agent Builder
Create, test, and maintain Kibana Agent Builder agents and custom ES|QL, search, and workflow tools against your Elastic Cloud deployment.
Overview
Kibana Agent Builder is an agent skill for the Build phase that creates, updates, tests, and inspects Kibana Agent Builder agents and custom tools via scripted Kibana APIs.
Install
npx skills add https://github.com/elastic/agent-skills --skill kibana-agent-builderWhat is this skill?
- Full CRUD for Agent Builder agents plus chat/test flows against live Kibana
- Custom tools: ES|QL queries, index search, and workflow-backed actions
- Script-driven ops with KIBANA_URL plus API key or basic auth and optional space ID
- Documented env var table before any node/bash automation runs
- Read, Glob, and Grep assisted discovery of agent and tool assets in the repo
Adoption & trust: 1.1k installs on skills.sh; 502 GitHub stars; 2/3 security scanners passed (skills.sh audits).
What problem does it solve?
You need repeatable create-update-test cycles for Kibana agents and custom tools without manual-only UI work every time.
Who is it for?
Solo builders already on Elastic Cloud or Kibana who automate Agent Builder setup from an AI coding agent.
Skip if: Teams not using Kibana Agent Builder or anyone who only needs generic LLM chat without Elastic data tools.
When should I use this skill?
Create, update, delete, test, or inspect agents or tools in Kibana Agent Builder; optional agent name via argument hint.
What do I get? / Deliverables
Agents and ES|QL, search, and workflow tools are defined, validated in chat, and kept in sync with your Elastic deployment credentials.
- Configured Agent Builder agents
- Custom ES|QL, index search, or workflow tools
- Verified chat or test results against Kibana
Recommended Skills
Journey fit
Agent configuration and custom tool wiring happen while you are building the product’s AI layer on Elastic, not during pure ideation or post-launch growth tactics. The skill is scoped to Kibana Agent Builder APIs and tool definitions—the canonical build subphase for agent platforms and reusable agent capabilities.
How it compares
Use for Elastic-native agent administration—not a generic MCP catalog or offline prompt pack.
Common Questions / FAQ
Who is kibana-agent-builder for?
Indie and solo developers shipping retrieval or ops agents on Elasticsearch who want Agent Builder changes scripted from their coding agent.
When should I use kibana-agent-builder?
Use it in Build while wiring agent-tooling: spin up a new agent, add an ES|QL tool, or regression-test chat after a mapping change—after KIBANA_URL and auth are set.
Is kibana-agent-builder safe to install?
It can run bash node scripts and touch your Kibana deployment; review the Security Audits panel on this Prism page and restrict API keys before enabling in production.
SKILL.md
READMESKILL.md - Kibana Agent Builder
# Manage Agent Builder Agents and Tools in Kibana Create, update, delete, inspect, and chat with Agent Builder agents. Create, update, delete, list, and test custom tools (ES|QL, index search, workflow). If the user provided a name, use **$ARGUMENTS** as the default agent name. ## Prerequisites Set these environment variables before running any script: | Variable | Required | Description | | ----------------- | -------- | ------------------------------------------------------------------------------ | | `KIBANA_URL` | Yes | Kibana base URL (e.g., `https://my-deployment.kb.us-east-1.aws.elastic.cloud`) | | `KIBANA_API_KEY` | No | API key for authentication (preferred) | | `KIBANA_USERNAME` | No | Username for basic auth (falls back to `ELASTICSEARCH_USERNAME`) | | `KIBANA_PASSWORD` | No | Password for basic auth (falls back to `ELASTICSEARCH_PASSWORD`) | | `KIBANA_SPACE_ID` | No | Kibana space ID (omit for default space) | | `KIBANA_INSECURE` | No | Set to `true` to skip TLS verification | Provide either `KIBANA_API_KEY` or `KIBANA_USERNAME` + `KIBANA_PASSWORD`. ## Agent Management ### Create an Agent #### Step 1: List available tools ```bash node skills/kibana/agent-builder/scripts/agent-builder.js list-tools ``` If the script reports a connection error, stop and tell the user to verify their `KIBANA_URL` and authentication environment variables. Review the list of available tools. Tools prefixed with `platform.core.` are built-in. Other tools are custom or connector-provided. #### Step 2: List existing agents ```bash node skills/kibana/agent-builder/scripts/agent-builder.js list-agents ``` This helps avoid name conflicts and shows what is already configured. #### Step 3: Gather agent details Using `$ARGUMENTS` as the default name, confirm or collect from the user: 1. **Name** (required) — The agent's display name. Default: `$ARGUMENTS`. 2. **Description** (optional) — Brief description of what the agent does. Default: same as name. 3. **System instructions** (optional) — Custom system prompt for the agent. Default: none. #### Step 4: Select tools Present the available tools from Step 1 and ask the user which ones to include. Suggest a reasonable default based on the agent's purpose. Let the user add or remove tools from the suggested list. #### Step 5: Create the agent ```bash node skills/kibana/agent-builder/scripts/agent-builder.js create-agent \ --name "<agent_name>" \ --description "<description>" \ --instructions "<system_instructions>" \ --tool-ids "<tool_id_1>,<tool_id_2>,<tool_id_3>" ``` Where: - `--name` is required - `--tool-ids` is a comma-separated list of tool IDs from Step 4 - `--description` defaults to the name if omitted - `--instructions` can be omitted if the user did not provide any #### Step 6: Verify creation ```bash node skills/kibana/agent-builder/scripts/agent-builder.js list-agents ``` Show the user the newly created agent entry. If it appears, report success. If not, show any error output from Step 5. ### Get an Agent ```bash node skills/kibana/agent-builder/scripts/agent-builder.js get-agent --id "<agent_id>" ``` ### Update an Agent ```bash node skills/kibana/agent-builder/scripts/agent-builder.js update-agent \ --id "<agent_id>" \ --description "<new_description>" \ --instructions "<new_instructions>" \ --tool-ids "<tool_id_1>,<tool_i