From d3c4024dbc9f124f8bc8c9f3d2cd85bfb81ce888 Mon Sep 17 00:00:00 2001 From: Matt Wilde Date: Mon, 6 Apr 2026 14:45:01 -0400 Subject: [PATCH 1/4] feat(search): add use-case-library skill to agent builder MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds a use-case-library skill that maps 8 Elasticsearch use cases with industry examples and technologies. Adapted for Agent Builder: - Each use case includes an "In Kibana" section explaining what can be set up via Dev Tools before moving to the IDE - Quick Reference table includes a "Set Up in Kibana" column - Non-Search redirects use Kibana navigation (Management → Spaces) instead of abstract doc links - No LangChain/LlamaIndex references in "What ES does" sections (those are IDE-only integrations) - No routing directives (agent already has the conversation context) AGENTS.md updated to reference use-case-library for "what can I build?" questions. Made-with: Cursor --- .../agents/elasticsearch-onboarding/AGENTS.md | 18 +- .../skills/recipes/use-case-library/SKILL.md | 229 ++++++++++++++++++ .../src/agents/elasticsearch_onboarding.ts | 23 +- .../src/skills/catalog_ecommerce.ts | 3 +- .../src/skills/hybrid_search.ts | 3 +- .../kbn-search-agent/src/skills/index.ts | 19 +- .../src/skills/keyword_search.ts | 3 +- .../src/skills/rag_chatbot.ts | 3 +- .../src/skills/semantic_search.ts | 3 +- .../src/skills/use_case_library.ts | 229 ++++++++++++++++++ .../src/skills/vector_database.ts | 3 +- 11 files changed, 489 insertions(+), 47 deletions(-) create mode 100644 src/platform/packages/shared/kbn-search-agent/.elasticsearch-agent/skills/recipes/use-case-library/SKILL.md create mode 100644 src/platform/packages/shared/kbn-search-agent/src/skills/use_case_library.ts diff --git a/src/platform/packages/shared/kbn-search-agent/.elasticsearch-agent/agents/elasticsearch-onboarding/AGENTS.md b/src/platform/packages/shared/kbn-search-agent/.elasticsearch-agent/agents/elasticsearch-onboarding/AGENTS.md index 7ab019439a2ac..cece62bd94111 100644 --- a/src/platform/packages/shared/kbn-search-agent/.elasticsearch-agent/agents/elasticsearch-onboarding/AGENTS.md +++ b/src/platform/packages/shared/kbn-search-agent/.elasticsearch-agent/agents/elasticsearch-onboarding/AGENTS.md @@ -32,6 +32,8 @@ If the developer's first message is vague, generic, or exploratory — things li Keep it to one question. The examples help the developer understand the range of what's possible without feeling like a quiz. +If the developer asks **"what can I build?"**, **"what can Elastic do?"**, or similar — use the **use-case-library** skill to walk through use cases conversationally. + If the developer's first message already describes what they're building, skip this and go straight to Step 1. ## Cluster Connection (MCP) @@ -48,13 +50,13 @@ If they say yes, try **Docker** first (preferred), fall back to **npx** if Docke The Elasticsearch MCP server needs a JSON configuration block added to the developer's MCP config file. The exact file location depends on their tool: -| Tool | Config file | -| --- | --- | -| Cursor | `.cursor/mcp.json` in the project root | -| VS Code (Copilot) | `.vscode/mcp.json` in the project root | -| Windsurf | `~/.codeium/windsurf/mcp_config.json` | -| Claude Desktop | `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\Claude\claude_desktop_config.json` (Windows) | -| Claude Code | `.mcp.json` in the project root | +| Tool | Config file | +| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------ | +| Cursor | `.cursor/mcp.json` in the project root | +| VS Code (Copilot) | `.vscode/mcp.json` in the project root | +| Windsurf | `~/.codeium/windsurf/mcp_config.json` | +| Claude Desktop | `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\Claude\claude_desktop_config.json` (Windows) | +| Claude Code | `.mcp.json` in the project root | Ask the developer which tool they're using if it's not clear from context, and write the config to the appropriate location. @@ -413,7 +415,7 @@ When explaining, use these terms consistently: | **RRF** | Reciprocal Rank Fusion — merges keyword and vector results | | **Alias** | A pointer to one or more indices — enables zero-downtime reindexing and index versioning | | **Data stream** | Append-only index abstraction for time-series data (logs, metrics, events) with automatic rollover | -| **ES\|QL** | Elasticsearch Query Language — piped syntax for analytics and data exploration | +| **ES\|QL** | Elasticsearch Query Language — piped syntax for analytics and data exploration | | **Query DSL** | JSON query syntax — full feature set for search, backward compatible | ## What NOT to Do diff --git a/src/platform/packages/shared/kbn-search-agent/.elasticsearch-agent/skills/recipes/use-case-library/SKILL.md b/src/platform/packages/shared/kbn-search-agent/.elasticsearch-agent/skills/recipes/use-case-library/SKILL.md new file mode 100644 index 0000000000000..90ffd3614010d --- /dev/null +++ b/src/platform/packages/shared/kbn-search-agent/.elasticsearch-agent/skills/recipes/use-case-library/SKILL.md @@ -0,0 +1,229 @@ +--- +name: use-case-library +description: > + Elasticsearch use case library — the full map of what you can build, with industry examples + and technologies. Use when a developer asks "what can Elastic do?", "what can I build?", + "what use cases does Elasticsearch support?", or needs help choosing what to build. +--- + +# Elasticsearch Use Case Library + +Present this library when a user asks what they can build with Elasticsearch, wants to explore use cases, or needs help figuring out which category their project falls into. Walk through the relevant use cases conversationally — don't dump the entire list. Ask what resonates, then continue the conversation. + +## How to Use This Library + +1. **If the user is exploring** — summarize the 8 use cases with one-line descriptions and ask which sounds closest to what they're building. +2. **If the user describes something specific** — match it to a use case below and confirm: "That sounds like [use case] — here's what that typically involves. Sound right?" +3. **Once a use case is confirmed** — continue the conversation to understand their data and design the Elasticsearch resources. + +## The Use Cases + +### 1. Product & Catalog Search + +Help users find and filter items from a structured catalog. + +**Industries:** E-commerce, marketplace, retail, real estate, automotive, job boards + +**Examples:** + +- Online store product search with filters and facets +- Marketplace listing search (Airbnb, Etsy-style) +- Auto parts lookup by make, model, year +- Job search with location, salary, and role filters + +**What Elasticsearch does:** + +- Full-text search (BM25) for keyword matching on titles and descriptions +- Faceted filtering for price ranges, categories, brands, ratings +- Fuzzy matching for typo tolerance +- Synonyms API for domain-specific equivalents +- Completion suggester for autocomplete + +**In Kibana:** Create the index and mapping via Dev Tools, set up synonyms, ingest sample data with `POST _bulk`, and test queries — all before writing any application code. + +--- + +### 2. Knowledge Base & Document Search + +Let people search long-form content and find relevant passages. + +**Industries:** SaaS, publishing, education, government, legal, healthcare + +**Examples:** + +- Internal wiki or documentation search +- Legal case law research +- Medical literature search +- Government policy and regulation search + +**What Elasticsearch does:** + +- Hybrid search (BM25 + kNN via RRF) for exact match + meaning +- Semantic search via `semantic_text` for meaning-based retrieval +- Highlighting to show matching snippets in context +- Nested objects for structured document sections + +**In Kibana:** Set up the index with `semantic_text` fields via Dev Tools, configure inference endpoints, and test hybrid queries. The retrieval backend is fully configured before any frontend work. + +--- + +### 3. AI-Powered Assistant / Chatbot + +Build a conversational agent that answers questions using your data. + +**Industries:** Customer support, SaaS, healthcare, financial services, education + +**Examples:** + +- "ChatGPT over your docs" — answer questions from company knowledge +- Internal IT helpdesk bot +- Patient FAQ bot for healthcare providers + +**What Elasticsearch does:** + +- RAG pipeline — retrieve relevant chunks, feed to LLM for answer generation +- Vector search (kNN) for semantically similar content retrieval +- Embedding models via EIS (Elastic Inference Service) — no external API key needed +- Chunking and ingest pipelines for document processing + +**In Kibana:** Set up the vector index, configure the inference endpoint, ingest and chunk documents via Dev Tools. The retrieval layer is ready to connect to an LLM from your application code in the IDE. + +--- + +### 4. Recommendations & Discovery + +Suggest relevant content users didn't explicitly search for. + +**Industries:** Media, streaming, e-commerce, news, social platforms + +**Examples:** + +- "You might also like" product suggestions +- Related articles or blog posts +- Content personalization based on reading history + +**What Elasticsearch does:** + +- Vector similarity (kNN) to find items close in embedding space +- More Like This queries for content-based similarity +- Filtering + boosting to constrain by category, recency, availability +- Script scoring to blend similarity with business rules + +**In Kibana:** Create the vector index, ingest item embeddings, and test similarity queries in Dev Tools. Integrate the query into your application afterward. + +--- + +### 5. Customer Support Search + +Help agents find solutions faster and customers help themselves. + +**Industries:** SaaS, telecom, financial services, insurance, utilities + +**Examples:** + +- Agent assist — find similar resolved tickets +- Self-service portal search +- Knowledge deflection — suggest articles before filing a ticket + +**What Elasticsearch does:** + +- Hybrid search for exact match on error codes + semantic match on symptom descriptions +- Synonyms API for domain terminology ("can't log in" = "authentication failure") +- Highlighting to surface relevant resolution steps +- Aggregations to detect support trends + +**In Kibana:** Set up the index with hybrid fields, create synonym sets, and test queries in Dev Tools. The search backend is production-ready before building the support UI. + +--- + +### 6. Location-Based Search + +Find things near a place — stores, restaurants, properties, services. + +**Industries:** Retail, food delivery, real estate, travel, logistics + +**Examples:** + +- Store locator +- "Restaurants near me" with cuisine filters +- Property search within a neighborhood + +**What Elasticsearch does:** + +- `geo_point` / `geo_shape` fields for coordinates and boundaries +- Distance sorting by proximity +- Bounding box and polygon filters +- Combined with full-text — "pizza near me" = geo filter + keyword search + +**In Kibana:** Create the index with geo fields, bulk-index location data via Dev Tools, and test distance queries. Combine with full-text search in the same index. + +--- + +### 7. Log & Event Search + +Search, explore, and analyze machine-generated data. + +**Industries:** DevOps, security operations, IoT, financial services + +**Examples:** + +- Application log search and troubleshooting +- Security event investigation +- IoT sensor data exploration +- Audit trail search + +**What Elasticsearch does:** + +- Data streams for append-only, time-partitioned storage +- Index Lifecycle Management (ILM) for data tiers +- ES|QL for piped analytics queries +- Aggregations for histograms, percentiles, and trends + +**Note:** Log and event search is typically handled by Elastic's **Observability** or **Security** solutions with purpose-built UIs. In Kibana: switch solution view under **Management → Spaces** (Hosted) or create an Observability/Security project (Serverless). + +--- + +### 8. Vector Database (for AI/ML Pipelines) + +Store and retrieve embeddings programmatically — code searches, not people. + +**Industries:** AI/ML companies, any organization building with LLMs + +**Examples:** + +- Embedding storage and retrieval for RAG pipelines +- Image similarity search +- Code search by semantic meaning +- Duplicate detection across large document sets + +**What Elasticsearch does:** + +- Dense vector fields for high-dimensional embeddings +- kNN / ANN (HNSW) for approximate nearest neighbor search at scale +- Scalar and product quantization for cost/performance +- Metadata filtering to combine vector similarity with structured filters + +**In Kibana:** Create the vector index, configure quantization, and test kNN queries in Dev Tools. Connect your AI pipeline from your IDE using the Elasticsearch client library. + +--- + +## Quick Reference: Use Case to Technology Map + +| Use Case | Primary Tech | Set Up in Kibana | +| ------------------------ | ---------------------------------- | ----------------------------------------------- | +| Product & catalog search | Full-text (BM25), facets, synonyms | Index + mapping + synonyms via Dev Tools | +| Knowledge base search | Hybrid (BM25 + kNN via RRF) | Index with `semantic_text` + inference endpoint | +| AI assistant / chatbot | Vector search (kNN), RAG | Vector index + chunking pipeline via Dev Tools | +| Recommendations | Vector similarity, More Like This | Vector index + similarity queries | +| Customer support search | Hybrid search, synonyms | Index + synonym sets + hybrid queries | +| Location-based search | `geo_point`, distance sort | Index with geo fields + distance queries | +| Log & event search | Data streams, ILM, ES\|QL | Use Observability/Security solution view | +| Vector database | Dense vectors, kNN/ANN | Vector index + quantization config | + +## Non-Search Use Cases + +If the user describes something that isn't search, redirect within Kibana: + +- **Monitoring infrastructure or applications** — That's Elastic Observability. Switch solution view under **Management → Spaces** or create an Observability project on Serverless. +- **Detecting threats or investigating security events** — That's Elastic Security. Switch solution view or create a Security project. +- **Building dashboards and visualizations** — Kibana has built-in dashboards, Lens, and Maps. Navigate to **Analytics → Dashboards**. diff --git a/src/platform/packages/shared/kbn-search-agent/src/agents/elasticsearch_onboarding.ts b/src/platform/packages/shared/kbn-search-agent/src/agents/elasticsearch_onboarding.ts index 8b2b04c585be4..c4fe5a7b8ae7b 100644 --- a/src/platform/packages/shared/kbn-search-agent/src/agents/elasticsearch_onboarding.ts +++ b/src/platform/packages/shared/kbn-search-agent/src/agents/elasticsearch_onboarding.ts @@ -12,9 +12,8 @@ export const elasticsearchOnboardingAgent = { id: 'elasticsearch-onboarding', name: 'Elasticsearch Onboarding', - description: - 'Help developers new to Elasticsearch get from zero to a working search experience. Guide them through understanding their intent, mapping their data, and building a search experience with best practices baked in. Use this when developers are new to Elasticsearch and need help getting started with their search use case.', - labels: ['search', 'onboarding', 'getting started'], + description: 'Help developers new to Elasticsearch get from zero to a working search experience. Guide them through understanding their intent, mapping their data, and building a search experience with best practices baked in. Use this when developers are new to Elasticsearch and need help getting started with their search use case.', + labels: ["search","onboarding","getting started"], avatar_icon: 'logoElasticsearch', configuration: { instructions: `# Elastic Developer Guide @@ -39,6 +38,8 @@ If the developer's first message is vague, generic, or exploratory — things li Keep it to one question. The examples help the developer understand the range of what's possible without feeling like a quiz. +If the developer asks **"what can I build?"**, **"what can Elastic do?"**, or similar — use the **use-case-library** skill to walk through use cases conversationally. + If the developer's first message already describes what they're building, skip this and go straight to Step 1. ## Cluster Connection (MCP) @@ -55,13 +56,13 @@ If they say yes, try **Docker** first (preferred), fall back to **npx** if Docke The Elasticsearch MCP server needs a JSON configuration block added to the developer's MCP config file. The exact file location depends on their tool: -| Tool | Config file | -| --- | --- | -| Cursor | \`.cursor/mcp.json\` in the project root | -| VS Code (Copilot) | \`.vscode/mcp.json\` in the project root | -| Windsurf | \`~/.codeium/windsurf/mcp_config.json\` | -| Claude Desktop | \`~/Library/Application Support/Claude/claude_desktop_config.json\` (macOS) or \`%APPDATA%\\Claude\\claude_desktop_config.json\` (Windows) | -| Claude Code | \`.mcp.json\` in the project root | +| Tool | Config file | +| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------ | +| Cursor | \`.cursor/mcp.json\` in the project root | +| VS Code (Copilot) | \`.vscode/mcp.json\` in the project root | +| Windsurf | \`~/.codeium/windsurf/mcp_config.json\` | +| Claude Desktop | \`~/Library/Application Support/Claude/claude_desktop_config.json\` (macOS) or \`%APPDATA%\\Claude\\claude_desktop_config.json\` (Windows) | +| Claude Code | \`.mcp.json\` in the project root | Ask the developer which tool they're using if it's not clear from context, and write the config to the appropriate location. @@ -420,7 +421,7 @@ When explaining, use these terms consistently: | **RRF** | Reciprocal Rank Fusion — merges keyword and vector results | | **Alias** | A pointer to one or more indices — enables zero-downtime reindexing and index versioning | | **Data stream** | Append-only index abstraction for time-series data (logs, metrics, events) with automatic rollover | -| **ES\\|QL** | Elasticsearch Query Language — piped syntax for analytics and data exploration | +| **ES\\|QL** | Elasticsearch Query Language — piped syntax for analytics and data exploration | | **Query DSL** | JSON query syntax — full feature set for search, backward compatible | ## What NOT to Do diff --git a/src/platform/packages/shared/kbn-search-agent/src/skills/catalog_ecommerce.ts b/src/platform/packages/shared/kbn-search-agent/src/skills/catalog_ecommerce.ts index 6d89a39c6012f..326c14266fd20 100644 --- a/src/platform/packages/shared/kbn-search-agent/src/skills/catalog_ecommerce.ts +++ b/src/platform/packages/shared/kbn-search-agent/src/skills/catalog_ecommerce.ts @@ -12,8 +12,7 @@ export const catalogEcommerceSkill = { id: 'catalog-ecommerce', name: 'catalog-ecommerce', - description: - 'Guide for building catalog and e-commerce search with Elasticsearch. Use when a developer wants product search, faceted navigation, autocomplete, "did you mean" suggestions, or shopping-oriented search experiences.', + description: 'Guide for building catalog and e-commerce search with Elasticsearch. Use when a developer wants product search, faceted navigation, autocomplete, "did you mean" suggestions, or shopping-oriented search experiences.', content: `# Catalog / E-Commerce Search Guide Guide developers through building product catalog and e-commerce search with Elasticsearch. Use this guide when they need product search with filtering, faceting, autocomplete, boosting by attributes, and shopping-oriented relevance. diff --git a/src/platform/packages/shared/kbn-search-agent/src/skills/hybrid_search.ts b/src/platform/packages/shared/kbn-search-agent/src/skills/hybrid_search.ts index 345b4c9214a4a..323169aac800f 100644 --- a/src/platform/packages/shared/kbn-search-agent/src/skills/hybrid_search.ts +++ b/src/platform/packages/shared/kbn-search-agent/src/skills/hybrid_search.ts @@ -12,8 +12,7 @@ export const hybridSearchSkill = { id: 'hybrid-search', name: 'hybrid-search', - description: - 'Guide for building hybrid search combining keyword (BM25) and vector (semantic) retrieval with Elasticsearch. Use when a developer needs both exact text matching AND meaning-based search — the best of both worlds.', + description: 'Guide for building hybrid search combining keyword (BM25) and vector (semantic) retrieval with Elasticsearch. Use when a developer needs both exact text matching AND meaning-based search — the best of both worlds.', content: `# Hybrid Search Guide Guide developers through building hybrid search in Elasticsearch: combining BM25 keyword retrieval with kNN vector retrieval via Reciprocal Rank Fusion (RRF). diff --git a/src/platform/packages/shared/kbn-search-agent/src/skills/index.ts b/src/platform/packages/shared/kbn-search-agent/src/skills/index.ts index 3ab3daa7c95b9..97c39757ba375 100644 --- a/src/platform/packages/shared/kbn-search-agent/src/skills/index.ts +++ b/src/platform/packages/shared/kbn-search-agent/src/skills/index.ts @@ -14,21 +14,8 @@ import { hybridSearchSkill } from './hybrid_search'; import { keywordSearchSkill } from './keyword_search'; import { ragChatbotSkill } from './rag_chatbot'; import { semanticSearchSkill } from './semantic_search'; +import { useCaseLibrarySkill } from './use_case_library'; import { vectorDatabaseSkill } from './vector_database'; -export { - catalogEcommerceSkill, - hybridSearchSkill, - keywordSearchSkill, - ragChatbotSkill, - semanticSearchSkill, - vectorDatabaseSkill, -}; +export { catalogEcommerceSkill, hybridSearchSkill, keywordSearchSkill, ragChatbotSkill, semanticSearchSkill, useCaseLibrarySkill, vectorDatabaseSkill }; -export const skills = [ - catalogEcommerceSkill, - hybridSearchSkill, - keywordSearchSkill, - ragChatbotSkill, - semanticSearchSkill, - vectorDatabaseSkill, -]; +export const skills = [catalogEcommerceSkill, hybridSearchSkill, keywordSearchSkill, ragChatbotSkill, semanticSearchSkill, useCaseLibrarySkill, vectorDatabaseSkill]; diff --git a/src/platform/packages/shared/kbn-search-agent/src/skills/keyword_search.ts b/src/platform/packages/shared/kbn-search-agent/src/skills/keyword_search.ts index d448fd60c0961..a66e317e275d7 100644 --- a/src/platform/packages/shared/kbn-search-agent/src/skills/keyword_search.ts +++ b/src/platform/packages/shared/kbn-search-agent/src/skills/keyword_search.ts @@ -12,8 +12,7 @@ export const keywordSearchSkill = { id: 'keyword-search', name: 'keyword-search', - description: - 'Guide for building keyword/full-text search with Elasticsearch. Use when a developer wants text matching, filters, faceted search, autocomplete, or traditional search functionality.', + description: 'Guide for building keyword/full-text search with Elasticsearch. Use when a developer wants text matching, filters, faceted search, autocomplete, or traditional search functionality.', content: `# Keyword Search Guide Guide developers through building full-text keyword search with Elasticsearch. Use this guide when they need text matching, filters, faceting, autocomplete, or traditional search-bar behavior. diff --git a/src/platform/packages/shared/kbn-search-agent/src/skills/rag_chatbot.ts b/src/platform/packages/shared/kbn-search-agent/src/skills/rag_chatbot.ts index 3f8d04c13a43a..a69ccab63f39c 100644 --- a/src/platform/packages/shared/kbn-search-agent/src/skills/rag_chatbot.ts +++ b/src/platform/packages/shared/kbn-search-agent/src/skills/rag_chatbot.ts @@ -12,8 +12,7 @@ export const ragChatbotSkill = { id: 'rag-chatbot', name: 'rag-chatbot', - description: - 'Guide for building RAG (retrieval-augmented generation) chatbots and Q&A systems with Elasticsearch. Use when a developer wants to build a chatbot, Q&A system, or AI assistant that answers questions from their own data.', + description: 'Guide for building RAG (retrieval-augmented generation) chatbots and Q&A systems with Elasticsearch. Use when a developer wants to build a chatbot, Q&A system, or AI assistant that answers questions from their own data.', content: `# RAG / Chatbot Guide Guide developers through building retrieval-augmented generation (RAG) systems with Elasticsearch as the retrieval backend. Use this guide when they want a chatbot, Q&A interface, or AI assistant that answers from their own documents. diff --git a/src/platform/packages/shared/kbn-search-agent/src/skills/semantic_search.ts b/src/platform/packages/shared/kbn-search-agent/src/skills/semantic_search.ts index bdc608ab86561..80e1763996361 100644 --- a/src/platform/packages/shared/kbn-search-agent/src/skills/semantic_search.ts +++ b/src/platform/packages/shared/kbn-search-agent/src/skills/semantic_search.ts @@ -12,8 +12,7 @@ export const semanticSearchSkill = { id: 'semantic-search', name: 'semantic-search', - description: - 'Guide for building semantic/vector search with Elasticsearch. Use when a developer wants meaning-based search, similarity matching, or natural language queries that go beyond keyword matching.', + description: 'Guide for building semantic/vector search with Elasticsearch. Use when a developer wants meaning-based search, similarity matching, or natural language queries that go beyond keyword matching.', content: `# Semantic Search Guide Guide developers through building semantic/vector search with Elasticsearch. Use this guide when they need meaning-based search, similarity matching, or natural language queries that go beyond keyword matching. diff --git a/src/platform/packages/shared/kbn-search-agent/src/skills/use_case_library.ts b/src/platform/packages/shared/kbn-search-agent/src/skills/use_case_library.ts new file mode 100644 index 0000000000000..f785c9dc5164e --- /dev/null +++ b/src/platform/packages/shared/kbn-search-agent/src/skills/use_case_library.ts @@ -0,0 +1,229 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the "Elastic License + * 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +// @generated — DO NOT EDIT DIRECTLY. Edit .elasticsearch-agent/skills/recipes/use-case-library/SKILL.md and run ./build + +export const useCaseLibrarySkill = { + id: 'use-case-library', + name: 'use-case-library', + description: 'Elasticsearch use case library — the full map of what you can build, with industry examples and technologies. Use when a developer asks "what can Elastic do?", "what can I build?", "what use cases does Elasticsearch support?", or needs help choosing what to build.', + content: `# Elasticsearch Use Case Library + +Present this library when a user asks what they can build with Elasticsearch, wants to explore use cases, or needs help figuring out which category their project falls into. Walk through the relevant use cases conversationally — don't dump the entire list. Ask what resonates, then continue the conversation. + +## How to Use This Library + +1. **If the user is exploring** — summarize the 8 use cases with one-line descriptions and ask which sounds closest to what they're building. +2. **If the user describes something specific** — match it to a use case below and confirm: "That sounds like [use case] — here's what that typically involves. Sound right?" +3. **Once a use case is confirmed** — continue the conversation to understand their data and design the Elasticsearch resources. + +## The Use Cases + +### 1. Product & Catalog Search + +Help users find and filter items from a structured catalog. + +**Industries:** E-commerce, marketplace, retail, real estate, automotive, job boards + +**Examples:** + +- Online store product search with filters and facets +- Marketplace listing search (Airbnb, Etsy-style) +- Auto parts lookup by make, model, year +- Job search with location, salary, and role filters + +**What Elasticsearch does:** + +- Full-text search (BM25) for keyword matching on titles and descriptions +- Faceted filtering for price ranges, categories, brands, ratings +- Fuzzy matching for typo tolerance +- Synonyms API for domain-specific equivalents +- Completion suggester for autocomplete + +**In Kibana:** Create the index and mapping via Dev Tools, set up synonyms, ingest sample data with \`POST _bulk\`, and test queries — all before writing any application code. + +--- +### 2. Knowledge Base & Document Search + +Let people search long-form content and find relevant passages. + +**Industries:** SaaS, publishing, education, government, legal, healthcare + +**Examples:** + +- Internal wiki or documentation search +- Legal case law research +- Medical literature search +- Government policy and regulation search + +**What Elasticsearch does:** + +- Hybrid search (BM25 + kNN via RRF) for exact match + meaning +- Semantic search via \`semantic_text\` for meaning-based retrieval +- Highlighting to show matching snippets in context +- Nested objects for structured document sections + +**In Kibana:** Set up the index with \`semantic_text\` fields via Dev Tools, configure inference endpoints, and test hybrid queries. The retrieval backend is fully configured before any frontend work. + +--- +### 3. AI-Powered Assistant / Chatbot + +Build a conversational agent that answers questions using your data. + +**Industries:** Customer support, SaaS, healthcare, financial services, education + +**Examples:** + +- "ChatGPT over your docs" — answer questions from company knowledge +- Internal IT helpdesk bot +- Patient FAQ bot for healthcare providers + +**What Elasticsearch does:** + +- RAG pipeline — retrieve relevant chunks, feed to LLM for answer generation +- Vector search (kNN) for semantically similar content retrieval +- Embedding models via EIS (Elastic Inference Service) — no external API key needed +- Chunking and ingest pipelines for document processing + +**In Kibana:** Set up the vector index, configure the inference endpoint, ingest and chunk documents via Dev Tools. The retrieval layer is ready to connect to an LLM from your application code in the IDE. + +--- +### 4. Recommendations & Discovery + +Suggest relevant content users didn't explicitly search for. + +**Industries:** Media, streaming, e-commerce, news, social platforms + +**Examples:** + +- "You might also like" product suggestions +- Related articles or blog posts +- Content personalization based on reading history + +**What Elasticsearch does:** + +- Vector similarity (kNN) to find items close in embedding space +- More Like This queries for content-based similarity +- Filtering + boosting to constrain by category, recency, availability +- Script scoring to blend similarity with business rules + +**In Kibana:** Create the vector index, ingest item embeddings, and test similarity queries in Dev Tools. Integrate the query into your application afterward. + +--- +### 5. Customer Support Search + +Help agents find solutions faster and customers help themselves. + +**Industries:** SaaS, telecom, financial services, insurance, utilities + +**Examples:** + +- Agent assist — find similar resolved tickets +- Self-service portal search +- Knowledge deflection — suggest articles before filing a ticket + +**What Elasticsearch does:** + +- Hybrid search for exact match on error codes + semantic match on symptom descriptions +- Synonyms API for domain terminology ("can't log in" = "authentication failure") +- Highlighting to surface relevant resolution steps +- Aggregations to detect support trends + +**In Kibana:** Set up the index with hybrid fields, create synonym sets, and test queries in Dev Tools. The search backend is production-ready before building the support UI. + +--- +### 6. Location-Based Search + +Find things near a place — stores, restaurants, properties, services. + +**Industries:** Retail, food delivery, real estate, travel, logistics + +**Examples:** + +- Store locator +- "Restaurants near me" with cuisine filters +- Property search within a neighborhood + +**What Elasticsearch does:** + +- \`geo_point\` / \`geo_shape\` fields for coordinates and boundaries +- Distance sorting by proximity +- Bounding box and polygon filters +- Combined with full-text — "pizza near me" = geo filter + keyword search + +**In Kibana:** Create the index with geo fields, bulk-index location data via Dev Tools, and test distance queries. Combine with full-text search in the same index. + +--- +### 7. Log & Event Search + +Search, explore, and analyze machine-generated data. + +**Industries:** DevOps, security operations, IoT, financial services + +**Examples:** + +- Application log search and troubleshooting +- Security event investigation +- IoT sensor data exploration +- Audit trail search + +**What Elasticsearch does:** + +- Data streams for append-only, time-partitioned storage +- Index Lifecycle Management (ILM) for data tiers +- ES|QL for piped analytics queries +- Aggregations for histograms, percentiles, and trends + +**Note:** Log and event search is typically handled by Elastic's **Observability** or **Security** solutions with purpose-built UIs. In Kibana: switch solution view under **Management → Spaces** (Hosted) or create an Observability/Security project (Serverless). + +--- +### 8. Vector Database (for AI/ML Pipelines) + +Store and retrieve embeddings programmatically — code searches, not people. + +**Industries:** AI/ML companies, any organization building with LLMs + +**Examples:** + +- Embedding storage and retrieval for RAG pipelines +- Image similarity search +- Code search by semantic meaning +- Duplicate detection across large document sets + +**What Elasticsearch does:** + +- Dense vector fields for high-dimensional embeddings +- kNN / ANN (HNSW) for approximate nearest neighbor search at scale +- Scalar and product quantization for cost/performance +- Metadata filtering to combine vector similarity with structured filters + +**In Kibana:** Create the vector index, configure quantization, and test kNN queries in Dev Tools. Connect your AI pipeline from your IDE using the Elasticsearch client library. + +--- +## Quick Reference: Use Case to Technology Map + +| Use Case | Primary Tech | Set Up in Kibana | +| ------------------------ | ---------------------------------- | ----------------------------------------------- | +| Product & catalog search | Full-text (BM25), facets, synonyms | Index + mapping + synonyms via Dev Tools | +| Knowledge base search | Hybrid (BM25 + kNN via RRF) | Index with \`semantic_text\` + inference endpoint | +| AI assistant / chatbot | Vector search (kNN), RAG | Vector index + chunking pipeline via Dev Tools | +| Recommendations | Vector similarity, More Like This | Vector index + similarity queries | +| Customer support search | Hybrid search, synonyms | Index + synonym sets + hybrid queries | +| Location-based search | \`geo_point\`, distance sort | Index with geo fields + distance queries | +| Log & event search | Data streams, ILM, ES\\|QL | Use Observability/Security solution view | +| Vector database | Dense vectors, kNN/ANN | Vector index + quantization config | + +## Non-Search Use Cases + +If the user describes something that isn't search, redirect within Kibana: + +- **Monitoring infrastructure or applications** — That's Elastic Observability. Switch solution view under **Management → Spaces** or create an Observability project on Serverless. +- **Detecting threats or investigating security events** — That's Elastic Security. Switch solution view or create a Security project. +- **Building dashboards and visualizations** — Kibana has built-in dashboards, Lens, and Maps. Navigate to **Analytics → Dashboards**.`, +}; diff --git a/src/platform/packages/shared/kbn-search-agent/src/skills/vector_database.ts b/src/platform/packages/shared/kbn-search-agent/src/skills/vector_database.ts index 905fb9a54747d..3b8da7206d0a9 100644 --- a/src/platform/packages/shared/kbn-search-agent/src/skills/vector_database.ts +++ b/src/platform/packages/shared/kbn-search-agent/src/skills/vector_database.ts @@ -12,8 +12,7 @@ export const vectorDatabaseSkill = { id: 'vector-database', name: 'vector-database', - description: - 'Guide for using Elasticsearch as a vector database for AI applications. Use when a developer wants to store and retrieve embeddings, integrate with LangChain/LlamaIndex, build similarity search, or use Elasticsearch as a vector store for their AI pipeline.', + description: 'Guide for using Elasticsearch as a vector database for AI applications. Use when a developer wants to store and retrieve embeddings, integrate with LangChain/LlamaIndex, build similarity search, or use Elasticsearch as a vector store for their AI pipeline.', content: `# Elasticsearch as a Vector Database ## When to Use This Guide From 892b36b0e1753e51cd68ad71a120952dd687b7f5 Mon Sep 17 00:00:00 2001 From: Matt Wilde Date: Mon, 6 Apr 2026 14:55:06 -0400 Subject: [PATCH 2/4] apply prettier --- .../src/agents/elasticsearch_onboarding.ts | 5 +++-- .../src/skills/catalog_ecommerce.ts | 3 ++- .../src/skills/hybrid_search.ts | 3 ++- .../kbn-search-agent/src/skills/index.ts | 20 +++++++++++++++++-- .../src/skills/keyword_search.ts | 3 ++- .../src/skills/rag_chatbot.ts | 3 ++- .../src/skills/semantic_search.ts | 3 ++- .../src/skills/use_case_library.ts | 3 ++- .../src/skills/vector_database.ts | 3 ++- 9 files changed, 35 insertions(+), 11 deletions(-) diff --git a/src/platform/packages/shared/kbn-search-agent/src/agents/elasticsearch_onboarding.ts b/src/platform/packages/shared/kbn-search-agent/src/agents/elasticsearch_onboarding.ts index c4fe5a7b8ae7b..2414a7dce0c08 100644 --- a/src/platform/packages/shared/kbn-search-agent/src/agents/elasticsearch_onboarding.ts +++ b/src/platform/packages/shared/kbn-search-agent/src/agents/elasticsearch_onboarding.ts @@ -12,8 +12,9 @@ export const elasticsearchOnboardingAgent = { id: 'elasticsearch-onboarding', name: 'Elasticsearch Onboarding', - description: 'Help developers new to Elasticsearch get from zero to a working search experience. Guide them through understanding their intent, mapping their data, and building a search experience with best practices baked in. Use this when developers are new to Elasticsearch and need help getting started with their search use case.', - labels: ["search","onboarding","getting started"], + description: + 'Help developers new to Elasticsearch get from zero to a working search experience. Guide them through understanding their intent, mapping their data, and building a search experience with best practices baked in. Use this when developers are new to Elasticsearch and need help getting started with their search use case.', + labels: ['search', 'onboarding', 'getting started'], avatar_icon: 'logoElasticsearch', configuration: { instructions: `# Elastic Developer Guide diff --git a/src/platform/packages/shared/kbn-search-agent/src/skills/catalog_ecommerce.ts b/src/platform/packages/shared/kbn-search-agent/src/skills/catalog_ecommerce.ts index 326c14266fd20..6d89a39c6012f 100644 --- a/src/platform/packages/shared/kbn-search-agent/src/skills/catalog_ecommerce.ts +++ b/src/platform/packages/shared/kbn-search-agent/src/skills/catalog_ecommerce.ts @@ -12,7 +12,8 @@ export const catalogEcommerceSkill = { id: 'catalog-ecommerce', name: 'catalog-ecommerce', - description: 'Guide for building catalog and e-commerce search with Elasticsearch. Use when a developer wants product search, faceted navigation, autocomplete, "did you mean" suggestions, or shopping-oriented search experiences.', + description: + 'Guide for building catalog and e-commerce search with Elasticsearch. Use when a developer wants product search, faceted navigation, autocomplete, "did you mean" suggestions, or shopping-oriented search experiences.', content: `# Catalog / E-Commerce Search Guide Guide developers through building product catalog and e-commerce search with Elasticsearch. Use this guide when they need product search with filtering, faceting, autocomplete, boosting by attributes, and shopping-oriented relevance. diff --git a/src/platform/packages/shared/kbn-search-agent/src/skills/hybrid_search.ts b/src/platform/packages/shared/kbn-search-agent/src/skills/hybrid_search.ts index 323169aac800f..345b4c9214a4a 100644 --- a/src/platform/packages/shared/kbn-search-agent/src/skills/hybrid_search.ts +++ b/src/platform/packages/shared/kbn-search-agent/src/skills/hybrid_search.ts @@ -12,7 +12,8 @@ export const hybridSearchSkill = { id: 'hybrid-search', name: 'hybrid-search', - description: 'Guide for building hybrid search combining keyword (BM25) and vector (semantic) retrieval with Elasticsearch. Use when a developer needs both exact text matching AND meaning-based search — the best of both worlds.', + description: + 'Guide for building hybrid search combining keyword (BM25) and vector (semantic) retrieval with Elasticsearch. Use when a developer needs both exact text matching AND meaning-based search — the best of both worlds.', content: `# Hybrid Search Guide Guide developers through building hybrid search in Elasticsearch: combining BM25 keyword retrieval with kNN vector retrieval via Reciprocal Rank Fusion (RRF). diff --git a/src/platform/packages/shared/kbn-search-agent/src/skills/index.ts b/src/platform/packages/shared/kbn-search-agent/src/skills/index.ts index 97c39757ba375..39db0a1a8b306 100644 --- a/src/platform/packages/shared/kbn-search-agent/src/skills/index.ts +++ b/src/platform/packages/shared/kbn-search-agent/src/skills/index.ts @@ -16,6 +16,22 @@ import { ragChatbotSkill } from './rag_chatbot'; import { semanticSearchSkill } from './semantic_search'; import { useCaseLibrarySkill } from './use_case_library'; import { vectorDatabaseSkill } from './vector_database'; -export { catalogEcommerceSkill, hybridSearchSkill, keywordSearchSkill, ragChatbotSkill, semanticSearchSkill, useCaseLibrarySkill, vectorDatabaseSkill }; +export { + catalogEcommerceSkill, + hybridSearchSkill, + keywordSearchSkill, + ragChatbotSkill, + semanticSearchSkill, + useCaseLibrarySkill, + vectorDatabaseSkill, +}; -export const skills = [catalogEcommerceSkill, hybridSearchSkill, keywordSearchSkill, ragChatbotSkill, semanticSearchSkill, useCaseLibrarySkill, vectorDatabaseSkill]; +export const skills = [ + catalogEcommerceSkill, + hybridSearchSkill, + keywordSearchSkill, + ragChatbotSkill, + semanticSearchSkill, + useCaseLibrarySkill, + vectorDatabaseSkill, +]; diff --git a/src/platform/packages/shared/kbn-search-agent/src/skills/keyword_search.ts b/src/platform/packages/shared/kbn-search-agent/src/skills/keyword_search.ts index a66e317e275d7..d448fd60c0961 100644 --- a/src/platform/packages/shared/kbn-search-agent/src/skills/keyword_search.ts +++ b/src/platform/packages/shared/kbn-search-agent/src/skills/keyword_search.ts @@ -12,7 +12,8 @@ export const keywordSearchSkill = { id: 'keyword-search', name: 'keyword-search', - description: 'Guide for building keyword/full-text search with Elasticsearch. Use when a developer wants text matching, filters, faceted search, autocomplete, or traditional search functionality.', + description: + 'Guide for building keyword/full-text search with Elasticsearch. Use when a developer wants text matching, filters, faceted search, autocomplete, or traditional search functionality.', content: `# Keyword Search Guide Guide developers through building full-text keyword search with Elasticsearch. Use this guide when they need text matching, filters, faceting, autocomplete, or traditional search-bar behavior. diff --git a/src/platform/packages/shared/kbn-search-agent/src/skills/rag_chatbot.ts b/src/platform/packages/shared/kbn-search-agent/src/skills/rag_chatbot.ts index a69ccab63f39c..3f8d04c13a43a 100644 --- a/src/platform/packages/shared/kbn-search-agent/src/skills/rag_chatbot.ts +++ b/src/platform/packages/shared/kbn-search-agent/src/skills/rag_chatbot.ts @@ -12,7 +12,8 @@ export const ragChatbotSkill = { id: 'rag-chatbot', name: 'rag-chatbot', - description: 'Guide for building RAG (retrieval-augmented generation) chatbots and Q&A systems with Elasticsearch. Use when a developer wants to build a chatbot, Q&A system, or AI assistant that answers questions from their own data.', + description: + 'Guide for building RAG (retrieval-augmented generation) chatbots and Q&A systems with Elasticsearch. Use when a developer wants to build a chatbot, Q&A system, or AI assistant that answers questions from their own data.', content: `# RAG / Chatbot Guide Guide developers through building retrieval-augmented generation (RAG) systems with Elasticsearch as the retrieval backend. Use this guide when they want a chatbot, Q&A interface, or AI assistant that answers from their own documents. diff --git a/src/platform/packages/shared/kbn-search-agent/src/skills/semantic_search.ts b/src/platform/packages/shared/kbn-search-agent/src/skills/semantic_search.ts index 80e1763996361..bdc608ab86561 100644 --- a/src/platform/packages/shared/kbn-search-agent/src/skills/semantic_search.ts +++ b/src/platform/packages/shared/kbn-search-agent/src/skills/semantic_search.ts @@ -12,7 +12,8 @@ export const semanticSearchSkill = { id: 'semantic-search', name: 'semantic-search', - description: 'Guide for building semantic/vector search with Elasticsearch. Use when a developer wants meaning-based search, similarity matching, or natural language queries that go beyond keyword matching.', + description: + 'Guide for building semantic/vector search with Elasticsearch. Use when a developer wants meaning-based search, similarity matching, or natural language queries that go beyond keyword matching.', content: `# Semantic Search Guide Guide developers through building semantic/vector search with Elasticsearch. Use this guide when they need meaning-based search, similarity matching, or natural language queries that go beyond keyword matching. diff --git a/src/platform/packages/shared/kbn-search-agent/src/skills/use_case_library.ts b/src/platform/packages/shared/kbn-search-agent/src/skills/use_case_library.ts index f785c9dc5164e..3da392bf1fdfa 100644 --- a/src/platform/packages/shared/kbn-search-agent/src/skills/use_case_library.ts +++ b/src/platform/packages/shared/kbn-search-agent/src/skills/use_case_library.ts @@ -12,7 +12,8 @@ export const useCaseLibrarySkill = { id: 'use-case-library', name: 'use-case-library', - description: 'Elasticsearch use case library — the full map of what you can build, with industry examples and technologies. Use when a developer asks "what can Elastic do?", "what can I build?", "what use cases does Elasticsearch support?", or needs help choosing what to build.', + description: + 'Elasticsearch use case library — the full map of what you can build, with industry examples and technologies. Use when a developer asks "what can Elastic do?", "what can I build?", "what use cases does Elasticsearch support?", or needs help choosing what to build.', content: `# Elasticsearch Use Case Library Present this library when a user asks what they can build with Elasticsearch, wants to explore use cases, or needs help figuring out which category their project falls into. Walk through the relevant use cases conversationally — don't dump the entire list. Ask what resonates, then continue the conversation. diff --git a/src/platform/packages/shared/kbn-search-agent/src/skills/vector_database.ts b/src/platform/packages/shared/kbn-search-agent/src/skills/vector_database.ts index 3b8da7206d0a9..905fb9a54747d 100644 --- a/src/platform/packages/shared/kbn-search-agent/src/skills/vector_database.ts +++ b/src/platform/packages/shared/kbn-search-agent/src/skills/vector_database.ts @@ -12,7 +12,8 @@ export const vectorDatabaseSkill = { id: 'vector-database', name: 'vector-database', - description: 'Guide for using Elasticsearch as a vector database for AI applications. Use when a developer wants to store and retrieve embeddings, integrate with LangChain/LlamaIndex, build similarity search, or use Elasticsearch as a vector store for their AI pipeline.', + description: + 'Guide for using Elasticsearch as a vector database for AI applications. Use when a developer wants to store and retrieve embeddings, integrate with LangChain/LlamaIndex, build similarity search, or use Elasticsearch as a vector store for their AI pipeline.', content: `# Elasticsearch as a Vector Database ## When to Use This Guide From de9c61d38bc78a9f414cb49b6fd156cf64ddab22 Mon Sep 17 00:00:00 2001 From: Matt Wilde Date: Mon, 6 Apr 2026 15:08:20 -0400 Subject: [PATCH 3/4] allow list the use case library skill --- .../shared/agent-builder/agent-builder-server/allow_lists.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/x-pack/platform/packages/shared/agent-builder/agent-builder-server/allow_lists.ts b/x-pack/platform/packages/shared/agent-builder/agent-builder-server/allow_lists.ts index 7efb8ab035f79..88e5374d7f799 100644 --- a/x-pack/platform/packages/shared/agent-builder/agent-builder-server/allow_lists.ts +++ b/x-pack/platform/packages/shared/agent-builder/agent-builder-server/allow_lists.ts @@ -129,6 +129,7 @@ export const AGENT_BUILDER_BUILTIN_SKILLS = [ `${internalNamespaces.search}.semantic-search`, `${internalNamespaces.search}.hybrid-search`, `${internalNamespaces.search}.rag-chatbot`, + `${internalNamespaces.search}.use-case-library`, ] as const; export type AgentBuilderBuiltinSkill = (typeof AGENT_BUILDER_BUILTIN_SKILLS)[number]; From 7c4095e8621920c94306ab42445bd6593fb8174c Mon Sep 17 00:00:00 2001 From: Matt Wilde Date: Wed, 8 Apr 2026 16:25:08 -0400 Subject: [PATCH 4/4] prettier apply --- .../src/agents/elasticsearch_onboarding.ts | 5 +++-- .../src/skills/catalog_ecommerce.ts | 3 ++- .../src/skills/hybrid_search.ts | 3 ++- .../kbn-search-agent/src/skills/index.ts | 20 +++++++++++++++++-- .../src/skills/keyword_search.ts | 3 ++- .../src/skills/rag_chatbot.ts | 3 ++- .../src/skills/semantic_search.ts | 3 ++- .../src/skills/use_case_library.ts | 3 ++- .../src/skills/vector_database.ts | 3 ++- 9 files changed, 35 insertions(+), 11 deletions(-) diff --git a/src/platform/packages/shared/kbn-search-agent/src/agents/elasticsearch_onboarding.ts b/src/platform/packages/shared/kbn-search-agent/src/agents/elasticsearch_onboarding.ts index 4f332c78b42a6..126693500ffc0 100644 --- a/src/platform/packages/shared/kbn-search-agent/src/agents/elasticsearch_onboarding.ts +++ b/src/platform/packages/shared/kbn-search-agent/src/agents/elasticsearch_onboarding.ts @@ -12,8 +12,9 @@ export const elasticsearchOnboardingAgent = { id: 'elasticsearch-onboarding', name: 'Elasticsearch Onboarding', - description: 'Help developers new to Elasticsearch get from zero to a working search experience. Guide them through understanding their intent, mapping their data, and building a search experience with best practices baked in. Use this when developers are new to Elasticsearch and need help getting started with their search use case.', - labels: ["search","onboarding","getting started"], + description: + 'Help developers new to Elasticsearch get from zero to a working search experience. Guide them through understanding their intent, mapping their data, and building a search experience with best practices baked in. Use this when developers are new to Elasticsearch and need help getting started with their search use case.', + labels: ['search', 'onboarding', 'getting started'], avatar_icon: 'logoElasticsearch', configuration: { instructions: `# Elastic Developer Guide diff --git a/src/platform/packages/shared/kbn-search-agent/src/skills/catalog_ecommerce.ts b/src/platform/packages/shared/kbn-search-agent/src/skills/catalog_ecommerce.ts index 326c14266fd20..6d89a39c6012f 100644 --- a/src/platform/packages/shared/kbn-search-agent/src/skills/catalog_ecommerce.ts +++ b/src/platform/packages/shared/kbn-search-agent/src/skills/catalog_ecommerce.ts @@ -12,7 +12,8 @@ export const catalogEcommerceSkill = { id: 'catalog-ecommerce', name: 'catalog-ecommerce', - description: 'Guide for building catalog and e-commerce search with Elasticsearch. Use when a developer wants product search, faceted navigation, autocomplete, "did you mean" suggestions, or shopping-oriented search experiences.', + description: + 'Guide for building catalog and e-commerce search with Elasticsearch. Use when a developer wants product search, faceted navigation, autocomplete, "did you mean" suggestions, or shopping-oriented search experiences.', content: `# Catalog / E-Commerce Search Guide Guide developers through building product catalog and e-commerce search with Elasticsearch. Use this guide when they need product search with filtering, faceting, autocomplete, boosting by attributes, and shopping-oriented relevance. diff --git a/src/platform/packages/shared/kbn-search-agent/src/skills/hybrid_search.ts b/src/platform/packages/shared/kbn-search-agent/src/skills/hybrid_search.ts index 323169aac800f..345b4c9214a4a 100644 --- a/src/platform/packages/shared/kbn-search-agent/src/skills/hybrid_search.ts +++ b/src/platform/packages/shared/kbn-search-agent/src/skills/hybrid_search.ts @@ -12,7 +12,8 @@ export const hybridSearchSkill = { id: 'hybrid-search', name: 'hybrid-search', - description: 'Guide for building hybrid search combining keyword (BM25) and vector (semantic) retrieval with Elasticsearch. Use when a developer needs both exact text matching AND meaning-based search — the best of both worlds.', + description: + 'Guide for building hybrid search combining keyword (BM25) and vector (semantic) retrieval with Elasticsearch. Use when a developer needs both exact text matching AND meaning-based search — the best of both worlds.', content: `# Hybrid Search Guide Guide developers through building hybrid search in Elasticsearch: combining BM25 keyword retrieval with kNN vector retrieval via Reciprocal Rank Fusion (RRF). diff --git a/src/platform/packages/shared/kbn-search-agent/src/skills/index.ts b/src/platform/packages/shared/kbn-search-agent/src/skills/index.ts index 97c39757ba375..39db0a1a8b306 100644 --- a/src/platform/packages/shared/kbn-search-agent/src/skills/index.ts +++ b/src/platform/packages/shared/kbn-search-agent/src/skills/index.ts @@ -16,6 +16,22 @@ import { ragChatbotSkill } from './rag_chatbot'; import { semanticSearchSkill } from './semantic_search'; import { useCaseLibrarySkill } from './use_case_library'; import { vectorDatabaseSkill } from './vector_database'; -export { catalogEcommerceSkill, hybridSearchSkill, keywordSearchSkill, ragChatbotSkill, semanticSearchSkill, useCaseLibrarySkill, vectorDatabaseSkill }; +export { + catalogEcommerceSkill, + hybridSearchSkill, + keywordSearchSkill, + ragChatbotSkill, + semanticSearchSkill, + useCaseLibrarySkill, + vectorDatabaseSkill, +}; -export const skills = [catalogEcommerceSkill, hybridSearchSkill, keywordSearchSkill, ragChatbotSkill, semanticSearchSkill, useCaseLibrarySkill, vectorDatabaseSkill]; +export const skills = [ + catalogEcommerceSkill, + hybridSearchSkill, + keywordSearchSkill, + ragChatbotSkill, + semanticSearchSkill, + useCaseLibrarySkill, + vectorDatabaseSkill, +]; diff --git a/src/platform/packages/shared/kbn-search-agent/src/skills/keyword_search.ts b/src/platform/packages/shared/kbn-search-agent/src/skills/keyword_search.ts index a66e317e275d7..d448fd60c0961 100644 --- a/src/platform/packages/shared/kbn-search-agent/src/skills/keyword_search.ts +++ b/src/platform/packages/shared/kbn-search-agent/src/skills/keyword_search.ts @@ -12,7 +12,8 @@ export const keywordSearchSkill = { id: 'keyword-search', name: 'keyword-search', - description: 'Guide for building keyword/full-text search with Elasticsearch. Use when a developer wants text matching, filters, faceted search, autocomplete, or traditional search functionality.', + description: + 'Guide for building keyword/full-text search with Elasticsearch. Use when a developer wants text matching, filters, faceted search, autocomplete, or traditional search functionality.', content: `# Keyword Search Guide Guide developers through building full-text keyword search with Elasticsearch. Use this guide when they need text matching, filters, faceting, autocomplete, or traditional search-bar behavior. diff --git a/src/platform/packages/shared/kbn-search-agent/src/skills/rag_chatbot.ts b/src/platform/packages/shared/kbn-search-agent/src/skills/rag_chatbot.ts index a69ccab63f39c..3f8d04c13a43a 100644 --- a/src/platform/packages/shared/kbn-search-agent/src/skills/rag_chatbot.ts +++ b/src/platform/packages/shared/kbn-search-agent/src/skills/rag_chatbot.ts @@ -12,7 +12,8 @@ export const ragChatbotSkill = { id: 'rag-chatbot', name: 'rag-chatbot', - description: 'Guide for building RAG (retrieval-augmented generation) chatbots and Q&A systems with Elasticsearch. Use when a developer wants to build a chatbot, Q&A system, or AI assistant that answers questions from their own data.', + description: + 'Guide for building RAG (retrieval-augmented generation) chatbots and Q&A systems with Elasticsearch. Use when a developer wants to build a chatbot, Q&A system, or AI assistant that answers questions from their own data.', content: `# RAG / Chatbot Guide Guide developers through building retrieval-augmented generation (RAG) systems with Elasticsearch as the retrieval backend. Use this guide when they want a chatbot, Q&A interface, or AI assistant that answers from their own documents. diff --git a/src/platform/packages/shared/kbn-search-agent/src/skills/semantic_search.ts b/src/platform/packages/shared/kbn-search-agent/src/skills/semantic_search.ts index 80e1763996361..bdc608ab86561 100644 --- a/src/platform/packages/shared/kbn-search-agent/src/skills/semantic_search.ts +++ b/src/platform/packages/shared/kbn-search-agent/src/skills/semantic_search.ts @@ -12,7 +12,8 @@ export const semanticSearchSkill = { id: 'semantic-search', name: 'semantic-search', - description: 'Guide for building semantic/vector search with Elasticsearch. Use when a developer wants meaning-based search, similarity matching, or natural language queries that go beyond keyword matching.', + description: + 'Guide for building semantic/vector search with Elasticsearch. Use when a developer wants meaning-based search, similarity matching, or natural language queries that go beyond keyword matching.', content: `# Semantic Search Guide Guide developers through building semantic/vector search with Elasticsearch. Use this guide when they need meaning-based search, similarity matching, or natural language queries that go beyond keyword matching. diff --git a/src/platform/packages/shared/kbn-search-agent/src/skills/use_case_library.ts b/src/platform/packages/shared/kbn-search-agent/src/skills/use_case_library.ts index f785c9dc5164e..3da392bf1fdfa 100644 --- a/src/platform/packages/shared/kbn-search-agent/src/skills/use_case_library.ts +++ b/src/platform/packages/shared/kbn-search-agent/src/skills/use_case_library.ts @@ -12,7 +12,8 @@ export const useCaseLibrarySkill = { id: 'use-case-library', name: 'use-case-library', - description: 'Elasticsearch use case library — the full map of what you can build, with industry examples and technologies. Use when a developer asks "what can Elastic do?", "what can I build?", "what use cases does Elasticsearch support?", or needs help choosing what to build.', + description: + 'Elasticsearch use case library — the full map of what you can build, with industry examples and technologies. Use when a developer asks "what can Elastic do?", "what can I build?", "what use cases does Elasticsearch support?", or needs help choosing what to build.', content: `# Elasticsearch Use Case Library Present this library when a user asks what they can build with Elasticsearch, wants to explore use cases, or needs help figuring out which category their project falls into. Walk through the relevant use cases conversationally — don't dump the entire list. Ask what resonates, then continue the conversation. diff --git a/src/platform/packages/shared/kbn-search-agent/src/skills/vector_database.ts b/src/platform/packages/shared/kbn-search-agent/src/skills/vector_database.ts index 3b8da7206d0a9..905fb9a54747d 100644 --- a/src/platform/packages/shared/kbn-search-agent/src/skills/vector_database.ts +++ b/src/platform/packages/shared/kbn-search-agent/src/skills/vector_database.ts @@ -12,7 +12,8 @@ export const vectorDatabaseSkill = { id: 'vector-database', name: 'vector-database', - description: 'Guide for using Elasticsearch as a vector database for AI applications. Use when a developer wants to store and retrieve embeddings, integrate with LangChain/LlamaIndex, build similarity search, or use Elasticsearch as a vector store for their AI pipeline.', + description: + 'Guide for using Elasticsearch as a vector database for AI applications. Use when a developer wants to store and retrieve embeddings, integrate with LangChain/LlamaIndex, build similarity search, or use Elasticsearch as a vector store for their AI pipeline.', content: `# Elasticsearch as a Vector Database ## When to Use This Guide