From a7e34ffeaddb16bb3c62c7ec432c5559e1ad5ca5 Mon Sep 17 00:00:00 2001 From: rithin-pullela-aws Date: Mon, 29 Sep 2025 19:47:48 -0700 Subject: [PATCH 01/18] [Agentic Search] documentation Signed-off-by: rithin-pullela-aws --- _vector-search/ai-search/agentic-search.md | 177 ------- .../agentic-search/agent-converse.md | 405 ++++++++++++++++ .../agentic-search/agent-customization.md | 349 ++++++++++++++ .../ai-search/agentic-search/flow-agent.md | 165 +++++++ .../ai-search/agentic-search/index.md | 265 ++++++++++ .../ai-search/agentic-search/neural-search.md | 434 +++++++++++++++++ .../agentic-search/search-templates.md | 453 ++++++++++++++++++ 7 files changed, 2071 insertions(+), 177 deletions(-) delete mode 100644 _vector-search/ai-search/agentic-search.md create mode 100644 _vector-search/ai-search/agentic-search/agent-converse.md create mode 100644 _vector-search/ai-search/agentic-search/agent-customization.md create mode 100644 _vector-search/ai-search/agentic-search/flow-agent.md create mode 100644 _vector-search/ai-search/agentic-search/index.md create mode 100644 _vector-search/ai-search/agentic-search/neural-search.md create mode 100644 _vector-search/ai-search/agentic-search/search-templates.md diff --git a/_vector-search/ai-search/agentic-search.md b/_vector-search/ai-search/agentic-search.md deleted file mode 100644 index 3d97af0e0b..0000000000 --- a/_vector-search/ai-search/agentic-search.md +++ /dev/null @@ -1,177 +0,0 @@ ---- -layout: default -title: Agentic search -parent: AI search -nav_order: 30 -has_children: false ---- - -# Agentic search - -This is an experimental feature and is not recommended for use in a production environment. For updates on the progress of the feature or if you want to leave feedback, join the discussion on the [OpenSearch forum](https://forum.opensearch.org/). -{: .warning} - -**Introduced 3.2** -{: .label .label-purple } - -Agentic search lets users ask questions in natural language and have OpenSearch plan and execute the retrieval automatically. A preconfigured **agent** reads the question, plans the search, and returns relevant results. - -**Prerequisite**
-Before using agentic search, you must configure an agent with the [`QueryPlanningTool`]({{site.url}}{{site.baseurl}}/ml-commons-plugin/agents-tools/tools/query-planning-tool/). - -## Configuring semantic search - -1. [Enable the agentic search feature flag](#step-1-enable-the-agentic-search-feature-flag). -2. [Create an index for ingestion](#step-2-create-an-index-for-ingestion). -3. [Ingest documents into the index](#step-3-ingest-documents-into-the-index). -4. [Create a search pipeline](#step-4-create-a-search-pipeline). -5. [Search the index](#step-5-search-the-index). - -### Step 1: Enable the agentic search feature flag - -Because this is an experimental feature in version 3.2, you must enable the feature flag: - -```json -PUT _cluster/settings -{ - "persistent" : { - "plugins.neural_search.agentic_search_enabled": true, - } -} -``` -{% include copy-curl.html %} - - - -### Step 2: Create an index for ingestion - -Create an index for ingestion: - -```json -PUT /iris-index -{ - "mappings": { - "properties": { - "petal_length_in_cm": { - "type": "float" - }, - "petal_width_in_cm": { - "type": "float" - }, - "sepal_length_in_cm": { - "type": "float" - }, - "sepal_width_in_cm": { - "type": "float" - }, - "species": { - "type": "text", - "fields": { - "keyword": { - "type": "keyword", - "ignore_above": 256 - } - } - } - } - } -} -``` -{% include copy-curl.html %} - -### Step 3: Ingest documents into the index - -To ingest documents into the index created in the previous step, send the following requests: - -```json -POST _bulk -{ "index": { "_index": "iris-index", "_id": "1" } } -{ "petal_length_in_cm": 1.4, "petal_width_in_cm": 0.2, "sepal_length_in_cm": 5.1, "sepal_width_in_cm": 3.5, "species": "setosa" } -{ "index": { "_index": "iris-index", "_id": "2" } } -{ "petal_length_in_cm": 4.5, "petal_width_in_cm": 1.5, "sepal_length_in_cm": 6.4, "sepal_width_in_cm": 2.9, "species": "versicolor" } -``` -{% include copy-curl.html %} - -### Step 4: Create a search pipeline - -Create a search pipeline with an agentic query translator search request processor and pass the agent ID created with the QueryPlanningTool: - -```json -PUT _search/pipeline/agentic-pipeline -{ - "request_processors": [ - { - "agentic_query_translator": { - "agent_id": "-E2Av5gBrRE4_QBCgKwl" - } - } - ] -} -``` -{% include copy-curl.html %} - -### Step 5: Search the index - -To perform agentic search, use the agentic query clause with your narural language question. - -The following example request uses an agentic query to search for a natural language question: - -```json -GET iris-index/_search?search_pipeline=agentic-pipeline -{ - "query": { - "agentic": { - "query_text": "List all the flowers present", - "query_fields": ["species", "petal_length_in_cm"] - } - } -} -``` -{% include copy-curl.html %} - -The request contains the following fields: -1. `query_text`: The natural language question. -2. `query_fields` (optional): A list of fields that the agent should consider when generating the search query. - - -The agentic search request executes the agent with the QueryPlanningTool and sends the natural language question, along with the index mapping and a default prompt, to a large language model (LLM) to generate a query domain-specific language (DSL) query. The returned DSL query is then executed as a search request in OpenSearch: - -```json -"hits": { - "total": { - "value": 2, - "relation": "eq" - }, - "max_score": 1.0, - "hits": [ - { - "_index": "iris-index", - "_id": "1", - "_score": 1.0, - "_source": { - "petal_length_in_cm": 1.4, - "petal_width_in_cm": 0.2, - "sepal_length_in_cm": 5.1, - "sepal_width_in_cm": 3.5, - "species": "setosa" - } - }, - { - "_index": "iris-index", - "_id": "2", - "_score": 1.0, - "_source": { - "petal_length_in_cm": 4.5, - "petal_width_in_cm": 1.5, - "sepal_length_in_cm": 6.4, - "sepal_width_in_cm": 2.9, - "species": "versicolor" - } - } - ] - } -``` - -## Next steps - -This is an experimental feature. See [[RFC] Design for Agentic Search #1479](https://github.com/opensearch-project/neural-search/issues/1479) and [[RFC] Agentic Search in OpenSearch #4005](https://github.com/opensearch-project/ml-commons/issues/4005) for information about future enhancements. \ No newline at end of file diff --git a/_vector-search/ai-search/agentic-search/agent-converse.md b/_vector-search/ai-search/agentic-search/agent-converse.md new file mode 100644 index 0000000000..9d3218467e --- /dev/null +++ b/_vector-search/ai-search/agentic-search/agent-converse.md @@ -0,0 +1,405 @@ +--- +layout: default +title: Converse and Monitor Agentic Search +parent: Agentic search +grand_parent: AI search +nav_order: 70 +has_children: false +--- + +# Converse and Monitor Agentic Search + +Enable monitoring and conversation continuation using the `agentic_context` response processor. This processor provides full visibility into the agent's decision-making process through `agent_steps_summary` and generated OpenSearch DSL queries, while also providing `memory_id` which can be used to continue the conversation. + +## Prerequisites + +- An agent is registered and configured as in Agent customization +- The agent includes the QueryPlanningTool + +## Setup: Create Search Pipeline + +Add the `agentic_query_translator` request processor and `agentic_context` response processor + +```json +PUT _search/pipeline/agentic-pipeline +{ + "request_processors": [ + { + "agentic_query_translator": { + "agent_id": "your-agent-id" + } + } + ], + "response_processors": [ + { + "agentic_context": { + "agent_steps_summary": true, + "dsl_query": true + } + } + ] +} +``` +{% include copy-curl.html %} + +### Sample response structure + +Response would look like this: + +```json +{ + "hits": /* Search hits*/, + "ext": { + "agent_steps_summary": "", + "memory_id": "", + "dsl_query": "" + } +} +``` + +### Response values + +The search response includes an `ext` block with the following fields: + +| Field | Purpose | +|-------|---------| +| `agent_steps_summary` | Step-by-step reasoning and tool usage | +| `memory_id` | Conversation context identifier - copy this for follow-up requests | +| `dsl_query` | Generated OpenSearch DSL query | + +The `dsl_query` and the `agent_steps_summary` can be used for monitoring and debugging Agentic Search. + +### Use memory_id to continue conversation + +Add `memory_id` to your subsequent search request to maintain conversation context: + +```json +GET /_search?search_pipeline=agentic-pipeline +{ + "query": { + "agentic": { + "query_text": "Actually, show black ones instead", + "memory_id": "Memory ID from 1st Search Request" + } + } +} +``` +{% include copy-curl.html %} + + +## End-to-end example + +### Prerequisites: Register Models + +1. **Register a model for the Agent** - This model will be used by the conversational agent for reasoning and tool orchestration +2. **Register a model for Query Planning Tool** - This model will be used specifically by the QueryPlanningTool to generate OpenSearch DSL queries + +### 1. Create product index + +```json +PUT /products-index +{ + "mappings": { + "properties": { + "product_name": { "type": "text" }, + "description": { "type": "text" }, + "price": { "type": "float" }, + "currency": { "type": "keyword" }, + "rating": { "type": "float" }, + "review_count": { "type": "integer" }, + "in_stock": { "type": "boolean" }, + "color": { "type": "keyword" }, + "size": { "type": "keyword" }, + "category": { "type": "keyword" }, + "brand": { "type": "keyword" }, + "tags": { "type": "keyword" } + } + } +} +``` +{% include copy-curl.html %} + +### 2. Insert sample data + +```json +POST _bulk +{ "index": { "_index": "products-index", "_id": "1" } } +{ "product_name": "Nike Air Max 270", "description": "Comfortable running shoes with Air Max technology", "price": 150.0, "currency": "USD", "rating": 4.5, "review_count": 1200, "in_stock": true, "color": "white", "size": "10", "category": "shoes", "brand": "Nike", "tags": ["running", "athletic", "comfortable"] } +{ "index": { "_index": "products-index", "_id": "2" } } +{ "product_name": "Adidas Ultraboost 22", "description": "Premium running shoes with Boost midsole", "price": 180.0, "currency": "USD", "rating": 4.7, "review_count": 850, "in_stock": true, "color": "black", "size": "9", "category": "shoes", "brand": "Adidas", "tags": ["running", "premium", "boost"] } +{ "index": { "_index": "products-index", "_id": "3" } } +{ "product_name": "Converse Chuck Taylor", "description": "Classic canvas sneakers", "price": 65.0, "currency": "USD", "rating": 4.2, "review_count": 2100, "in_stock": true, "color": "white", "size": "8", "category": "shoes", "brand": "Converse", "tags": ["casual", "classic", "canvas"] } +{ "index": { "_index": "products-index", "_id": "4" } } +{ "product_name": "Puma RS-X", "description": "Retro-inspired running shoes with modern comfort", "price": 120.0, "currency": "USD", "rating": 4.3, "review_count": 750, "in_stock": true, "color": "black", "size": "9", "category": "shoes", "brand": "Puma", "tags": ["retro", "running", "comfortable"] } +``` +{% include copy-curl.html %} + +### 3. Register agent + +```json +POST /_plugins/_ml/agents/_register +{ + "name": "E-commerce Search Agent", + "type": "conversational", + "description": "Intelligent e-commerce search with product discovery", + "llm": { + "model_id": "your-model-id", + "parameters": { + "max_iteration": 20 + } + }, + "memory": { + "type": "conversation_index" + }, + "parameters": { + "_llm_interface": "openai/v1/chat/completions" + }, + "tools": [ + { + "type": "ListIndexTool", + "name": "ListIndexTool" + }, + { + "type": "IndexMappingTool", + "name": "IndexMappingTool" + }, + { + "type": "WebSearchTool", + "parameters": { + "engine": "duckduckgo" + } + }, + { + "type": "QueryPlanningTool", + "parameters": { + "model_id": "" + } + } + ], + "app_type": "os_chat" +} +``` +{% include copy-curl.html %} + +### 4. Configure Search pipeline + +```json +PUT _search/pipeline/agentic-pipeline +{ + "request_processors": [ + { + "agentic_query_translator": { + "agent_id": "your-ecommerce-agent-id" + } + } + ], + "response_processors": [ + { + "agentic_context": { + "agent_steps_summary": true, + "dsl_query": true + } + } + ] +} +``` +{% include copy-curl.html %} + +### 5. Execute Agentic Search + +```json +GET /_search?search_pipeline=agentic-pipeline +{ + "query": { + "agentic": { + "query_text": "Find me white shoes under 150 dollars" + } + } +} +``` +{% include copy-curl.html %} + +**Response:** +```json +{ + "took": 12146, + "timed_out": false, + "_shards": { + "total": 1, + "successful": 1, + "skipped": 0, + "failed": 0 + }, + "hits": { + "total": { + "value": 2, + "relation": "eq" + }, + "max_score": null, + "hits": [ + { + "_index": "products-index", + "_id": "3", + "_score": 0.0, + "_source": { + "product_name": "Converse Chuck Taylor", + "description": "Classic canvas sneakers", + "price": 65.0, + "currency": "USD", + "rating": 4.2, + "review_count": 2100, + "in_stock": true, + "color": "white", + "size": "8", + "category": "shoes", + "brand": "Converse", + "tags": [ + "casual", + "classic", + "canvas" + ] + }, + "sort": [ + 65.0, + 0.0 + ] + }, + { + "_index": "products-index", + "_id": "1", + "_score": 0.0, + "_source": { + "product_name": "Nike Air Max 270", + "description": "Comfortable running shoes with Air Max technology", + "price": 150.0, + "currency": "USD", + "rating": 4.5, + "review_count": 1200, + "in_stock": true, + "color": "white", + "size": "10", + "category": "shoes", + "brand": "Nike", + "tags": [ + "running", + "athletic", + "comfortable" + ] + }, + "sort": [ + 150.0, + 0.0 + ] + } + ] + }, + "ext": { + "agent_steps_summary": "I have these tools available: [ListIndexTool, IndexMappingTool, query_planner_tool]\nFirst I used: query_planner_tool — qpt.question: \"Find white shoes priced under 150 dollars.\"; index_name_provided: \"products-index\"\nValidation: qpt output is valid JSON and aligns with the request for white shoes under 150 dollars in the products-index.", + "memory_id": "XRzFl5kB-5P992SCeeqO", + "dsl_query": "{\"size\":10.0,\"query\":{\"bool\":{\"filter\":[{\"term\":{\"category\":\"shoes\"}},{\"term\":{\"color\":\"white\"}},{\"range\":{\"price\":{\"lte\":150.0}}}]}},\"sort\":[{\"price\":{\"order\":\"asc\"}},{\"_score\":{\"order\":\"desc\"}}]}" + } +} +``` +{% include copy-curl.html %} + +### 6. Execute Agentic Search With Memory Id: +```json +GET /_search?search_pipeline=agentic-pipeline +{ + "query": { + "agentic": { + "query_text": "Actually, show black ones instead", + "memory_id": "" + } + } +} +``` +{% include copy-curl.html %} + +**Response:** +```json +{ + "took": 8942, + "timed_out": false, + "_shards": { + "total": 1, + "successful": 1, + "skipped": 0, + "failed": 0 + }, + "hits": { + "total": { + "value": 1, + "relation": "eq" + }, + "max_score": null, + "hits": [ + { + "_index": "products-index", + "_id": "4", + "_score": 0.0, + "_source": { + "product_name": "Puma RS-X", + "description": "Retro-inspired running shoes with modern comfort", + "price": 120.0, + "currency": "USD", + "rating": 4.3, + "review_count": 750, + "in_stock": true, + "color": "black", + "size": "9", + "category": "shoes", + "brand": "Puma", + "tags": [ + "retro", + "running", + "comfortable" + ] + }, + "sort": [ + 120.0, + 0.0 + ] + } + ] + }, + "ext": { + "agent_steps_summary": "I have these tools available: [ListIndexTool, IndexMappingTool, query_planner_tool]\nFirst I used: query_planner_tool — qpt.question: \"Find black shoes priced under 150 dollars.\"; index_name_provided: \"products-index\"\nValidation: qpt output is valid JSON and aligns with the request for black shoes under 150 dollars in the products-index.", + "memory_id": "XRzFl5kB-5P992SCeeqO", + "dsl_query": "{\"size\":10.0,\"query\":{\"bool\":{\"filter\":[{\"term\":{\"category\":\"shoes\"}},{\"term\":{\"color\":\"black\"}},{\"range\":{\"price\":{\"lte\":150.0}}}]}},\"sort\":[{\"price\":{\"order\":\"asc\"}},{\"_score\":{\"order\":\"desc\"}}]}" + } +} +``` +{% include copy-curl.html %} + +As we can see, the agent understood the conversation context and reused the budget limit of $150 from the previous query. It correctly interpreted "black ones instead" as black shoes under $150, demonstrating how `memory_id` enables seamless conversation continuation. + +## Pro tip: Guide the LLM with hints + +You can nudge the LLM to generate the DSL query you prefer by providing hints in the `query_text`. The agent will consider these hints when planning the search: + +**Example with hints:** +```json +GET /_search?search_pipeline=agentic-pipeline +{ + "query": { + "agentic": { + "query_text": "Find expensive running shoes, sort by rating descending, and use aggregations to show average price by brand" + } + } +} +``` + +**Without hints:** +```json +GET /_search?search_pipeline=agentic-pipeline +{ + "query": { + "agentic": { + "query_text": "Show me running shoes" + } + } +} +``` + +The first query will likely generate a more complex DSL with sorting and aggregations, while the second will be simpler. Use specific terms like "sort by", "aggregate", "filter by", "group by", etc. to guide the agent's query generation. \ No newline at end of file diff --git a/_vector-search/ai-search/agentic-search/agent-customization.md b/_vector-search/ai-search/agentic-search/agent-customization.md new file mode 100644 index 0000000000..c55ee0a663 --- /dev/null +++ b/_vector-search/ai-search/agentic-search/agent-customization.md @@ -0,0 +1,349 @@ +--- +layout: default +title: Agent customization +parent: Agentic search +grand_parent: AI search +nav_order: 60 +has_children: false +--- + +# Agent customization + +Transform your agentic search experience by customizing models, tools, and configurations. This guide shows you how to unlock advanced capabilities and tailor your agent to specific use cases. + +## Overview + +Agentic search agents can be customized in several ways to enhance their capabilities: + +- **Model configurations**: Choose from different LLMs optimized for various tasks +- **Tool orchestration**: Combine multiple tools for intelligent automation +- **Prompt engineering**: Fine-tune agent behavior with custom prompts + +## Model configurations + +### OpenAI GPT models + +#### GPT-5 (Recommended) + +GPT-5 offers superior reasoning capabilities and is recommended for production use cases. + +**Model registration:** + +```json +POST /_plugins/_ml/models/_register +{ + "name": "OpenAI GPT-5 Agent Model", + "function_name": "remote", + "description": "GPT-5 model for agentic search with advanced reasoning", + "connector": { + "name": "OpenAI GPT-5 Connector", + "description": "Connector to OpenAI GPT-5 chat completions", + "version": 1, + "protocol": "http", + "parameters": { + "model": "gpt-5" + }, + "credential": { + "openAI_key": "your-openai-api-key" + }, + "actions": [ + { + "action_type": "predict", + "method": "POST", + "url": "https://api.openai.com/v1/chat/completions", + "headers": { + "Authorization": "Bearer ${credential.openAI_key}" + }, + "request_body": "{ \"model\": \"${parameters.model}\", \"messages\": [{\"role\":\"developer\",\"content\":\"${parameters.system_prompt}\"},${parameters._chat_history:-}{\"role\":\"user\",\"content\":\"${parameters.user_prompt}\"}${parameters._interactions:-}], \"reasoning_effort\":\"minimal\", \"tools\": [${parameters._tools:-}],\"parallel_tool_calls\":${parameters.parallel_tool_calls},\"tool_choice\": \"${parameters.tool_choice}\"}" + } + ] + } +} +``` +{% include copy-curl.html %} + +**Reasoning modes:** + +- `minimal` (recommended): Fastest response time, suitable for most use cases +- `low`: Slightly more reasoning, better for complex queries +- `medium`: Enhanced reasoning for sophisticated tasks +- `high`: Maximum reasoning power for the most complex scenarios + +As you select higher reasoning modes, overall latency increases. Choose the lowest mode that meets your accuracy needs. + +### Anthropic Claude models + +Claude models provide excellent performance through Amazon Bedrock integration. + +#### Claude 4 Sonnet + +**Bedrock connector setup:** + +```json +POST /_plugins/_ml/connectors/_create +{ + "name": "Bedrock Claude 4 Sonnet Connector", + "description": "Amazon Bedrock connector for Claude 4 Sonnet", + "version": 1, + "protocol": "aws_sigv4", + "parameters": { + "region": "your-aws-region", + "service_name": "bedrock", + "model": "us.anthropic.claude-sonnet-4-20250514-v1:0" + }, + "credential": { + "access_key": "your-aws-access-key", + "secret_key": "your-aws-secret-key", + "session_token": "your-aws-session-token" + }, + "actions": [ + { + "action_type": "predict", + "method": "POST", + "url": "https://bedrock-runtime.${parameters.region}.amazonaws.com/model/${parameters.model}/converse", + "headers": { + "content-type": "application/json" + }, + "request_body": "{ \"system\": [{\"text\": \"${parameters.system_prompt}\"}], \"messages\": [${parameters._chat_history:-}{\"role\":\"user\",\"content\":[{\"text\":\"${parameters.user_prompt}\"}]}${parameters._interactions:-}]${parameters.tool_configs:-} }" + } + ] +} +``` +{% include copy-curl.html %} + +**Agent interface configuration:** + +- Claude models: `"_llm_interface": "bedrock/converse/claude"` +- OpenAI models: `"_llm_interface": "openai/v1/chat/completions"` + +## Tool orchestration + +### Essential tools for intelligent search + +#### QueryPlanningTool (Required) + +The [`QueryPlanningTool`]({{site.url}}{{site.baseurl}}/ml-commons-plugin/agents-tools/tools/query-planning-tool/) is mandatory for agentic search functionality. It translates natural language queries into OpenSearch DSL. + +#### Additional tools + +You can add any tools from the [ML Commons Tools documentation]({{site.url}}{{site.baseurl}}/ml-commons-plugin/agents-tools/tools/index/) to enhance your agent's capabilities. + +The conversational agent will automatically select and orchestrate the appropriate tools based on the query context. + +**Complete agent configuration:** + +```json +POST /_plugins/_ml/agents/_register +{ + "name": "Advanced Agentic Search Agent", + "type": "conversational", + "description": "Multi-tool agentic search with index discovery and web integration", + "llm": { + "model_id": "your-conversational-model-id", + "parameters": { + "max_iteration": 15, + "embedding_model_id": "your-embedding-model-id" + } + }, + "memory": { + "type": "conversation_index" + }, + "parameters": { + "_llm_interface": "openai/v1/chat/completions" + }, + "tools": [ + { + "type": "ListIndexTool", + "name": "ListIndexTool" + }, + { + "type": "IndexMappingTool", + "name": "IndexMappingTool" + }, + { + "type": "WebSearchTool", + "name": "DuckduckgoWebSearchTool", + "parameters": { + "engine": "duckduckgo" + } + }, + { + "type": "QueryPlanningTool", + "parameters": { + "model_id": "your-query-planner-model-id" + } + } + ], + "app_type": "os_chat" +} +``` +{% include copy-curl.html %} + +### Intelligent index selection + +With `ListIndexTool`, `IndexMappingTool`, and other relevant tools, your agent can automatically choose the right index and generate queries for that index. + +**Search without index specification:** + +```json +GET /_search?search_pipeline=agentic-pipeline +{ + "query": { + "agentic": { + "query_text": "Find products with high ratings and low prices" + } + } +} +``` +{% include copy-curl.html %} + +The agent will automatically discover product indices, analyze their structure, and generate appropriate queries. +**Performance consideration**: When you don't specify an index in your search query, the search runs against all shards in the cluster, which can be expensive. For better performance, specify the target index when possible. + +## Prompt engineering and customization + +### System prompt optimization + +Customize your agent's behavior with tailored system prompts that fit for your specific use case. + +**Default output format:** + +```json +{ + "dsl_query": "", + "agent_steps_summary": "" +} +``` + +**Custom prompt configuration:** + +When customizing prompts, ensure your system and user prompts guide the model to always return results in the JSON format above. Proper prompt engineering is crucial for consistent output formatting. + +Provide your custom prompts during agent registration like this: + +```json +POST /_plugins/_ml/agents/_register +{ + "name": "Custom Prompt Agent", + "type": "conversational", + "description": "Agent with custom system and user prompts", + "llm": { + "model_id": "your-model-id", + "parameters": { + "max_iteration": 15, + "system_prompt": "", + "user_prompt": "" + } + }, + "memory": { + "type": "conversation_index" + }, + "parameters": { + "_llm_interface": "openai/v1/chat/completions" + }, + "tools": [ + { + "type": "QueryPlanningTool", + "parameters": { + "model_id": "your-query-planner-model-id" + } + } + ], + "app_type": "os_chat" +} +``` +{% include copy-curl.html %} + +### Prompt best practices + +- **Be specific**: Clearly define the expected JSON output format with `dsl_query` and `agent_steps_summary` fields +- **Include examples**: Provide sample queries and expected responses in the correct JSON format +- **Set constraints**: Specify field names, data types, and query limits +- **Optimize for JSON**: Ensure prompts guide the model to produce valid JSON with the required structure + +### Default System Prompt: +```json +==== PURPOSE ==== +Produce correct OpenSearch DSL by orchestrating tools. You MUST call the Query Planner Tool (query_planner_tool, "qpt") to author the DSL. +Your job: (a) gather only essential factual context, (b) compose a self-contained natural-language question for qpt, (c) validate coverage of qpt's DSL and iterate if needed, then (d) return a strict JSON result with the DSL and a brief step trace. + +==== OUTPUT CONTRACT (STRICT) ==== +Return ONLY a valid JSON object with exactly these keys: +{"dsl_query": , "agent_steps_summary": ""} +- No markdown, no extra text, no code fences. Double-quote all keys/strings. +- Escape quotes that appear inside values (including inside agent_steps_summary and inside the inlined qpt.question you report there). +- The output MUST parse as JSON. + +==== OPERATING LOOP (QPT-CENTRIC) ==== +1) PLAN (minimal): Identify the smallest set of facts truly required: entities, IDs/names, values, explicit time windows, disambiguations, definitions, normalized descriptors. +2) COLLECT (as needed): Use tools to fetch ONLY those facts. Do NOT mention schema fields, analyzers, or DSL constructs to the qpt. +3) SELECT index_name: + - If provided by the caller, use it as-is. + - Otherwise, discover and choose a single best index (e.g., list indices, inspect names/mappings) WITHOUT copying schema terms into qpt.question. +4) COMPOSE qpt.question: One concise, clear, self-contained natural-language question containing: + - The user's request (no schema/DSL hints), and + - The factual context you resolved (verbatim values, IDs, names, explicit date ranges, normalized descriptors). + This question is the ONLY context (besides index_name) that qpt relies on. +5) CALL qpt with {question, index_name, embedding_model_id(if available)}. +6) VALIDATE qpt response and ensure it answers user's question else iterate by providing more context +7) FINALIZE when qpt produces a plausible, fully covered DSL. + +==== CONTEXT RULES ==== +- Use tools to resolve needed facts. +- When tools return user-specific values, RESTATE them verbatim in qpt.question in pure natural language. +- NEVER mention schema/field names, analyzers, or DSL constructs in qpt.question. +- Resolve ambiguous references BEFORE the final qpt call. + +==== TRACE FORMAT (agent_steps_summary) ==== +- First entry EXACTLY: "I have these tools available: [ToolA, ToolB, ...]" +- Then one entry per step: + "First I used: — input: ; context gained: " + "Second I used: …" + … + "N-th I used: query_planner_tool — qpt.question: ; index_name_provided: " +- Keep brief and factual. Do NOT restate the DSL. After the final qpt step you may add a short validation note. + +==== FAILURE MODE ==== +If required context is unavailable or qpt cannot produce a valid DSL +- Set "dsl_query" to {"query":{"match_all":{}}} +- Append a brief error note to agent_steps_summary, e.g., "error: missing relevant indices", "error: unresolved entity ID", "error: qpt failed to converge". + +==== STYLE & SAFETY ==== +- qpt.question must be purely natural-language and context-only. +- Be minimal and deterministic; avoid speculation. +- Use only the concise step summary. +- Always produce valid JSON per the contract. + +==== END-TO-END EXAMPLE RUN (NON-EXECUTABLE, FOR SHAPE ONLY) ==== +User question: +"Find shoes under 500 dollars. I am so excited for shoes yay!" + +Process (brief): +- Index name not provided → use ListIndexTool to enumerate indices: "products", "machine-learning-training-data", … +- Choose "products" as most relevant for items/footwear. +- Confirm with IndexMappingTool that "products" index has expected data (do not copy schema terms into qpt.question). +- Compose qpt.question with natural-language constraints only. +- Call qpt and validate. + +qpt.question (self-contained, no schema terms): +"Find shoes under 500 dollars." + +qpt.output: +"{\"query\":{\"bool\":{\"must\":[{\"match\":{\"category\":\"shoes\"}}],\"filter\":[{\"range\":{\"price\":{\"lte\":500}}}]}}}" + +Final response JSON: +{ + "dsl_query": {\"query\":{\"bool\":{\"must\":[{\"match\":{\"category\":\"shoes\"}}],\"filter\":[{\"range\":{\"price\":{\"lte\":500}}}]}}}}, + "agent_steps_summary": "I have these tools available: [ListIndexTool, IndexMappingTool, query_planner_tool]\nFirst I used: ListIndexTool — input: \"\"; context gained: \"Of the available indices, products index seems promising\"\nSecond I used: IndexMappingTool — input: \"products\"; context gained: \"index contains relevant fields\"\nThird I used: query_planner_tool — qpt.question: \"Find shoes under 500 dollars.\"; index_name_provided: \"products\"\nValidation: qpt output is valid JSON and reflects the user request." +} + +``` + +### Default User Prompt: +```json +"NLQ is: ${parameters.question} and index_name is: ${parameters.index_name:-}, model ID for neural search is: ${parameters.embedding_model_id:-}" +``` + +## End to End Example: + +Find end to end example here: [Converse and Monitor Agentic Search]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-converse/#end-to-end-example) diff --git a/_vector-search/ai-search/agentic-search/flow-agent.md b/_vector-search/ai-search/agentic-search/flow-agent.md new file mode 100644 index 0000000000..5618ccbe92 --- /dev/null +++ b/_vector-search/ai-search/agentic-search/flow-agent.md @@ -0,0 +1,165 @@ +--- +layout: default +title: Flow agent +parent: Agentic search +grand_parent: AI search +nav_order: 110 +has_children: false +--- + +# Flow agent + +The Conversational agent provides great flexibility and supports many use cases. However, you might not need all that functionality for every scenario. You can directly invoke the Query Planner Tool using a flow agent, which reduces the number of LLM calls made, thereby reducing both cost and latency. + +While flow agents are super fast, the flexibility and query quality might not be as high as conversational agents, but they're good enough for most use cases. If latency is important, we highly recommend using the flow agent instead of the Conversational Agent. + +## Key differences from Conversational Agent + +- **No additional tools**: Flow agents only use the Query Planner Tool +- **Must provide index name**: Unlike conversational agents, you must specify the index name +- **No agent step summary**: Simplified execution without detailed step summaries +- **No memory ID**: Cannot continue conversations across multiple interactions + +## Prerequisites + +Before using a flow agent, you need to: + +1. **Create an index for ingestion** + + See [Create product index]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-converse/#1-create-product-index) in the end-to-end example. + +2. **Ingest documents into the index** + + See [Insert sample data]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-converse/#2-insert-sample-data) in the end-to-end example. + +3. **Register a model for Query Planner Tool (QPT)** + + See [Step 3: Create a model for Query Planning tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-3-create-a-model-for-query-planning-tool) for detailed instructions. + +4. **Register a flow agent** + ```json + POST /_plugins/_ml/agents/_register + { + "name": "Flow Agent for Agentic Search", + "type": "flow", + "description": "Fast flow agent for agentic search", + "tools": [ + { + "type": "QueryPlanningTool", + "parameters": { + "model_id": "your_model_id_from_step3" + } + } + ] + } + ``` + {% include copy-curl.html %} + +5. **Create Agentic pipeline with the flow agent** + + We can use the response processor to see the generated DSL query: + ```json + PUT _search/pipeline/agentic-pipeline + { + "request_processors": [ + { + "agentic_query_translator": { + "agent_id": "your_flow_agentId_from_step_4" + } + } + ], + "response_processors": [ + { + "agentic_context": { + "dsl_query": true + } + } + ] + } + ``` + {% include copy-curl.html %} + +## Usage + +Once set up, you can perform agentic search using the agentic query clause. Since flow agents require you to specify the index name, you must include it in your search request: + +```json +GET products-index/_search?search_pipeline=agentic-pipeline +{ + "query": { + "agentic": { + "query_text": "Find me white shoes under 150 dollars" + } + } +} +``` +{% include copy-curl.html %} + +**Key differences for flow agents:** +- **Must specify index name**: Unlike conversational agents, you must include the index name in the URL path +- **No memory_id**: Flow agents don't support conversation memory, so you cannot use `memory_id` parameter +- **Simplified response**: No `agent_steps_summary` or detailed reasoning in the response + +**Example response:** +```json +{ + "took": 3965, + "timed_out": false, + "_shards": { + "total": 1, + "successful": 1, + "skipped": 0, + "failed": 0 + }, + "hits": { + "total": { + "value": 1, + "relation": "eq" + }, + "max_score": null, + "hits": [ + { + "_index": "products-index", + "_id": "3", + "_score": null, + "_source": { + "product_name": "Converse Chuck Taylor", + "description": "Classic canvas sneakers", + "price": 65.0, + "currency": "USD", + "rating": 4.2, + "review_count": 2100, + "in_stock": true, + "color": "white", + "size": "8", + "category": "shoes", + "brand": "Converse", + "tags": [ + "casual", + "classic", + "canvas" + ] + }, + "sort": [ + 4.2, + 2100 + ] + } + ] + }, + "ext": { + "dsl_query": "{\"size\":10.0,\"query\":{\"bool\":{\"filter\":[{\"term\":{\"category\":\"shoes\"}},{\"term\":{\"color\":\"white\"}},{\"range\":{\"price\":{\"lt\":150.0}}}]}},\"sort\":[{\"rating\":{\"order\":\"desc\"}},{\"review_count\":{\"order\":\"desc\"}}]}" + } +} +``` + +**Use Flow Agent when:** +- Latency is critical +- Cost optimization is important +- Simple queries are sufficient +- No conversation memory needed + +**Use Conversational Agent when:** +- Multiple tools are needed +- Conversation context is important +- Maximum query quality is desired \ No newline at end of file diff --git a/_vector-search/ai-search/agentic-search/index.md b/_vector-search/ai-search/agentic-search/index.md new file mode 100644 index 0000000000..7ec409632e --- /dev/null +++ b/_vector-search/ai-search/agentic-search/index.md @@ -0,0 +1,265 @@ +--- +layout: default +title: Agentic search +parent: AI search +nav_order: 30 +has_children: true +--- + +# Agentic search +Introduced 3.2 +{: .label .label-purple } + +Agentic search lets users ask questions in natural language and have OpenSearch plan and execute the retrieval automatically. A preconfigured **agent** reads the question, plans the search, and returns relevant results. + +**Prerequisite**
+Before using agentic search, you must configure an agent with the [`QueryPlanningTool`]({{site.url}}{{site.baseurl}}/ml-commons-plugin/agents-tools/tools/query-planning-tool/). + +## Configuring Agentic Search + +1. [Create an index for ingestion](#step-1-create-an-index-for-ingestion). +2. [Ingest documents into the index](#step-2-ingest-documents-into-the-index). +3. [Create a model for Query Planning tool](#step-3-create-a-model-for-query-planning-tool). +4. [Create a Model for Conversational Agent](#step-4-create-a-model-for-conversational-agent). +5. [Create an Agent](#step-5-create-an-agent). +6. [Create a search pipeline](#step-6-create-a-search-pipeline). +7. [Search the index](#step-7-search-the-index). + + +### Step 1: Create an index for ingestion + +Create an index for ingestion: + +```json +PUT /iris-index +{ + "mappings": { + "properties": { + "petal_length_in_cm": { + "type": "float" + }, + "petal_width_in_cm": { + "type": "float" + }, + "sepal_length_in_cm": { + "type": "float" + }, + "sepal_width_in_cm": { + "type": "float" + }, + "species": { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + } + } + } +} +``` +{% include copy-curl.html %} + +### Step 2: Ingest documents into the index + +To ingest documents into the index created in the previous step, send the following requests: + +```json +POST _bulk +{ "index": { "_index": "iris-index", "_id": "1" } } +{ "petal_length_in_cm": 1.4, "petal_width_in_cm": 0.2, "sepal_length_in_cm": 5.1, "sepal_width_in_cm": 3.5, "species": "setosa" } +{ "index": { "_index": "iris-index", "_id": "2" } } +{ "petal_length_in_cm": 4.5, "petal_width_in_cm": 1.5, "sepal_length_in_cm": 6.4, "sepal_width_in_cm": 2.9, "species": "versicolor" } +``` +{% include copy-curl.html %} + + +### Step 3: Create a model for Query Planning tool +```json +POST /_plugins/_ml/models/_register +{ + "name": "My OpenAI model: gpt-5", + "function_name": "remote", + "description": "test model", + "connector": { + "name": "My openai connector: gpt-5", + "description": "The connector to openai chat model", + "version": 1, + "protocol": "http", + "parameters": { + "model": "gpt-5", + "response_filter": "$.choices[0].message.content" + }, + "credential": { + "openAI_key": + }, + "actions": [ + { + "action_type": "predict", + "method": "POST", + "url": "https://api.openai.com/v1/chat/completions", + "headers": { + "Authorization": "Bearer ${credential.openAI_key}" + }, + "request_body": "{ \"model\": \"${parameters.model}\", \"messages\": [{\"role\":\"system\",\"content\":\"${parameters.query_planner_system_prompt}\"},{\"role\":\"user\",\"content\":\"${parameters.query_planner_user_prompt}\"}], \"reasoning_effort\":\"minimal\" }" + } + ] + } +} +``` +{% include copy-curl.html %} + +### Step 4: Create a Model for Conversational Agent: + +```json +POST /_plugins/_ml/models/_register +{ + "name": "My OpenAI model: gpt-5", + "function_name": "remote", + "description": "test model", + "connector": { + "name": "My openai connector: gpt-5", + "description": "The connector to openai chat model", + "version": 1, + "protocol": "http", + "parameters": { + "model": "gpt-5" + }, + "credential": { + "openAI_key": "OpenAI Key" + }, + "actions": [ + { + "action_type": "predict", + "method": "POST", + "url": "https://api.openai.com/v1/chat/completions", + "headers": { + "Authorization": "Bearer ${credential.openAI_key}" + }, + "request_body": "{ \"model\": \"${parameters.model}\", \"messages\": [{\"role\":\"developer\",\"content\":\"${parameters.system_prompt}\"},${parameters._chat_history:-}{\"role\":\"user\",\"content\":\"${parameters.user_prompt}\"}${parameters._interactions:-}], \"reasoning_effort\":\"minimal\", \"tools\": [${parameters._tools:-}],\"parallel_tool_calls\":${parameters.parallel_tool_calls},\"tool_choice\": \"${parameters.tool_choice}\"}" + } + ] + } +} +``` +{% include copy-curl.html %} + +### Step 5: Create an Agent: +Create a Conversational Agent with the QueryPlannerTool(Mandatory) and other tools as needed +```json +POST /_plugins/_ml/agents/_register +{ + "name": "GPT 5 Agent for Agentic Search", + "type": "conversational", + "description": "Use this for Agentic Search", + "llm": { + "model_id": , + "parameters": { + "max_iteration": 15, + "embedding_model_id": "" + } + }, + "memory": { + "type": "conversation_index" + }, + "parameters": { + "_llm_interface": "openai/v1/chat/completions" + }, + "tools": [ + { + "type": "QueryPlanningTool", + "parameters": { + "model_id": + } + } + + ], + "app_type": "os_chat" +} +``` + +### Step 6: Create a search pipeline + +Create a search pipeline with an agentic query translator search request processor and pass the agent ID created in step 5: + +```json +PUT _search/pipeline/agentic-pipeline +{ + "request_processors": [ + { + "agentic_query_translator": { + "agent_id": "" + } + } + ] +} +``` +{% include copy-curl.html %} + +### Step 7: Search the index + +To perform agentic search, use the agentic query clause with your narural language question. + +The following example request uses an agentic query to search for a natural language question: + +```json +GET iris-index/_search?search_pipeline=agentic-pipeline +{ + "query": { + "agentic": { + "query_text": "List all the flowers present", + "query_fields": ["species", "petal_length_in_cm"], + } + } +} +``` +{% include copy-curl.html %} + +The request contains the following fields: +1. `query_text`: The natural language question. +2. `query_fields` (optional): A list of fields that the agent should consider when generating the search query. + + +The agentic search request executes the agent with the QueryPlanningTool and sends the natural language question, along with the index mapping and a default prompt, to a large language model (LLM) to generate a query domain-specific language (DSL) query. The returned DSL query is then executed as a search request in OpenSearch: + +```json +"hits": { + "total": { + "value": 2, + "relation": "eq" + }, + "max_score": 1.0, + "hits": [ + { + "_index": "iris-index", + "_id": "1", + "_score": 1.0, + "_source": { + "petal_length_in_cm": 1.4, + "petal_width_in_cm": 0.2, + "sepal_length_in_cm": 5.1, + "sepal_width_in_cm": 3.5, + "species": "setosa" + } + }, + { + "_index": "iris-index", + "_id": "2", + "_score": 1.0, + "_source": { + "petal_length_in_cm": 4.5, + "petal_width_in_cm": 1.5, + "sepal_length_in_cm": 6.4, + "sepal_width_in_cm": 2.9, + "species": "versicolor" + } + } + ] + } +``` + +## Next steps + +- [Agent customization]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/) - Learn how to customize your agentic search agent with different models, tools, and configurations. \ No newline at end of file diff --git a/_vector-search/ai-search/agentic-search/neural-search.md b/_vector-search/ai-search/agentic-search/neural-search.md new file mode 100644 index 0000000000..e26abdda7b --- /dev/null +++ b/_vector-search/ai-search/agentic-search/neural-search.md @@ -0,0 +1,434 @@ +--- +layout: default +title: Neural Search +parent: Agentic search +grand_parent: AI search +nav_order: 90 +has_children: false +--- + +# Neural Search + +Neural is a type of DSL query that requires a `model_id` to perform semantic search on KNN indices. You can provide the embedding model ID during the registration of the agent, and the Query Planner Tool reads this embedding model ID and produces a neural query when the question requires it. This example demonstrates how agentic search can intelligently generate neural DSL queries by providing the embedding model ID in multiple ways - during agent registration, or even directly in your question. + +## Complete Example: Neural DSL Generation with Agentic Search + +This example shows how agentic search can smartly write DSL with neural queries, demonstrating the flexibility of providing model IDs in different locations. + +## Phase 1: KNN Index Setup + +### Step 1: Create Embedding Model + +```json +POST /_plugins/_ml/models/_register + +{ + "name": "Bedrock embedding model", + "function_name": "remote", + "description": "Bedrock text embedding model v2", + "connector": { + "name": "Amazon Bedrock Connector: embedding", + "description": "The connector to bedrock Titan embedding model", + "version": 1, + "protocol": "aws_sigv4", + "parameters": { + "region": "your-aws-region", + "service_name": "bedrock", + "model": "amazon.titan-embed-text-v2:0", + "dimensions": 1024, + "normalize": true, + "embeddingTypes": [ + "float" + ] + }, + "credential": { + "access_key": "your-access-key", + "secret_key": "your-secret-key", + "session_token": "your-session-token" + }, + "actions": [ + { + "action_type": "predict", + "method": "POST", + "url": "https://bedrock-runtime.${parameters.region}.amazonaws.com/model/${parameters.model}/invoke", + "headers": { + "content-type": "application/json", + "x-amz-content-sha256": "required" + }, + "request_body": "{ \"inputText\": \"${parameters.inputText}\", \"dimensions\": ${parameters.dimensions}, \"normalize\": ${parameters.normalize}, \"embeddingTypes\": ${parameters.embeddingTypes} }", + "pre_process_function": "connector.pre_process.bedrock.embedding", + "post_process_function": "connector.post_process.bedrock.embedding" + } + ] + } +} +``` +{% include copy-curl.html %} + +### Step 2: Create Ingest Pipeline + +```json +PUT /_ingest/pipeline/my_bedrock_embedding_pipeline +{ + "description": "text embedding pipeline", + "processors": [ + { + "text_embedding": { + "model_id": "fxzel5kB-5P992SCH-qM", + "field_map": { + "content_text": "content_embedding" + } + } + } + ] +} +``` +{% include copy-curl.html %} + +### Step 3: Create KNN Index with Ingest Pipeline + +```json +PUT /research_papers +{ + "settings": { + "index": { + "default_pipeline": "my_bedrock_embedding_pipeline", + "knn": "true" + } + }, + "mappings": { + "properties": { + "content_embedding": { + "type": "knn_vector", + "dimension": 1024, + "method": { + "name": "hnsw", + "engine": "lucene" + } + }, + "published_date": { + "type": "date" + }, + "rating": { + "type": "integer" + } + } + } +} +``` +{% include copy-curl.html %} + +### Step 4: Ingest Data into KNN Index + +```json +POST /_bulk +{ "index": { "_index": "research_papers", "_id": "1" } } +{ "content_text": "Autonomous robotic systems for warehouse automation and industrial manufacturing", "published_date": "2024-05-15", "rating": 5 } +{ "index": { "_index": "research_papers", "_id": "2" } } +{ "content_text": "Gene expression analysis and CRISPR-Cas9 genome editing applications in cancer research", "published_date": "2024-06-02", "rating": 4 } +{ "index": { "_index": "research_papers", "_id": "3" } } +{ "content_text": "Reinforcement learning algorithms for sequential decision making and optimization problems", "published_date": "2024-03-20", "rating": 5 } +{ "index": { "_index": "research_papers", "_id": "4" } } +{ "content_text": "Climate change impact on coral reef ecosystems and marine biodiversity conservation", "published_date": "2024-04-10", "rating": 4 } +{ "index": { "_index": "research_papers", "_id": "5" } } +{ "content_text": "Tectonic plate movements and earthquake prediction using geological fault analysis", "published_date": "2024-01-22", "rating": 4 } +``` +{% include copy-curl.html %} + +## Phase 2: Agentic Search Setup + +### Step 5: Register Models for Agentic Search + +Register two models as described in the [Agentic Search setup]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/): + +1. **[Register a model for the Agent]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/#step-4-create-a-model-for-conversational-agent)** - Step 4 +2. **[Register a model for Query Planning Tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/#step-3-create-a-model-for-query-planning-tool)** - Step 3 + +### Step 6: Create Agent with Embedding Model ID + +Create an agent with the `embedding_model_id` specified in the agent registration: + +```json +POST /_plugins/_ml/agents/_register +{ + "name": "GPT 5 Agent for Agentic Search", + "type": "conversational", + "description": "Use this for Agentic Search", + "llm": { + "model_id": "your-agent-model-id", + "parameters": { + "max_iteration": 15, + "embedding_model_id": "your-embedding-model-id-from-step1" + } + }, + "memory": { + "type": "conversation_index" + }, + "parameters": { + "_llm_interface": "openai/v1/chat/completions" + }, + "tools": [ + { + "type": "QueryPlanningTool", + "parameters": { + "model_id": "your-qpt-model-id" + } + } + ], + "app_type": "os_chat" +} +``` +{% include copy-curl.html %} + +### Step 7: Create Search Pipeline + +Create the search pipeline as described in the [end-to-end example]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-converse/#4-configure-search-pipeline): + + +## Phase 3: Neural Search Examples + +### Example 1: Agentic Search with Neural Query + +Perform agentic search and observe neural query being used: + +```json +POST /research_papers/_search?search_pipeline=my_pipeline +{ + "query": { + "agentic": { + "query_text": "Show me 3 robots training related research papers " + } + } +} +``` +{% include copy-curl.html %} + +**Expected Response:** +```json +{ + "took": 10509, + "timed_out": false, + "_shards": { + "total": 1, + "successful": 1, + "skipped": 0, + "failed": 0 + }, + "hits": { + "total": { + "value": 5, + "relation": "eq" + }, + "max_score": 0.40031588, + "hits": [ + { + "_index": "research_papers", + "_id": "1", + "_score": 0.40031588, + "_source": { + "content_text": "Autonomous robotic systems for warehouse automation and industrial manufacturing", + "rating": 5, + "content_embedding": [], + "published_date": "2024-05-15" + } + }, + { + "_index": "research_papers", + "_id": "3", + "_score": 0.36390686, + "_source": { + "content_text": "Reinforcement learning algorithms for sequential decision making and optimization problems", + "rating": 5, + "content_embedding": [], + "published_date": "2024-03-20" + } + }, + { + "_index": "research_papers", + "_id": "5", + "_score": 0.34401828, + "_source": { + "content_text": "Tectonic plate movements and earthquake prediction using geological fault analysis", + "rating": 4, + "content_embedding": [], + "published_date": "2024-01-22" + } + } + ] + }, + "ext": { + "agent_steps_summary": "I have these tools available: [ListIndexTool, IndexMappingTool, query_planner_tool]\nFirst I used: ListIndexTool — input: \"[]\"; context gained: \"Found indices; 'research_papers' appears relevant\"\nSecond I used: IndexMappingTool — input: \"[\"research_papers\"]\"; context gained: \"Index has text content and an embedding field suitable for neural search\"\nThird I used: query_planner_tool — qpt.question: \"Show me 3 research papers related to robots training.\"; index_name_provided: \"research_papers\"\nValidation: qpt output is valid and limits results to 3 using neural search with the provided model.", + "memory_id": "jhzpl5kB-5P992SCwOqe", + "dsl_query": "{\"size\":3.0,\"query\":{\"neural\":{\"content_embedding\":{\"model_id\":\"fxzel5kB-5P992SCH-qM\",\"k\":100.0,\"query_text\":\"robots training\"}}}}" + } +} +``` + +The `ext` block shows that the Query Planner Tool successfully generated a neural DSL query with the embedding model ID, demonstrating agentic search's ability to create neural search queries when appropriate. + +### Example 2: Agentic Search Without Neural Query + +Next, perform agentic search with a question that doesn't need embedding model: + +```json +POST /research_papers/_search?search_pipeline=my_pipeline +{ + "query": { + "agentic": { + "query_text": "Show me papers published after 2024 May" + } + } +} +``` +{% include copy-curl.html %} + +**Expected Response:** +```json +{ + "took": 8522, + "timed_out": false, + "_shards": { + "total": 1, + "successful": 1, + "skipped": 0, + "failed": 0 + }, + "hits": { + "total": { + "value": 1, + "relation": "eq" + }, + "max_score": null, + "hits": [ + { + "_index": "research_papers", + "_id": "2", + "_score": null, + "_source": { + "content_text": "Gene expression analysis and CRISPR-Cas9 genome editing applications in cancer research", + "rating": 4, + "content_embedding": [], + "published_date": "2024-06-02" + }, + "sort": [ + 1717286400000 + ] + } + ] + }, + "ext": { + "agent_steps_summary": "I have these tools available: [ListIndexTool, IndexMappingTool, query_planner_tool]\nFirst I used: query_planner_tool — qpt.question: \"Show me papers published after May 2024.\"; index_name_provided: \"research_papers\"\nValidation: qpt output is valid JSON and matches the user request with the specified date filter and sorting.", + "memory_id": "vBzyl5kB-5P992SCI-o1", + "dsl_query": "{\"size\":10.0,\"query\":{\"bool\":{\"filter\":[{\"range\":{\"published_date\":{\"gt\":\"2024-05-31T23:59:59Z\"}}}]}},\"sort\":[{\"published_date\":{\"order\":\"desc\"}}]}" + } +} +``` +As demonstrated, when the question doesn't require semantic search, the Agentic Search intelligently generates traditional DSL queries instead of neural queries, showing its ability to choose the appropriate query type based on context. + +### Example 3: Query-Level Embedding Model Specification + +For maximum flexibility, register an agent without `embedding_model_id` and mention it in the `query_text` directly: + +**Register Agent without Embedding Model ID parameter:** +```json +POST /_plugins/_ml/agents/_register +{ + "name": "GPT 5 Agent for Agentic Search", + "type": "conversational", + "description": "Use this for Agentic Search", + "llm": { + "model_id": "your-agent-model-id", + "parameters": { + "max_iteration": 15 + } + }, + "memory": { + "type": "conversation_index" + }, + "parameters": { + "_llm_interface": "openai/v1/chat/completions" + }, + "tools": [ + { + "type": "QueryPlanningTool", + "parameters": { + "model_id": "your-qpt-model-id" + } + } + ], + "app_type": "os_chat" +} +``` + +**Perform agentic search with embedding model ID in the query_text:** + +```json +POST /research_papers/_search?search_pipeline=my_pipeline +{ + "query": { + "agentic": { + "query_text": "Show me 3 robots training related research papers use this model id for neural search:fxzel5kB-5P992SCH-qM " + } + } +} +``` +{% include copy-curl.html %} + +**Expected Response:** +```json +{ + "took": 14989, + "timed_out": false, + "_shards": { + "total": 1, + "successful": 1, + "skipped": 0, + "failed": 0 + }, + "hits": { + "max_score": 0.38957736, + "hits": [ + { + "_index": "research_papers", + "_id": "1", + "_score": 0.38957736, + "_source": { + "content_text": "Autonomous robotic systems for warehouse automation and industrial manufacturing", + "rating": 5, + "content_embedding": [], + "published_date": "2024-05-15" + } + }, + { + "_index": "research_papers", + "_id": "3", + "_score": 0.36386627, + "_source": { + "content_text": "Reinforcement learning algorithms for sequential decision making and optimization problems", + "rating": 5, + "content_embedding": [], + "published_date": "2024-03-20" + } + }, + { + "_index": "research_papers", + "_id": "2", + "_score": 0.35789147, + "_source": { + "content_text": "Gene expression analysis and CRISPR-Cas9 genome editing applications in cancer research", + "rating": 4, + "content_embedding": [], + "published_date": "2024-06-02" + } + } + ] + }, + "ext": { + "agent_steps_summary": "I have these tools available: [ListIndexTool, IndexMappingTool, query_planner_tool]\nFirst I used: ListIndexTool — input: \"\"; context gained: \"Found indices, including research_papers with 5 documents\"\nSecond I used: IndexMappingTool — input: \"research_papers\"; context gained: \"Index exists and contains text and embedding fields suitable for neural search\"\nThird I used: query_planner_tool — qpt.question: \"Show me 3 research papers related to robot training.\"; index_name_provided: \"research_papers\"\nValidation: qpt output is valid neural search DSL using the provided model ID and limits results to 3.", + "memory_id": "whz1l5kB-5P992SCPOqn", + "dsl_query": "{\"size\":3.0,\"query\":{\"neural\":{\"content_embedding\":{\"model_id\":\"fxzel5kB-5P992SCH-qM\",\"k\":100.0,\"query_text\":\"research papers related to robot training\"}}},\"sort\":[{\"_score\":{\"order\":\"desc\"}}],\"track_total_hits\":false}" + } +} +``` + +As demonstrated, Agentic Search successfully extracts the embedding model ID directly from the query text and generates the appropriate neural DSL query, showcasing the flexibility of query-level model specification. \ No newline at end of file diff --git a/_vector-search/ai-search/agentic-search/search-templates.md b/_vector-search/ai-search/agentic-search/search-templates.md new file mode 100644 index 0000000000..f88b5ab2a2 --- /dev/null +++ b/_vector-search/ai-search/agentic-search/search-templates.md @@ -0,0 +1,453 @@ +--- +layout: default +title: Search Templates to improve determinism +parent: Agentic search +grand_parent: AI search +nav_order: 100 +has_children: false +--- + +# Search Templates to improve determinism + +The Query Planner Tool can accept a list of user-defined search templates during its registration. The Query Planner Tool generates DSL queries based on context and uses the attached search templates to generate the appropriate query. + +## Why use Search Templates? + +Search templates provide several key benefits: + +- **Improve determinism**: Enhance query response consistency in Agentic Search. The major portion of the DSL query is provided by the search template, with only minor parts or placeholders filled by the LLM +- **Handle complex use cases**: Solve scenarios where the LLM struggles to generate correct queries +- **Consistent output**: Ensure predictable query structure and naming conventions + +## How Search Templates work + +1. **Template Definition**: Users provide a list of search templates alongside descriptions for each template +2. **Template Selection**: The Query Planner Tool chooses an appropriate search template based on the user's question and template descriptions +3. **Query Generation**: The LLM generates a query based on the selected search template + +This approach allows you to solve really complicated use cases that would otherwise be challenging for the LLM alone. + + + +## How to Use Search Templates: Example Use Case + +### Step 1: Create Index + +```json +PUT /stores +{ + "mappings": { + "properties": { + "store_id": { "type": "keyword" }, + "name": { "type": "text", "fields": { "keyword": { "type": "keyword", "ignore_above": 256 } } }, + "address": { + "properties": { + "city": { "type": "keyword" }, + "state": { "type": "keyword" } + } + }, + "location": { "type": "geo_point" }, + + "inventory": { + "type": "nested", + "properties": { + "sku": { "type": "keyword" }, + "qty": { "type": "integer" } + } + } + } + } +} +``` +{% include copy-curl.html %} + +### Step 2: Ingest Documents + +```json +POST /_bulk +{ "index": { "_index": "stores", "_id": "S-SEA-001" } } +{ "store_id": "S-SEA-001", "name": "Downtown Seattle", "address": { "city": "Seattle", "state": "WA" }, "location": { "lat": 47.608, "lon": -122.335 }, "inventory": [ { "sku": "iphone_17_air", "qty": 12 }, { "sku": "iphone_17", "qty": 11 }, { "sku": "vision_pro", "qty": 3 } ] } +{ "index": { "_index": "stores", "_id": "S-SEA-002" } } +{ "store_id": "S-SEA-002", "name": "Capitol Hill", "address": { "city": "Seattle", "state": "WA" }, "location": { "lat": 47.623, "lon": -122.319 }, "inventory": [ { "sku": "iphone_17_air", "qty": 5 }, { "sku": "iphone_17", "qty": 25 }, { "sku": "vision_pro", "qty": 4 } ] } +{ "index": { "_index": "stores", "_id": "S-SEA-003" } } +{ "store_id": "S-SEA-003", "name": "South Lake Union", "address": { "city": "Seattle", "state": "WA" }, "location": { "lat": 47.626, "lon": -122.338 }, "inventory": [ { "sku": "iphone_17_air", "qty": 6 }, { "sku": "iphone_17", "qty": 9 }, { "sku": "vision_pro", "qty": 20 } ] } +{ "index": { "_index": "stores", "_id": "S-BEL-001" } } +{ "store_id": "S-BEL-001", "name": "Bellevue Square", "address": { "city": "Bellevue", "state": "WA" }, "location": { "lat": 47.616, "lon": -122.203 }, "inventory": [ { "sku": "iphone_17_air", "qty": 14 }, { "sku": "iphone_17", "qty": 4 }, { "sku": "vision_pro", "qty": 1 } ] } +{ "index": { "_index": "stores", "_id": "S-SEA-004" } } +{ "store_id": "S-SEA-004", "name": "Ballard", "address": { "city": "Seattle", "state": "WA" }, "location": { "lat": 47.668, "lon": -122.382 }, "inventory": [ { "sku": "iphone_17_air", "qty": 9 }, { "sku": "iphone_17", "qty": 7 }, { "sku": "vision_pro", "qty": 12 } ] } + +``` +{% include copy-curl.html %} + +### Step 3: Register Template 1 + +Return stores in a city whose combined inventory across three SKUs is ≥ min_total. +```json +POST /_scripts/store_sum_skus +{ + "script": { + "lang": "mustache", + "source": { + "size": 0, + "query": { "term": { "address.city": "{{city}}" } }, + "aggs": { + "by_store": { + "terms": { + "field": "store_id", + "size": "{{bucket_size}}{{^bucket_size}}200{{/bucket_size}}", + "order": { "inv>skus>q": "desc" } + }, + "aggs": { + "inv": { + "nested": { "path": "inventory" }, + "aggs": { + "skus": { + "filter": { "terms": { "inventory.sku": ["{{sku1}}","{{sku2}}","{{sku3}}"] } }, + "aggs": { "q": { "sum": { "field": "inventory.qty" } } } + } + } + }, + "keep": { + "bucket_selector": { + "buckets_path": { "t": "inv>skus>q" }, + "script": { "source": "params.t >= {{min_total}}{{^min_total}}30{{/min_total}}" } + } + }, + "store": { + "top_hits": { + "size": 1, + "_source": { "includes": ["store_id","name","address.city"] } + } + } + } + } + } + } + } +} +``` +{% include copy-curl.html %} + +### Step 4: Register Template 2 +Count stores in a city that have at least min units of a single SKU +```json +POST /_scripts/store_sum_skus +{ + "script": { + "lang": "mustache", + "source": { + "size": 0, + "query": { "term": { "address.city": "{{city}}" } }, + "aggs": { + "s": { + "terms": { + "field": "store_id", + "size": "{{bs}}{{^bs}}200{{/bs}}" + }, + "aggs": { + "i": { + "nested": { "path": "inventory" }, + "aggs": { + "f": { + "filter": { "term": { "inventory.sku": "{{sku}}" } }, + "aggs": { "q": { "sum": { "field": "inventory.qty" } } } + } + } + }, + "m": { + "bucket_script": { + "buckets_path": { "x": "i>f>q" }, + "script": { "source": "params.x >= {{min}}{{^min}}10{{/min}} ? 1 : 0" } + } + } + } + }, + "cnt": { "sum_bucket": { "buckets_path": "s>m" } } + } + } + } +} +``` +{% include copy-curl.html %} + +### Step 5: Register Query Planner Tool with Search Templates + +Refer to these to register query planner model and the agent model: + +- [Create a model for Query Planning tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-3-create-a-model-for-query-planning-tool) +- [Create a Model for Conversational Agent]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-4-create-a-model-for-conversational-agent) +- [Create an Agent]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-5-create-an-agent) +- [Create a search pipeline]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-6-create-a-search-pipeline) + +```json +{ + "name": "GPT 5 Agent for Agentic Search", + "type": "conversational", + "description": "Use this for Agentic Search", + "llm": { + "model_id": "{{llm_model_id}}", + "parameters": { + "max_iteration": 15 + } + }, + "memory": { + "type": "conversation_index" + }, + "parameters": { + "_llm_interface": "openai/v1/chat/completions" + }, + "tools": [ + + { + "type": "QueryPlanningTool", + "parameters": { + "model_id": "{{query_planner_model_id}}", + "generation_type": "user_templates", + "search_templates": [ + { + "template_id": "store_sum_skus", + "template_description": "Return stores in a given city where the combined quantity across a list of SKUs meets or exceeds a threshold." + }, + { + "template_id": "stores_with_give_sku", + "template_description": "List stores in a given city that have at least min_qty units of a specific SKU." + } + ] + } + } + ], + "app_type": "os_chat" +} +``` +{% include copy-curl.html %} + +### Step 6: Hard Question Without Search Templates (Failing) + +Register the search pipeline before performing the query: + +- [Create a search pipeline]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-6-create-a-search-pipeline) + +**Agentic Search Query:** +```json +POST /stores/_search?search_pipeline=my_pipeline +{ + "query": { + "agentic": { + "query_text": "List all stores in Seattle that have at least 30 combined units across these SKUs: iphone_17_air, iphone_17, and vision_pro." + } + } +} +``` +{% include copy-curl.html %} + +**LLM Response:** +```json +{ + "error": { + "root_cause": [ + { + "type": "script_exception", + "reason": "runtime error", + "script_stack": [ + "for (item in params._source.inventory) { ", + " ^---- HERE" + ], + "script": "int total = 0; for (item in params._source.inventory) { if (params.skus.contains(item.sku)) { if (item.qty instanceof Integer || item.qty instanceof Long) { total += (int)item.qty; } else if (item.qty instanceof String) { try { total += Integer.parseInt(it ...", + "lang": "painless", + "position": { + "offset": 42, + "start": 15, + "end": 56 + } + } + ], + "type": "search_phase_execution_exception", + "reason": "all shards failed", + "phase": "query", + "grouped": true, + "failed_shards": [ + { + "shard": 0, + "index": "stores", + "node": "u3NEXA8PS8W8EJcT_9suGg", + "reason": { + "type": "script_exception", + "reason": "runtime error", + "script_stack": [ + "for (item in params._source.inventory) { ", + " ^---- HERE" + ], + "script": "int total = 0; for (item in params._source.inventory) { if (params.skus.contains(item.sku)) { if (item.qty instanceof Integer || item.qty instanceof Long) { total += (int)item.qty; } else if (item.qty instanceof String) { try { total += Integer.parseInt(it ...", + "lang": "painless", + "position": { + "offset": 42, + "start": 15, + "end": 56 + }, + "caused_by": { + "type": "null_pointer_exception", + "reason": "Cannot invoke \"Object.getClass()\" because \"callArgs[0]\" is null" + } + } + } + ] + }, + "status": 400 +} +``` + +This error demonstrates that the LLM struggled to generate a valid query for this complex scenario. The failure occurred because: + +- The query involves nested aggregations with multiple SKUs +- Complex filtering logic across inventory arrays +- Script-based calculations with type handling + +LLMs often encounter issues with: +- Incorrect `_source` iteration patterns +- Misuse of `doc` values in scripts +- Type mismatches causing runtime `script_exception` errors + +Let's now demonstrate how search templates solve this problem: + +### Hard Question With Search Templates (Succeeding) + +**Agentic Search Query:** +```json +POST /stores/_search?search_pipeline=my_pipeline +{ + "query": { + "agentic": { + "query_text": "List all stores in Seattle that have at least 30 combined units across these SKUs: iphone_17_air, iphone_17, and vision_pro." + } + } +} +``` +{% include copy-curl.html %} + +**Generated Query:** +```json +{ + "took": 21658, + "timed_out": false, + "terminated_early": true, + "_shards": { + "total": 1, + "successful": 1, + "skipped": 0, + "failed": 0 + }, + "hits": { + "total": { + "value": 4, + "relation": "eq" + }, + "max_score": null, + "hits": [] + }, + "aggregations": { + "by_store": { + "doc_count_error_upper_bound": 0, + "sum_other_doc_count": 0, + "buckets": [ + { + "key": "S-SEA-002", + "doc_count": 1, + "inv": { + "doc_count": 3, + "skus": { + "doc_count": 3, + "sum_qty": { + "value": 34.0 + } + } + }, + "store": { + "hits": { + "total": { + "value": 1, + "relation": "eq" + }, + "max_score": 1.0, + "hits": [ + { + "_index": "stores", + "_id": "S-SEA-002", + "_score": 1.0, + "_source": { + "store_id": "S-SEA-002", + "address": { + "city": "Seattle" + }, + "name": "Capitol Hill" + } + } + ] + } + } + }, + { + "key": "S-SEA-003", + "doc_count": 1, + "inv": { + "doc_count": 3, + "skus": { + "doc_count": 3, + "sum_qty": { + "value": 35.0 + } + } + }, + "store": { + "hits": { + "total": { + "value": 1, + "relation": "eq" + }, + "max_score": 1.0, + "hits": [ + { + "_index": "stores", + "_id": "S-SEA-003", + "_score": 1.0, + "_source": { + "store_id": "S-SEA-003", + "address": { + "city": "Seattle" + }, + "name": "South Lake Union" + } + } + ] + } + } + } + ] + } + }, + "ext": { + "agent_steps_summary": "I have these tools available: [ListIndexTool, IndexMappingTool, query_planner_tool]\nFirst I used: query_planner_tool — qpt.question: \"List all stores in Seattle that have at least a combined total of 30 units across the following SKUs: \\\"iphone_17_air\\\", \\\"iphone_17\\\", and \\\"vision_pro\\\". The location must be Seattle. Sum the inventory counts for only these three SKUs per store and return stores where the sum is greater than or equal to 30.\"; index_name_provided: \"stores\"\nValidation: qpt output is valid JSON; adjusted numeric literals to integers and sizes to integers.", + "memory_id": "-BxpmJkB-5P992SCQ-qU", + "dsl_query":"{\"size\":0.0,\"query\":{\"term\":{\"address.city\":\"Seattle\"}},\"aggs\":{\"by_store\":{\"terms\":{\"field\":\"store_id\",\"size\":200.0},\"aggs\":{\"inv\":{\"nested\":{\"path\":\"inventory\"},\"aggs\":{\"skus\":{\"filter\":{\"terms\":{\"inventory.sku\":[\"iphone_17_air\",\"iphone_17\",\"vision_pro\"]}},\"aggs\":{\"sum_qty\":{\"sum\":{\"field\":\"inventory.qty\"}}}}}},\"keep\":{\"bucket_selector\":{\"buckets_path\":{\"total\":\"inv\>skus\>sum_qty\"},\"script\":{\"source\":\"params.total \>\= 30\"}}},\"store\":{\"top_hits\":{\"size\":1.0,\"_source\":{\"includes\":[\"store_id\",\"name\",\"address.city\"]}}}}}}}" + } +} +``` + +**Analysis of the successful response:** + +The query executed successfully and returned the expected results. Key observations: + +- **Template Selection**: The LLM correctly identified and used the `store_sum_skus` template +- **Parameter Filling**: Properly filled template parameters (`city: "Seattle"`, `sku1: "iphone_17_air"`, etc.) +- **Query Execution**: Generated a valid DSL query with nested aggregations and bucket selectors +- **Results**: Successfully returned stores (S-SEA-002 and S-SEA-003) with combined inventory ≥ 30 units + +The search template approach eliminated the script errors and provided deterministic, reliable query generation for this complex use case. + +## Best Practices + +- **Clear descriptions**: Write detailed descriptions for each template to help the LLM choose correctly +- **Meaningful placeholders**: Use descriptive placeholder names that clearly indicate what should be filled +- **Template variety**: Create templates for different query patterns you commonly use +- **Test thoroughly**: Validate that templates work correctly with various inputs + + From d4240e7534691017058fd88d82145b1f55a88336 Mon Sep 17 00:00:00 2001 From: Tyler Ohlsen Date: Tue, 30 Sep 2025 12:31:32 -0700 Subject: [PATCH 02/18] Add agentic search UI documentation Signed-off-by: Tyler Ohlsen --- .../building-agentic-search-flows.md | 70 ++++++++++++++++++ _vector-search/ai-search/workflow-builder.md | 5 +- .../agent-configuration.png | Bin 0 -> 98020 bytes .../agent-searching.png | Bin 0 -> 39483 bytes .../agentic-search-agent-query.png | Bin 0 -> 108977 bytes .../agentic-search-editor.png | Bin 0 -> 181350 bytes .../agentic-search-quick-configure-modal.png | Bin 0 -> 27702 bytes .../agentic-search-results.png | Bin 0 -> 276215 bytes .../new-workflow-page.png | Bin 217291 -> 227471 bytes 9 files changed, 73 insertions(+), 2 deletions(-) create mode 100644 _vector-search/ai-search/building-agentic-search-flows.md create mode 100644 images/dashboards-flow-framework/agent-configuration.png create mode 100644 images/dashboards-flow-framework/agent-searching.png create mode 100644 images/dashboards-flow-framework/agentic-search-agent-query.png create mode 100644 images/dashboards-flow-framework/agentic-search-editor.png create mode 100644 images/dashboards-flow-framework/agentic-search-quick-configure-modal.png create mode 100644 images/dashboards-flow-framework/agentic-search-results.png diff --git a/_vector-search/ai-search/building-agentic-search-flows.md b/_vector-search/ai-search/building-agentic-search-flows.md new file mode 100644 index 0000000000..7736681203 --- /dev/null +++ b/_vector-search/ai-search/building-agentic-search-flows.md @@ -0,0 +1,70 @@ +--- +layout: default +title: Configuring agentic search +parent: Building AI search workflows in OpenSearch Dashboards +grand_parent: AI search +nav_order: 20 +--- + +# Configuring agentic search + +This is an experimental UI feature. For updates on the progress of the feature or if you want to leave feedback, join the discussion on the [OpenSearch forum](https://forum.opensearch.org/). +{: .warning} + +**Introduced 3.3** +{: .label .label-purple } + +Agentic search lets you ask questions in natural language and have OpenSearch agents plan and execute the retrieval automatically. The AI Search Flows plugin offers an intuitive user interface for configuring agents, equipping agents with different tools, and executing agentic searches. + +**Prerequisite: Provision ML resources**
+If you'd like to configure new agents, be sure to first provision appropriate models. For working examples, see [here]({{site.url}}{{site.baseurl}}/TODO/). + +**Prerequisite: Ingest data**
+Ensure you have a sufficient number of documents in your cluster to reasonably evaluate your agentic searches. + +
+ + Table of contents + + {: .text-delta } +1. TOC +{:toc} +
+ +## Agentic search workflow editor + +You can build and test your agentic search workflow in the editor, shown in the following image. + +![Agentic search workflow editor]({{site.url}}{{site.baseurl}}/images/dashboards-flow-framework/agentic-search-editor.png) + +The workflow editor is organized into two main components: + +- **Configure agent**: The resizable panel panel for configuring agents. Select existing agents to view details, update existing agents, or create new agents from scratch. Create `flow` or `conversational` agents, and enable different tools to expand your agent's capabilities, such as searching the web, or searching other indices in your cluster. For full customization, toggle to the `JSON` view and edit directly. +- **Test flow**: The resizable panel for executing your agentic search flow. This consists of 2 main selections: + - **Index**: Select an existing index to search against, or search against all available indices. + - **Query**: Write your natural language query. Optionally add query fields, which help the agent focus on particular fields in your selected index to search against (if applicable). You may also toggle to the `JSON` view to edit the full `agentic` search query directly. + +## Example: Product search with GPT-5 + +This example is using a deployed OpenAI GPT-5 model as specified [here]({{site.url}}{{site.baseurl}}/TODO/). +{: .note} + +1. On the **Workflows** page, select the **New workflow** tab, as shown in the following image. + ![New workflow page]({{site.url}}{{site.baseurl}}/images/dashboards-flow-framework/new-workflow-page.png) +2. In the **Agentic Search** template, select **Create**. +3. Provide some basic details, as shown in the following image: + - A unique workflow name and description + ![Quick configure modal]({{site.url}}{{site.baseurl}}/images/dashboards-flow-framework/agentic-search-quick-configure-modal.png) +4. Click **Create** to create your workflow, and automatically navigate to the **Workflow Details** page, where you can begin configuring. +5. Under **Configure agent**, click **Create new agent**. This will pre-populate an agent for you. Provide a unique name and description. +6. Under **Tools** > **Query Planning** > **Query planning model**, select the **GPT-5** model. +7. Click **Create agent** in the bottom-left corner. + ![Agent configuration]({{site.url}}{{site.baseurl}}/images/dashboards-flow-framework/agent-configuration.png) +8. Under **Test flow** > **Index**, select the index you'd like to search against. In this case, a sample index `sports_and_outdoors` containing a subset of documents from the MIT-licensed [AmazonReview2023 dataset](https://github.com/hyp1231/AmazonReviews2023). +9. Under **Test flow** > **Search**, enter a natural language query describing the results you want. +10. Click **Search**. The agent may take several seconds to execute. + ![Agent searching]({{site.url}}{{site.baseurl}}/images/dashboards-flow-framework/agent-searching.png) +11. Under **Generated query**, view the query DSL that the agent generated and ran against your cluster. + ![Agent query]({{site.url}}{{site.baseurl}}/images/dashboards-flow-framework/agentic-search-agent-query.png) +12. Under **Search results**, view the **Raw response**, the formatted table of **Hits**, or **Aggregations** if applicable. + ![Search results]({{site.url}}{{site.baseurl}}/images/dashboards-flow-framework/agentic-search-results.png) diff --git a/_vector-search/ai-search/workflow-builder.md b/_vector-search/ai-search/workflow-builder.md index 94fb1e229a..cb05631cf0 100644 --- a/_vector-search/ai-search/workflow-builder.md +++ b/_vector-search/ai-search/workflow-builder.md @@ -13,7 +13,7 @@ redirect_from: # Building AI search workflows in OpenSearch Dashboards -In OpenSearch Dashboards, you can iteratively build and test workflows containing ingest and search pipelines using AI Search Flows. Using a UI editor to build workflows simplifies the creation of artificial intelligence and machine learning (AI/ML) use cases that include ML inference processors, such as vector search and retrieval-augmented generation (RAG). For example configurations of available AI search types (including semantic search, hybrid search, RAG, and multimodal search), see [Configuring AI search types]({{site.url}}{{site.baseurl}}/vector-search/ai-search/building-flows/). +In OpenSearch Dashboards, you can iteratively build and test workflows containing ingest and search pipelines using AI Search Flows. Using a UI editor to build workflows simplifies the creation of artificial intelligence and machine learning (AI/ML) use cases that include ML inference processors, such as vector search and retrieval-augmented generation (RAG). For example configurations of available AI search types (including semantic search, hybrid search, RAG, and multimodal search), see [Configuring AI search types]({{site.url}}{{site.baseurl}}/vector-search/ai-search/building-flows/). For examples of configuring agentic search flows, see [Configuring agentic search]({{site.url}}{{site.baseurl}}/vector-search/ai-search/building-agentic-search-flows/) Once your workflow is finalized, you can export it as a [workflow template]({{site.url}}{{site.baseurl}}/automating-configurations/workflow-templates/) to recreate identical resources across multiple clusters. @@ -57,7 +57,6 @@ The workflow editor is organized like an integrated development environment (IDE - **Resources**: Lists OpenSearch resources linked to the workflow, including up to one ingest pipeline, one index, and one search pipeline. To view resource details, select **Inspect**. - **Preview**: A read-only visualization of how data moves through your ingest and search flows. As you make changes to your flow, this view updates automatically. You can also switch to the **JSON** tab to see the underlying template configuration. - ## Example: Semantic search with RAG The following example uses a deployed [Titan Text Embedding](https://docs.aws.amazon.com/bedrock/latest/userguide/titan-embedding-models.html) model and an [Anthropic Claude model hosted on Amazon Bedrock](https://aws.amazon.com/bedrock/claude/) to build an [ingest pipeline]({{site.url}}{{site.baseurl}}/ingest-pipelines/), [index]({{site.url}}{{site.baseurl}}/getting-started/intro/#index), and [search pipeline]({{site.url}}{{site.baseurl}}/search-plugins/search-pipelines/index/) for performing vector search and RAG. @@ -107,10 +106,12 @@ We strongly recommend using models with full model interfaces. For a list of exa ![Test search flow]({{site.url}}{{site.baseurl}}/images/dashboards-flow-framework/search-test-flow.png) 12. To view the search results, select **Run test**. You can view the results either as a formatted list of hits or as the raw JSON search response. 13. Depending on your use case, you can modify configurations in the following ways: + - Experiment with different query parameters. - Try different queries. - Modify existing processors under **Transform query** or **Transform results**. - Add or remove processors under **Transform query** or **Transform results**. + 14. To export your workflow, select **Export** in the header. The displayed data represents the [Workflow template]({{site.url}}{{site.baseurl}}/automating-configurations/workflow-templates/), which contains the full configuration for the OpenSearch resources you've created, including the ingest pipeline, index, and search pipeline. You can download the template in JSON or YAML format by selecting the button on the right. To build identical resources in other OpenSearch clusters, use the [Provision Workflow API]({{site.url}}{{site.baseurl}}/automating-configurations/api/provision-workflow/). ## Advanced data transformations diff --git a/images/dashboards-flow-framework/agent-configuration.png b/images/dashboards-flow-framework/agent-configuration.png new file mode 100644 index 0000000000000000000000000000000000000000..bc8175257e6b3fa0804e7f51aac7cdc3cb74084c GIT binary patch literal 98020 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%0Aq_R0{cH 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 B4@&?5 literal 0 HcmV?d00001 diff --git a/images/dashboards-flow-framework/agent-searching.png b/images/dashboards-flow-framework/agent-searching.png new file mode 100644 index 0000000000000000000000000000000000000000..521c3f473a0d02e291df55cb4dbefe8a5dd2c044 GIT binary patch literal 39483 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 YqN!J%g7TR606#Z1bgz|Oz4Pe*0KGMrF#rGn literal 0 HcmV?d00001 diff --git a/images/dashboards-flow-framework/agentic-search-agent-query.png b/images/dashboards-flow-framework/agentic-search-agent-query.png new file mode 100644 index 0000000000000000000000000000000000000000..b0174910f7d111e15aaca93c4c3f7b6f90aa91d8 GIT binary patch literal 108977 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 QRR$pNboFyt=akR{07A>FVgLXD literal 0 HcmV?d00001 diff --git a/images/dashboards-flow-framework/new-workflow-page.png b/images/dashboards-flow-framework/new-workflow-page.png index e51c42ec7d833d3dc789725b7918aacbe098d45f..5daaef1dafdbb1d048d5bd502a2854c3653a6dfe 100644 GIT binary patch literal 227471 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

7p3BH44-Z<+Zv^ls+q%?y;OW+f$f!U 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

JC;5{%Q=ZSIW*aNXF?o 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 z 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%0AwDN_p{F4DM@4D^l; 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 Date: Tue, 30 Sep 2025 13:36:30 -0700 Subject: [PATCH 03/18] Add Agentic Search UI docs Signed-off-by: rithin-pullela-aws --- _vector-search/ai-search/building-agentic-search-flows.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_vector-search/ai-search/building-agentic-search-flows.md b/_vector-search/ai-search/building-agentic-search-flows.md index 7736681203..8e11b114ca 100644 --- a/_vector-search/ai-search/building-agentic-search-flows.md +++ b/_vector-search/ai-search/building-agentic-search-flows.md @@ -17,7 +17,7 @@ This is an experimental UI feature. For updates on the progress of the feature o Agentic search lets you ask questions in natural language and have OpenSearch agents plan and execute the retrieval automatically. The AI Search Flows plugin offers an intuitive user interface for configuring agents, equipping agents with different tools, and executing agentic searches. **Prerequisite: Provision ML resources**
-If you'd like to configure new agents, be sure to first provision appropriate models. For working examples, see [here]({{site.url}}{{site.baseurl}}/TODO/). +If you'd like to configure new agents, be sure to first provision appropriate models. For working examples, see [Model configurations]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/#model-configurations). **Prerequisite: Ingest data**
Ensure you have a sufficient number of documents in your cluster to reasonably evaluate your agentic searches. @@ -46,7 +46,7 @@ The workflow editor is organized into two main components: ## Example: Product search with GPT-5 -This example is using a deployed OpenAI GPT-5 model as specified [here]({{site.url}}{{site.baseurl}}/TODO/). +This example is using a deployed OpenAI GPT-5 model as specified [here]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/#gpt-5-recommended). {: .note} 1. On the **Workflows** page, select the **New workflow** tab, as shown in the following image. From 0352ca04a566627d84f1387640eb19df686f1b35 Mon Sep 17 00:00:00 2001 From: rithin-pullela-aws Date: Tue, 30 Sep 2025 14:24:43 -0700 Subject: [PATCH 04/18] fix links and minor rewording Signed-off-by: rithin-pullela-aws --- _query-dsl/specialized/agentic.md | 2 +- .../agentic-query-translator-processor.md | 2 +- .../ai-search/agentic-search/agent-converse.md | 6 +++--- .../ai-search/agentic-search/agent-customization.md | 6 +++--- _vector-search/ai-search/agentic-search/flow-agent.md | 2 +- _vector-search/ai-search/agentic-search/index.md | 2 +- .../ai-search/agentic-search/neural-search.md | 6 +++--- .../ai-search/agentic-search/search-templates.md | 10 +++++----- 8 files changed, 18 insertions(+), 18 deletions(-) diff --git a/_query-dsl/specialized/agentic.md b/_query-dsl/specialized/agentic.md index c78af14b65..4eb97ef23e 100644 --- a/_query-dsl/specialized/agentic.md +++ b/_query-dsl/specialized/agentic.md @@ -9,7 +9,7 @@ nav_order: 2 **Introduced 3.2** {: .label .label-purple } -Use the `agentic` query to ask questions in natural language and have OpenSearch automatically plan and execute the retrieval. The `agentic` query works in conjunction with a preconfigured agent that reads the question, plans the search, and returns relevant results. For more information about agentic search, see [Agentic search]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/). +Use the `agentic` query to ask questions in natural language and have OpenSearch automatically plan and execute the retrieval. The `agentic` query works in conjunction with a preconfigured agent that reads the question, plans the search, and returns relevant results. For more information about agentic search, see [Agentic search]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/). **Prerequisite**
Before using an `agentic` query, you must configure an agent with the [`QueryPlanningTool`]({{site.url}}{{site.baseurl}}/ml-commons-plugin/agents-tools/tools/query-planning-tool/) and create a search pipeline with an `agentic_query_translator` search request processor. diff --git a/_search-plugins/search-pipelines/agentic-query-translator-processor.md b/_search-plugins/search-pipelines/agentic-query-translator-processor.md index ce119059dc..c644f3c175 100644 --- a/_search-plugins/search-pipelines/agentic-query-translator-processor.md +++ b/_search-plugins/search-pipelines/agentic-query-translator-processor.md @@ -11,7 +11,7 @@ grand_parent: Search pipelines **Introduced 3.2** {: .label .label-purple } -The `agentic_query_translator` search request processor enables natural language search by translating user queries into OpenSearch query domain-specific language (DSL) queries using machine learning (ML) agents. It works with [agentic search queries]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search) to provide conversational search capabilities: +The `agentic_query_translator` search request processor enables natural language search by translating user queries into OpenSearch query domain-specific language (DSL) queries using machine learning (ML) agents. It works with [agentic search queries]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/) to provide conversational search capabilities: 1. The processor sends the user's natural language query to the specified ML agent. 2. The agent translates the query into OpenSearch DSL. diff --git a/_vector-search/ai-search/agentic-search/agent-converse.md b/_vector-search/ai-search/agentic-search/agent-converse.md index 9d3218467e..8df461b72f 100644 --- a/_vector-search/ai-search/agentic-search/agent-converse.md +++ b/_vector-search/ai-search/agentic-search/agent-converse.md @@ -13,7 +13,7 @@ Enable monitoring and conversation continuation using the `agentic_context` resp ## Prerequisites -- An agent is registered and configured as in Agent customization +- An agent is registered and configured as descrived in [Agent customization]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/#complete-agent-configuration) - The agent includes the QueryPlanningTool ## Setup: Create Search Pipeline @@ -91,8 +91,8 @@ GET /_search?search_pipeline=agentic-pipeline ### Prerequisites: Register Models -1. **Register a model for the Agent** - This model will be used by the conversational agent for reasoning and tool orchestration -2. **Register a model for Query Planning Tool** - This model will be used specifically by the QueryPlanningTool to generate OpenSearch DSL queries +1. **[Register a model for the Agent]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-4-create-a-model-for-conversational-agent)** - This model will be used by the conversational agent for reasoning and tool orchestration +2. **[Register a model for Query Planning Tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-3-create-a-model-for-query-planning-tool)** - This model will be used specifically by the QueryPlanningTool to generate OpenSearch DSL queries ### 1. Create product index diff --git a/_vector-search/ai-search/agentic-search/agent-customization.md b/_vector-search/ai-search/agentic-search/agent-customization.md index c55ee0a663..1fe92ab61b 100644 --- a/_vector-search/ai-search/agentic-search/agent-customization.md +++ b/_vector-search/ai-search/agentic-search/agent-customization.md @@ -130,7 +130,7 @@ You can add any tools from the [ML Commons Tools documentation]({{site.url}}{{si The conversational agent will automatically select and orchestrate the appropriate tools based on the query context. -**Complete agent configuration:** +**Complete agent configuration:** {#complete-agent-configuration} ```json POST /_plugins/_ml/agents/_register @@ -141,8 +141,7 @@ POST /_plugins/_ml/agents/_register "llm": { "model_id": "your-conversational-model-id", "parameters": { - "max_iteration": 15, - "embedding_model_id": "your-embedding-model-id" + "max_iteration": 15 } }, "memory": { @@ -198,6 +197,7 @@ GET /_search?search_pipeline=agentic-pipeline {% include copy-curl.html %} The agent will automatically discover product indices, analyze their structure, and generate appropriate queries. + **Performance consideration**: When you don't specify an index in your search query, the search runs against all shards in the cluster, which can be expensive. For better performance, specify the target index when possible. ## Prompt engineering and customization diff --git a/_vector-search/ai-search/agentic-search/flow-agent.md b/_vector-search/ai-search/agentic-search/flow-agent.md index 5618ccbe92..64abe1e3b5 100644 --- a/_vector-search/ai-search/agentic-search/flow-agent.md +++ b/_vector-search/ai-search/agentic-search/flow-agent.md @@ -34,7 +34,7 @@ Before using a flow agent, you need to: 3. **Register a model for Query Planner Tool (QPT)** - See [Step 3: Create a model for Query Planning tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-3-create-a-model-for-query-planning-tool) for detailed instructions. + See [Step 3: Create a model for Query Planning tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/#step-3-create-a-model-for-query-planning-tool) for detailed instructions. 4. **Register a flow agent** ```json diff --git a/_vector-search/ai-search/agentic-search/index.md b/_vector-search/ai-search/agentic-search/index.md index 7ec409632e..ad09580219 100644 --- a/_vector-search/ai-search/agentic-search/index.md +++ b/_vector-search/ai-search/agentic-search/index.md @@ -7,7 +7,7 @@ has_children: true --- # Agentic search -Introduced 3.2 +**Introduced 3.2** {: .label .label-purple } Agentic search lets users ask questions in natural language and have OpenSearch plan and execute the retrieval automatically. A preconfigured **agent** reads the question, plans the search, and returns relevant results. diff --git a/_vector-search/ai-search/agentic-search/neural-search.md b/_vector-search/ai-search/agentic-search/neural-search.md index e26abdda7b..e950ff4633 100644 --- a/_vector-search/ai-search/agentic-search/neural-search.md +++ b/_vector-search/ai-search/agentic-search/neural-search.md @@ -9,7 +9,7 @@ has_children: false # Neural Search -Neural is a type of DSL query that requires a `model_id` to perform semantic search on KNN indices. You can provide the embedding model ID during the registration of the agent, and the Query Planner Tool reads this embedding model ID and produces a neural query when the question requires it. This example demonstrates how agentic search can intelligently generate neural DSL queries by providing the embedding model ID in multiple ways - during agent registration, or even directly in your question. +`neural` is a type of DSL claude that requires a `model_id` to perform semantic search on KNN indices (when not model id is not directly associated with the index). To make Agentic Search generate neural queries with `model_id` field, you can provide the embedding model ID during the registration of the agent, and the Query Planner Tool reads this embedding model ID and produces a neural query when the question requires it. This example demonstrates how agentic search can intelligently generate neural DSL queries by providing the embedding model ID in multiple ways - during agent registration, or even directly in your `query_text`. ## Complete Example: Neural DSL Generation with Agentic Search @@ -141,8 +141,8 @@ POST /_bulk Register two models as described in the [Agentic Search setup]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/): -1. **[Register a model for the Agent]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/#step-4-create-a-model-for-conversational-agent)** - Step 4 -2. **[Register a model for Query Planning Tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/#step-3-create-a-model-for-query-planning-tool)** - Step 3 +1. **[Register a model for the Agent]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-4-create-a-model-for-conversational-agent)** +2. **[Register a model for Query Planning Tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-3-create-a-model-for-query-planning-tool)** ### Step 6: Create Agent with Embedding Model ID diff --git a/_vector-search/ai-search/agentic-search/search-templates.md b/_vector-search/ai-search/agentic-search/search-templates.md index f88b5ab2a2..ff3120aeca 100644 --- a/_vector-search/ai-search/agentic-search/search-templates.md +++ b/_vector-search/ai-search/agentic-search/search-templates.md @@ -174,10 +174,10 @@ POST /_scripts/store_sum_skus Refer to these to register query planner model and the agent model: -- [Create a model for Query Planning tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-3-create-a-model-for-query-planning-tool) -- [Create a Model for Conversational Agent]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-4-create-a-model-for-conversational-agent) -- [Create an Agent]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-5-create-an-agent) -- [Create a search pipeline]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-6-create-a-search-pipeline) +- [Create a model for Query Planning tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/#step-3-create-a-model-for-query-planning-tool) +- [Create a Model for Conversational Agent]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/#step-4-create-a-model-for-conversational-agent) +- [Create an Agent]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/#step-5-create-an-agent) +- [Create a search pipeline]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/#step-6-create-a-search-pipeline) ```json { @@ -225,7 +225,7 @@ Refer to these to register query planner model and the agent model: Register the search pipeline before performing the query: -- [Create a search pipeline]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-6-create-a-search-pipeline) +- [Create a search pipeline]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/#step-6-create-a-search-pipeline) **Agentic Search Query:** ```json From fb80019577ad5e108f31395f26ee69045d3cdfb9 Mon Sep 17 00:00:00 2001 From: rithin-pullela-aws Date: Tue, 30 Sep 2025 15:31:01 -0700 Subject: [PATCH 05/18] fix dead links and reword Signed-off-by: rithin-pullela-aws --- _query-dsl/specialized/agentic.md | 4 ++-- .../agentic-context-processor.md | 2 +- .../agentic-query-translator-processor.md | 2 +- .../ai-search/agentic-search/agent-converse.md | 6 +++--- .../agentic-search/agent-customization.md | 8 +++----- .../ai-search/agentic-search/flow-agent.md | 2 +- .../ai-search/agentic-search/neural-search.md | 4 ++-- .../agentic-search/search-templates.md | 17 +++-------------- 8 files changed, 16 insertions(+), 29 deletions(-) diff --git a/_query-dsl/specialized/agentic.md b/_query-dsl/specialized/agentic.md index 4eb97ef23e..1c50e285ab 100644 --- a/_query-dsl/specialized/agentic.md +++ b/_query-dsl/specialized/agentic.md @@ -48,10 +48,10 @@ When executed, the agentic search request performs the following steps: 3. The generated DSL query is executed as a search request in OpenSearch. 4. Returns the search results based on the generated query. -For a complete example, see [Agentic search]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/). +For a complete example, see [Agentic search]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/). ## Next steps -- Learn how to set up agentic search in [Agentic search]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/). +- Learn how to set up agentic search in [Agentic search]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/). - Learn about configuring agents in [Agents]({{site.url}}{{site.baseurl}}/ml-commons-plugin/agents-tools/agents/). - Learn about the [QueryPlanningTool]({{site.url}}{{site.baseurl}}/ml-commons-plugin/agents-tools/tools/query-planning-tool/). \ No newline at end of file diff --git a/_search-plugins/search-pipelines/agentic-context-processor.md b/_search-plugins/search-pipelines/agentic-context-processor.md index 1ba822103a..c615d821b0 100644 --- a/_search-plugins/search-pipelines/agentic-context-processor.md +++ b/_search-plugins/search-pipelines/agentic-context-processor.md @@ -98,6 +98,6 @@ The response contains the steps taken by the agent to translate the query, the m ## Related pages -- [Agentic search queries]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search) +- [Agentic search queries]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/) - [Agents]({{site.url}}{{site.baseurl}}/ml-commons-plugin/agents-tools/agents/index/) - [Agentic query translator processor]({{site.url}}{{site.baseurl}}/search-plugins/search-pipelines/agentic-query-translator-processor/) \ No newline at end of file diff --git a/_search-plugins/search-pipelines/agentic-query-translator-processor.md b/_search-plugins/search-pipelines/agentic-query-translator-processor.md index c644f3c175..0fb500a95f 100644 --- a/_search-plugins/search-pipelines/agentic-query-translator-processor.md +++ b/_search-plugins/search-pipelines/agentic-query-translator-processor.md @@ -127,6 +127,6 @@ The response contains the matching documents: ## Related pages -- [Agentic search queries]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search) +- [Agentic search queries]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/) - [Agents]({{site.url}}{{site.baseurl}}/ml-commons-plugin/agents-tools/agents/index/) - [Agentic context processor]({{site.url}}{{site.baseurl}}/search-plugins/search-pipelines/agentic-context-processor/) \ No newline at end of file diff --git a/_vector-search/ai-search/agentic-search/agent-converse.md b/_vector-search/ai-search/agentic-search/agent-converse.md index 8df461b72f..a4ec5a14b8 100644 --- a/_vector-search/ai-search/agentic-search/agent-converse.md +++ b/_vector-search/ai-search/agentic-search/agent-converse.md @@ -13,7 +13,7 @@ Enable monitoring and conversation continuation using the `agentic_context` resp ## Prerequisites -- An agent is registered and configured as descrived in [Agent customization]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/#complete-agent-configuration) +- An agent is registered and configured as described in [Agent customization]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/) - The agent includes the QueryPlanningTool ## Setup: Create Search Pipeline @@ -91,8 +91,8 @@ GET /_search?search_pipeline=agentic-pipeline ### Prerequisites: Register Models -1. **[Register a model for the Agent]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-4-create-a-model-for-conversational-agent)** - This model will be used by the conversational agent for reasoning and tool orchestration -2. **[Register a model for Query Planning Tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-3-create-a-model-for-query-planning-tool)** - This model will be used specifically by the QueryPlanningTool to generate OpenSearch DSL queries +1. **[Register a model for the Agent]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/#step-4-create-a-model-for-conversational-agent)** - This model will be used by the conversational agent for reasoning and tool orchestration +2. **[Register a model for Query Planning Tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/#step-3-create-a-model-for-query-planning-tool)** - This model will be used specifically by the QueryPlanningTool to generate OpenSearch DSL queries ### 1. Create product index diff --git a/_vector-search/ai-search/agentic-search/agent-customization.md b/_vector-search/ai-search/agentic-search/agent-customization.md index 1fe92ab61b..c7870d8c17 100644 --- a/_vector-search/ai-search/agentic-search/agent-customization.md +++ b/_vector-search/ai-search/agentic-search/agent-customization.md @@ -118,19 +118,17 @@ POST /_plugins/_ml/connectors/_create ## Tool orchestration -### Essential tools for intelligent search - -#### QueryPlanningTool (Required) +### QueryPlanningTool (Required) The [`QueryPlanningTool`]({{site.url}}{{site.baseurl}}/ml-commons-plugin/agents-tools/tools/query-planning-tool/) is mandatory for agentic search functionality. It translates natural language queries into OpenSearch DSL. -#### Additional tools +### Additional tools You can add any tools from the [ML Commons Tools documentation]({{site.url}}{{site.baseurl}}/ml-commons-plugin/agents-tools/tools/index/) to enhance your agent's capabilities. The conversational agent will automatically select and orchestrate the appropriate tools based on the query context. -**Complete agent configuration:** {#complete-agent-configuration} +#### Complete agent configuration ```json POST /_plugins/_ml/agents/_register diff --git a/_vector-search/ai-search/agentic-search/flow-agent.md b/_vector-search/ai-search/agentic-search/flow-agent.md index 64abe1e3b5..b1dc9c29e0 100644 --- a/_vector-search/ai-search/agentic-search/flow-agent.md +++ b/_vector-search/ai-search/agentic-search/flow-agent.md @@ -98,7 +98,7 @@ GET products-index/_search?search_pipeline=agentic-pipeline **Key differences for flow agents:** - **Must specify index name**: Unlike conversational agents, you must include the index name in the URL path - **No memory_id**: Flow agents don't support conversation memory, so you cannot use `memory_id` parameter -- **Simplified response**: No `agent_steps_summary` or detailed reasoning in the response +- **Limited response details**: No `agent_steps_summary` or detailed reasoning in the response **Example response:** ```json diff --git a/_vector-search/ai-search/agentic-search/neural-search.md b/_vector-search/ai-search/agentic-search/neural-search.md index e950ff4633..e1de00f3a3 100644 --- a/_vector-search/ai-search/agentic-search/neural-search.md +++ b/_vector-search/ai-search/agentic-search/neural-search.md @@ -141,8 +141,8 @@ POST /_bulk Register two models as described in the [Agentic Search setup]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/): -1. **[Register a model for the Agent]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-4-create-a-model-for-conversational-agent)** -2. **[Register a model for Query Planning Tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-3-create-a-model-for-query-planning-tool)** +1. **[Register a model for the Agent]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/#step-4-create-a-model-for-conversational-agent)** +2. **[Register a model for Query Planning Tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/#step-3-create-a-model-for-query-planning-tool)** ### Step 6: Create Agent with Embedding Model ID diff --git a/_vector-search/ai-search/agentic-search/search-templates.md b/_vector-search/ai-search/agentic-search/search-templates.md index ff3120aeca..b1eb453f68 100644 --- a/_vector-search/ai-search/agentic-search/search-templates.md +++ b/_vector-search/ai-search/agentic-search/search-templates.md @@ -157,7 +157,7 @@ POST /_scripts/store_sum_skus "m": { "bucket_script": { "buckets_path": { "x": "i>f>q" }, - "script": { "source": "params.x >= {{min}}{{^min}}10{{/min}} ? 1 : 0" } + "script": { "source": "{% raw %}params.x >= {{min}}{{^min}}10{{/min}} ? 1 : 0{% endraw %}" } } } } @@ -170,14 +170,12 @@ POST /_scripts/store_sum_skus ``` {% include copy-curl.html %} -### Step 5: Register Query Planner Tool with Search Templates +### Step 5: Register Agent with Query Planner Tool (with Search Templates) Refer to these to register query planner model and the agent model: - [Create a model for Query Planning tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/#step-3-create-a-model-for-query-planning-tool) - [Create a Model for Conversational Agent]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/#step-4-create-a-model-for-conversational-agent) -- [Create an Agent]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/#step-5-create-an-agent) -- [Create a search pipeline]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/#step-6-create-a-search-pipeline) ```json { @@ -296,16 +294,7 @@ POST /stores/_search?search_pipeline=my_pipeline } ``` -This error demonstrates that the LLM struggled to generate a valid query for this complex scenario. The failure occurred because: - -- The query involves nested aggregations with multiple SKUs -- Complex filtering logic across inventory arrays -- Script-based calculations with type handling - -LLMs often encounter issues with: -- Incorrect `_source` iteration patterns -- Misuse of `doc` values in scripts -- Type mismatches causing runtime `script_exception` errors +This error demonstrates that the LLM struggled to generate a valid query for this complex scenario. The failure occurred because the query involves advanced features like scripts and complex aggregations that are difficult for LLMs to generate correctly. Let's now demonstrate how search templates solve this problem: From 92ba62752f807989bd0c8cacdcc374ecfe9417df Mon Sep 17 00:00:00 2001 From: rithin-pullela-aws Date: Wed, 1 Oct 2025 15:00:39 -0700 Subject: [PATCH 06/18] Address comments + improve QPT doc Signed-off-by: rithin-pullela-aws --- .../agents-tools/tools/query-planning-tool.md | 260 ++++++++++++++---- _query-dsl/specialized/agentic.md | 8 +- .../agentic-search/agent-converse.md | 8 +- .../ai-search/agentic-search/flow-agent.md | 3 +- .../ai-search/agentic-search/index.md | 6 + 5 files changed, 230 insertions(+), 55 deletions(-) diff --git a/_ml-commons-plugin/agents-tools/tools/query-planning-tool.md b/_ml-commons-plugin/agents-tools/tools/query-planning-tool.md index ac035720e2..c8f8819913 100644 --- a/_ml-commons-plugin/agents-tools/tools/query-planning-tool.md +++ b/_ml-commons-plugin/agents-tools/tools/query-planning-tool.md @@ -14,7 +14,7 @@ grand_parent: Agents and tools {: .label .label-purple } -The `QueryPlanningTool` generates an OpenSearch query domain-specific language (DSL) query from a natural language question. It is a core component of [agentic search]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/), which enables natural language query processing through agent-driven workflows. +The `QueryPlanningTool` generates an OpenSearch query domain-specific language (DSL) query from a natural language question. It is a core component of [agentic search]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/), which enables natural language query processing through agent-driven workflows. The `QueryPlanningTool` supports two approaches for generating DSL queries from natural language questions: @@ -24,10 +24,61 @@ The `QueryPlanningTool` supports two approaches for generating DSL queries from The `user_templates` approach is particularly useful when you have established query patterns for your specific use case or domain: it helps the LLM to generate queries that follow your preferred structure and to use appropriate field names from your index mappings. -## Step 1: Register and deploy a model +## Step 1: Create an index and ingest sample data + +First, create an index for the iris dataset: + +```json +PUT /iris-index +{ + "mappings": { + "properties": { + "petal_length_in_cm": { + "type": "float" + }, + "petal_width_in_cm": { + "type": "float" + }, + "sepal_length_in_cm": { + "type": "float" + }, + "sepal_width_in_cm": { + "type": "float" + }, + "species": { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + } + } + } +} +``` +{% include copy-curl.html %} + +Next, ingest sample documents into the index: + +```json +POST _bulk +{ "index": { "_index": "iris-index", "_id": "1" } } +{ "petal_length_in_cm": 1.4, "petal_width_in_cm": 0.2, "sepal_length_in_cm": 5.1, "sepal_width_in_cm": 3.5, "species": "setosa" } +{ "index": { "_index": "iris-index", "_id": "2" } } +{ "petal_length_in_cm": 4.5, "petal_width_in_cm": 1.5, "sepal_length_in_cm": 6.4, "sepal_width_in_cm": 2.9, "species": "versicolor" } +{ "index": { "_index": "iris-index", "_id": "3" } } +{ "petal_length_in_cm": 6.0, "petal_width_in_cm": 2.5, "sepal_length_in_cm": 5.9, "sepal_width_in_cm": 3.0, "species": "virginica" } +``` +{% include copy-curl.html %} + +## Step 2: Register and deploy a model The following request registers a remote model from Amazon Bedrock and deploys it to your cluster. The API call creates the connector and model in one step. Replace the `region`, `access_key`, `secret_key`, and `session_token` with your own values. You can use any model that supports the `converse` API, such as [Anthropic Claude 4](https://www.anthropic.com/news/claude-4) or [GPT 5](https://openai.com/index/introducing-gpt-5). You can use other model providers by creating a connector to this model (see [Connector blueprints]({{site.url}}{{site.baseurl}}/ml-commons-plugin/remote-models/connectors/#connector-blueprints)). +**Important**: When creating connectors for the QueryPlanningTool, the request body must include parameters named `query_planner_system_prompt` and `query_planner_user_prompt`. These parameter names are required for the tool to properly inject the system and user prompts into the model's request. The examples below demonstrate the correct parameter naming conventions. + The following example registers and deploys the Anthropic Claude 4 model: ```json @@ -44,7 +95,8 @@ POST /_plugins/_ml/models/_register?deploy=true "parameters": { "region": "us-east-1", "service_name": "bedrock", - "model": "us.anthropic.claude-sonnet-4-20250514-v1:0" + "model": "us.anthropic.claude-sonnet-4-20250514-v1:0", + "response_filter": "$.output.message.content[0].text" }, "credential": { "access_key": "your-aws-access-key", @@ -113,7 +165,7 @@ OpenSearch responds with the model ID: } ``` -## Step 2: Register an agent +## Step 3: Register an agent You can use any [OpenSearch agent type]({{site.url}}{{site.baseurl}}/ml-commons-plugin/agents-tools/agents/) to run the `QueryPlanningTool`. The following example uses a `flow` agent, which runs a sequence of tools in order and returns the last tool's output. @@ -130,7 +182,6 @@ POST /_plugins/_ml/agents/_register "tools": [ { "type": "QueryPlanningTool", - "description": "A general tool to answer any question.", "parameters": { "model_id": "ANiSxJgBOh0h20Y9XYXl" } @@ -169,7 +220,7 @@ POST /_scripts/flower_species_search_template {% include copy-curl.html %} ```json -POST /_scripts/flower_species_search_template_2 +POST /_scripts/flower_petal_length_range_template { "script": { "lang": "mustache", @@ -177,8 +228,11 @@ POST /_scripts/flower_species_search_template_2 "from": "{% raw %} {{from}}{{^from}}0{{/from}} {% endraw %} ", "size": "{% raw %} {{size}}{{^size}}10{{/size}} {% endraw %} ", "query": { - "term": { - "species": "{% raw %} {{species}} {% endraw %} " + "range": { + "petal_length_in_cm": { + "gte": "{% raw %} {{min_length}} {% endraw %} ", + "lte": "{% raw %} {{max_length}} {% endraw %} " + } } } } @@ -208,8 +262,8 @@ POST /_plugins/_ml/agents/_register "template_description": "This template searches for flowers that match the given species using a match query." }, { - "template_id": "flower_species_search_template_2", - "template_description": "This template searches for flowers that match the given species using a term query." + "template_id": "flower_petal_length_range_template", + "template_description": "This template searches for flowers within a specific petal length range using a range query." } ] } @@ -219,7 +273,7 @@ POST /_plugins/_ml/agents/_register ``` {% include copy-curl.html %} -The LLM uses the `template_description` as additional context to help it choose the best template to use when generating an OpenSearch DSL query based on the user-provided `question`. If the LLM determines that none of the provided search templates are applicable to the given `question`, then the LLM uses a default `match_all` query. Note that the LLM doesn't directly populate template variables or render the template; instead, it analyzes the template's query structure and uses it as a guide to generate a new, contextually appropriate OpenSearch DSL query. +The LLM uses the `template_description` as the only context to help it choose the best template to use when generating an OpenSearch DSL query based on the user-provided `question`. Make sure to provide a good description of the templates to help LLM make right choices. Note that the LLM doesn't directly populate template variables or render the template; instead, it analyzes the template's query structure and uses it as a guide to generate a new, contextually appropriate OpenSearch DSL query. For parameter descriptions, see [Register parameters](#register-parameters). @@ -231,7 +285,7 @@ OpenSearch responds with an agent ID: } ``` -## Step 3: Execute the agent +## Step 4: Execute the agent Execute the agent by sending the following request: @@ -239,9 +293,8 @@ Execute the agent by sending the following request: POST /_plugins/_ml/agents/RNjQi5gBOh0h20Y9-RX1/_execute { "parameters": { - "query_planner_user_prompt": """You are an OpenSearch Query DSL generation assistant, generate an OpenSearch Query DSL to retrieve the most relevant documents for the user provided natural language question: ${parameters.question}, please return the query dsl only, no other texts. Please don't use size:0, because that would limit the query to return no result. please return a query to find the most relevant documents related to users question. For example: {"query":{"match":{"species":"setosa"}}} -""", - "question": "How many iris flowers of type setosa are there?" + "question": "How many iris flowers of type setosa are there?", + "index_name": "iris-index" } } @@ -280,59 +333,164 @@ Parameter | Type | Required/Optional | Description ## Execute parameters -The execution parameters for the `QueryPlanningTool` are flexible and depend on both the tool's configuration and the underlying language model's requirements as defined in its connector. - -There are three layers of parameters to consider: +The `QueryPlanningTool` accepts the following execution parameters: -1. **Connector parameters**: When you create a connector, the `request_body` defines the JSON payload sent to the model. This payload can contain variables like `${parameters.prompt}` or `${parameters.query_planner_user_prompt}`. The names of these variables depend on the specific model's API. The `QueryPlanningTool` provides values for these variables. +Parameter | Type | Required/Optional | Description +:--- | :--- | :--- | :--- +`question` | String | Required | Complete natural language query with all necessary context to generate OpenSearch DSL. Include the question, any specific requirements, filters, or constraints. Examples: 'Find all products with price greater than 100 dollars', 'Show me documents about machine learning published in 2023', 'Search for users with status active and age between 25 and 35' +`index_name` | String | Required | The name of the index against which the query needs to be generated. +`embedding_model_id` | String | Optional | The model ID to perform neural search. -2. **Tool parameters**: The `QueryPlanningTool` uses its own set of parameters, such as `query_planner_user_prompt` and `query_planner_system_prompt`, to construct the final string that will be passed to the connector. The tool takes the `query_planner_user_prompt` string and resolves any variables within it, and the resulting string is then used to fill the appropriate variable (for example, `${parameters.query_planner_user_prompt}`) in the connector's `request_body`. +**Note**: During execution, other parameters that were configured either in the connector or in the agent registration can be overridden during the agent execute call. -3. **Prompt variables**: These are the variables inside the `query_planner_user_prompt`, which have the format `${parameters.your_variable_name}`. These must be provided in the `_execute` API call. For example, if your `user_prompt` is "Generate a query for: ${parameters.question}", then you must provide a `question` parameter when you run the agent. +## Customize the prompts -In summary, the required parameters for an `_execute` call are the **prompt variables**. The tool's own parameters (like `query_planner_user_prompt`) can be overridden at execution time to change how the final prompt is constructed. +You can provide your own `query_planner_system_prompt` and `query_planner_user_prompt` to customize how the LLM generates OpenSearch DSL queries. -For example, if you are using the default `query_planner_user_prompt`, it contains the variable `${parameters.question}`. Therefore, `question` becomes a required execution parameter: +**Important**: When creating custom prompts, ensure they include clear output formatting rules to work properly with agentic search. The system prompt should specify that the LLM must return only a valid JSON object without any additional text, code fences, or explanations. +Defalt system prompt: ```json -POST /_plugins/_ml/agents/your_agent_id/_execute -{ - "parameters": { - "question": "How many iris flowers of type setosa are there?" - } -} -``` -{% include copy-curl.html %} +==== PURPOSE ==== +You are an OpenSearch DSL expert. Convert a natural-language question into a strict JSON OpenSearch query body. + +==== RULES ==== +Use only fields present in the provided mapping; never invent names. +Choose query types based on user intent and field types: + +match: single-token full-text on analyzed text fields. + +match_phrase: multi-token phrases on analyzed text fields (search string contains spaces, hyphens, commas, etc.). + +multi_match: when multiple analyzed text fields are equally relevant. + +term / terms: exact match on keyword, numeric, boolean. + +range: numeric/date comparisons (gt, lt, gte, lte). + +bool with must, should, must_not, filter: AND/OR/NOT logic. + +wildcard / prefix on keyword: "starts with" / pattern matching. + +exists: field presence/absence. + +nested query / nested agg: ONLY if the mapping for that exact path (or a parent) has "type":"nested". + +neural: semantic similarity on a 'semantic' or 'knn_vector' field (dense). Use "query_text" and "k"; include "model_id" unless bound in mapping. + +neural (top-level): allowed when it's the only relevance clause needed; otherwise wrap in a bool when combining with filters/other queries. + +Mechanics: + +Put exact constraints (term, terms, range, exists, prefix, wildcard) in bool.filter (non-scoring). Put full-text relevance (match, match_phrase, multi_match) in bool.must. -### Improving query accuracy +Top N items/products/documents: return top hits (set "size": N as an integer) and sort by the relevant metric(s). Do not use aggregations for item lists. -To help the language model generate more accurate query DSL, you can provide additional context within the `query_planner_user_prompt`. This context can include information like: +Neural retrieval size: set "k" ≥ "size" (e.g. heuristic, k = max(size*5, 100) and k<=ef_search). -- Index mappings. -- Relevant field names. -- Sample documents or queries. +Spelling tolerance: match_phrase does NOT support fuzziness; use match or multi_match with "fuzziness": "AUTO" when tolerant matching is needed. -You can pass this information by defining variables in your `query_planner_user_prompt` and providing the corresponding values in the `parameters` of your `_execute` call. +Text operators (OR vs AND): default to OR for natural-language queries; to tighten, use minimum_should_match (e.g., "75%"). Use AND only when every token is essential; if order/adjacency matters, use match_phrase. -**Example of an enriched `query_planner_user_prompt`** +Numeric note: use ONLY integers for size and k (not floats). -Here is an example of how you can structure a `query_planner_user_prompt` to include an index mapping and guide the model to generate a more precise query: +Aggregations (counts, averages, grouped summaries, distributions): +Use aggregations when the user asks for grouped summaries (e.g., counts by category, averages by brand, or top N categories/brands). + +terms on field.keyword or numeric for grouping / top N groups (not items). + +Metric aggs (avg, min, max, sum, stats, cardinality) on numeric fields. + +date_histogram, histogram, range for distributions. + +Always set "size": 0 when only aggregations are needed. + +Use sub-aggregations + order for "top N groups by metric". + +If grouping/filtering exactly on a text field, use its .keyword sub-field when present. + +DATE RULES + +Use range on date/date_nanos in bool.filter. + +Emit ISO 8601 UTC ('Z') bounds; don't set time_zone for explicit UTC. (now is UTC) + +Date math: now±N{y|M|w|d|h|m|s}. + +Rounding: "/UNIT" floors to start (now/d, now/w, now/M, now/y). + +End boundaries: prefer the next unit’s start. + +Formats: only add "format" when inputs aren’t default; epoch_millis allowed. + +Buckets: use date_histogram with calendar_interval or fixed_interval. + +NEURAL / SEMANTIC SEARCH +When to use: conceptual/semantic intent, or when user asks for semantic/neural/vector/embedding search. +When not to use: purely structured/exact queries, or when no semantic/knn_vector field or model_id is available. +How to query: + +Use the "neural" clause against the chosen field. + +Required: "query_text" and "k". + +Model rules: + +For "semantic" fields, omit model_id unless overriding. + +For "knn_vector", include model_id unless default is bound. + +If no model id, do not generate neural clause. + +Top-level allowed if no filters/other queries. Otherwise wrap in bool with filters in bool.filter. + +Size: set "k" ≥ "size" (heuristic: k = max(size*5, 100)). + +FIELD SELECTION & PROXYING +Goal: pick the smallest set of mapping fields that best capture the user's intent. + +When provided, and present in the mapping, prioritize query_fields. + +Proxy Rule: If at least one field is loosely related, proceed with the best proxy; do NOT fallback to match_all due to ambiguity. + +Steps: harvest candidates, pick mapping fields, ignore irrelevant ones. + +Micro Self-Check: verify fields exist; if not, swap to proxies. Only if no relevant fields exist at all, fallback to match_all. + +==== OUTPUT FORMAT ==== + +Return EXACTLY ONE JSON object (valid OpenSearch request body). + +No escapes, no code fences, no quotes around the whole object. + +If nothing relevant exists, return exactly: +{"size":10,"query":{"match_all":{}}} + +==== EXAMPLES ==== +(Then follows Examples 1–13 exactly as in your original text, but without escapes.) + +==== TEMPLATE USE ==== +Use this search template provided by the user as reference to generate the query: ${parameters.template} +Note that this template might contain terms that are not relevant to the question at hand; in that case ignore the template. +``` + +Default User Prompt: ```json -POST /_plugins/_ml/agents/your_agent_id/_execute -{ - "parameters": { - "query_planner_user_prompt": "You are an OpenSearch Query DSL generation expert. Use the following index mapping to inform your query: ${parameters.index_mapping}. Based on this mapping, generate a query for the user's question: ${parameters.question}. Only use fields mentioned in the mapping.", - "question": "Find all movies directed by John Doe", - "index_mapping": """{"properties":{"title":{"type":"text"},"director":{"type":"keyword"},"year":{"type":"integer"}}}""" - } -} +Question: ${parameters.question} +Mapping: ${parameters.index_mapping:-} +Query Fields: ${parameters.query_fields:-} +Sample Document from index: ${parameters.sample_document:-} +In UTC: ${parameters.current_time:-} format: yyyy-MM-dd'T'HH:mm:ss'Z' +Embedding Model ID for Neural Search: ${parameters.embedding_model_id:- not provided} + +==== OUTPUT ==== +GIVE THE OUTPUT PART ONLY IN YOUR RESPONSE (a single JSON object) +Output: ``` -{% include copy-curl.html %} -When passing complex JSON objects like an `index_mapping` as a parameter, ensure that the JSON string is properly escaped to be a valid single-line string within the parent JSON document. -{: .note} + ## Related pages -- [Agentic search]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/) \ No newline at end of file +- [Agentic search]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index) \ No newline at end of file diff --git a/_query-dsl/specialized/agentic.md b/_query-dsl/specialized/agentic.md index 1c50e285ab..d7f19c0a38 100644 --- a/_query-dsl/specialized/agentic.md +++ b/_query-dsl/specialized/agentic.md @@ -12,7 +12,13 @@ nav_order: 2 Use the `agentic` query to ask questions in natural language and have OpenSearch automatically plan and execute the retrieval. The `agentic` query works in conjunction with a preconfigured agent that reads the question, plans the search, and returns relevant results. For more information about agentic search, see [Agentic search]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/). **Prerequisite**
-Before using an `agentic` query, you must configure an agent with the [`QueryPlanningTool`]({{site.url}}{{site.baseurl}}/ml-commons-plugin/agents-tools/tools/query-planning-tool/) and create a search pipeline with an `agentic_query_translator` search request processor. +Before using an `agentic` query, you must: + +1. Configure an agent with the [`QueryPlanningTool`]({{site.url}}{{site.baseurl}}/ml-commons-plugin/agents-tools/tools/query-planning-tool/). The QueryPlanningTool is required for generating DSL queries from natural language questions. +2. Optionally configure the agent with additional tools for enhanced functionality. +3. Create a search pipeline with an `agentic_query_translator` search request processor. + +For detailed setup instructions, see [Agentic search]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/). {: .note} ## Request body fields diff --git a/_vector-search/ai-search/agentic-search/agent-converse.md b/_vector-search/ai-search/agentic-search/agent-converse.md index a4ec5a14b8..6529ac23ff 100644 --- a/_vector-search/ai-search/agentic-search/agent-converse.md +++ b/_vector-search/ai-search/agentic-search/agent-converse.md @@ -9,7 +9,7 @@ has_children: false # Converse and Monitor Agentic Search -Enable monitoring and conversation continuation using the `agentic_context` response processor. This processor provides full visibility into the agent's decision-making process through `agent_steps_summary` and generated OpenSearch DSL queries, while also providing `memory_id` which can be used to continue the conversation. +Enable monitoring and conversation continuation using the `agentic_context` response processor. This processor provides full visibility into the agent's decision-making process through `agent_steps_summary` and generated OpenSearch DSL queries through `dsl_query`, while also providing `memory_id` which can be used to continue the conversation. ## Prerequisites @@ -98,7 +98,11 @@ GET /_search?search_pipeline=agentic-pipeline ```json PUT /products-index -{ +{ + "settings": { + "number_of_shards": "4", + "number_of_replicas": "2" + }, "mappings": { "properties": { "product_name": { "type": "text" }, diff --git a/_vector-search/ai-search/agentic-search/flow-agent.md b/_vector-search/ai-search/agentic-search/flow-agent.md index b1dc9c29e0..2492b08d98 100644 --- a/_vector-search/ai-search/agentic-search/flow-agent.md +++ b/_vector-search/ai-search/agentic-search/flow-agent.md @@ -9,7 +9,7 @@ has_children: false # Flow agent -The Conversational agent provides great flexibility and supports many use cases. However, you might not need all that functionality for every scenario. You can directly invoke the Query Planner Tool using a flow agent, which reduces the number of LLM calls made, thereby reducing both cost and latency. +The Conversational agent provides great flexibility and supports many use cases. However, if you do need all the advanced functionalities, you can directly invoke the Query Planner Tool using a flow agent, which reduces the number of LLM calls made, thereby reducing both cost and latency. While flow agents are super fast, the flexibility and query quality might not be as high as conversational agents, but they're good enough for most use cases. If latency is important, we highly recommend using the flow agent instead of the Conversational Agent. @@ -160,6 +160,7 @@ GET products-index/_search?search_pipeline=agentic-pipeline - No conversation memory needed **Use Conversational Agent when:** +- Intelligent Search is needed - Multiple tools are needed - Conversation context is important - Maximum query quality is desired \ No newline at end of file diff --git a/_vector-search/ai-search/agentic-search/index.md b/_vector-search/ai-search/agentic-search/index.md index ad09580219..75b6221f6e 100644 --- a/_vector-search/ai-search/agentic-search/index.md +++ b/_vector-search/ai-search/agentic-search/index.md @@ -17,6 +17,12 @@ Before using agentic search, you must configure an agent with the [`QueryPlannin ## Configuring Agentic Search +**UI Configuration**
+You can configure Agents and execute Agentic Search through the UI using AI Search Flows. For detailed instructions, see [Building Agentic Search Flows]({{site.url}}{{site.baseurl}}/vector-search/ai-search/building-agentic-search-flows/). + +**API Configuration**
+To configure Agentic Search via APIs, follow these steps: + 1. [Create an index for ingestion](#step-1-create-an-index-for-ingestion). 2. [Ingest documents into the index](#step-2-ingest-documents-into-the-index). 3. [Create a model for Query Planning tool](#step-3-create-a-model-for-query-planning-tool). From b68a7c6bf8da04142875e8f5fb9394c360cb6e80 Mon Sep 17 00:00:00 2001 From: Fanit Kolchina Date: Mon, 6 Oct 2025 20:55:58 -0400 Subject: [PATCH 07/18] Doc review - part 1 Signed-off-by: Fanit Kolchina --- .../agentic-search/agent-converse.md | 549 ++++++++---------- .../agentic-search/agent-customization.md | 100 ++-- .../ai-search/agentic-search/flow-agent.md | 2 +- .../ai-search/agentic-search/index.md | 289 ++++----- .../ai-search/agentic-search/neural-search.md | 6 +- .../agentic-search/search-templates.md | 24 +- 6 files changed, 477 insertions(+), 493 deletions(-) diff --git a/_vector-search/ai-search/agentic-search/agent-converse.md b/_vector-search/ai-search/agentic-search/agent-converse.md index 6529ac23ff..fee87f54b0 100644 --- a/_vector-search/ai-search/agentic-search/agent-converse.md +++ b/_vector-search/ai-search/agentic-search/agent-converse.md @@ -1,129 +1,59 @@ --- layout: default -title: Converse and Monitor Agentic Search +title: Inspecting agentic search and continuing conversations parent: Agentic search grand_parent: AI search nav_order: 70 has_children: false --- -# Converse and Monitor Agentic Search +# Inspecting agentic search and continuing conversations -Enable monitoring and conversation continuation using the `agentic_context` response processor. This processor provides full visibility into the agent's decision-making process through `agent_steps_summary` and generated OpenSearch DSL queries through `dsl_query`, while also providing `memory_id` which can be used to continue the conversation. +To inspect agent behavior and continue conversations, use the `agentic_context` response processor in addition to the `agentic_query_translator` request processor. The `agentic_query_translator` processor invokes the agent to translate natural language queries into DSL, while the `agentic_context` processor records the agent's execution context. It provides the agent's reasoning steps in `agent_steps_summary`, the generated DSL query in `dsl_query`, and a `memory_id` that enables conversation continuation. ## Prerequisites -- An agent is registered and configured as described in [Agent customization]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/) -- The agent includes the QueryPlanningTool +Before you start, ensure that you have registered and configured an agent. To configure an agent, you must first register two models using these steps: -## Setup: Create Search Pipeline +1. **Follow [Step 4: Create a model for conversational agent]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-4-create-a-model-for-conversational-agent)** -- This model is used by the conversational agent for reasoning and tool orchestration. +2. **Follow [Step 3: Create a model for Query Planning tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-3-create-a-model-for-query-planning-tool)** -- This model is used by the `QueryPlanningTool` to generate OpenSearch DSL queries. -Add the `agentic_query_translator` request processor and `agentic_context` response processor +Then register and configure an agent using [Step 5: Create an agent]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-5-create-an-agent) or see [Customizing agentic search agents]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/) for advanced configurations. The agent must include a `QueryPlanningTool`. -```json -PUT _search/pipeline/agentic-pipeline -{ - "request_processors": [ - { - "agentic_query_translator": { - "agent_id": "your-agent-id" - } - } - ], - "response_processors": [ - { - "agentic_context": { - "agent_steps_summary": true, - "dsl_query": true - } - } - ] -} -``` -{% include copy-curl.html %} +## Step 1: Create a product index -### Sample response structure - -Response would look like this: +Create a sample index with product data that includes various attributes like name, price, color, and category: ```json +PUT /products-index { - "hits": /* Search hits*/, - "ext": { - "agent_steps_summary": "", - "memory_id": "", - "dsl_query": "" - } -} -``` - -### Response values - -The search response includes an `ext` block with the following fields: - -| Field | Purpose | -|-------|---------| -| `agent_steps_summary` | Step-by-step reasoning and tool usage | -| `memory_id` | Conversation context identifier - copy this for follow-up requests | -| `dsl_query` | Generated OpenSearch DSL query | - -The `dsl_query` and the `agent_steps_summary` can be used for monitoring and debugging Agentic Search. - -### Use memory_id to continue conversation - -Add `memory_id` to your subsequent search request to maintain conversation context: - -```json -GET /_search?search_pipeline=agentic-pipeline -{ - "query": { - "agentic": { - "query_text": "Actually, show black ones instead", - "memory_id": "Memory ID from 1st Search Request" - } + "settings": { + "number_of_shards": "4", + "number_of_replicas": "2" + }, + "mappings": { + "properties": { + "product_name": { "type": "text" }, + "description": { "type": "text" }, + "price": { "type": "float" }, + "currency": { "type": "keyword" }, + "rating": { "type": "float" }, + "review_count": { "type": "integer" }, + "in_stock": { "type": "boolean" }, + "color": { "type": "keyword" }, + "size": { "type": "keyword" }, + "category": { "type": "keyword" }, + "brand": { "type": "keyword" }, + "tags": { "type": "keyword" } } + } } ``` {% include copy-curl.html %} +## Step 2: Ingest sample data -## End-to-end example - -### Prerequisites: Register Models - -1. **[Register a model for the Agent]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/#step-4-create-a-model-for-conversational-agent)** - This model will be used by the conversational agent for reasoning and tool orchestration -2. **[Register a model for Query Planning Tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/#step-3-create-a-model-for-query-planning-tool)** - This model will be used specifically by the QueryPlanningTool to generate OpenSearch DSL queries - -### 1. Create product index - -```json -PUT /products-index -{ - "settings": { - "number_of_shards": "4", - "number_of_replicas": "2" - }, - "mappings": { - "properties": { - "product_name": { "type": "text" }, - "description": { "type": "text" }, - "price": { "type": "float" }, - "currency": { "type": "keyword" }, - "rating": { "type": "float" }, - "review_count": { "type": "integer" }, - "in_stock": { "type": "boolean" }, - "color": { "type": "keyword" }, - "size": { "type": "keyword" }, - "category": { "type": "keyword" }, - "brand": { "type": "keyword" }, - "tags": { "type": "keyword" } - } - } -} -``` -{% include copy-curl.html %} - -### 2. Insert sample data +Add sample product documents to the index: ```json POST _bulk @@ -138,272 +68,289 @@ POST _bulk ``` {% include copy-curl.html %} -### 3. Register agent +## Step 3: Register an agent + +Register a conversational agent with multiple tools---`ListIndexTool` to discover available indexes, `IndexMappingTool` to understand index structure, `WebSearchTool` for external data access, and the required `QueryPlanningTool` to generate OpenSearch DSL: ```json POST /_plugins/_ml/agents/_register { - "name": "E-commerce Search Agent", - "type": "conversational", - "description": "Intelligent e-commerce search with product discovery", - "llm": { - "model_id": "your-model-id", - "parameters": { - "max_iteration": 20 - } + "name": "E-commerce Search Agent", + "type": "conversational", + "description": "Intelligent e-commerce search with product discovery", + "llm": { + "model_id": "your-model-id", + "parameters": { + "max_iteration": 20 + } + }, + "memory": { + "type": "conversation_index" + }, + "parameters": { + "_llm_interface": "openai/v1/chat/completions" + }, + "tools": [ + { + "type": "ListIndexTool", + "name": "ListIndexTool" }, - "memory": { - "type": "conversation_index" + { + "type": "IndexMappingTool", + "name": "IndexMappingTool" }, - "parameters": { - "_llm_interface": "openai/v1/chat/completions" + { + "type": "WebSearchTool", + "parameters": { + "engine": "duckduckgo" + } }, - "tools": [ - { - "type": "ListIndexTool", - "name": "ListIndexTool" - }, - { - "type": "IndexMappingTool", - "name": "IndexMappingTool" - }, - { - "type": "WebSearchTool", - "parameters": { - "engine": "duckduckgo" - } - }, - { - "type": "QueryPlanningTool", - "parameters": { - "model_id": "" - } - } - ], - "app_type": "os_chat" + { + "type": "QueryPlanningTool", + "parameters": { + "model_id": "" + } + } + ], + "app_type": "os_chat" } ``` {% include copy-curl.html %} -### 4. Configure Search pipeline +## Step 4: Configure a search pipeline + +Create a search pipeline with both request and response processors. The [`agentic_query_translator` request processor]({{site.url}}{{site.baseurl}}/search-plugins/search-pipelines/agentic-query-translator-processor/) translates natural language queries into OpenSearch DSL, while the [`agentic_context` response processor]({{site.url}}{{site.baseurl}}/search-plugins/search-pipelines/agentic-context-processor/) adds agent execution context information for monitoring and conversation continuity: ```json PUT _search/pipeline/agentic-pipeline { - "request_processors": [ - { - "agentic_query_translator": { - "agent_id": "your-ecommerce-agent-id" - } - } - ], - "response_processors": [ - { - "agentic_context": { - "agent_steps_summary": true, - "dsl_query": true - } - } - ] + "request_processors": [ + { + "agentic_query_translator": { + "agent_id": "your-ecommerce-agent-id" + } + } + ], + "response_processors": [ + { + "agentic_context": { + "agent_steps_summary": true, + "dsl_query": true + } + } + ] } ``` {% include copy-curl.html %} -### 5. Execute Agentic Search +## Step 5: Run an agentic search + +To run a search, send a natural language search query. The agent analyzes the request, discovers appropriate indexes, and generates an optimized DSL query: ```json GET /_search?search_pipeline=agentic-pipeline { - "query": { - "agentic": { - "query_text": "Find me white shoes under 150 dollars" - } + "query": { + "agentic": { + "query_text": "Find me white shoes under 150 dollars" } + } } ``` {% include copy-curl.html %} -**Response:** +The response includes matching products and detailed agent information in the `ext` object, showing the agent's reasoning process and the generated DSL query: + ```json { - "took": 12146, - "timed_out": false, - "_shards": { - "total": 1, - "successful": 1, - "skipped": 0, - "failed": 0 + "took": 12146, + "timed_out": false, + "_shards": { + "total": 1, + "successful": 1, + "skipped": 0, + "failed": 0 + }, + "hits": { + "total": { + "value": 2, + "relation": "eq" }, - "hits": { - "total": { - "value": 2, - "relation": "eq" + "max_score": null, + "hits": [ + { + "_index": "products-index", + "_id": "3", + "_score": 0.0, + "_source": { + "product_name": "Converse Chuck Taylor", + "description": "Classic canvas sneakers", + "price": 65.0, + "currency": "USD", + "rating": 4.2, + "review_count": 2100, + "in_stock": true, + "color": "white", + "size": "8", + "category": "shoes", + "brand": "Converse", + "tags": [ + "casual", + "classic", + "canvas" + ] }, - "max_score": null, - "hits": [ - { - "_index": "products-index", - "_id": "3", - "_score": 0.0, - "_source": { - "product_name": "Converse Chuck Taylor", - "description": "Classic canvas sneakers", - "price": 65.0, - "currency": "USD", - "rating": 4.2, - "review_count": 2100, - "in_stock": true, - "color": "white", - "size": "8", - "category": "shoes", - "brand": "Converse", - "tags": [ - "casual", - "classic", - "canvas" - ] - }, - "sort": [ - 65.0, - 0.0 - ] - }, - { - "_index": "products-index", - "_id": "1", - "_score": 0.0, - "_source": { - "product_name": "Nike Air Max 270", - "description": "Comfortable running shoes with Air Max technology", - "price": 150.0, - "currency": "USD", - "rating": 4.5, - "review_count": 1200, - "in_stock": true, - "color": "white", - "size": "10", - "category": "shoes", - "brand": "Nike", - "tags": [ - "running", - "athletic", - "comfortable" - ] - }, - "sort": [ - 150.0, - 0.0 - ] - } + "sort": [ + 65.0, + 0.0 ] - }, - "ext": { - "agent_steps_summary": "I have these tools available: [ListIndexTool, IndexMappingTool, query_planner_tool]\nFirst I used: query_planner_tool — qpt.question: \"Find white shoes priced under 150 dollars.\"; index_name_provided: \"products-index\"\nValidation: qpt output is valid JSON and aligns with the request for white shoes under 150 dollars in the products-index.", - "memory_id": "XRzFl5kB-5P992SCeeqO", - "dsl_query": "{\"size\":10.0,\"query\":{\"bool\":{\"filter\":[{\"term\":{\"category\":\"shoes\"}},{\"term\":{\"color\":\"white\"}},{\"range\":{\"price\":{\"lte\":150.0}}}]}},\"sort\":[{\"price\":{\"order\":\"asc\"}},{\"_score\":{\"order\":\"desc\"}}]}" - } + }, + { + "_index": "products-index", + "_id": "1", + "_score": 0.0, + "_source": { + "product_name": "Nike Air Max 270", + "description": "Comfortable running shoes with Air Max technology", + "price": 150.0, + "currency": "USD", + "rating": 4.5, + "review_count": 1200, + "in_stock": true, + "color": "white", + "size": "10", + "category": "shoes", + "brand": "Nike", + "tags": [ + "running", + "athletic", + "comfortable" + ] + }, + "sort": [ + 150.0, + 0.0 + ] + } + ] + }, + "ext": { + "agent_steps_summary": "I have these tools available: [ListIndexTool, IndexMappingTool, query_planner_tool]\nFirst I used: query_planner_tool — qpt.question: \"Find white shoes priced under 150 dollars.\"; index_name_provided: \"products-index\"\nValidation: qpt output is valid JSON and aligns with the request for white shoes under 150 dollars in the products-index.", + "memory_id": "XRzFl5kB-5P992SCeeqO", + "dsl_query": "{\"size\":10.0,\"query\":{\"bool\":{\"filter\":[{\"term\":{\"category\":\"shoes\"}},{\"term\":{\"color\":\"white\"}},{\"range\":{\"price\":{\"lte\":150.0}}}]}},\"sort\":[{\"price\":{\"order\":\"asc\"}},{\"_score\":{\"order\":\"desc\"}}]}" + } } ``` -{% include copy-curl.html %} -### 6. Execute Agentic Search With Memory Id: +## Step 6: Run an agentic search with a memory ID + +Send a follow-up query using the `memory_id` from the previous response: + ```json GET /_search?search_pipeline=agentic-pipeline { - "query": { - "agentic": { - "query_text": "Actually, show black ones instead", - "memory_id": "" - } + "query": { + "agentic": { + "query_text": "Actually, show black ones instead", + "memory_id": "" } + } } ``` {% include copy-curl.html %} -**Response:** +The agent remembers the context and applies it to the new request. It successfully interprets "black ones instead" and maintains the $150 budget from the previous context: + ```json { - "took": 8942, - "timed_out": false, - "_shards": { - "total": 1, - "successful": 1, - "skipped": 0, - "failed": 0 + "took": 8942, + "timed_out": false, + "_shards": { + "total": 1, + "successful": 1, + "skipped": 0, + "failed": 0 + }, + "hits": { + "total": { + "value": 1, + "relation": "eq" }, - "hits": { - "total": { - "value": 1, - "relation": "eq" + "max_score": null, + "hits": [ + { + "_index": "products-index", + "_id": "4", + "_score": 0.0, + "_source": { + "product_name": "Puma RS-X", + "description": "Retro-inspired running shoes with modern comfort", + "price": 120.0, + "currency": "USD", + "rating": 4.3, + "review_count": 750, + "in_stock": true, + "color": "black", + "size": "9", + "category": "shoes", + "brand": "Puma", + "tags": [ + "retro", + "running", + "comfortable" + ] }, - "max_score": null, - "hits": [ - { - "_index": "products-index", - "_id": "4", - "_score": 0.0, - "_source": { - "product_name": "Puma RS-X", - "description": "Retro-inspired running shoes with modern comfort", - "price": 120.0, - "currency": "USD", - "rating": 4.3, - "review_count": 750, - "in_stock": true, - "color": "black", - "size": "9", - "category": "shoes", - "brand": "Puma", - "tags": [ - "retro", - "running", - "comfortable" - ] - }, - "sort": [ - 120.0, - 0.0 - ] - } + "sort": [ + 120.0, + 0.0 ] - }, - "ext": { - "agent_steps_summary": "I have these tools available: [ListIndexTool, IndexMappingTool, query_planner_tool]\nFirst I used: query_planner_tool — qpt.question: \"Find black shoes priced under 150 dollars.\"; index_name_provided: \"products-index\"\nValidation: qpt output is valid JSON and aligns with the request for black shoes under 150 dollars in the products-index.", - "memory_id": "XRzFl5kB-5P992SCeeqO", - "dsl_query": "{\"size\":10.0,\"query\":{\"bool\":{\"filter\":[{\"term\":{\"category\":\"shoes\"}},{\"term\":{\"color\":\"black\"}},{\"range\":{\"price\":{\"lte\":150.0}}}]}},\"sort\":[{\"price\":{\"order\":\"asc\"}},{\"_score\":{\"order\":\"desc\"}}]}" - } + } + ] + }, + "ext": { + "agent_steps_summary": "I have these tools available: [ListIndexTool, IndexMappingTool, query_planner_tool]\nFirst I used: query_planner_tool — qpt.question: \"Find black shoes priced under 150 dollars.\"; index_name_provided: \"products-index\"\nValidation: qpt output is valid JSON and aligns with the request for black shoes under 150 dollars in the products-index.", + "memory_id": "XRzFl5kB-5P992SCeeqO", + "dsl_query": "{\"size\":10.0,\"query\":{\"bool\":{\"filter\":[{\"term\":{\"category\":\"shoes\"}},{\"term\":{\"color\":\"black\"}},{\"range\":{\"price\":{\"lte\":150.0}}}]}},\"sort\":[{\"price\":{\"order\":\"asc\"}},{\"_score\":{\"order\":\"desc\"}}]}" + } } ``` -{% include copy-curl.html %} -As we can see, the agent understood the conversation context and reused the budget limit of $150 from the previous query. It correctly interpreted "black ones instead" as black shoes under $150, demonstrating how `memory_id` enables seamless conversation continuation. +## Using hints to guide the LLM -## Pro tip: Guide the LLM with hints +You can guide the large language model (LLM) to generate the DSL query you prefer by providing hints in the `query_text`. The agent considers these hints when planning the search. -You can nudge the LLM to generate the DSL query you prefer by providing hints in the `query_text`. The agent will consider these hints when planning the search: +The following query provides specific hints about sorting and aggregations to guide the agent's DSL generation: -**Example with hints:** ```json GET /_search?search_pipeline=agentic-pipeline { - "query": { - "agentic": { - "query_text": "Find expensive running shoes, sort by rating descending, and use aggregations to show average price by brand" - } + "query": { + "agentic": { + "query_text": "Find expensive running shoes, sort by rating descending, and use aggregations to show average price by brand" } + } } ``` +{% include copy-curl.html %} + +In contrast, the following query uses simple language without specific DSL hints: -**Without hints:** ```json GET /_search?search_pipeline=agentic-pipeline { - "query": { - "agentic": { - "query_text": "Show me running shoes" - } + "query": { + "agentic": { + "query_text": "Show me running shoes" } + } } ``` +{% include copy-curl.html %} + +The first query will likely generate a more complex DSL with sorting and aggregations, while the second will be simpler. Use specific terms like "sort by", "aggregate", "filter by", "group by", etc. to guide the agent's query generation. + +## Next steps -The first query will likely generate a more complex DSL with sorting and aggregations, while the second will be simpler. Use specific terms like "sort by", "aggregate", "filter by", "group by", etc. to guide the agent's query generation. \ No newline at end of file +- [Agentic query translator processor]({{site.url}}{{site.baseurl}}/search-plugins/search-pipelines/agentic-query-translator-processor/) - Learn more about the request processor that translates natural language queries into OpenSearch DSL. +- [Agentic context processor]({{site.url}}{{site.baseurl}}/search-plugins/search-pipelines/agentic-context-processor/) - Learn more about the response processor that adds agent execution context information for monitoring and conversation continuity. +- [Customizing agentic search agents]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/) - Configure advanced agent behaviors with different models, tools, and prompts. \ No newline at end of file diff --git a/_vector-search/ai-search/agentic-search/agent-customization.md b/_vector-search/ai-search/agentic-search/agent-customization.md index c7870d8c17..58134e2c43 100644 --- a/_vector-search/ai-search/agentic-search/agent-customization.md +++ b/_vector-search/ai-search/agentic-search/agent-customization.md @@ -1,31 +1,31 @@ --- layout: default -title: Agent customization +title: Customizing agents parent: Agentic search grand_parent: AI search nav_order: 60 has_children: false --- -# Agent customization +# Customizing agentic search agents -Transform your agentic search experience by customizing models, tools, and configurations. This guide shows you how to unlock advanced capabilities and tailor your agent to specific use cases. +You can customize agentic search agents by configuring their models, tools, and prompts: -## Overview - -Agentic search agents can be customized in several ways to enhance their capabilities: - -- **Model configurations**: Choose from different LLMs optimized for various tasks -- **Tool orchestration**: Combine multiple tools for intelligent automation -- **Prompt engineering**: Fine-tune agent behavior with custom prompts +- [Model configurations](#model-configurations): Choose different LLMs optimized for various tasks. +- [Tool orchestration](#tool-orchestration): Combine multiple tools for automated workflows. +- [Prompt engineering](#prompt-engineering-and-customization): Finetune agent behavior using custom prompts. ## Model configurations +Select the appropriate language model based on your performance requirements and use case. + ### OpenAI GPT models +The following OpenAI GPT models are supported. + #### GPT-5 (Recommended) -GPT-5 offers superior reasoning capabilities and is recommended for production use cases. +GPT-5 provides advanced reasoning capabilities and is recommended for production use cases. **Model registration:** @@ -70,10 +70,11 @@ POST /_plugins/_ml/models/_register - `high`: Maximum reasoning power for the most complex scenarios As you select higher reasoning modes, overall latency increases. Choose the lowest mode that meets your accuracy needs. +{: .tip} ### Anthropic Claude models -Claude models provide excellent performance through Amazon Bedrock integration. +Anthropic Claude models are available through Amazon Bedrock integration and provide analytical capabilities for complex search scenarios. #### Claude 4 Sonnet @@ -111,25 +112,33 @@ POST /_plugins/_ml/connectors/_create ``` {% include copy-curl.html %} -**Agent interface configuration:** +### Agent interface configuration + +When registering agents, configure the `_llm_interface` parameter to specify how the agent parses LLM output when using function calling. Choose the interface that matches your model type: -- Claude models: `"_llm_interface": "bedrock/converse/claude"` -- OpenAI models: `"_llm_interface": "openai/v1/chat/completions"` +- `"bedrock/converse/claude"`: Anthropic Claude models hosted on Amazon Bedrock +- `"openai/v1/chat/completions"`: OpenAI chat completion models + +Each interface defines a default response schema and function call parser optimized for that model family. ## Tool orchestration -### QueryPlanningTool (Required) +You must configure a QueryPlanningTool for agentic search. You can configure additional tools to extend your agent's functionality. + +### QueryPlanningTool -The [`QueryPlanningTool`]({{site.url}}{{site.baseurl}}/ml-commons-plugin/agents-tools/tools/query-planning-tool/) is mandatory for agentic search functionality. It translates natural language queries into OpenSearch DSL. +The [`QueryPlanningTool`]({{site.url}}{{site.baseurl}}/ml-commons-plugin/agents-tools/tools/query-planning-tool/) is required for agentic search functionality. It translates natural language queries into OpenSearch DSL. ### Additional tools -You can add any tools from the [ML Commons Tools documentation]({{site.url}}{{site.baseurl}}/ml-commons-plugin/agents-tools/tools/index/) to enhance your agent's capabilities. +You can configure additional [tools]({{site.url}}{{site.baseurl}}/ml-commons-plugin/agents-tools/tools/index/) to extend your agent's functionality. -The conversational agent will automatically select and orchestrate the appropriate tools based on the query context. +The conversational agent automatically selects and orchestrates the appropriate tools based on the query context. #### Complete agent configuration +The following example shows how to register an agent with multiple tools: + ```json POST /_plugins/_ml/agents/_register { @@ -178,9 +187,9 @@ POST /_plugins/_ml/agents/_register ### Intelligent index selection -With `ListIndexTool`, `IndexMappingTool`, and other relevant tools, your agent can automatically choose the right index and generate queries for that index. +When you include a `ListIndexTool`, `IndexMappingTool`, or other relevant tools, your agent can automatically choose the correct index and generate queries for that index. -**Search without index specification:** +To search without specifying an index, send the following request: ```json GET /_search?search_pipeline=agentic-pipeline @@ -194,17 +203,22 @@ GET /_search?search_pipeline=agentic-pipeline ``` {% include copy-curl.html %} -The agent will automatically discover product indices, analyze their structure, and generate appropriate queries. +The agent automatically discovers product indexes, analyzes their structure, and generates appropriate queries. -**Performance consideration**: When you don't specify an index in your search query, the search runs against all shards in the cluster, which can be expensive. For better performance, specify the target index when possible. +If you don't specify an index in your search query, the search runs against all shards in the cluster, which can be expensive. For better performance, specify the target index when possible. +{: .tip} ## Prompt engineering and customization +Configure your agent's behavior and output format using custom prompts that guide the model's reasoning process. + ### System prompt optimization Customize your agent's behavior with tailored system prompts that fit for your specific use case. -**Default output format:** +### Agent output format + +The agent must have the following output format: ```json { @@ -212,12 +226,13 @@ Customize your agent's behavior with tailored system prompts that fit for your s "agent_steps_summary": "" } ``` +{% include copy.html %} **Custom prompt configuration:** -When customizing prompts, ensure your system and user prompts guide the model to always return results in the JSON format above. Proper prompt engineering is crucial for consistent output formatting. +When customizing prompts, ensure that both your system and user prompts guide the model to always return results in the preceding agent output format. Proper prompt engineering is crucial for consistent output formatting. -Provide your custom prompts during agent registration like this: +Provide your custom prompts during agent registration as follows: ```json POST /_plugins/_ml/agents/_register @@ -254,12 +269,23 @@ POST /_plugins/_ml/agents/_register ### Prompt best practices -- **Be specific**: Clearly define the expected JSON output format with `dsl_query` and `agent_steps_summary` fields -- **Include examples**: Provide sample queries and expected responses in the correct JSON format -- **Set constraints**: Specify field names, data types, and query limits -- **Optimize for JSON**: Ensure prompts guide the model to produce valid JSON with the required structure +Follow these guidelines to create effective prompts that produce consistent, accurate results: + +- **Be specific**: Clearly define the expected agent output format with `dsl_query` and `agent_steps_summary` fields. +- **Include examples**: Provide sample queries and expected responses in the correct agent output format. +- **Set constraints**: Specify field names, data types, and query limits. +- **Optimize for JSON**: Ensure that your prompts guide the model to produce valid JSON with the required agent output structure. + +### Default system prompt + +The following system prompt is used by default. You can customize this to modify your agent's behavior: + +
+ + Prompt + + {: .text-delta} -### Default System Prompt: ```json ==== PURPOSE ==== Produce correct OpenSearch DSL by orchestrating tools. You MUST call the Query Planner Tool (query_planner_tool, "qpt") to author the DSL. @@ -334,14 +360,18 @@ Final response JSON: "dsl_query": {\"query\":{\"bool\":{\"must\":[{\"match\":{\"category\":\"shoes\"}}],\"filter\":[{\"range\":{\"price\":{\"lte\":500}}}]}}}}, "agent_steps_summary": "I have these tools available: [ListIndexTool, IndexMappingTool, query_planner_tool]\nFirst I used: ListIndexTool — input: \"\"; context gained: \"Of the available indices, products index seems promising\"\nSecond I used: IndexMappingTool — input: \"products\"; context gained: \"index contains relevant fields\"\nThird I used: query_planner_tool — qpt.question: \"Find shoes under 500 dollars.\"; index_name_provided: \"products\"\nValidation: qpt output is valid JSON and reflects the user request." } - ``` -### Default User Prompt: +
+ +### Default user prompt + +The default user prompt template passes the natural language question and available parameters to the agent: + ```json "NLQ is: ${parameters.question} and index_name is: ${parameters.index_name:-}, model ID for neural search is: ${parameters.embedding_model_id:-}" ``` -## End to End Example: +## Next steps -Find end to end example here: [Converse and Monitor Agentic Search]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-converse/#end-to-end-example) +For a complete walkthrough of using customized agents in practice, see the [Converse and Monitor Agentic Search]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-converse/#end-to-end-example) end-to-end example. diff --git a/_vector-search/ai-search/agentic-search/flow-agent.md b/_vector-search/ai-search/agentic-search/flow-agent.md index 2492b08d98..8035b64820 100644 --- a/_vector-search/ai-search/agentic-search/flow-agent.md +++ b/_vector-search/ai-search/agentic-search/flow-agent.md @@ -34,7 +34,7 @@ Before using a flow agent, you need to: 3. **Register a model for Query Planner Tool (QPT)** - See [Step 3: Create a model for Query Planning tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/#step-3-create-a-model-for-query-planning-tool) for detailed instructions. + See [Step 3: Create a model for Query Planning tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-3-create-a-model-for-query-planning-tool) for detailed instructions. 4. **Register a flow agent** ```json diff --git a/_vector-search/ai-search/agentic-search/index.md b/_vector-search/ai-search/agentic-search/index.md index 75b6221f6e..d564d4a613 100644 --- a/_vector-search/ai-search/agentic-search/index.md +++ b/_vector-search/ai-search/agentic-search/index.md @@ -4,6 +4,8 @@ title: Agentic search parent: AI search nav_order: 30 has_children: true +redirect_from: + - /vector-search/ai-search/agentic-search/ --- # Agentic search @@ -12,22 +14,27 @@ has_children: true Agentic search lets users ask questions in natural language and have OpenSearch plan and execute the retrieval automatically. A preconfigured **agent** reads the question, plans the search, and returns relevant results. -**Prerequisite**
+## Prerequisite + Before using agentic search, you must configure an agent with the [`QueryPlanningTool`]({{site.url}}{{site.baseurl}}/ml-commons-plugin/agents-tools/tools/query-planning-tool/). -## Configuring Agentic Search +## Configuring agentic search + +You can configure agentic search using OpenSearch Dashboards or using the Agentic Search APIs. + +## Using OpenSearch Dashboards -**UI Configuration**
-You can configure Agents and execute Agentic Search through the UI using AI Search Flows. For detailed instructions, see [Building Agentic Search Flows]({{site.url}}{{site.baseurl}}/vector-search/ai-search/building-agentic-search-flows/). +You can configure agents and execute agentic search using AI search flows in OpenSearch Dashboards. For more information, see [Building Agentic Search Flows]({{site.url}}{{site.baseurl}}/vector-search/ai-search/building-agentic-search-flows/). -**API Configuration**
-To configure Agentic Search via APIs, follow these steps: +## Using APIs + +To configure Agentic Search using APIs, follow these steps: 1. [Create an index for ingestion](#step-1-create-an-index-for-ingestion). 2. [Ingest documents into the index](#step-2-ingest-documents-into-the-index). 3. [Create a model for Query Planning tool](#step-3-create-a-model-for-query-planning-tool). -4. [Create a Model for Conversational Agent](#step-4-create-a-model-for-conversational-agent). -5. [Create an Agent](#step-5-create-an-agent). +4. [Create a model for Conversational Agent](#step-4-create-a-model-for-conversational-agent). +5. [Create an agent](#step-5-create-an-agent). 6. [Create a search pipeline](#step-6-create-a-search-pipeline). 7. [Search the index](#step-7-search-the-index). @@ -82,109 +89,116 @@ POST _bulk {% include copy-curl.html %} -### Step 3: Create a model for Query Planning tool +### Step 3: Create a model for the Query Planning tool + +Create a model to support the Query Planning tool. This model analyzes natural language questions and generates appropriate OpenSearch query DSL: + ```json POST /_plugins/_ml/models/_register { - "name": "My OpenAI model: gpt-5", - "function_name": "remote", - "description": "test model", - "connector": { - "name": "My openai connector: gpt-5", - "description": "The connector to openai chat model", - "version": 1, - "protocol": "http", - "parameters": { - "model": "gpt-5", - "response_filter": "$.choices[0].message.content" - }, - "credential": { - "openAI_key": + "name": "My OpenAI model: gpt-5", + "function_name": "remote", + "description": "test model", + "connector": { + "name": "My openai connector: gpt-5", + "description": "The connector to openai chat model", + "version": 1, + "protocol": "http", + "parameters": { + "model": "gpt-5", + "response_filter": "$.choices[0].message.content" + }, + "credential": { + "openAI_key": + }, + "actions": [ + { + "action_type": "predict", + "method": "POST", + "url": "https://api.openai.com/v1/chat/completions", + "headers": { + "Authorization": "Bearer ${credential.openAI_key}" }, - "actions": [ - { - "action_type": "predict", - "method": "POST", - "url": "https://api.openai.com/v1/chat/completions", - "headers": { - "Authorization": "Bearer ${credential.openAI_key}" - }, - "request_body": "{ \"model\": \"${parameters.model}\", \"messages\": [{\"role\":\"system\",\"content\":\"${parameters.query_planner_system_prompt}\"},{\"role\":\"user\",\"content\":\"${parameters.query_planner_user_prompt}\"}], \"reasoning_effort\":\"minimal\" }" - } - ] - } + "request_body": "{ \"model\": \"${parameters.model}\", \"messages\": [{\"role\":\"system\",\"content\":\"${parameters.query_planner_system_prompt}\"},{\"role\":\"user\",\"content\":\"${parameters.query_planner_user_prompt}\"}], \"reasoning_effort\":\"minimal\" }" + } + ] + } } ``` {% include copy-curl.html %} -### Step 4: Create a Model for Conversational Agent: +### Step 4: Create a model for conversational agent + +Create a model to perform the conversational agent functionality. This model manages the overall conversation flow and coordinates with the Query Planning tool to run searches: ```json POST /_plugins/_ml/models/_register { - "name": "My OpenAI model: gpt-5", - "function_name": "remote", - "description": "test model", - "connector": { - "name": "My openai connector: gpt-5", - "description": "The connector to openai chat model", - "version": 1, - "protocol": "http", - "parameters": { - "model": "gpt-5" - }, - "credential": { - "openAI_key": "OpenAI Key" + "name": "My OpenAI model: gpt-5", + "function_name": "remote", + "description": "test model", + "connector": { + "name": "My openai connector: gpt-5", + "description": "The connector to openai chat model", + "version": 1, + "protocol": "http", + "parameters": { + "model": "gpt-5" + }, + "credential": { + "openAI_key": "OpenAI Key" + }, + "actions": [ + { + "action_type": "predict", + "method": "POST", + "url": "https://api.openai.com/v1/chat/completions", + "headers": { + "Authorization": "Bearer ${credential.openAI_key}" }, - "actions": [ - { - "action_type": "predict", - "method": "POST", - "url": "https://api.openai.com/v1/chat/completions", - "headers": { - "Authorization": "Bearer ${credential.openAI_key}" - }, - "request_body": "{ \"model\": \"${parameters.model}\", \"messages\": [{\"role\":\"developer\",\"content\":\"${parameters.system_prompt}\"},${parameters._chat_history:-}{\"role\":\"user\",\"content\":\"${parameters.user_prompt}\"}${parameters._interactions:-}], \"reasoning_effort\":\"minimal\", \"tools\": [${parameters._tools:-}],\"parallel_tool_calls\":${parameters.parallel_tool_calls},\"tool_choice\": \"${parameters.tool_choice}\"}" - } - ] - } + "request_body": "{ \"model\": \"${parameters.model}\", \"messages\": [{\"role\":\"developer\",\"content\":\"${parameters.system_prompt}\"},${parameters._chat_history:-}{\"role\":\"user\",\"content\":\"${parameters.user_prompt}\"}${parameters._interactions:-}], \"reasoning_effort\":\"minimal\", \"tools\": [${parameters._tools:-}],\"parallel_tool_calls\":${parameters.parallel_tool_calls},\"tool_choice\": \"${parameters.tool_choice}\"}" + } + ] + } } ``` {% include copy-curl.html %} -### Step 5: Create an Agent: -Create a Conversational Agent with the QueryPlannerTool(Mandatory) and other tools as needed +### Step 5: Create an agent + +Create a conversational agent with the `QueryPlannerTool` (required). You can add other tools as needed: + ```json POST /_plugins/_ml/agents/_register { - "name": "GPT 5 Agent for Agentic Search", - "type": "conversational", - "description": "Use this for Agentic Search", - "llm": { - "model_id": , - "parameters": { - "max_iteration": 15, - "embedding_model_id": "" - } - }, - "memory": { - "type": "conversation_index" - }, + "name": "GPT 5 Agent for Agentic Search", + "type": "conversational", + "description": "Use this for Agentic Search", + "llm": { + "model_id": , "parameters": { - "_llm_interface": "openai/v1/chat/completions" - }, - "tools": [ - { - "type": "QueryPlanningTool", - "parameters": { - "model_id": - } - } - - ], - "app_type": "os_chat" + "max_iteration": 15, + "embedding_model_id": "" + } + }, + "memory": { + "type": "conversation_index" + }, + "parameters": { + "_llm_interface": "openai/v1/chat/completions" + }, + "tools": [ + { + "type": "QueryPlanningTool", + "parameters": { + "model_id": + } + } + ], + "app_type": "os_chat" } ``` +{% include copy-curl.html %} ### Step 6: Create a search pipeline @@ -193,79 +207,72 @@ Create a search pipeline with an agentic query translator search request process ```json PUT _search/pipeline/agentic-pipeline { - "request_processors": [ - { - "agentic_query_translator": { - "agent_id": "" - } - } - ] + "request_processors": [ + { + "agentic_query_translator": { + "agent_id": "" + } + } + ] } ``` {% include copy-curl.html %} ### Step 7: Search the index -To perform agentic search, use the agentic query clause with your narural language question. - -The following example request uses an agentic query to search for a natural language question: +To perform agentic search, use an `agentic` query. The `query_text` parameter contains the natural language question, and the `query_fields` parameter lists the fields that the agent should consider when generating the search query: ```json GET iris-index/_search?search_pipeline=agentic-pipeline { - "query": { - "agentic": { - "query_text": "List all the flowers present", - "query_fields": ["species", "petal_length_in_cm"], - } + "query": { + "agentic": { + "query_text": "List all the flowers present", + "query_fields": ["species", "petal_length_in_cm"] } + } } ``` {% include copy-curl.html %} -The request contains the following fields: -1. `query_text`: The natural language question. -2. `query_fields` (optional): A list of fields that the agent should consider when generating the search query. - - -The agentic search request executes the agent with the QueryPlanningTool and sends the natural language question, along with the index mapping and a default prompt, to a large language model (LLM) to generate a query domain-specific language (DSL) query. The returned DSL query is then executed as a search request in OpenSearch: +The agentic search request executes the agent with the `QueryPlanningTool` and sends the natural language question, along with the index mapping and a default prompt, to a large language model (LLM) to generate a query domain-specific language (DSL) query. The returned DSL query is then executed as a search request in OpenSearch: ```json "hits": { - "total": { - "value": 2, - "relation": "eq" - }, - "max_score": 1.0, - "hits": [ - { - "_index": "iris-index", - "_id": "1", - "_score": 1.0, - "_source": { - "petal_length_in_cm": 1.4, - "petal_width_in_cm": 0.2, - "sepal_length_in_cm": 5.1, - "sepal_width_in_cm": 3.5, - "species": "setosa" - } - }, - { - "_index": "iris-index", - "_id": "2", - "_score": 1.0, - "_source": { - "petal_length_in_cm": 4.5, - "petal_width_in_cm": 1.5, - "sepal_length_in_cm": 6.4, - "sepal_width_in_cm": 2.9, - "species": "versicolor" - } - } - ] + "total": { + "value": 2, + "relation": "eq" + }, + "max_score": 1.0, + "hits": [ + { + "_index": "iris-index", + "_id": "1", + "_score": 1.0, + "_source": { + "petal_length_in_cm": 1.4, + "petal_width_in_cm": 0.2, + "sepal_length_in_cm": 5.1, + "sepal_width_in_cm": 3.5, + "species": "setosa" + } + }, + { + "_index": "iris-index", + "_id": "2", + "_score": 1.0, + "_source": { + "petal_length_in_cm": 4.5, + "petal_width_in_cm": 1.5, + "sepal_length_in_cm": 6.4, + "sepal_width_in_cm": 2.9, + "species": "versicolor" + } } + ] +} ``` ## Next steps -- [Agent customization]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/) - Learn how to customize your agentic search agent with different models, tools, and configurations. \ No newline at end of file +- [Customizing agentic search agents]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/) - Learn how to customize your agentic search agent with different models, tools, and configurations. \ No newline at end of file diff --git a/_vector-search/ai-search/agentic-search/neural-search.md b/_vector-search/ai-search/agentic-search/neural-search.md index e1de00f3a3..604032864b 100644 --- a/_vector-search/ai-search/agentic-search/neural-search.md +++ b/_vector-search/ai-search/agentic-search/neural-search.md @@ -139,10 +139,10 @@ POST /_bulk ### Step 5: Register Models for Agentic Search -Register two models as described in the [Agentic Search setup]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/): +Register two models as described in the [Agentic Search setup]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/): -1. **[Register a model for the Agent]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/#step-4-create-a-model-for-conversational-agent)** -2. **[Register a model for Query Planning Tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/#step-3-create-a-model-for-query-planning-tool)** +1. **[Register a model for the Agent]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-4-create-a-model-for-conversational-agent)** +2. **[Register a model for Query Planning Tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-3-create-a-model-for-query-planning-tool)** ### Step 6: Create Agent with Embedding Model ID diff --git a/_vector-search/ai-search/agentic-search/search-templates.md b/_vector-search/ai-search/agentic-search/search-templates.md index b1eb453f68..d48fac7951 100644 --- a/_vector-search/ai-search/agentic-search/search-templates.md +++ b/_vector-search/ai-search/agentic-search/search-templates.md @@ -89,12 +89,12 @@ POST /_scripts/store_sum_skus "lang": "mustache", "source": { "size": 0, - "query": { "term": { "address.city": "{{city}}" } }, + "query": { "term": { "address.city": "{% raw %}{{city}}{% endraw %}" } }, "aggs": { "by_store": { "terms": { "field": "store_id", - "size": "{{bucket_size}}{{^bucket_size}}200{{/bucket_size}}", + "size": "{% raw %}{{bucket_size}}{{^bucket_size}}200{{/bucket_size}}{% endraw %}", "order": { "inv>skus>q": "desc" } }, "aggs": { @@ -102,7 +102,7 @@ POST /_scripts/store_sum_skus "nested": { "path": "inventory" }, "aggs": { "skus": { - "filter": { "terms": { "inventory.sku": ["{{sku1}}","{{sku2}}","{{sku3}}"] } }, + "filter": { "terms": { "inventory.sku": ["{% raw %}{{sku1}}{% endraw %}","{% raw %}{{sku2}}{% endraw %}","{% raw %}{{sku3}}{% endraw %}"] } }, "aggs": { "q": { "sum": { "field": "inventory.qty" } } } } } @@ -110,7 +110,7 @@ POST /_scripts/store_sum_skus "keep": { "bucket_selector": { "buckets_path": { "t": "inv>skus>q" }, - "script": { "source": "params.t >= {{min_total}}{{^min_total}}30{{/min_total}}" } + "script": { "source": "params.t >= {% raw %}{{min_total}}{{^min_total}}30{{/min_total}}{% endraw %}" } } }, "store": { @@ -137,19 +137,19 @@ POST /_scripts/store_sum_skus "lang": "mustache", "source": { "size": 0, - "query": { "term": { "address.city": "{{city}}" } }, + "query": { "term": { "address.city": "{% raw %}{{city}}{% endraw %}" } }, "aggs": { "s": { "terms": { "field": "store_id", - "size": "{{bs}}{{^bs}}200{{/bs}}" + "size": "{% raw %}{{bs}}{{^bs}}200{{/bs}}{% endraw %}" }, "aggs": { "i": { "nested": { "path": "inventory" }, "aggs": { "f": { - "filter": { "term": { "inventory.sku": "{{sku}}" } }, + "filter": { "term": { "inventory.sku": "{% raw %}{{sku}}{% endraw %}" } }, "aggs": { "q": { "sum": { "field": "inventory.qty" } } } } } @@ -174,8 +174,8 @@ POST /_scripts/store_sum_skus Refer to these to register query planner model and the agent model: -- [Create a model for Query Planning tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/#step-3-create-a-model-for-query-planning-tool) -- [Create a Model for Conversational Agent]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/#step-4-create-a-model-for-conversational-agent) +- [Create a model for Query Planning tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-3-create-a-model-for-query-planning-tool) +- [Create a Model for Conversational Agent]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-4-create-a-model-for-conversational-agent) ```json { @@ -183,7 +183,7 @@ Refer to these to register query planner model and the agent model: "type": "conversational", "description": "Use this for Agentic Search", "llm": { - "model_id": "{{llm_model_id}}", + "model_id": "{% raw %}{{llm_model_id}}{% endraw %}", "parameters": { "max_iteration": 15 } @@ -199,7 +199,7 @@ Refer to these to register query planner model and the agent model: { "type": "QueryPlanningTool", "parameters": { - "model_id": "{{query_planner_model_id}}", + "model_id": "{% raw %}{{query_planner_model_id}}{% endraw %}", "generation_type": "user_templates", "search_templates": [ { @@ -223,7 +223,7 @@ Refer to these to register query planner model and the agent model: Register the search pipeline before performing the query: -- [Create a search pipeline]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/#step-6-create-a-search-pipeline) +- [Create a search pipeline]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-6-create-a-search-pipeline) **Agentic Search Query:** ```json From c5e56ec16607bb8bb188f26b17311427e9a42038 Mon Sep 17 00:00:00 2001 From: Fanit Kolchina Date: Mon, 6 Oct 2025 21:06:22 -0400 Subject: [PATCH 08/18] Fix links Signed-off-by: Fanit Kolchina --- _vector-search/ai-search/agentic-search/agent-converse.md | 2 +- .../ai-search/agentic-search/agent-customization.md | 2 +- _vector-search/ai-search/agentic-search/flow-agent.md | 6 +++--- _vector-search/ai-search/agentic-search/neural-search.md | 4 ++-- _vector-search/ai-search/agentic-search/search-templates.md | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/_vector-search/ai-search/agentic-search/agent-converse.md b/_vector-search/ai-search/agentic-search/agent-converse.md index fee87f54b0..c833e40c77 100644 --- a/_vector-search/ai-search/agentic-search/agent-converse.md +++ b/_vector-search/ai-search/agentic-search/agent-converse.md @@ -16,7 +16,7 @@ To inspect agent behavior and continue conversations, use the `agentic_context` Before you start, ensure that you have registered and configured an agent. To configure an agent, you must first register two models using these steps: 1. **Follow [Step 4: Create a model for conversational agent]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-4-create-a-model-for-conversational-agent)** -- This model is used by the conversational agent for reasoning and tool orchestration. -2. **Follow [Step 3: Create a model for Query Planning tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-3-create-a-model-for-query-planning-tool)** -- This model is used by the `QueryPlanningTool` to generate OpenSearch DSL queries. +2. **Follow [Step 3: Create a model for the Query Planning tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-3-create-a-model-for-the-query-planning-tool)** -- This model is used by the `QueryPlanningTool` to generate OpenSearch DSL queries. Then register and configure an agent using [Step 5: Create an agent]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-5-create-an-agent) or see [Customizing agentic search agents]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/) for advanced configurations. The agent must include a `QueryPlanningTool`. diff --git a/_vector-search/ai-search/agentic-search/agent-customization.md b/_vector-search/ai-search/agentic-search/agent-customization.md index 58134e2c43..a51e21488e 100644 --- a/_vector-search/ai-search/agentic-search/agent-customization.md +++ b/_vector-search/ai-search/agentic-search/agent-customization.md @@ -374,4 +374,4 @@ The default user prompt template passes the natural language question and availa ## Next steps -For a complete walkthrough of using customized agents in practice, see the [Converse and Monitor Agentic Search]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-converse/#end-to-end-example) end-to-end example. +For a complete walkthrough of using customized agents in practice, see [Inspecting agentic search and continuing conversations]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-converse/). diff --git a/_vector-search/ai-search/agentic-search/flow-agent.md b/_vector-search/ai-search/agentic-search/flow-agent.md index 8035b64820..be40e5b817 100644 --- a/_vector-search/ai-search/agentic-search/flow-agent.md +++ b/_vector-search/ai-search/agentic-search/flow-agent.md @@ -26,15 +26,15 @@ Before using a flow agent, you need to: 1. **Create an index for ingestion** - See [Create product index]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-converse/#1-create-product-index) in the end-to-end example. + See [Create product index]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-converse/#step-1-create-a-product-index) in the end-to-end example. 2. **Ingest documents into the index** - See [Insert sample data]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-converse/#2-insert-sample-data) in the end-to-end example. + See [Insert sample data]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-converse/#step-2-ingest-sample-data) in the end-to-end example. 3. **Register a model for Query Planner Tool (QPT)** - See [Step 3: Create a model for Query Planning tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-3-create-a-model-for-query-planning-tool) for detailed instructions. + See [Step 3: Create a model for the Query Planning tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-3-create-a-model-for-the-query-planning-tool) for detailed instructions. 4. **Register a flow agent** ```json diff --git a/_vector-search/ai-search/agentic-search/neural-search.md b/_vector-search/ai-search/agentic-search/neural-search.md index 604032864b..874e69384c 100644 --- a/_vector-search/ai-search/agentic-search/neural-search.md +++ b/_vector-search/ai-search/agentic-search/neural-search.md @@ -142,7 +142,7 @@ POST /_bulk Register two models as described in the [Agentic Search setup]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/): 1. **[Register a model for the Agent]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-4-create-a-model-for-conversational-agent)** -2. **[Register a model for Query Planning Tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-3-create-a-model-for-query-planning-tool)** +2. **[Register a model for Query Planning Tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-3-create-a-model-for-the-query-planning-tool)** ### Step 6: Create Agent with Embedding Model ID @@ -182,7 +182,7 @@ POST /_plugins/_ml/agents/_register ### Step 7: Create Search Pipeline -Create the search pipeline as described in the [end-to-end example]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-converse/#4-configure-search-pipeline): +Create the search pipeline as described in the [end-to-end example]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-converse/#step-4-configure-a-search-pipeline): ## Phase 3: Neural Search Examples diff --git a/_vector-search/ai-search/agentic-search/search-templates.md b/_vector-search/ai-search/agentic-search/search-templates.md index d48fac7951..cc8c17429e 100644 --- a/_vector-search/ai-search/agentic-search/search-templates.md +++ b/_vector-search/ai-search/agentic-search/search-templates.md @@ -174,7 +174,7 @@ POST /_scripts/store_sum_skus Refer to these to register query planner model and the agent model: -- [Create a model for Query Planning tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-3-create-a-model-for-query-planning-tool) +- [Create a model for the Query Planning tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-3-create-a-model-for-the-query-planning-tool) - [Create a Model for Conversational Agent]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-4-create-a-model-for-conversational-agent) ```json From fa595dee4b237946d7bf38b25ad5658d8f647958 Mon Sep 17 00:00:00 2001 From: kolchfa-aws <105444904+kolchfa-aws@users.noreply.github.com> Date: Tue, 7 Oct 2025 12:38:28 -0400 Subject: [PATCH 09/18] Update _vector-search/ai-search/agentic-search/index.md Signed-off-by: kolchfa-aws <105444904+kolchfa-aws@users.noreply.github.com> --- _vector-search/ai-search/agentic-search/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_vector-search/ai-search/agentic-search/index.md b/_vector-search/ai-search/agentic-search/index.md index d564d4a613..4923e2c37f 100644 --- a/_vector-search/ai-search/agentic-search/index.md +++ b/_vector-search/ai-search/agentic-search/index.md @@ -32,7 +32,7 @@ To configure Agentic Search using APIs, follow these steps: 1. [Create an index for ingestion](#step-1-create-an-index-for-ingestion). 2. [Ingest documents into the index](#step-2-ingest-documents-into-the-index). -3. [Create a model for Query Planning tool](#step-3-create-a-model-for-query-planning-tool). +3. [Create a model for the Query Planning tool](#step-3-create-a-model-for-the-query-planning-tool). 4. [Create a model for Conversational Agent](#step-4-create-a-model-for-conversational-agent). 5. [Create an agent](#step-5-create-an-agent). 6. [Create a search pipeline](#step-6-create-a-search-pipeline). From 2073afb4cb9d4bfac851eaa0dbacc523f78230b7 Mon Sep 17 00:00:00 2001 From: rithin-pullela-aws Date: Tue, 7 Oct 2025 11:56:07 -0700 Subject: [PATCH 10/18] Update the documentation for latest implementation changes Signed-off-by: rithin-pullela-aws --- .../agents-tools/tools/query-planning-tool.md | 71 +++-- .../agentic-search/agent-converse.md | 9 +- .../agentic-search/agent-customization.md | 49 +++- .../ai-search/agentic-search/flow-agent.md | 10 +- .../ai-search/agentic-search/index.md | 270 ++---------------- .../ai-search/agentic-search/neural-search.md | 8 +- .../agentic-search/quick-start-guide.md | 224 +++++++++++++++ .../agentic-search/search-templates.md | 10 +- 8 files changed, 350 insertions(+), 301 deletions(-) create mode 100644 _vector-search/ai-search/agentic-search/quick-start-guide.md diff --git a/_ml-commons-plugin/agents-tools/tools/query-planning-tool.md b/_ml-commons-plugin/agents-tools/tools/query-planning-tool.md index c8f8819913..9573213c27 100644 --- a/_ml-commons-plugin/agents-tools/tools/query-planning-tool.md +++ b/_ml-commons-plugin/agents-tools/tools/query-planning-tool.md @@ -20,7 +20,7 @@ The `QueryPlanningTool` supports two approaches for generating DSL queries from - **Using LLM knowledge only (default)**: The large language model (LLM) generates queries using only its training knowledge and any system/user prompts you provide. This approach relies entirely on the model's understanding of DSL syntax and your specific prompting instructions. -- **Using search templates**: The LLM uses predefined search templates as additional context when generating queries. You provide a collection of search templates with descriptions, and the LLM uses these as examples and guidance to create more accurate queries. If the LLM determines that none of the provided templates are suitable for the user's question, it falls back to a default `match_all` query. +- **Using search templates**: The LLM uses predefined search templates as additional context when generating queries. You provide a collection of search templates with descriptions, and the LLM uses these as examples and guidance to create more accurate queries. If the LLM determines that none of the provided templates are suitable for the user's question, it tries to generate the query on its own. The `user_templates` approach is particularly useful when you have established query patterns for your specific use case or domain: it helps the LLM to generate queries that follow your preferred structure and to use appropriate field names from your index mappings. @@ -77,7 +77,7 @@ POST _bulk The following request registers a remote model from Amazon Bedrock and deploys it to your cluster. The API call creates the connector and model in one step. Replace the `region`, `access_key`, `secret_key`, and `session_token` with your own values. You can use any model that supports the `converse` API, such as [Anthropic Claude 4](https://www.anthropic.com/news/claude-4) or [GPT 5](https://openai.com/index/introducing-gpt-5). You can use other model providers by creating a connector to this model (see [Connector blueprints]({{site.url}}{{site.baseurl}}/ml-commons-plugin/remote-models/connectors/#connector-blueprints)). -**Important**: When creating connectors for the QueryPlanningTool, the request body must include parameters named `query_planner_system_prompt` and `query_planner_user_prompt`. These parameter names are required for the tool to properly inject the system and user prompts into the model's request. The examples below demonstrate the correct parameter naming conventions. +**Important**: When creating connectors for the QueryPlanningTool, the request body must include parameters `system_prompt` and `user_prompt`. These parameter names are required for the tool to properly inject the system and user prompts into the model's request. The examples below demonstrate the correct parameter naming conventions. The following example registers and deploys the Anthropic Claude 4 model: @@ -95,8 +95,7 @@ POST /_plugins/_ml/models/_register?deploy=true "parameters": { "region": "us-east-1", "service_name": "bedrock", - "model": "us.anthropic.claude-sonnet-4-20250514-v1:0", - "response_filter": "$.output.message.content[0].text" + "model": "us.anthropic.claude-sonnet-4-20250514-v1:0" }, "credential": { "access_key": "your-aws-access-key", @@ -111,7 +110,7 @@ POST /_plugins/_ml/models/_register?deploy=true "headers": { "content-type": "application/json" }, - "request_body": """{ "system": [{"text": "${parameters.query_planner_system_prompt}"}], "messages": [{"role":"user","content":[{"text":"${parameters.query_planner_user_prompt}"}]}]}""" + "request_body": "{ \"system\": [{\"text\": \"${parameters.system_prompt}\"}], \"messages\": [${parameters._chat_history:-}{\"role\":\"user\",\"content\":[{\"text\":\"${parameters.user_prompt}\"}]}${parameters._interactions:-}]${parameters.tool_configs:-} }" } ] } @@ -122,35 +121,34 @@ POST /_plugins/_ml/models/_register?deploy=true The following example registers and deploys the OpenAI GPT 5 model: ```json -POST /_plugins/_ml/models/_register?deploy=true +POST /_plugins/_ml/models/_register { - "name": "My OpenAI model: gpt-5", - "function_name": "remote", - "description": "test model", - "connector": { - "name": "My openai connector: gpt-5", - "description": "The connector to openai chat model", - "version": 1, - "protocol": "http", - "parameters": { - "model": "gpt-5", - "response_filter": "$.choices[0].message.content" - }, - "credential": { - "openAI_key": "OPENAI KEY" - }, - "actions": [ - { - "action_type": "predict", - "method": "POST", - "url": "https://api.openai.com/v1/chat/completions", - "headers": { - "Authorization": "Bearer ${credential.openAI_key}" + "name": "My OpenAI model: gpt-5", + "function_name": "remote", + "description": "test model", + "connector": { + "name": "My openai connector: gpt-5", + "description": "The connector to openai chat model", + "version": 1, + "protocol": "http", + "parameters": { + "model": "gpt-5" }, - "request_body": """{ "model": "${parameters.model}", "messages": [{"role":"system","content":"${parameters.query_planner_system_prompt}"},{"role":"user","content":"${parameters.query_planner_user_prompt}"}], "reasoning_effort":"minimal"}""" - } - ] - } + "credential": { + "openAI_key": "your-openai-api-key" + }, + "actions": [ + { + "action_type": "predict", + "method": "POST", + "url": "https://api.openai.com/v1/chat/completions", + "headers": { + "Authorization": "Bearer ${credential.openAI_key}" + }, + "request_body": "{ \"model\": \"${parameters.model}\", \"messages\": [{\"role\":\"developer\",\"content\":\"${parameters.system_prompt}\"},${parameters._chat_history:-}{\"role\":\"user\",\"content\":\"${parameters.user_prompt}\"}${parameters._interactions:-}], \"reasoning_effort\":\"low\"${parameters.tool_configs:-}}" + } + ] + } } ``` {% include copy-curl.html %} @@ -191,7 +189,7 @@ POST /_plugins/_ml/agents/_register ``` {% include copy-curl.html %} -When registering the agent, you can override parameters that you specified during model registration, such as `query_planner_system_prompt` and `query_planner_user_prompt`. +When registering the agent, you can override parameters that you specified during model registration, such as `system_prompt` and `user_prompt`. ### Using search templates @@ -324,11 +322,12 @@ The following table lists all tool parameters that are available when registerin Parameter | Type | Required/Optional | Description :--- | :--- | :--- | :--- -`model_id` | String | Required | The model ID of the large language model (LLM) to use for generating the query DSL. +`model_id` | String | Required | The model ID of the large language model (LLM) to use for generating the query DSL. When used within a conversational agent, if this value is not provided, the agent's own `llm.model_id` is used automatically. `response_filter` | String | Optional | A JSONPath expression used to extract the generated query from the LLM's response. `generation_type` | String | Optional | The type of query generation. Valid values are `llmGenerated` (use LLM knowledge only) and `user_templates` (provide search templates as additional context). Default is `llmGenerated`. -`query_planner_system_prompt` | String | Optional | A system prompt that provides high-level instructions to the LLM. Default is `You are an OpenSearch Query DSL generation assistant, translating natural language questions to OpenSeach DSL Queries`. -`query_planner_user_prompt` | String | Optional | A user prompt template for the LLM. Can contain placeholders for execution-time parameters like `${parameters.question}`. +`query_planner_system_prompt` | String | Optional | A system prompt that provides high-level instructions to the LLM. +`query_planner_user_prompt` | String | Optional | A user prompt template for the LLM which asks the question. +`generation_type` | String | Optional | Overrides the registered setting for this execution. Valid values: `llmGenerated` (use LLM knowledge only) or `user_templates` (use registered search templates as guidance). Default value is `llmGenerated`. `search_templates` | Array | Optional | Applicable only when `generation_type` is set to `user_templates`. A list of search templates for an LLM to use as context when generating an OpenSearch DSL query. Each entry within the `search_templates` array must include a `template_id` and a `template_description` (provides the LLM with additional context about the template contents). ## Execute parameters diff --git a/_vector-search/ai-search/agentic-search/agent-converse.md b/_vector-search/ai-search/agentic-search/agent-converse.md index c833e40c77..954d83d7e9 100644 --- a/_vector-search/ai-search/agentic-search/agent-converse.md +++ b/_vector-search/ai-search/agentic-search/agent-converse.md @@ -13,12 +13,11 @@ To inspect agent behavior and continue conversations, use the `agentic_context` ## Prerequisites -Before you start, ensure that you have registered and configured an agent. To configure an agent, you must first register two models using these steps: +Before you start, ensure that you have registered and configured an agent. To configure an agent, follow these steps: -1. **Follow [Step 4: Create a model for conversational agent]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-4-create-a-model-for-conversational-agent)** -- This model is used by the conversational agent for reasoning and tool orchestration. -2. **Follow [Step 3: Create a model for the Query Planning tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-3-create-a-model-for-the-query-planning-tool)** -- This model is used by the `QueryPlanningTool` to generate OpenSearch DSL queries. - -Then register and configure an agent using [Step 5: Create an agent]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-5-create-an-agent) or see [Customizing agentic search agents]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/) for advanced configurations. The agent must include a `QueryPlanningTool`. +1. **Follow [Step 3: Create a model for the agent and Query Planning tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/quick-start-guide/#step-3-create-a-model-for-the-agent-and-query-planning-tool)** -- This model is used by both the conversational agent and the `QueryPlanningTool`. +2. **Review [Model configurations]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/#model-configurations)** -- Choose the specific model to use. +3. Then register and configure an agent using [Step 4: Create an agent]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/quick-start-guide/#step-4-create-an-agent) or see [Customizing agentic search agents]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/) for advanced configurations. The agent must include a `QueryPlanningTool`. ## Step 1: Create a product index diff --git a/_vector-search/ai-search/agentic-search/agent-customization.md b/_vector-search/ai-search/agentic-search/agent-customization.md index a51e21488e..1fbd08932b 100644 --- a/_vector-search/ai-search/agentic-search/agent-customization.md +++ b/_vector-search/ai-search/agentic-search/agent-customization.md @@ -19,6 +19,39 @@ You can customize agentic search agents by configuring their models, tools, and Select the appropriate language model based on your performance requirements and use case. +You can also configure different models for the conversational agent and the `QueryPlanningTool`. Set the agent's model using `llm.model_id`, and set the query planner model by specifying `parameters.model_id` inside the `QueryPlanningTool`: + +```json +{ + "name": "Agentic Search Agent", + "type": "conversational", + "description": "Agent using separate models for conversation and query planning", + "llm": { + "model_id": "your-conversational-model-id", + "parameters": { + "max_iteration": 15 + } + }, + "memory": { + "type": "conversation_index" + }, + "parameters": { + "_llm_interface": "" + }, + "tools": [ + { + "type": "QueryPlanningTool", + "parameters": { + "model_id": "your-query-planner-model-id" + } + } + ], + "app_type": "os_chat" +} +``` + +Set `` to the interface for your provider (for example, `openai/v1/chat/completions`), then choose a specific model from the options below. + ### OpenAI GPT models The following OpenAI GPT models are supported. @@ -32,12 +65,12 @@ GPT-5 provides advanced reasoning capabilities and is recommended for production ```json POST /_plugins/_ml/models/_register { - "name": "OpenAI GPT-5 Agent Model", + "name": "My OpenAI model: gpt-5", "function_name": "remote", - "description": "GPT-5 model for agentic search with advanced reasoning", + "description": "test model", "connector": { - "name": "OpenAI GPT-5 Connector", - "description": "Connector to OpenAI GPT-5 chat completions", + "name": "My openai connector: gpt-5", + "description": "The connector to openai chat model", "version": 1, "protocol": "http", "parameters": { @@ -54,7 +87,7 @@ POST /_plugins/_ml/models/_register "headers": { "Authorization": "Bearer ${credential.openAI_key}" }, - "request_body": "{ \"model\": \"${parameters.model}\", \"messages\": [{\"role\":\"developer\",\"content\":\"${parameters.system_prompt}\"},${parameters._chat_history:-}{\"role\":\"user\",\"content\":\"${parameters.user_prompt}\"}${parameters._interactions:-}], \"reasoning_effort\":\"minimal\", \"tools\": [${parameters._tools:-}],\"parallel_tool_calls\":${parameters.parallel_tool_calls},\"tool_choice\": \"${parameters.tool_choice}\"}" + "request_body": "{ \"model\": \"${parameters.model}\", \"messages\": [{\"role\":\"developer\",\"content\":\"${parameters.system_prompt}\"},${parameters._chat_history:-}{\"role\":\"user\",\"content\":\"${parameters.user_prompt}\"}${parameters._interactions:-}], \"reasoning_effort\":\"low\"${parameters.tool_configs:-}}" } ] } @@ -64,8 +97,8 @@ POST /_plugins/_ml/models/_register **Reasoning modes:** -- `minimal` (recommended): Fastest response time, suitable for most use cases -- `low`: Slightly more reasoning, better for complex queries +- `minimal`: Fastest response time, suitable for simple use cases +- `low`(recommended): Slightly more reasoning, suitable for most queries - `medium`: Enhanced reasoning for sophisticated tasks - `high`: Maximum reasoning power for the most complex scenarios @@ -212,6 +245,8 @@ If you don't specify an index in your search query, the search runs against all Configure your agent's behavior and output format using custom prompts that guide the model's reasoning process. +For Query Planner tool Prompt customization, see the [QueryPlanningTool documentation]({{site.url}}{{site.baseurl}}/ml-commons-plugin/agents-tools/tools/query-planning-tool/). + ### System prompt optimization Customize your agent's behavior with tailored system prompts that fit for your specific use case. diff --git a/_vector-search/ai-search/agentic-search/flow-agent.md b/_vector-search/ai-search/agentic-search/flow-agent.md index be40e5b817..d38c143493 100644 --- a/_vector-search/ai-search/agentic-search/flow-agent.md +++ b/_vector-search/ai-search/agentic-search/flow-agent.md @@ -34,9 +34,14 @@ Before using a flow agent, you need to: 3. **Register a model for Query Planner Tool (QPT)** - See [Step 3: Create a model for the Query Planning tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-3-create-a-model-for-the-query-planning-tool) for detailed instructions. + See [Step 3: Create a model for the agent and Query Planning tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/quick-start-guide/#step-3-create-a-model-for-the-agent-and-query-planning-tool) for detailed instructions. 4. **Register a flow agent** + Response filter is required. Always specify a `response_filter` in the `QueryPlanningTool` parameters so the agent extracts the generated DSL correctly from your model provider's response. + + Examples: + - OpenAI: `"response_filter": "$.choices[0].message.content"` + - Claude (Bedrock Converse): `"response_filter": "$.output.message.content[0].text"` ```json POST /_plugins/_ml/agents/_register { @@ -47,7 +52,8 @@ Before using a flow agent, you need to: { "type": "QueryPlanningTool", "parameters": { - "model_id": "your_model_id_from_step3" + "model_id": "your_model_id_from_step3", + "response_filter": } } ] diff --git a/_vector-search/ai-search/agentic-search/index.md b/_vector-search/ai-search/agentic-search/index.md index 4923e2c37f..329bb0375e 100644 --- a/_vector-search/ai-search/agentic-search/index.md +++ b/_vector-search/ai-search/agentic-search/index.md @@ -14,265 +14,51 @@ redirect_from: Agentic search lets users ask questions in natural language and have OpenSearch plan and execute the retrieval automatically. A preconfigured **agent** reads the question, plans the search, and returns relevant results. -## Prerequisite +## How to use -Before using agentic search, you must configure an agent with the [`QueryPlanningTool`]({{site.url}}{{site.baseurl}}/ml-commons-plugin/agents-tools/tools/query-planning-tool/). +Before running a request, complete the setup steps in the [Quick start guide]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/quick-start-guide/). The `agentic` query clause enables agentic search and lets you query in natural language. The following is an example request body. -## Configuring agentic search - -You can configure agentic search using OpenSearch Dashboards or using the Agentic Search APIs. - -## Using OpenSearch Dashboards - -You can configure agents and execute agentic search using AI search flows in OpenSearch Dashboards. For more information, see [Building Agentic Search Flows]({{site.url}}{{site.baseurl}}/vector-search/ai-search/building-agentic-search-flows/). - -## Using APIs - -To configure Agentic Search using APIs, follow these steps: - -1. [Create an index for ingestion](#step-1-create-an-index-for-ingestion). -2. [Ingest documents into the index](#step-2-ingest-documents-into-the-index). -3. [Create a model for the Query Planning tool](#step-3-create-a-model-for-the-query-planning-tool). -4. [Create a model for Conversational Agent](#step-4-create-a-model-for-conversational-agent). -5. [Create an agent](#step-5-create-an-agent). -6. [Create a search pipeline](#step-6-create-a-search-pipeline). -7. [Search the index](#step-7-search-the-index). - - -### Step 1: Create an index for ingestion - -Create an index for ingestion: +Request body: ```json -PUT /iris-index +GET iris-index/_search?search_pipeline=agentic-pipeline { - "mappings": { - "properties": { - "petal_length_in_cm": { - "type": "float" - }, - "petal_width_in_cm": { - "type": "float" - }, - "sepal_length_in_cm": { - "type": "float" - }, - "sepal_width_in_cm": { - "type": "float" - }, - "species": { - "type": "text", - "fields": { - "keyword": { - "type": "keyword", - "ignore_above": 256 - } - } - } + "query": { + "agentic": { + "query_text": "List all the flowers present", + "query_fields": ["species", "petal_length_in_cm"], + "memory_id": "XRzFl5kB-5P992SCeeqO" } } } ``` {% include copy-curl.html %} -### Step 2: Ingest documents into the index +Parameters: -To ingest documents into the index created in the previous step, send the following requests: - -```json -POST _bulk -{ "index": { "_index": "iris-index", "_id": "1" } } -{ "petal_length_in_cm": 1.4, "petal_width_in_cm": 0.2, "sepal_length_in_cm": 5.1, "sepal_width_in_cm": 3.5, "species": "setosa" } -{ "index": { "_index": "iris-index", "_id": "2" } } -{ "petal_length_in_cm": 4.5, "petal_width_in_cm": 1.5, "sepal_length_in_cm": 6.4, "sepal_width_in_cm": 2.9, "species": "versicolor" } -``` -{% include copy-curl.html %} +| Field | Type | Required | Description | +| --- | --- | --- | --- | +| `query.agentic.query_text` | string | Yes | The natural language question for the agent to answer. | +| `query.agentic.query_fields` | array of strings | No | Optional list of fields that helps the agent choose the right fields when generating the DSL. If omitted, the agent infers fields automatically based on index mappings and content. | +| `query.agentic.memory_id` | string | No | For conversational agents, provide a memory ID from a previous response to continue the conversation with prior context. | +## Quick start -### Step 3: Create a model for the Query Planning tool - -Create a model to support the Query Planning tool. This model analyzes natural language questions and generates appropriate OpenSearch query DSL: - -```json -POST /_plugins/_ml/models/_register -{ - "name": "My OpenAI model: gpt-5", - "function_name": "remote", - "description": "test model", - "connector": { - "name": "My openai connector: gpt-5", - "description": "The connector to openai chat model", - "version": 1, - "protocol": "http", - "parameters": { - "model": "gpt-5", - "response_filter": "$.choices[0].message.content" - }, - "credential": { - "openAI_key": - }, - "actions": [ - { - "action_type": "predict", - "method": "POST", - "url": "https://api.openai.com/v1/chat/completions", - "headers": { - "Authorization": "Bearer ${credential.openAI_key}" - }, - "request_body": "{ \"model\": \"${parameters.model}\", \"messages\": [{\"role\":\"system\",\"content\":\"${parameters.query_planner_system_prompt}\"},{\"role\":\"user\",\"content\":\"${parameters.query_planner_user_prompt}\"}], \"reasoning_effort\":\"minimal\" }" - } - ] - } -} -``` -{% include copy-curl.html %} - -### Step 4: Create a model for conversational agent - -Create a model to perform the conversational agent functionality. This model manages the overall conversation flow and coordinates with the Query Planning tool to run searches: - -```json -POST /_plugins/_ml/models/_register -{ - "name": "My OpenAI model: gpt-5", - "function_name": "remote", - "description": "test model", - "connector": { - "name": "My openai connector: gpt-5", - "description": "The connector to openai chat model", - "version": 1, - "protocol": "http", - "parameters": { - "model": "gpt-5" - }, - "credential": { - "openAI_key": "OpenAI Key" - }, - "actions": [ - { - "action_type": "predict", - "method": "POST", - "url": "https://api.openai.com/v1/chat/completions", - "headers": { - "Authorization": "Bearer ${credential.openAI_key}" - }, - "request_body": "{ \"model\": \"${parameters.model}\", \"messages\": [{\"role\":\"developer\",\"content\":\"${parameters.system_prompt}\"},${parameters._chat_history:-}{\"role\":\"user\",\"content\":\"${parameters.user_prompt}\"}${parameters._interactions:-}], \"reasoning_effort\":\"minimal\", \"tools\": [${parameters._tools:-}],\"parallel_tool_calls\":${parameters.parallel_tool_calls},\"tool_choice\": \"${parameters.tool_choice}\"}" - } - ] - } -} -``` -{% include copy-curl.html %} - -### Step 5: Create an agent - -Create a conversational agent with the `QueryPlannerTool` (required). You can add other tools as needed: - -```json -POST /_plugins/_ml/agents/_register -{ - "name": "GPT 5 Agent for Agentic Search", - "type": "conversational", - "description": "Use this for Agentic Search", - "llm": { - "model_id": , - "parameters": { - "max_iteration": 15, - "embedding_model_id": "" - } - }, - "memory": { - "type": "conversation_index" - }, - "parameters": { - "_llm_interface": "openai/v1/chat/completions" - }, - "tools": [ - { - "type": "QueryPlanningTool", - "parameters": { - "model_id": - } - } - ], - "app_type": "os_chat" -} -``` -{% include copy-curl.html %} - -### Step 6: Create a search pipeline - -Create a search pipeline with an agentic query translator search request processor and pass the agent ID created in step 5: - -```json -PUT _search/pipeline/agentic-pipeline -{ - "request_processors": [ - { - "agentic_query_translator": { - "agent_id": "" - } - } - ] -} -``` -{% include copy-curl.html %} - -### Step 7: Search the index +You can configure agentic search using OpenSearch Dashboards or using the Agentic Search APIs. -To perform agentic search, use an `agentic` query. The `query_text` parameter contains the natural language question, and the `query_fields` parameter lists the fields that the agent should consider when generating the search query: +### Using OpenSearch Dashboards -```json -GET iris-index/_search?search_pipeline=agentic-pipeline -{ - "query": { - "agentic": { - "query_text": "List all the flowers present", - "query_fields": ["species", "petal_length_in_cm"] - } - } -} -``` -{% include copy-curl.html %} +You can configure agents and execute agentic search using AI search flows in OpenSearch Dashboards. For more information, see [Building Agentic Search Flows]({{site.url}}{{site.baseurl}}/vector-search/ai-search/building-agentic-search-flows/). -The agentic search request executes the agent with the `QueryPlanningTool` and sends the natural language question, along with the index mapping and a default prompt, to a large language model (LLM) to generate a query domain-specific language (DSL) query. The returned DSL query is then executed as a search request in OpenSearch: +### Using APIs -```json -"hits": { - "total": { - "value": 2, - "relation": "eq" - }, - "max_score": 1.0, - "hits": [ - { - "_index": "iris-index", - "_id": "1", - "_score": 1.0, - "_source": { - "petal_length_in_cm": 1.4, - "petal_width_in_cm": 0.2, - "sepal_length_in_cm": 5.1, - "sepal_width_in_cm": 3.5, - "species": "setosa" - } - }, - { - "_index": "iris-index", - "_id": "2", - "_score": 1.0, - "_source": { - "petal_length_in_cm": 4.5, - "petal_width_in_cm": 1.5, - "sepal_length_in_cm": 6.4, - "sepal_width_in_cm": 2.9, - "species": "versicolor" - } - } - ] -} -``` +For API-based setup and examples, see the [Quick start guide]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/quick-start-guide/). -## Next steps +## Pages in this section -- [Customizing agentic search agents]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/) - Learn how to customize your agentic search agent with different models, tools, and configurations. \ No newline at end of file +- [Quick start guide]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/quick-start-guide/) +- [Customizing agents]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/) +- [Inspecting agentic search and continuing conversations]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-converse/) +- [Flow agents]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/flow-agent/) +- [Neural search]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/neural-search/) +- [Search templates]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/search-templates/) diff --git a/_vector-search/ai-search/agentic-search/neural-search.md b/_vector-search/ai-search/agentic-search/neural-search.md index 874e69384c..98e9cbf7ab 100644 --- a/_vector-search/ai-search/agentic-search/neural-search.md +++ b/_vector-search/ai-search/agentic-search/neural-search.md @@ -137,12 +137,12 @@ POST /_bulk ## Phase 2: Agentic Search Setup -### Step 5: Register Models for Agentic Search +### Step 5: Register model and agent for Agentic Search -Register two models as described in the [Agentic Search setup]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/): +Follow the Quick start guide to set up the model and agent: -1. **[Register a model for the Agent]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-4-create-a-model-for-conversational-agent)** -2. **[Register a model for Query Planning Tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-3-create-a-model-for-the-query-planning-tool)** +- **[Step 3: Create a model for the agent and Query Planning tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/quick-start-guide/#step-3-create-a-model-for-the-agent-and-query-planning-tool)** +- **[Step 4: Create an agent]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/quick-start-guide/#step-4-create-an-agent)** ### Step 6: Create Agent with Embedding Model ID diff --git a/_vector-search/ai-search/agentic-search/quick-start-guide.md b/_vector-search/ai-search/agentic-search/quick-start-guide.md new file mode 100644 index 0000000000..0d5672f0ac --- /dev/null +++ b/_vector-search/ai-search/agentic-search/quick-start-guide.md @@ -0,0 +1,224 @@ +--- +layout: default +title: Quick start guide +parent: Agentic search +grand_parent: AI search +nav_order: 35 +has_children: false +--- + +# Quick start guide + +Use this guide to quickly configure and run agentic search. + +## Prerequisite + +Before using agentic search, you must configure an agent with the [`QueryPlanningTool`]({{site.url}}{{site.baseurl}}/ml-commons-plugin/agents-tools/tools/query-planning-tool/). + +## Configure agentic search + +To configure Agentic Search using APIs, follow these steps: + +1. [Create an index for ingestion](#step-1-create-an-index-for-ingestion). +2. [Ingest documents into the index](#step-2-ingest-documents-into-the-index). +3. [Create a model for Query Planning tool](#step-3-create-a-model-for-query-planning-tool). +4. [Create an agent](#step-4-create-an-agent). +5. [Create a search pipeline](#step-5-create-a-search-pipeline). +6. [Search the index](#step-6-search-the-index). + +### Step 1: Create an index for ingestion + +Create an index for ingestion: + +```json +PUT /iris-index +{ + "mappings": { + "properties": { + "petal_length_in_cm": { + "type": "float" + }, + "petal_width_in_cm": { + "type": "float" + }, + "sepal_length_in_cm": { + "type": "float" + }, + "sepal_width_in_cm": { + "type": "float" + }, + "species": { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + } + } + } +} +``` +{% include copy-curl.html %} + +### Step 2: Ingest documents into the index + +To ingest documents into the index created in the previous step, send the following requests: + +```json +POST _bulk +{ "index": { "_index": "iris-index", "_id": "1" } } +{ "petal_length_in_cm": 1.4, "petal_width_in_cm": 0.2, "sepal_length_in_cm": 5.1, "sepal_width_in_cm": 3.5, "species": "setosa" } +{ "index": { "_index": "iris-index", "_id": "2" } } +{ "petal_length_in_cm": 4.5, "petal_width_in_cm": 1.5, "sepal_length_in_cm": 6.4, "sepal_width_in_cm": 2.9, "species": "versicolor" } +``` +{% include copy-curl.html %} + +### Step 3: Create a model for the agent and Query Planning tool + +Register a single model that will be used by both the conversational agent and the `QueryPlanningTool`. This model analyzes natural language questions, coordinates tool usage, and generates the OpenSearch DSL. For available model options, see [Model configurations]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/#model-configurations): + +```json +POST /_plugins/_ml/models/_register +{ + "name": "My OpenAI model: gpt-5", + "function_name": "remote", + "description": "test model", + "connector": { + "name": "My openai connector: gpt-5", + "description": "The connector to openai chat model", + "version": 1, + "protocol": "http", + "parameters": { + "model": "gpt-5" + }, + "credential": { + "openAI_key": "" + }, + "actions": [ + { + "action_type": "predict", + "method": "POST", + "url": "https://api.openai.com/v1/chat/completions", + "headers": { + "Authorization": "Bearer ${credential.openAI_key}" + }, + "request_body": "{ \"model\": \"${parameters.model}\", \"messages\": [{\"role\":\"developer\",\"content\":\"${parameters.system_prompt}\"},${parameters._chat_history:-}{\"role\":\"user\",\"content\":\"${parameters.user_prompt}\"}${parameters._interactions:-}], \"reasoning_effort\":\"low\"${parameters.tool_configs:-}}" + } + ] + } +} +``` +{% include copy-curl.html %} + +### Step 4: Create an agent + +Create a conversational agent with the `QueryPlannerTool` (required). You can add other tools as needed: + +```json +POST /_plugins/_ml/agents/_register +{ + "name": "GPT 5 Agent for Agentic Search", + "type": "conversational", + "description": "Use this for Agentic Search", + "llm": { + "model_id": , + "parameters": { + "max_iteration": 15, + "embedding_model_id": "" + } + }, + "memory": { + "type": "conversation_index" + }, + "parameters": { + "_llm_interface": "openai/v1/chat/completions" + }, + "tools": [ + { + "type": "QueryPlanningTool" + } + ], + "app_type": "os_chat" +} +``` +{% include copy-curl.html %} + +### Step 5: Create a search pipeline + +Create a search pipeline with an agentic query translator search request processor and pass the agent ID created in step 5: + +```json +PUT _search/pipeline/agentic-pipeline +{ + "request_processors": [ + { + "agentic_query_translator": { + "agent_id": "" + } + } + ] +} +``` +{% include copy-curl.html %} + +### Step 6: Search the index + +To perform agentic search, use an `agentic` query. The `query_text` parameter contains the natural language question, and the `query_fields` parameter lists the fields that the agent should consider when generating the search query: + +```json +GET iris-index/_search?search_pipeline=agentic-pipeline +{ + "query": { + "agentic": { + "query_text": "List all the flowers present", + "query_fields": ["species", "petal_length_in_cm"] + } + } +} +``` +{% include copy-curl.html %} + +The agentic search request executes the agent with the `QueryPlanningTool` and sends the natural language question, along with the index mapping and a default prompt, to a large language model (LLM) to generate a query domain-specific language (DSL) query. The returned DSL query is then executed as a search request in OpenSearch: + +```json +"hits": { + "total": { + "value": 2, + "relation": "eq" + }, + "max_score": 1.0, + "hits": [ + { + "_index": "iris-index", + "_id": "1", + "_score": 1.0, + "_source": { + "petal_length_in_cm": 1.4, + "petal_width_in_cm": 0.2, + "sepal_length_in_cm": 5.1, + "sepal_width_in_cm": 3.5, + "species": "setosa" + } + }, + { + "_index": "iris-index", + "_id": "2", + "_score": 1.0, + "_source": { + "petal_length_in_cm": 4.5, + "petal_width_in_cm": 1.5, + "sepal_length_in_cm": 6.4, + "sepal_width_in_cm": 2.9, + "species": "versicolor" + } + } + ] +} +``` + +## Next steps + +- [Customizing agentic search agents]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/) - Learn how to customize your agentic search agent with different models, tools, and configurations. +- [Inspecting agentic search and continuing conversations]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-converse/) - Inspect agent behavior, view generated DSL, and continue conversations using memory_id. diff --git a/_vector-search/ai-search/agentic-search/search-templates.md b/_vector-search/ai-search/agentic-search/search-templates.md index cc8c17429e..30dc832dca 100644 --- a/_vector-search/ai-search/agentic-search/search-templates.md +++ b/_vector-search/ai-search/agentic-search/search-templates.md @@ -9,7 +9,7 @@ has_children: false # Search Templates to improve determinism -The Query Planner Tool can accept a list of user-defined search templates during its registration. The Query Planner Tool generates DSL queries based on context and uses the attached search templates to generate the appropriate query. +The Query Planner Tool can accept a list of user-defined search templates during its registration. The Query Planner Tool generates DSL queries based on context and uses the attached search templates to generate the appropriate query. For general information about OpenSearch search templates, see [Search templates]({{site.url}}{{site.baseurl}}/search-plugins/search-template/). ## Why use Search Templates? @@ -131,7 +131,7 @@ POST /_scripts/store_sum_skus ### Step 4: Register Template 2 Count stores in a city that have at least min units of a single SKU ```json -POST /_scripts/store_sum_skus +POST /_scripts/stores_with_give_sku { "script": { "lang": "mustache", @@ -174,8 +174,8 @@ POST /_scripts/store_sum_skus Refer to these to register query planner model and the agent model: -- [Create a model for the Query Planning tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-3-create-a-model-for-the-query-planning-tool) -- [Create a Model for Conversational Agent]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-4-create-a-model-for-conversational-agent) +- [Step 3: Create a model for the agent and Query Planning tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/quick-start-guide/#step-3-create-a-model-for-the-agent-and-query-planning-tool) +- [Step 4: Create an agent]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/quick-start-guide/#step-4-create-an-agent) ```json { @@ -223,7 +223,7 @@ Refer to these to register query planner model and the agent model: Register the search pipeline before performing the query: -- [Create a search pipeline]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-6-create-a-search-pipeline) +- [Create a search pipeline]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/quick-start-guide/#step-5-create-a-search-pipeline) **Agentic Search Query:** ```json From 9e4c7d99cbc275dc4a417855695226a9e123267a Mon Sep 17 00:00:00 2001 From: Fanit Kolchina Date: Wed, 8 Oct 2025 16:01:06 -0400 Subject: [PATCH 11/18] Doc review Signed-off-by: Fanit Kolchina --- .../agents-tools/tools/query-planning-tool.md | 49 +- _query-dsl/specialized/agentic.md | 23 +- .../agentic-context-processor.md | 16 +- .../agentic-query-translator-processor.md | 2 +- .../agentic-search/agent-converse.md | 20 +- .../agentic-search/agent-customization.md | 15 +- .../ai-search/agentic-search/flow-agent.md | 352 +++++----- .../ai-search/agentic-search/index.md | 244 ++++++- .../ai-search/agentic-search/neural-search.md | 619 ++++++++++-------- .../agentic-search/quick-start-guide.md | 224 ------- .../agentic-search/search-templates.md | 523 ++++++++------- .../building-agentic-search-flows.md | 63 +- _vector-search/ai-search/workflow-builder.md | 8 +- 13 files changed, 1133 insertions(+), 1025 deletions(-) delete mode 100644 _vector-search/ai-search/agentic-search/quick-start-guide.md diff --git a/_ml-commons-plugin/agents-tools/tools/query-planning-tool.md b/_ml-commons-plugin/agents-tools/tools/query-planning-tool.md index 9573213c27..f8084fc82d 100644 --- a/_ml-commons-plugin/agents-tools/tools/query-planning-tool.md +++ b/_ml-commons-plugin/agents-tools/tools/query-planning-tool.md @@ -20,13 +20,13 @@ The `QueryPlanningTool` supports two approaches for generating DSL queries from - **Using LLM knowledge only (default)**: The large language model (LLM) generates queries using only its training knowledge and any system/user prompts you provide. This approach relies entirely on the model's understanding of DSL syntax and your specific prompting instructions. -- **Using search templates**: The LLM uses predefined search templates as additional context when generating queries. You provide a collection of search templates with descriptions, and the LLM uses these as examples and guidance to create more accurate queries. If the LLM determines that none of the provided templates are suitable for the user's question, it tries to generate the query on its own. +- **Using search templates**: The LLM uses predefined search templates as additional context when generating queries. You provide a collection of search templates with descriptions, and the LLM uses these as examples and guidance to create more accurate queries. If the LLM determines that none of the provided templates are suitable for the user's question, the LLM attempts to generate the query independently. The `user_templates` approach is particularly useful when you have established query patterns for your specific use case or domain: it helps the LLM to generate queries that follow your preferred structure and to use appropriate field names from your index mappings. ## Step 1: Create an index and ingest sample data -First, create an index for the iris dataset: +First, create an index for the `iris` dataset: ```json PUT /iris-index @@ -77,7 +77,7 @@ POST _bulk The following request registers a remote model from Amazon Bedrock and deploys it to your cluster. The API call creates the connector and model in one step. Replace the `region`, `access_key`, `secret_key`, and `session_token` with your own values. You can use any model that supports the `converse` API, such as [Anthropic Claude 4](https://www.anthropic.com/news/claude-4) or [GPT 5](https://openai.com/index/introducing-gpt-5). You can use other model providers by creating a connector to this model (see [Connector blueprints]({{site.url}}{{site.baseurl}}/ml-commons-plugin/remote-models/connectors/#connector-blueprints)). -**Important**: When creating connectors for the QueryPlanningTool, the request body must include parameters `system_prompt` and `user_prompt`. These parameter names are required for the tool to properly inject the system and user prompts into the model's request. The examples below demonstrate the correct parameter naming conventions. +**Important**: When creating connectors for the `QueryPlanningTool`, the request body must include the `system_prompt` and `user_prompt` parameters. These parameters are required for the tool to properly inject the system and user prompts into the model's request. The following example registers and deploys the Anthropic Claude 4 model: @@ -322,33 +322,41 @@ The following table lists all tool parameters that are available when registerin Parameter | Type | Required/Optional | Description :--- | :--- | :--- | :--- -`model_id` | String | Required | The model ID of the large language model (LLM) to use for generating the query DSL. When used within a conversational agent, if this value is not provided, the agent's own `llm.model_id` is used automatically. +`model_id` | String | Required | The model ID of the large language model (LLM) used to generate the query DSL. When used within a `conversational` agent, if this value is not provided, the agent's own `llm.model_id` is used by default. `response_filter` | String | Optional | A JSONPath expression used to extract the generated query from the LLM's response. -`generation_type` | String | Optional | The type of query generation. Valid values are `llmGenerated` (use LLM knowledge only) and `user_templates` (provide search templates as additional context). Default is `llmGenerated`. +`generation_type` | String | Optional | Determines how queries are generated. Use `llmGenerated` to rely solely on the LLM's built-in knowledge, or `user_templates` to provide predefined search templates that guide query generation for consistent results. Default is `llmGenerated` `query_planner_system_prompt` | String | Optional | A system prompt that provides high-level instructions to the LLM. -`query_planner_user_prompt` | String | Optional | A user prompt template for the LLM which asks the question. -`generation_type` | String | Optional | Overrides the registered setting for this execution. Valid values: `llmGenerated` (use LLM knowledge only) or `user_templates` (use registered search templates as guidance). Default value is `llmGenerated`. -`search_templates` | Array | Optional | Applicable only when `generation_type` is set to `user_templates`. A list of search templates for an LLM to use as context when generating an OpenSearch DSL query. Each entry within the `search_templates` array must include a `template_id` and a `template_description` (provides the LLM with additional context about the template contents). +`query_planner_user_prompt` | String | Optional | A user prompt template that defines how the natural language question and context are presented to the LLM for query generation. +`search_templates` | Array | Optional | Applicable only when `generation_type` is `user_templates`. A list of search templates that provide the LLM with predefined query patterns for generating query DSL. Each template must include a `template_id` (unique identifier) and `template_description` (explains the template's purpose and use case to help the LLM choose appropriately). + +All parameters that were configured either in the connector or in the agent registration can be overridden during agent execution. +{: .note} ## Execute parameters -The `QueryPlanningTool` accepts the following execution parameters: +The `QueryPlanningTool` accepts the following execution parameters. Parameter | Type | Required/Optional | Description :--- | :--- | :--- | :--- -`question` | String | Required | Complete natural language query with all necessary context to generate OpenSearch DSL. Include the question, any specific requirements, filters, or constraints. Examples: 'Find all products with price greater than 100 dollars', 'Show me documents about machine learning published in 2023', 'Search for users with status active and age between 25 and 35' -`index_name` | String | Required | The name of the index against which the query needs to be generated. -`embedding_model_id` | String | Optional | The model ID to perform neural search. - -**Note**: During execution, other parameters that were configured either in the connector or in the agent registration can be overridden during the agent execute call. +`question` | String | Required | A complete natural language query with all necessary context to generate OpenSearch DSL. Include the question, any specific requirements, filters, or constraints. Examples: `Find all products with price greater than 100 dollars`, `Show me documents about machine learning published in 2023`, `Search for users with status active and age between 25 and 35`. +`index_name` | String | Required | The name of the index for which the query needs to be generated. +`embedding_model_id` | String | Optional | The model ID to perform semantic search. -## Customize the prompts +## Customizing the prompts You can provide your own `query_planner_system_prompt` and `query_planner_user_prompt` to customize how the LLM generates OpenSearch DSL queries. -**Important**: When creating custom prompts, ensure they include clear output formatting rules to work properly with agentic search. The system prompt should specify that the LLM must return only a valid JSON object without any additional text, code fences, or explanations. +When creating custom prompts, ensure that they include clear output formatting rules to work properly with agentic search. The system prompt should specify that the LLM must return only a valid JSON object without any additional text, code fences, or explanations. +{: .important} + +The following is the default system prompt: + +
+ + Prompt + + {: .text-delta} -Defalt system prompt: ```json ==== PURPOSE ==== You are an OpenSearch DSL expert. Convert a natural-language question into a strict JSON OpenSearch query body. @@ -474,7 +482,10 @@ Use this search template provided by the user as reference to generate the query Note that this template might contain terms that are not relevant to the question at hand; in that case ignore the template. ``` -Default User Prompt: +
+ +The following is the default user prompt: + ```json Question: ${parameters.question} Mapping: ${parameters.index_mapping:-} @@ -488,8 +499,6 @@ GIVE THE OUTPUT PART ONLY IN YOUR RESPONSE (a single JSON object) Output: ``` - - ## Related pages - [Agentic search]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index) \ No newline at end of file diff --git a/_query-dsl/specialized/agentic.md b/_query-dsl/specialized/agentic.md index d7f19c0a38..8fc4d73280 100644 --- a/_query-dsl/specialized/agentic.md +++ b/_query-dsl/specialized/agentic.md @@ -11,15 +11,14 @@ nav_order: 2 Use the `agentic` query to ask questions in natural language and have OpenSearch automatically plan and execute the retrieval. The `agentic` query works in conjunction with a preconfigured agent that reads the question, plans the search, and returns relevant results. For more information about agentic search, see [Agentic search]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/). -**Prerequisite**
-Before using an `agentic` query, you must: +## Prerequisite -1. Configure an agent with the [`QueryPlanningTool`]({{site.url}}{{site.baseurl}}/ml-commons-plugin/agents-tools/tools/query-planning-tool/). The QueryPlanningTool is required for generating DSL queries from natural language questions. -2. Optionally configure the agent with additional tools for enhanced functionality. -3. Create a search pipeline with an `agentic_query_translator` search request processor. +Before using an `agentic` query, you must fulfill the following prerequisites: + +1. Configure an agent with the [`QueryPlanningTool`]({{site.url}}{{site.baseurl}}/ml-commons-plugin/agents-tools/tools/query-planning-tool/). The QueryPlanningTool is required for generating DSL queries from natural language questions. Optionally, you can configure the agent with additional tools for enhanced functionality. +1. Create a search pipeline with an [`agentic_query_translator` search request processor]({{site.url}}{{site.baseurl}}/search-plugins/search-pipelines/agentic-query-translator-processor/). For detailed setup instructions, see [Agentic search]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/). -{: .note} ## Request body fields @@ -27,8 +26,9 @@ The `agentic` query accepts the following fields. Field | Data type | Required/Optional | Description :--- | :--- | :--- | :--- -`query_text` | String | Required | The natural language question or request. -`query_fields` | Array | Optional | A list of fields that the agent should consider when generating the search query. If not provided, the agent considers all available fields in the index mapping. +`query_text` | String | Required | The natural language question for the agent to answer. +`query_fields` | Array | Optional | A list of fields that the agent should consider when generating the search query. If omitted, the agent infers the applicable fields based on the index mappings and content. +`memory_id` | String | Optional | Applicable for `conversational` agents only. Provides a memory ID from a previous response to continue the conversation with prior context. See [Using conversational agents for agentic search]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-converse/). | ## Example @@ -58,6 +58,7 @@ For a complete example, see [Agentic search]({{site.url}}{{site.baseurl}}/vector ## Next steps -- Learn how to set up agentic search in [Agentic search]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/). -- Learn about configuring agents in [Agents]({{site.url}}{{site.baseurl}}/ml-commons-plugin/agents-tools/agents/). -- Learn about the [QueryPlanningTool]({{site.url}}{{site.baseurl}}/ml-commons-plugin/agents-tools/tools/query-planning-tool/). \ No newline at end of file +- Learn how to configure agentic search in [Agentic search]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/). +- Learn about agent types in [Agent types]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/#agent-types). +- Learn about the [QueryPlanningTool]({{site.url}}{{site.baseurl}}/ml-commons-plugin/agents-tools/tools/query-planning-tool/). +- View the reference documentation for the [`agentic_query_translator` search request processor]({{site.url}}{{site.baseurl}}/search-plugins/search-pipelines/agentic-query-translator-processor/). \ No newline at end of file diff --git a/_search-plugins/search-pipelines/agentic-context-processor.md b/_search-plugins/search-pipelines/agentic-context-processor.md index c615d821b0..cb9f27a774 100644 --- a/_search-plugins/search-pipelines/agentic-context-processor.md +++ b/_search-plugins/search-pipelines/agentic-context-processor.md @@ -19,14 +19,16 @@ The `agentic_context` search response processor adds agent execution context inf 4. The context information is added to the search response extensions. 5. Type validation ensures that all context attributes are strings. +This processor works with both conversational and flow agents, but the available context information differs by agent type. Flow agents provide `dsl_query` (the generated DSL) only, while conversational agents provide `dsl_query`, `memory_id`, and `agent_steps_summary`. For more information, see [Agent types]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/#agent-types). + ## Request body fields The following table lists all available request fields. Field | Data type | Description :--- | :--- | :--- -`agent_steps_summary` | Boolean | Whether to include the agent's execution steps summary in the response. Default is `false`. Optional. -`dsl_query` | Boolean | Whether to include the generated DSL query in the response. Default is `false`. Optional. +`agent_steps_summary` | Boolean | Whether to include the agent's execution steps summary in the response. Available for conversational agents only. Optional. Default is `false`. +`dsl_query` | Boolean | Whether to include the generated DSL query in the response. Available for both conversational and flow agents. Optional. Default is `false`. ## Response fields @@ -34,9 +36,9 @@ When enabled, the processor adds the following fields to the search response ext Field | Description :--- | :--- -`agent_steps_summary` | A summary of the steps that the agent took to translate the natural language query (included when `agent_steps_summary` is `true`). -`memory_id` | The conversation memory ID for maintaining context across queries. Only provide this in the `agentic` query if you want to continue the previous conversation. -`dsl_query` | The generated DSL query that was executed (included when `dsl_query` is `true`). +`agent_steps_summary` | A summary of the steps that the agent took to translate the natural language query (included when `agent_steps_summary` is `true`). Available for conversational agents only. +`memory_id` | The conversation memory ID for maintaining context across queries. Available for conversational agents only. Only provide this in the `agentic` query if you want to continue the previous conversation. +`dsl_query` | The generated DSL query that was executed (included when `dsl_query` is `true`). Available for both conversational and flow agents. ## Example @@ -98,6 +100,6 @@ The response contains the steps taken by the agent to translate the query, the m ## Related pages -- [Agentic search queries]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/) -- [Agents]({{site.url}}{{site.baseurl}}/ml-commons-plugin/agents-tools/agents/index/) +- [Agentic search]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/) +- [Agentic query]({{site.url}}{{site.baseurl}}/query-dsl/specialized/agentic/) - [Agentic query translator processor]({{site.url}}{{site.baseurl}}/search-plugins/search-pipelines/agentic-query-translator-processor/) \ No newline at end of file diff --git a/_search-plugins/search-pipelines/agentic-query-translator-processor.md b/_search-plugins/search-pipelines/agentic-query-translator-processor.md index 0fb500a95f..d4b96fe840 100644 --- a/_search-plugins/search-pipelines/agentic-query-translator-processor.md +++ b/_search-plugins/search-pipelines/agentic-query-translator-processor.md @@ -128,5 +128,5 @@ The response contains the matching documents: ## Related pages - [Agentic search queries]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/) -- [Agents]({{site.url}}{{site.baseurl}}/ml-commons-plugin/agents-tools/agents/index/) +- [Agentic query]({{site.url}}{{site.baseurl}}/query-dsl/specialized/agentic/) - [Agentic context processor]({{site.url}}{{site.baseurl}}/search-plugins/search-pipelines/agentic-context-processor/) \ No newline at end of file diff --git a/_vector-search/ai-search/agentic-search/agent-converse.md b/_vector-search/ai-search/agentic-search/agent-converse.md index 954d83d7e9..a4cdb67d9f 100644 --- a/_vector-search/ai-search/agentic-search/agent-converse.md +++ b/_vector-search/ai-search/agentic-search/agent-converse.md @@ -1,23 +1,25 @@ --- layout: default -title: Inspecting agentic search and continuing conversations +title: Using conversational agents parent: Agentic search grand_parent: AI search nav_order: 70 has_children: false --- -# Inspecting agentic search and continuing conversations +# Using conversational agents for agentic search -To inspect agent behavior and continue conversations, use the `agentic_context` response processor in addition to the `agentic_query_translator` request processor. The `agentic_query_translator` processor invokes the agent to translate natural language queries into DSL, while the `agentic_context` processor records the agent's execution context. It provides the agent's reasoning steps in `agent_steps_summary`, the generated DSL query in `dsl_query`, and a `memory_id` that enables conversation continuation. +Conversational agents provide advanced agentic search capabilities with detailed reasoning traces and conversation memory. Unlike flow agents that only return the generated DSL query, conversational agents provide additional context through the `agentic_context` response processor, including step-by-step reasoning summaries and memory IDs for continuing conversations across multiple queries. + +This guide demonstrates how to configure conversational agents with multiple tools and use their advanced features for complex search scenarios. ## Prerequisites Before you start, ensure that you have registered and configured an agent. To configure an agent, follow these steps: -1. **Follow [Step 3: Create a model for the agent and Query Planning tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/quick-start-guide/#step-3-create-a-model-for-the-agent-and-query-planning-tool)** -- This model is used by both the conversational agent and the `QueryPlanningTool`. -2. **Review [Model configurations]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/#model-configurations)** -- Choose the specific model to use. -3. Then register and configure an agent using [Step 4: Create an agent]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/quick-start-guide/#step-4-create-an-agent) or see [Customizing agentic search agents]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/) for advanced configurations. The agent must include a `QueryPlanningTool`. +1. Follow [Step 3: Create a model for the agent and Query Planning tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/quick-start-guide/#step-3-create-a-model-for-the-agent-and-query-planning-tool). This model is used by both the conversational agent and the `QueryPlanningTool`. +2. Review [model configuration]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/#model-configuration) and choose a model to use. +3. Register and configure an agent using [Step 4: Create an agent]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-4-create-an-agent) or see [Customizing agentic search agents]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/) for advanced configurations. The agent must include a `QueryPlanningTool`. ## Step 1: Create a product index @@ -350,6 +352,6 @@ The first query will likely generate a more complex DSL with sorting and aggrega ## Next steps -- [Agentic query translator processor]({{site.url}}{{site.baseurl}}/search-plugins/search-pipelines/agentic-query-translator-processor/) - Learn more about the request processor that translates natural language queries into OpenSearch DSL. -- [Agentic context processor]({{site.url}}{{site.baseurl}}/search-plugins/search-pipelines/agentic-context-processor/) - Learn more about the response processor that adds agent execution context information for monitoring and conversation continuity. -- [Customizing agentic search agents]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/) - Configure advanced agent behaviors with different models, tools, and prompts. \ No newline at end of file +- [Agentic query translator processor]({{site.url}}{{site.baseurl}}/search-plugins/search-pipelines/agentic-query-translator-processor/) -- Learn more about the request processor that translates natural language queries into OpenSearch DSL. +- [Agentic context processor]({{site.url}}{{site.baseurl}}/search-plugins/search-pipelines/agentic-context-processor/) -- Learn more about the response processor that adds agent execution context information for monitoring and conversation continuity. +- [Customizing agentic search agents]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/) -- Configure advanced agent behaviors with different models, tools, and prompts. \ No newline at end of file diff --git a/_vector-search/ai-search/agentic-search/agent-customization.md b/_vector-search/ai-search/agentic-search/agent-customization.md index 1fbd08932b..49f858f7c9 100644 --- a/_vector-search/ai-search/agentic-search/agent-customization.md +++ b/_vector-search/ai-search/agentic-search/agent-customization.md @@ -3,7 +3,7 @@ layout: default title: Customizing agents parent: Agentic search grand_parent: AI search -nav_order: 60 +nav_order: 10 has_children: false --- @@ -11,15 +11,15 @@ has_children: false You can customize agentic search agents by configuring their models, tools, and prompts: -- [Model configurations](#model-configurations): Choose different LLMs optimized for various tasks. +- [Model configuration](#model-configuration): Choose different large language models (LLMs) optimized for various tasks. - [Tool orchestration](#tool-orchestration): Combine multiple tools for automated workflows. - [Prompt engineering](#prompt-engineering-and-customization): Finetune agent behavior using custom prompts. -## Model configurations +## Model configuration Select the appropriate language model based on your performance requirements and use case. -You can also configure different models for the conversational agent and the `QueryPlanningTool`. Set the agent's model using `llm.model_id`, and set the query planner model by specifying `parameters.model_id` inside the `QueryPlanningTool`: +You can also configure different models for the conversational agent and the `QueryPlanningTool`. Set the agent's model by specifying the `llm.model_id`, and set the query planner model by specifying `parameters.model_id` in the `QueryPlanningTool`: ```json { @@ -49,8 +49,9 @@ You can also configure different models for the conversational agent and the `Qu "app_type": "os_chat" } ``` +{% include copy.html %} -Set `` to the interface for your provider (for example, `openai/v1/chat/completions`), then choose a specific model from the options below. +Set the `` to the interface for your provider (for example, `openai/v1/chat/completions`), then choose a specific model from the following options. ### OpenAI GPT models @@ -245,7 +246,7 @@ If you don't specify an index in your search query, the search runs against all Configure your agent's behavior and output format using custom prompts that guide the model's reasoning process. -For Query Planner tool Prompt customization, see the [QueryPlanningTool documentation]({{site.url}}{{site.baseurl}}/ml-commons-plugin/agents-tools/tools/query-planning-tool/). +To customize the Query Planning tool prompt, see [Query Planning tool]({{site.url}}{{site.baseurl}}/ml-commons-plugin/agents-tools/tools/query-planning-tool/). ### System prompt optimization @@ -409,4 +410,4 @@ The default user prompt template passes the natural language question and availa ## Next steps -For a complete walkthrough of using customized agents in practice, see [Inspecting agentic search and continuing conversations]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-converse/). +- For a comprehensive example of using customized agents in practice, see [Inspecting agentic search and continuing conversations]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-converse/). diff --git a/_vector-search/ai-search/agentic-search/flow-agent.md b/_vector-search/ai-search/agentic-search/flow-agent.md index d38c143493..67322f00a1 100644 --- a/_vector-search/ai-search/agentic-search/flow-agent.md +++ b/_vector-search/ai-search/agentic-search/flow-agent.md @@ -1,172 +1,230 @@ --- layout: default -title: Flow agent +title: Using flow agents parent: Agentic search grand_parent: AI search -nav_order: 110 +nav_order: 20 has_children: false --- -# Flow agent - -The Conversational agent provides great flexibility and supports many use cases. However, if you do need all the advanced functionalities, you can directly invoke the Query Planner Tool using a flow agent, which reduces the number of LLM calls made, thereby reducing both cost and latency. - -While flow agents are super fast, the flexibility and query quality might not be as high as conversational agents, but they're good enough for most use cases. If latency is important, we highly recommend using the flow agent instead of the Conversational Agent. - -## Key differences from Conversational Agent - -- **No additional tools**: Flow agents only use the Query Planner Tool -- **Must provide index name**: Unlike conversational agents, you must specify the index name -- **No agent step summary**: Simplified execution without detailed step summaries -- **No memory ID**: Cannot continue conversations across multiple interactions - -## Prerequisites - -Before using a flow agent, you need to: - -1. **Create an index for ingestion** - - See [Create product index]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-converse/#step-1-create-a-product-index) in the end-to-end example. - -2. **Ingest documents into the index** - - See [Insert sample data]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-converse/#step-2-ingest-sample-data) in the end-to-end example. - -3. **Register a model for Query Planner Tool (QPT)** - - See [Step 3: Create a model for the agent and Query Planning tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/quick-start-guide/#step-3-create-a-model-for-the-agent-and-query-planning-tool) for detailed instructions. - -4. **Register a flow agent** - Response filter is required. Always specify a `response_filter` in the `QueryPlanningTool` parameters so the agent extracts the generated DSL correctly from your model provider's response. - - Examples: - - OpenAI: `"response_filter": "$.choices[0].message.content"` - - Claude (Bedrock Converse): `"response_filter": "$.output.message.content[0].text"` - ```json - POST /_plugins/_ml/agents/_register - { - "name": "Flow Agent for Agentic Search", - "type": "flow", - "description": "Fast flow agent for agentic search", - "tools": [ - { - "type": "QueryPlanningTool", - "parameters": { - "model_id": "your_model_id_from_step3", - "response_filter": - } - } - ] - } - ``` - {% include copy-curl.html %} - -5. **Create Agentic pipeline with the flow agent** - - We can use the response processor to see the generated DSL query: - ```json - PUT _search/pipeline/agentic-pipeline - { - "request_processors": [ - { - "agentic_query_translator": { - "agent_id": "your_flow_agentId_from_step_4" - } - } - ], - "response_processors": [ - { - "agentic_context": { - "dsl_query": true - } - } - ] - } - ``` - {% include copy-curl.html %} - -## Usage - -Once set up, you can perform agentic search using the agentic query clause. Since flow agents require you to specify the index name, you must include it in your search request: +# Using flow agents for agentic search + +Flow agents provide a streamlined alternative to conversational agents. While conversational agents use multiple tools for flexible, context-aware search, flow agents focus solely on query planning. This reduces LLM calls, improves response times, and lowers costs. + +Flow agents are sufficient for most use cases. Use flow agents when low latency and cost efficiency are priorities, queries are simple, and conversation memory isn’t required. Use conversational agents for complex searches, multi-tool workflows, persistent context, or the highest query quality. + +Flow agents differ from conversational agents in the following ways: + +- Flow agents use only one tool---the Query Planning tool +- You must explicitly specify the target index name in the search request +- Flow agents don't provide agent step summaries or reasoning traces (only the generated DSL query is available when using the `agentic_context` response processor) +- Flow agents don't have conversational memory and cannot maintain context across multiple interactions + +## Step 1: Create a product index + +Create a sample index with product data that includes various attributes like name, price, color, and category: + +```json +PUT /products-index +{ + "settings": { + "number_of_shards": "4", + "number_of_replicas": "2" + }, + "mappings": { + "properties": { + "product_name": { "type": "text" }, + "description": { "type": "text" }, + "price": { "type": "float" }, + "currency": { "type": "keyword" }, + "rating": { "type": "float" }, + "review_count": { "type": "integer" }, + "in_stock": { "type": "boolean" }, + "color": { "type": "keyword" }, + "size": { "type": "keyword" }, + "category": { "type": "keyword" }, + "brand": { "type": "keyword" }, + "tags": { "type": "keyword" } + } + } +} +``` +{% include copy-curl.html %} + +## Step 2: Ingest sample data + +Add sample product documents to the index: + +```json +POST _bulk +{ "index": { "_index": "products-index", "_id": "1" } } +{ "product_name": "Nike Air Max 270", "description": "Comfortable running shoes with Air Max technology", "price": 150.0, "currency": "USD", "rating": 4.5, "review_count": 1200, "in_stock": true, "color": "white", "size": "10", "category": "shoes", "brand": "Nike", "tags": ["running", "athletic", "comfortable"] } +{ "index": { "_index": "products-index", "_id": "2" } } +{ "product_name": "Adidas Ultraboost 22", "description": "Premium running shoes with Boost midsole", "price": 180.0, "currency": "USD", "rating": 4.7, "review_count": 850, "in_stock": true, "color": "black", "size": "9", "category": "shoes", "brand": "Adidas", "tags": ["running", "premium", "boost"] } +{ "index": { "_index": "products-index", "_id": "3" } } +{ "product_name": "Converse Chuck Taylor", "description": "Classic canvas sneakers", "price": 65.0, "currency": "USD", "rating": 4.2, "review_count": 2100, "in_stock": true, "color": "white", "size": "8", "category": "shoes", "brand": "Converse", "tags": ["casual", "classic", "canvas"] } +{ "index": { "_index": "products-index", "_id": "4" } } +{ "product_name": "Puma RS-X", "description": "Retro-inspired running shoes with modern comfort", "price": 120.0, "currency": "USD", "rating": 4.3, "review_count": 750, "in_stock": true, "color": "black", "size": "9", "category": "shoes", "brand": "Puma", "tags": ["retro", "running", "comfortable"] } +``` +{% include copy-curl.html %} + +## Step 3: Create a model for the agent and Query Planning tool + +Register a single model that will be used by both the conversational agent and the `QueryPlanningTool`. This model analyzes natural language questions, coordinates tool usage, and generates the OpenSearch DSL. For available model options, see [Model configurations]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/#model-configurations): + +```json +POST /_plugins/_ml/models/_register +{ + "name": "My OpenAI model: gpt-5", + "function_name": "remote", + "description": "test model", + "connector": { + "name": "My openai connector: gpt-5", + "description": "The connector to openai chat model", + "version": 1, + "protocol": "http", + "parameters": { + "model": "gpt-5" + }, + "credential": { + "openAI_key": "" + }, + "actions": [ + { + "action_type": "predict", + "method": "POST", + "url": "https://api.openai.com/v1/chat/completions", + "headers": { + "Authorization": "Bearer ${credential.openAI_key}" + }, + "request_body": "{ \"model\": \"${parameters.model}\", \"messages\": [{\"role\":\"developer\",\"content\":\"${parameters.system_prompt}\"},${parameters._chat_history:-}{\"role\":\"user\",\"content\":\"${parameters.user_prompt}\"}${parameters._interactions:-}], \"reasoning_effort\":\"low\"${parameters.tool_configs:-}}" + } + ] + } +} +``` +{% include copy-curl.html %} + +## Step 4: Register a flow agent + +Next, register a flow agent. You must include a `response_filter` in the `QueryPlanningTool` parameters so the agent extracts the generated DSL correctly from your model provider's response. + +```json +POST /_plugins/_ml/agents/_register +{ + "name": "Flow Agent for Agentic Search", + "type": "flow", + "description": "Flow agent for agentic search", + "tools": [ + { + "type": "QueryPlanningTool", + "parameters": { + "model_id": "your_model_id_from_step_3", + "response_filter": "" + } + } + ] +} +``` +{% include copy-curl.html %} + +Use the following response filters based on your model provider: + +- **OpenAI**: `"response_filter": "$.choices[0].message.content"` +- **Anthropic Claude (Amazon Bedrock Converse API)**: `"response_filter": "$.output.message.content[0].text"` + +## Step 5: Create an agentic pipeline with the flow agent + +Create a search pipeline that uses your flow agent to translate natural language queries into DSL. You can optionally include a response processor to view the generated DSL query: + +```json +PUT _search/pipeline/agentic-pipeline +{ + "request_processors": [ + { + "agentic_query_translator": { + "agent_id": "your_flow_agentId_from_step_4" + } + } + ], + "response_processors": [ + { + "agentic_context": { + "dsl_query": true + } + } + ] +} +``` +{% include copy-curl.html %} + +## Step 6: Run an agentic search + +To run an agentic search, use the `agentic` query clause. Flow agents require the index name, so you must include it in your search request. Flow agents don't support conversation memory, so you cannot include the `memory_id` parameter: ```json GET products-index/_search?search_pipeline=agentic-pipeline { - "query": { - "agentic": { - "query_text": "Find me white shoes under 150 dollars" - } + "query": { + "agentic": { + "query_text": "Find me white shoes under 150 dollars" } + } } ``` {% include copy-curl.html %} -**Key differences for flow agents:** -- **Must specify index name**: Unlike conversational agents, you must include the index name in the URL path -- **No memory_id**: Flow agents don't support conversation memory, so you cannot use `memory_id` parameter -- **Limited response details**: No `agent_steps_summary` or detailed reasoning in the response +The flow agent processes the natural language query and returns matching products along with the generated DSL query in the response: -**Example response:** ```json { - "took": 3965, - "timed_out": false, - "_shards": { - "total": 1, - "successful": 1, - "skipped": 0, - "failed": 0 + "took": 3965, + "timed_out": false, + "_shards": { + "total": 1, + "successful": 1, + "skipped": 0, + "failed": 0 + }, + "hits": { + "total": { + "value": 1, + "relation": "eq" }, - "hits": { - "total": { - "value": 1, - "relation": "eq" + "max_score": null, + "hits": [ + { + "_index": "products-index", + "_id": "3", + "_score": null, + "_source": { + "product_name": "Converse Chuck Taylor", + "description": "Classic canvas sneakers", + "price": 65.0, + "currency": "USD", + "rating": 4.2, + "review_count": 2100, + "in_stock": true, + "color": "white", + "size": "8", + "category": "shoes", + "brand": "Converse", + "tags": [ + "casual", + "classic", + "canvas" + ] }, - "max_score": null, - "hits": [ - { - "_index": "products-index", - "_id": "3", - "_score": null, - "_source": { - "product_name": "Converse Chuck Taylor", - "description": "Classic canvas sneakers", - "price": 65.0, - "currency": "USD", - "rating": 4.2, - "review_count": 2100, - "in_stock": true, - "color": "white", - "size": "8", - "category": "shoes", - "brand": "Converse", - "tags": [ - "casual", - "classic", - "canvas" - ] - }, - "sort": [ - 4.2, - 2100 - ] - } + "sort": [ + 4.2, + 2100 ] - }, - "ext": { - "dsl_query": "{\"size\":10.0,\"query\":{\"bool\":{\"filter\":[{\"term\":{\"category\":\"shoes\"}},{\"term\":{\"color\":\"white\"}},{\"range\":{\"price\":{\"lt\":150.0}}}]}},\"sort\":[{\"rating\":{\"order\":\"desc\"}},{\"review_count\":{\"order\":\"desc\"}}]}" - } + } + ] + }, + "ext": { + "dsl_query": "{\"size\":10.0,\"query\":{\"bool\":{\"filter\":[{\"term\":{\"category\":\"shoes\"}},{\"term\":{\"color\":\"white\"}},{\"range\":{\"price\":{\"lt\":150.0}}}]}},\"sort\":[{\"rating\":{\"order\":\"desc\"}},{\"review_count\":{\"order\":\"desc\"}}]}" + } } ``` -**Use Flow Agent when:** -- Latency is critical -- Cost optimization is important -- Simple queries are sufficient -- No conversation memory needed - -**Use Conversational Agent when:** -- Intelligent Search is needed -- Multiple tools are needed -- Conversation context is important -- Maximum query quality is desired \ No newline at end of file diff --git a/_vector-search/ai-search/agentic-search/index.md b/_vector-search/ai-search/agentic-search/index.md index 329bb0375e..709584a112 100644 --- a/_vector-search/ai-search/agentic-search/index.md +++ b/_vector-search/ai-search/agentic-search/index.md @@ -2,8 +2,9 @@ layout: default title: Agentic search parent: AI search -nav_order: 30 +nav_order: 75 has_children: true +has_toc: false redirect_from: - /vector-search/ai-search/agentic-search/ --- @@ -12,13 +13,178 @@ redirect_from: **Introduced 3.2** {: .label .label-purple } -Agentic search lets users ask questions in natural language and have OpenSearch plan and execute the retrieval automatically. A preconfigured **agent** reads the question, plans the search, and returns relevant results. +Agentic search lets you ask questions in natural language and have OpenSearch plan and execute the retrieval automatically. A preconfigured agent reads the question, plans the search, and returns relevant results. -## How to use +You can configure agentic search through the Agentic Search API or the OpenSearch Dashboards UI. This guide describes configuring agentic search using the API. To learn how to configure it in OpenSearch Dashboards, see [Building Agentic Search Flows]({{site.url}}{{site.baseurl}}/vector-search/ai-search/building-agentic-search-flows/). -Before running a request, complete the setup steps in the [Quick start guide]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/quick-start-guide/). The `agentic` query clause enables agentic search and lets you query in natural language. The following is an example request body. +## Agent types -Request body: +Agentic search supports two types of agents, each optimized for different use cases. + +### Conversational agents + +Conversational agents provide the most flexible and powerful agentic search experience. They support multiple tools, conversation memory, and detailed reasoning traces. Use conversational agents when you need: + +- **Multi-tool workflows** - Automatic index discovery, schema analysis, and external data integration +- **Conversation memory** - Ability to continue conversations across multiple queries using memory IDs +- **Complex reasoning** - Detailed step-by-step reasoning traces and tool orchestration +- **Highest query quality** - Maximum flexibility for handling complex or ambiguous queries + +### Flow agents + +Flow agents offer a streamlined alternative focused solely on query planning. They provide faster response times and lower costs by using only the Query Planning tool. Use flow agents when you need: + +- **Low latency** - Faster query processing with fewer LLM calls +- **Cost efficiency** - Reduced computational overhead and API costs +- **Simple queries** - Straightforward search requirements without complex reasoning +- **Known indexes** - When you can specify target indexes directly in requests + +The following tutorial uses a conversational agent. To learn about flow agents, see [Using flow agents for agentic search]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/flow-agent/). + +## Prerequisite + +Before using agentic search, you must configure an agent with the [`QueryPlanningTool`]({{site.url}}{{site.baseurl}}/ml-commons-plugin/agents-tools/tools/query-planning-tool/). + +## Step 1: Create an index for ingestion + +Create an index for ingestion: + +```json +PUT /iris-index +{ + "mappings": { + "properties": { + "petal_length_in_cm": { + "type": "float" + }, + "petal_width_in_cm": { + "type": "float" + }, + "sepal_length_in_cm": { + "type": "float" + }, + "sepal_width_in_cm": { + "type": "float" + }, + "species": { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + } + } + } +} +``` +{% include copy-curl.html %} + +## Step 2: Ingest documents into the index + +To ingest documents into the index created in the previous step, send the following requests: + +```json +POST _bulk +{ "index": { "_index": "iris-index", "_id": "1" } } +{ "petal_length_in_cm": 1.4, "petal_width_in_cm": 0.2, "sepal_length_in_cm": 5.1, "sepal_width_in_cm": 3.5, "species": "setosa" } +{ "index": { "_index": "iris-index", "_id": "2" } } +{ "petal_length_in_cm": 4.5, "petal_width_in_cm": 1.5, "sepal_length_in_cm": 6.4, "sepal_width_in_cm": 2.9, "species": "versicolor" } +``` +{% include copy-curl.html %} + +## Step 3: Create a model for the agent and Query Planning tool + +Register a single model that will be used by both the conversational agent and the `QueryPlanningTool`. This model analyzes natural language questions, coordinates tool usage, and generates the OpenSearch DSL. For available model options, see [Model configurations]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/#model-configurations): + +```json +POST /_plugins/_ml/models/_register +{ + "name": "My OpenAI model: gpt-5", + "function_name": "remote", + "description": "test model", + "connector": { + "name": "My openai connector: gpt-5", + "description": "The connector to openai chat model", + "version": 1, + "protocol": "http", + "parameters": { + "model": "gpt-5" + }, + "credential": { + "openAI_key": "" + }, + "actions": [ + { + "action_type": "predict", + "method": "POST", + "url": "https://api.openai.com/v1/chat/completions", + "headers": { + "Authorization": "Bearer ${credential.openAI_key}" + }, + "request_body": "{ \"model\": \"${parameters.model}\", \"messages\": [{\"role\":\"developer\",\"content\":\"${parameters.system_prompt}\"},${parameters._chat_history:-}{\"role\":\"user\",\"content\":\"${parameters.user_prompt}\"}${parameters._interactions:-}], \"reasoning_effort\":\"low\"${parameters.tool_configs:-}}" + } + ] + } +} +``` +{% include copy-curl.html %} + +## Step 4: Create an agent + +Create a conversational agent with the `QueryPlannerTool` (required). You can add other tools as needed: + +```json +POST /_plugins/_ml/agents/_register +{ + "name": "GPT 5 Agent for Agentic Search", + "type": "conversational", + "description": "Use this for Agentic Search", + "llm": { + "model_id": , + "parameters": { + "max_iteration": 15, + "embedding_model_id": "" + } + }, + "memory": { + "type": "conversation_index" + }, + "parameters": { + "_llm_interface": "openai/v1/chat/completions" + }, + "tools": [ + { + "type": "QueryPlanningTool" + } + ], + "app_type": "os_chat" +} +``` +{% include copy-curl.html %} + +## Step 5: Create a search pipeline + +Create a search pipeline with an agentic query translator search request processor and pass the agent ID created in step 5: + +```json +PUT _search/pipeline/agentic-pipeline +{ + "request_processors": [ + { + "agentic_query_translator": { + "agent_id": "" + } + } + ] +} +``` +{% include copy-curl.html %} + +## Step 6: Search the index + +To perform agentic search, use an `agentic` query. The `query_text` parameter contains the natural language question, and the `query_fields` parameter lists the fields that the agent should consider when generating the search query: ```json GET iris-index/_search?search_pipeline=agentic-pipeline @@ -26,39 +192,65 @@ GET iris-index/_search?search_pipeline=agentic-pipeline "query": { "agentic": { "query_text": "List all the flowers present", - "query_fields": ["species", "petal_length_in_cm"], - "memory_id": "XRzFl5kB-5P992SCeeqO" + "query_fields": ["species", "petal_length_in_cm"] } } } ``` {% include copy-curl.html %} -Parameters: +The agentic search request executes the agent with the `QueryPlanningTool` and sends the natural language question, along with the index mapping and a default prompt, to a large language model (LLM) to generate a query domain-specific language (DSL) query. The returned DSL query is then executed as a search request in OpenSearch: + +```json +"hits": { + "total": { + "value": 2, + "relation": "eq" + }, + "max_score": 1.0, + "hits": [ + { + "_index": "iris-index", + "_id": "1", + "_score": 1.0, + "_source": { + "petal_length_in_cm": 1.4, + "petal_width_in_cm": 0.2, + "sepal_length_in_cm": 5.1, + "sepal_width_in_cm": 3.5, + "species": "setosa" + } + }, + { + "_index": "iris-index", + "_id": "2", + "_score": 1.0, + "_source": { + "petal_length_in_cm": 4.5, + "petal_width_in_cm": 1.5, + "sepal_length_in_cm": 6.4, + "sepal_width_in_cm": 2.9, + "species": "versicolor" + } + } + ] +} +``` -| Field | Type | Required | Description | -| --- | --- | --- | --- | -| `query.agentic.query_text` | string | Yes | The natural language question for the agent to answer. | -| `query.agentic.query_fields` | array of strings | No | Optional list of fields that helps the agent choose the right fields when generating the DSL. If omitted, the agent infers fields automatically based on index mappings and content. | -| `query.agentic.memory_id` | string | No | For conversational agents, provide a memory ID from a previous response to continue the conversation with prior context. | +## Advanced configurations -## Quick start +After setting up basic agentic search, you can enhance your implementation with these advanced features: -You can configure agentic search using OpenSearch Dashboards or using the Agentic Search APIs. +- [Customize agentic search agents]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/) -- Learn how to customize your agentic search agent with different models, tools, and configurations. -### Using OpenSearch Dashboards +- [Use flow agents]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/flow-agent/) -- Use streamlined flow agents for faster, more cost-effective query planning when you don't need conversation memory or complex tool orchestration. -You can configure agents and execute agentic search using AI search flows in OpenSearch Dashboards. For more information, see [Building Agentic Search Flows]({{site.url}}{{site.baseurl}}/vector-search/ai-search/building-agentic-search-flows/). +- [Configure semantic search]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/neural-search/) -- Configure agents to automatically choose between keyword and semantic vector searches based on user intent, providing more relevant results for conceptual questions. -### Using APIs +- [Add search templates]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/search-templates/) -- Add predefined search templates to handle complex query patterns that would be challenging for LLMs to generate consistently, ensuring predictable query structure and improved reliability. -For API-based setup and examples, see the [Quick start guide]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/quick-start-guide/). +- [Build agentic search flows]({{site.url}}{{site.baseurl}}/vector-search/ai-search/building-agentic-search-flows/) -- Configure agents and execute agentic search using AI search flows in OpenSearch Dashboards. -## Pages in this section +## Next steps -- [Quick start guide]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/quick-start-guide/) -- [Customizing agents]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/) -- [Inspecting agentic search and continuing conversations]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-converse/) -- [Flow agents]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/flow-agent/) -- [Neural search]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/neural-search/) -- [Search templates]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/search-templates/) +- [Inspecting agentic search and continuing conversations]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-converse/) -- Inspect agent behavior, view generated DSL, and continue conversations using a memory ID. \ No newline at end of file diff --git a/_vector-search/ai-search/agentic-search/neural-search.md b/_vector-search/ai-search/agentic-search/neural-search.md index 98e9cbf7ab..0985591a4f 100644 --- a/_vector-search/ai-search/agentic-search/neural-search.md +++ b/_vector-search/ai-search/agentic-search/neural-search.md @@ -1,91 +1,96 @@ --- layout: default -title: Neural Search +title: Configuring agents for semantic search parent: Agentic search grand_parent: AI search nav_order: 90 has_children: false --- -# Neural Search +# Configuring agents for semantic search -`neural` is a type of DSL claude that requires a `model_id` to perform semantic search on KNN indices (when not model id is not directly associated with the index). To make Agentic Search generate neural queries with `model_id` field, you can provide the embedding model ID during the registration of the agent, and the Query Planner Tool reads this embedding model ID and produces a neural query when the question requires it. This example demonstrates how agentic search can intelligently generate neural DSL queries by providing the embedding model ID in multiple ways - during agent registration, or even directly in your `query_text`. +When you have vector indexes with embeddings and want agentic search to automatically perform semantic searches based on user intent, you need to configure your agent with embedding model information. This allows the agent to generate `neural` queries that search for semantic similarity rather than exact text matches, providing more relevant results for conceptual questions. -## Complete Example: Neural DSL Generation with Agentic Search +When you configure agents for semantic search, the agents choose between traditional keyword searches and semantic vector searches at query time. To enable semantic search in agentic search, you need to provide embedding model information. You can either add the `embedding_model_id` parameter to your agent's configuration or include the embedding model ID directly in your natural language query. -This example shows how agentic search can smartly write DSL with neural queries, demonstrating the flexibility of providing model IDs in different locations. +## Step 1: Configure a vector index -## Phase 1: KNN Index Setup +First, configure a vector index. -### Step 1: Create Embedding Model +### Step 1(a): Create an embedding model + +Register an embedding model that will convert text into vector representations for semantic search: ```json POST /_plugins/_ml/models/_register - { - "name": "Bedrock embedding model", - "function_name": "remote", - "description": "Bedrock text embedding model v2", - "connector": { - "name": "Amazon Bedrock Connector: embedding", - "description": "The connector to bedrock Titan embedding model", - "version": 1, - "protocol": "aws_sigv4", - "parameters": { - "region": "your-aws-region", - "service_name": "bedrock", - "model": "amazon.titan-embed-text-v2:0", - "dimensions": 1024, - "normalize": true, - "embeddingTypes": [ - "float" - ] - }, - "credential": { - "access_key": "your-access-key", - "secret_key": "your-secret-key", - "session_token": "your-session-token" + "name": "Bedrock embedding model", + "function_name": "remote", + "description": "Bedrock text embedding model v2", + "connector": { + "name": "Amazon Bedrock Connector: embedding", + "description": "The connector to bedrock Titan embedding model", + "version": 1, + "protocol": "aws_sigv4", + "parameters": { + "region": "your-aws-region", + "service_name": "bedrock", + "model": "amazon.titan-embed-text-v2:0", + "dimensions": 1024, + "normalize": true, + "embeddingTypes": [ + "float" + ] + }, + "credential": { + "access_key": "your-access-key", + "secret_key": "your-secret-key", + "session_token": "your-session-token" + }, + "actions": [ + { + "action_type": "predict", + "method": "POST", + "url": "https://bedrock-runtime.${parameters.region}.amazonaws.com/model/${parameters.model}/invoke", + "headers": { + "content-type": "application/json", + "x-amz-content-sha256": "required" }, - "actions": [ - { - "action_type": "predict", - "method": "POST", - "url": "https://bedrock-runtime.${parameters.region}.amazonaws.com/model/${parameters.model}/invoke", - "headers": { - "content-type": "application/json", - "x-amz-content-sha256": "required" - }, - "request_body": "{ \"inputText\": \"${parameters.inputText}\", \"dimensions\": ${parameters.dimensions}, \"normalize\": ${parameters.normalize}, \"embeddingTypes\": ${parameters.embeddingTypes} }", - "pre_process_function": "connector.pre_process.bedrock.embedding", - "post_process_function": "connector.post_process.bedrock.embedding" - } - ] - } + "request_body": "{ \"inputText\": \"${parameters.inputText}\", \"dimensions\": ${parameters.dimensions}, \"normalize\": ${parameters.normalize}, \"embeddingTypes\": ${parameters.embeddingTypes} }", + "pre_process_function": "connector.pre_process.bedrock.embedding", + "post_process_function": "connector.post_process.bedrock.embedding" + } + ] + } } ``` {% include copy-curl.html %} -### Step 2: Create Ingest Pipeline +### Step 1(b): Create an ingest pipeline + +Create an ingest pipeline that automatically generates embeddings for text fields during document ingestion: ```json PUT /_ingest/pipeline/my_bedrock_embedding_pipeline { - "description": "text embedding pipeline", - "processors": [ - { - "text_embedding": { - "model_id": "fxzel5kB-5P992SCH-qM", - "field_map": { - "content_text": "content_embedding" - } - } + "description": "text embedding pipeline", + "processors": [ + { + "text_embedding": { + "model_id": "fxzel5kB-5P992SCH-qM", + "field_map": { + "content_text": "content_embedding" } - ] + } + } + ] } ``` {% include copy-curl.html %} -### Step 3: Create KNN Index with Ingest Pipeline +### Step 1(c): Create a vector index with an ingest pipeline + +Create a vector index with mappings for both text content and vector embeddings, using the ingest pipeline to automatically process documents: ```json PUT /research_papers @@ -98,7 +103,7 @@ PUT /research_papers }, "mappings": { "properties": { - "content_embedding": { + "content_embedding": { "type": "knn_vector", "dimension": 1024, "method": { @@ -118,7 +123,9 @@ PUT /research_papers ``` {% include copy-curl.html %} -### Step 4: Ingest Data into KNN Index +### Step 1(d): Ingest data into the vector index + +Add research paper documents to the index. The ingest pipeline will automatically generate embeddings for the `content_text` field: ```json POST /_bulk @@ -135,300 +142,346 @@ POST /_bulk ``` {% include copy-curl.html %} -## Phase 2: Agentic Search Setup +## Step 2: Configure agentic search -### Step 5: Register model and agent for Agentic Search +Next, configure agentic search. -Follow the Quick start guide to set up the model and agent: +### Step 2(a): Create a model for agentic search -- **[Step 3: Create a model for the agent and Query Planning tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/quick-start-guide/#step-3-create-a-model-for-the-agent-and-query-planning-tool)** -- **[Step 4: Create an agent]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/quick-start-guide/#step-4-create-an-agent)** +Register a model that will be used by both the conversational agent and the Query Planning tool: -### Step 6: Create Agent with Embedding Model ID +```json +POST /_plugins/_ml/models/_register +{ + "name": "My OpenAI model: gpt-5", + "function_name": "remote", + "description": "Model for agentic search with neural queries", + "connector": { + "name": "My openai connector: gpt-5", + "description": "The connector to openai chat model", + "version": 1, + "protocol": "http", + "parameters": { + "model": "gpt-5" + }, + "credential": { + "openAI_key": "" + }, + "actions": [ + { + "action_type": "predict", + "method": "POST", + "url": "https://api.openai.com/v1/chat/completions", + "headers": { + "Authorization": "Bearer ${credential.openAI_key}" + }, + "request_body": "{ \"model\": \"${parameters.model}\", \"messages\": [{\"role\":\"developer\",\"content\":\"${parameters.system_prompt}\"},${parameters._chat_history:-}{\"role\":\"user\",\"content\":\"${parameters.user_prompt}\"}${parameters._interactions:-}], \"reasoning_effort\":\"low\"${parameters.tool_configs:-}}" + } + ] + } +} +``` +{% include copy-curl.html %} -Create an agent with the `embedding_model_id` specified in the agent registration: +### Step 2(b): Create an agent with an embedding model ID + +Create an agent with the `embedding_model_id` specified in the agent registration. This allows the agent to automatically generate neural queries when semantic search is needed: ```json POST /_plugins/_ml/agents/_register { - "name": "GPT 5 Agent for Agentic Search", - "type": "conversational", - "description": "Use this for Agentic Search", - "llm": { - "model_id": "your-agent-model-id", - "parameters": { - "max_iteration": 15, - "embedding_model_id": "your-embedding-model-id-from-step1" - } - }, - "memory": { - "type": "conversation_index" - }, + "name": "GPT 5 Agent for Agentic Search", + "type": "conversational", + "description": "Use this for Agentic Search", + "llm": { + "model_id": "your-agent-model-id", "parameters": { - "_llm_interface": "openai/v1/chat/completions" - }, - "tools": [ - { - "type": "QueryPlanningTool", - "parameters": { - "model_id": "your-qpt-model-id" - } - } - ], - "app_type": "os_chat" + "max_iteration": 15, + "embedding_model_id": "your-embedding-model-id-from-step1" + } + }, + "memory": { + "type": "conversation_index" + }, + "parameters": { + "_llm_interface": "openai/v1/chat/completions" + }, + "tools": [ + { + "type": "QueryPlanningTool", + "parameters": { + "model_id": "your-qpt-model-id" + } + } + ], + "app_type": "os_chat" } ``` {% include copy-curl.html %} -### Step 7: Create Search Pipeline +### Step 2(c): Create a search pipeline -Create the search pipeline as described in the [end-to-end example]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-converse/#step-4-configure-a-search-pipeline): +Create a search pipeline that uses your agent for agentic search: +```json +PUT _search/pipeline/my_pipeline +{ + "request_processors": [ + { + "agentic_query_translator": { + "agent_id": "your-agent-id-from-step-2b" + } + } + ] +} +``` +{% include copy-curl.html %} -## Phase 3: Neural Search Examples +## Step 3: Run an agentic search -### Example 1: Agentic Search with Neural Query +Run various configurations of agentic search. -Perform agentic search and observe neural query being used: +### Run a semantic search + +Perform agentic search with a question that requires semantic understanding: ```json POST /research_papers/_search?search_pipeline=my_pipeline { - "query": { - "agentic": { - "query_text": "Show me 3 robots training related research papers " - } + "query": { + "agentic": { + "query_text": "Show me 3 robots training related research papers " } + } } ``` {% include copy-curl.html %} -**Expected Response:** +The agent successfully identifies that semantic search is needed. The `ext` object demonstrates that the Query Planner tool successfully generated a `neural` query using the embedding model ID. The response includes matching research papers ranked by semantic similarity: + ```json { - "took": 10509, - "timed_out": false, - "_shards": { - "total": 1, - "successful": 1, - "skipped": 0, - "failed": 0 - }, - "hits": { - "total": { - "value": 5, - "relation": "eq" - }, - "max_score": 0.40031588, - "hits": [ - { - "_index": "research_papers", - "_id": "1", - "_score": 0.40031588, - "_source": { - "content_text": "Autonomous robotic systems for warehouse automation and industrial manufacturing", - "rating": 5, - "content_embedding": [], - "published_date": "2024-05-15" - } - }, - { - "_index": "research_papers", - "_id": "3", - "_score": 0.36390686, - "_source": { - "content_text": "Reinforcement learning algorithms for sequential decision making and optimization problems", - "rating": 5, - "content_embedding": [], - "published_date": "2024-03-20" - } - }, - { - "_index": "research_papers", - "_id": "5", - "_score": 0.34401828, - "_source": { - "content_text": "Tectonic plate movements and earthquake prediction using geological fault analysis", - "rating": 4, - "content_embedding": [], - "published_date": "2024-01-22" - } - } - ] + "took": 10509, + "timed_out": false, + "_shards": { + "total": 1, + "successful": 1, + "skipped": 0, + "failed": 0 + }, + "hits": { + "total": { + "value": 5, + "relation": "eq" }, - "ext": { - "agent_steps_summary": "I have these tools available: [ListIndexTool, IndexMappingTool, query_planner_tool]\nFirst I used: ListIndexTool — input: \"[]\"; context gained: \"Found indices; 'research_papers' appears relevant\"\nSecond I used: IndexMappingTool — input: \"[\"research_papers\"]\"; context gained: \"Index has text content and an embedding field suitable for neural search\"\nThird I used: query_planner_tool — qpt.question: \"Show me 3 research papers related to robots training.\"; index_name_provided: \"research_papers\"\nValidation: qpt output is valid and limits results to 3 using neural search with the provided model.", - "memory_id": "jhzpl5kB-5P992SCwOqe", - "dsl_query": "{\"size\":3.0,\"query\":{\"neural\":{\"content_embedding\":{\"model_id\":\"fxzel5kB-5P992SCH-qM\",\"k\":100.0,\"query_text\":\"robots training\"}}}}" - } + "max_score": 0.40031588, + "hits": [ + { + "_index": "research_papers", + "_id": "1", + "_score": 0.40031588, + "_source": { + "content_text": "Autonomous robotic systems for warehouse automation and industrial manufacturing", + "rating": 5, + "content_embedding": [""], + "published_date": "2024-05-15" + } + }, + { + "_index": "research_papers", + "_id": "3", + "_score": 0.36390686, + "_source": { + "content_text": "Reinforcement learning algorithms for sequential decision making and optimization problems", + "rating": 5, + "content_embedding": [""], + "published_date": "2024-03-20" + } + }, + { + "_index": "research_papers", + "_id": "5", + "_score": 0.34401828, + "_source": { + "content_text": "Tectonic plate movements and earthquake prediction using geological fault analysis", + "rating": 4, + "content_embedding": [""], + "published_date": "2024-01-22" + } + } + ] + }, + "ext": { + "agent_steps_summary": "I have these tools available: [ListIndexTool, IndexMappingTool, query_planner_tool]\nFirst I used: ListIndexTool — input: \"[]\"; context gained: \"Found indices; 'research_papers' appears relevant\"\nSecond I used: IndexMappingTool — input: \"[\"research_papers\"]\"; context gained: \"Index has text content and an embedding field suitable for neural search\"\nThird I used: query_planner_tool — qpt.question: \"Show me 3 research papers related to robots training.\"; index_name_provided: \"research_papers\"\nValidation: qpt output is valid and limits results to 3 using neural search with the provided model.", + "memory_id": "jhzpl5kB-5P992SCwOqe", + "dsl_query": "{\"size\":3.0,\"query\":{\"neural\":{\"content_embedding\":{\"model_id\":\"fxzel5kB-5P992SCH-qM\",\"k\":100.0,\"query_text\":\"robots training\"}}}}" + } } ``` -The `ext` block shows that the Query Planner Tool successfully generated a neural DSL query with the embedding model ID, demonstrating agentic search's ability to create neural search queries when appropriate. - -### Example 2: Agentic Search Without Neural Query +### Run a traditional search with filters -Next, perform agentic search with a question that doesn't need embedding model: +Next, perform agentic search with a question that requires filtering rather than semantic understanding: ```json POST /research_papers/_search?search_pipeline=my_pipeline { - "query": { - "agentic": { - "query_text": "Show me papers published after 2024 May" - } + "query": { + "agentic": { + "query_text": "Show me papers published after 2024 May" } + } } ``` {% include copy-curl.html %} -**Expected Response:** +The agent recognizes the query as a date-based filter query and generates a traditional `range` query instead of a `neural` query: + ```json { - "took": 8522, - "timed_out": false, - "_shards": { - "total": 1, - "successful": 1, - "skipped": 0, - "failed": 0 + "took": 8522, + "timed_out": false, + "_shards": { + "total": 1, + "successful": 1, + "skipped": 0, + "failed": 0 + }, + "hits": { + "total": { + "value": 1, + "relation": "eq" }, - "hits": { - "total": { - "value": 1, - "relation": "eq" + "max_score": null, + "hits": [ + { + "_index": "research_papers", + "_id": "2", + "_score": null, + "_source": { + "content_text": "Gene expression analysis and CRISPR-Cas9 genome editing applications in cancer research", + "rating": 4, + "content_embedding": [""], + "published_date": "2024-06-02" }, - "max_score": null, - "hits": [ - { - "_index": "research_papers", - "_id": "2", - "_score": null, - "_source": { - "content_text": "Gene expression analysis and CRISPR-Cas9 genome editing applications in cancer research", - "rating": 4, - "content_embedding": [], - "published_date": "2024-06-02" - }, - "sort": [ - 1717286400000 - ] - } + "sort": [ + 1717286400000 ] - }, - "ext": { - "agent_steps_summary": "I have these tools available: [ListIndexTool, IndexMappingTool, query_planner_tool]\nFirst I used: query_planner_tool — qpt.question: \"Show me papers published after May 2024.\"; index_name_provided: \"research_papers\"\nValidation: qpt output is valid JSON and matches the user request with the specified date filter and sorting.", - "memory_id": "vBzyl5kB-5P992SCI-o1", - "dsl_query": "{\"size\":10.0,\"query\":{\"bool\":{\"filter\":[{\"range\":{\"published_date\":{\"gt\":\"2024-05-31T23:59:59Z\"}}}]}},\"sort\":[{\"published_date\":{\"order\":\"desc\"}}]}" - } + } + ] + }, + "ext": { + "agent_steps_summary": "I have these tools available: [ListIndexTool, IndexMappingTool, query_planner_tool]\nFirst I used: query_planner_tool — qpt.question: \"Show me papers published after May 2024.\"; index_name_provided: \"research_papers\"\nValidation: qpt output is valid JSON and matches the user request with the specified date filter and sorting.", + "memory_id": "vBzyl5kB-5P992SCI-o1", + "dsl_query": "{\"size\":10.0,\"query\":{\"bool\":{\"filter\":[{\"range\":{\"published_date\":{\"gt\":\"2024-05-31T23:59:59Z\"}}}]}},\"sort\":[{\"published_date\":{\"order\":\"desc\"}}]}" + } } ``` -As demonstrated, when the question doesn't require semantic search, the Agentic Search intelligently generates traditional DSL queries instead of neural queries, showing its ability to choose the appropriate query type based on context. -### Example 3: Query-Level Embedding Model Specification +### Specify embedding models in query text + +For maximum flexibility, you can register an agent without specifying an embedding model ID and then specify the embedding model ID in the `query_text` directly when sending a query. -For maximum flexibility, register an agent without `embedding_model_id` and mention it in the `query_text` directly: +Create an agent without specifying the embedding model ID in the agent parameters: -**Register Agent without Embedding Model ID parameter:** ```json POST /_plugins/_ml/agents/_register { - "name": "GPT 5 Agent for Agentic Search", - "type": "conversational", - "description": "Use this for Agentic Search", - "llm": { - "model_id": "your-agent-model-id", - "parameters": { - "max_iteration": 15 - } - }, - "memory": { - "type": "conversation_index" - }, + "name": "GPT 5 Agent for Agentic Search", + "type": "conversational", + "description": "Use this for Agentic Search", + "llm": { + "model_id": "your-agent-model-id", "parameters": { - "_llm_interface": "openai/v1/chat/completions" - }, - "tools": [ - { - "type": "QueryPlanningTool", - "parameters": { - "model_id": "your-qpt-model-id" - } - } - ], - "app_type": "os_chat" + "max_iteration": 15 + } + }, + "memory": { + "type": "conversation_index" + }, + "parameters": { + "_llm_interface": "openai/v1/chat/completions" + }, + "tools": [ + { + "type": "QueryPlanningTool", + "parameters": { + "model_id": "your-qpt-model-id" + } + } + ], + "app_type": "os_chat" } ``` -**Perform agentic search with embedding model ID in the query_text:** +Send an agentic search request that includes the embedding model ID directly in the natural language `query_text`: ```json POST /research_papers/_search?search_pipeline=my_pipeline { - "query": { - "agentic": { - "query_text": "Show me 3 robots training related research papers use this model id for neural search:fxzel5kB-5P992SCH-qM " - } + "query": { + "agentic": { + "query_text": "Show me 3 robots training related research papers use this model id for neural search:fxzel5kB-5P992SCH-qM " } + } } ``` {% include copy-curl.html %} -**Expected Response:** +The agent successfully extracts the embedding model ID directly from the query text and generates the appropriate neural DSL query: + ```json { - "took": 14989, - "timed_out": false, - "_shards": { - "total": 1, - "successful": 1, - "skipped": 0, - "failed": 0 - }, - "hits": { - "max_score": 0.38957736, - "hits": [ - { - "_index": "research_papers", - "_id": "1", - "_score": 0.38957736, - "_source": { - "content_text": "Autonomous robotic systems for warehouse automation and industrial manufacturing", - "rating": 5, - "content_embedding": [], - "published_date": "2024-05-15" - } - }, - { - "_index": "research_papers", - "_id": "3", - "_score": 0.36386627, - "_source": { - "content_text": "Reinforcement learning algorithms for sequential decision making and optimization problems", - "rating": 5, - "content_embedding": [], - "published_date": "2024-03-20" - } - }, - { - "_index": "research_papers", - "_id": "2", - "_score": 0.35789147, - "_source": { - "content_text": "Gene expression analysis and CRISPR-Cas9 genome editing applications in cancer research", - "rating": 4, - "content_embedding": [], - "published_date": "2024-06-02" - } - } - ] - }, - "ext": { - "agent_steps_summary": "I have these tools available: [ListIndexTool, IndexMappingTool, query_planner_tool]\nFirst I used: ListIndexTool — input: \"\"; context gained: \"Found indices, including research_papers with 5 documents\"\nSecond I used: IndexMappingTool — input: \"research_papers\"; context gained: \"Index exists and contains text and embedding fields suitable for neural search\"\nThird I used: query_planner_tool — qpt.question: \"Show me 3 research papers related to robot training.\"; index_name_provided: \"research_papers\"\nValidation: qpt output is valid neural search DSL using the provided model ID and limits results to 3.", - "memory_id": "whz1l5kB-5P992SCPOqn", - "dsl_query": "{\"size\":3.0,\"query\":{\"neural\":{\"content_embedding\":{\"model_id\":\"fxzel5kB-5P992SCH-qM\",\"k\":100.0,\"query_text\":\"research papers related to robot training\"}}},\"sort\":[{\"_score\":{\"order\":\"desc\"}}],\"track_total_hits\":false}" - } + "took": 14989, + "timed_out": false, + "_shards": { + "total": 1, + "successful": 1, + "skipped": 0, + "failed": 0 + }, + "hits": { + "max_score": 0.38957736, + "hits": [ + { + "_index": "research_papers", + "_id": "1", + "_score": 0.38957736, + "_source": { + "content_text": "Autonomous robotic systems for warehouse automation and industrial manufacturing", + "rating": 5, + "content_embedding": [], + "published_date": "2024-05-15" + } + }, + { + "_index": "research_papers", + "_id": "3", + "_score": 0.36386627, + "_source": { + "content_text": "Reinforcement learning algorithms for sequential decision making and optimization problems", + "rating": 5, + "content_embedding": [], + "published_date": "2024-03-20" + } + }, + { + "_index": "research_papers", + "_id": "2", + "_score": 0.35789147, + "_source": { + "content_text": "Gene expression analysis and CRISPR-Cas9 genome editing applications in cancer research", + "rating": 4, + "content_embedding": [], + "published_date": "2024-06-02" + } + } + ] + }, + "ext": { + "agent_steps_summary": "I have these tools available: [ListIndexTool, IndexMappingTool, query_planner_tool]\nFirst I used: ListIndexTool — input: \"\"; context gained: \"Found indices, including research_papers with 5 documents\"\nSecond I used: IndexMappingTool — input: \"research_papers\"; context gained: \"Index exists and contains text and embedding fields suitable for neural search\"\nThird I used: query_planner_tool — qpt.question: \"Show me 3 research papers related to robot training.\"; index_name_provided: \"research_papers\"\nValidation: qpt output is valid neural search DSL using the provided model ID and limits results to 3.", + "memory_id": "whz1l5kB-5P992SCPOqn", + "dsl_query": "{\"size\":3.0,\"query\":{\"neural\":{\"content_embedding\":{\"model_id\":\"fxzel5kB-5P992SCH-qM\",\"k\":100.0,\"query_text\":\"research papers related to robot training\"}}},\"sort\":[{\"_score\":{\"order\":\"desc\"}}],\"track_total_hits\":false}" + } } -``` - -As demonstrated, Agentic Search successfully extracts the embedding model ID directly from the query text and generates the appropriate neural DSL query, showcasing the flexibility of query-level model specification. \ No newline at end of file +``` \ No newline at end of file diff --git a/_vector-search/ai-search/agentic-search/quick-start-guide.md b/_vector-search/ai-search/agentic-search/quick-start-guide.md deleted file mode 100644 index 0d5672f0ac..0000000000 --- a/_vector-search/ai-search/agentic-search/quick-start-guide.md +++ /dev/null @@ -1,224 +0,0 @@ ---- -layout: default -title: Quick start guide -parent: Agentic search -grand_parent: AI search -nav_order: 35 -has_children: false ---- - -# Quick start guide - -Use this guide to quickly configure and run agentic search. - -## Prerequisite - -Before using agentic search, you must configure an agent with the [`QueryPlanningTool`]({{site.url}}{{site.baseurl}}/ml-commons-plugin/agents-tools/tools/query-planning-tool/). - -## Configure agentic search - -To configure Agentic Search using APIs, follow these steps: - -1. [Create an index for ingestion](#step-1-create-an-index-for-ingestion). -2. [Ingest documents into the index](#step-2-ingest-documents-into-the-index). -3. [Create a model for Query Planning tool](#step-3-create-a-model-for-query-planning-tool). -4. [Create an agent](#step-4-create-an-agent). -5. [Create a search pipeline](#step-5-create-a-search-pipeline). -6. [Search the index](#step-6-search-the-index). - -### Step 1: Create an index for ingestion - -Create an index for ingestion: - -```json -PUT /iris-index -{ - "mappings": { - "properties": { - "petal_length_in_cm": { - "type": "float" - }, - "petal_width_in_cm": { - "type": "float" - }, - "sepal_length_in_cm": { - "type": "float" - }, - "sepal_width_in_cm": { - "type": "float" - }, - "species": { - "type": "text", - "fields": { - "keyword": { - "type": "keyword", - "ignore_above": 256 - } - } - } - } - } -} -``` -{% include copy-curl.html %} - -### Step 2: Ingest documents into the index - -To ingest documents into the index created in the previous step, send the following requests: - -```json -POST _bulk -{ "index": { "_index": "iris-index", "_id": "1" } } -{ "petal_length_in_cm": 1.4, "petal_width_in_cm": 0.2, "sepal_length_in_cm": 5.1, "sepal_width_in_cm": 3.5, "species": "setosa" } -{ "index": { "_index": "iris-index", "_id": "2" } } -{ "petal_length_in_cm": 4.5, "petal_width_in_cm": 1.5, "sepal_length_in_cm": 6.4, "sepal_width_in_cm": 2.9, "species": "versicolor" } -``` -{% include copy-curl.html %} - -### Step 3: Create a model for the agent and Query Planning tool - -Register a single model that will be used by both the conversational agent and the `QueryPlanningTool`. This model analyzes natural language questions, coordinates tool usage, and generates the OpenSearch DSL. For available model options, see [Model configurations]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/#model-configurations): - -```json -POST /_plugins/_ml/models/_register -{ - "name": "My OpenAI model: gpt-5", - "function_name": "remote", - "description": "test model", - "connector": { - "name": "My openai connector: gpt-5", - "description": "The connector to openai chat model", - "version": 1, - "protocol": "http", - "parameters": { - "model": "gpt-5" - }, - "credential": { - "openAI_key": "" - }, - "actions": [ - { - "action_type": "predict", - "method": "POST", - "url": "https://api.openai.com/v1/chat/completions", - "headers": { - "Authorization": "Bearer ${credential.openAI_key}" - }, - "request_body": "{ \"model\": \"${parameters.model}\", \"messages\": [{\"role\":\"developer\",\"content\":\"${parameters.system_prompt}\"},${parameters._chat_history:-}{\"role\":\"user\",\"content\":\"${parameters.user_prompt}\"}${parameters._interactions:-}], \"reasoning_effort\":\"low\"${parameters.tool_configs:-}}" - } - ] - } -} -``` -{% include copy-curl.html %} - -### Step 4: Create an agent - -Create a conversational agent with the `QueryPlannerTool` (required). You can add other tools as needed: - -```json -POST /_plugins/_ml/agents/_register -{ - "name": "GPT 5 Agent for Agentic Search", - "type": "conversational", - "description": "Use this for Agentic Search", - "llm": { - "model_id": , - "parameters": { - "max_iteration": 15, - "embedding_model_id": "" - } - }, - "memory": { - "type": "conversation_index" - }, - "parameters": { - "_llm_interface": "openai/v1/chat/completions" - }, - "tools": [ - { - "type": "QueryPlanningTool" - } - ], - "app_type": "os_chat" -} -``` -{% include copy-curl.html %} - -### Step 5: Create a search pipeline - -Create a search pipeline with an agentic query translator search request processor and pass the agent ID created in step 5: - -```json -PUT _search/pipeline/agentic-pipeline -{ - "request_processors": [ - { - "agentic_query_translator": { - "agent_id": "" - } - } - ] -} -``` -{% include copy-curl.html %} - -### Step 6: Search the index - -To perform agentic search, use an `agentic` query. The `query_text` parameter contains the natural language question, and the `query_fields` parameter lists the fields that the agent should consider when generating the search query: - -```json -GET iris-index/_search?search_pipeline=agentic-pipeline -{ - "query": { - "agentic": { - "query_text": "List all the flowers present", - "query_fields": ["species", "petal_length_in_cm"] - } - } -} -``` -{% include copy-curl.html %} - -The agentic search request executes the agent with the `QueryPlanningTool` and sends the natural language question, along with the index mapping and a default prompt, to a large language model (LLM) to generate a query domain-specific language (DSL) query. The returned DSL query is then executed as a search request in OpenSearch: - -```json -"hits": { - "total": { - "value": 2, - "relation": "eq" - }, - "max_score": 1.0, - "hits": [ - { - "_index": "iris-index", - "_id": "1", - "_score": 1.0, - "_source": { - "petal_length_in_cm": 1.4, - "petal_width_in_cm": 0.2, - "sepal_length_in_cm": 5.1, - "sepal_width_in_cm": 3.5, - "species": "setosa" - } - }, - { - "_index": "iris-index", - "_id": "2", - "_score": 1.0, - "_source": { - "petal_length_in_cm": 4.5, - "petal_width_in_cm": 1.5, - "sepal_length_in_cm": 6.4, - "sepal_width_in_cm": 2.9, - "species": "versicolor" - } - } - ] -} -``` - -## Next steps - -- [Customizing agentic search agents]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/) - Learn how to customize your agentic search agent with different models, tools, and configurations. -- [Inspecting agentic search and continuing conversations]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-converse/) - Inspect agent behavior, view generated DSL, and continue conversations using memory_id. diff --git a/_vector-search/ai-search/agentic-search/search-templates.md b/_vector-search/ai-search/agentic-search/search-templates.md index 30dc832dca..6a8f7ee17a 100644 --- a/_vector-search/ai-search/agentic-search/search-templates.md +++ b/_vector-search/ai-search/agentic-search/search-templates.md @@ -1,37 +1,34 @@ --- layout: default -title: Search Templates to improve determinism +title: Adding search templates parent: Agentic search grand_parent: AI search nav_order: 100 has_children: false --- -# Search Templates to improve determinism +# Adding search templates -The Query Planner Tool can accept a list of user-defined search templates during its registration. The Query Planner Tool generates DSL queries based on context and uses the attached search templates to generate the appropriate query. For general information about OpenSearch search templates, see [Search templates]({{site.url}}{{site.baseurl}}/search-plugins/search-template/). +The Query Planning tool can accept a list of [search templates]({{site.url}}{{site.baseurl}}/search-plugins/search-template/) during its registration. During search, the Query Planning tool chooses an appropriate search template based on the user's question and template descriptions, and the large language model (LLM) generates a query based on the selected search template. -## Why use Search Templates? +This approach allows you to solve complex use cases that would otherwise be challenging for the LLM alone: -Search templates provide several key benefits: +- Enhances query response consistency in agentic search. The major portion of the DSL query is provided by the search template, with only minor parts or placeholders filled by the LLM. +- Handles complex use cases, in which the LLM struggles to generate correct queries. +- Ensures predictable query structure and naming conventions. -- **Improve determinism**: Enhance query response consistency in Agentic Search. The major portion of the DSL query is provided by the search template, with only minor parts or placeholders filled by the LLM -- **Handle complex use cases**: Solve scenarios where the LLM struggles to generate correct queries -- **Consistent output**: Ensure predictable query structure and naming conventions +## Best practices -## How Search Templates work +When creating search templates for agentic search, follow these guidelines: -1. **Template Definition**: Users provide a list of search templates alongside descriptions for each template -2. **Template Selection**: The Query Planner Tool chooses an appropriate search template based on the user's question and template descriptions -3. **Query Generation**: The LLM generates a query based on the selected search template +- Write detailed descriptions for each template to help the LLM choose correctly. +- Use descriptive placeholder names that clearly indicate what should be filled. +- Create templates for different query patterns you commonly use. +- Validate that templates work correctly with various inputs before deployment. -This approach allows you to solve really complicated use cases that would otherwise be challenging for the LLM alone. +## Step 1: Create an index - - -## How to Use Search Templates: Example Use Case - -### Step 1: Create Index +Create a stores index with nested inventory data to demonstrate complex aggregation scenarios: ```json PUT /stores @@ -39,15 +36,14 @@ PUT /stores "mappings": { "properties": { "store_id": { "type": "keyword" }, - "name": { "type": "text", "fields": { "keyword": { "type": "keyword", "ignore_above": 256 } } }, + "name": { "type": "text", "fields": { "keyword": { "type": "keyword", "ignore_above": 256 } } }, "address": { "properties": { - "city": { "type": "keyword" }, + "city": { "type": "keyword" }, "state": { "type": "keyword" } } }, "location": { "type": "geo_point" }, - "inventory": { "type": "nested", "properties": { @@ -61,7 +57,9 @@ PUT /stores ``` {% include copy-curl.html %} -### Step 2: Ingest Documents +## Step 2: Ingest documents + +Add sample store documents containing inventory data for different cities and products: ```json POST /_bulk @@ -79,9 +77,10 @@ POST /_bulk ``` {% include copy-curl.html %} -### Step 3: Register Template 1 +## Step 3: Register search templates + +Register a search template that returns stores in a city whose combined inventory across three SKUs meets a minimum threshold: -Return stores in a city whose combined inventory across three SKUs is ≥ min_total. ```json POST /_scripts/store_sum_skus { @@ -128,8 +127,8 @@ POST /_scripts/store_sum_skus ``` {% include copy-curl.html %} -### Step 4: Register Template 2 -Count stores in a city that have at least min units of a single SKU +Register a search template that counts stores in a city having at least a minimum quantity of a specific SKU: + ```json POST /_scripts/stores_with_give_sku { @@ -170,273 +169,301 @@ POST /_scripts/stores_with_give_sku ``` {% include copy-curl.html %} -### Step 5: Register Agent with Query Planner Tool (with Search Templates) +## Step 4: Register an agent with the Query Planning tool + +Next, register an agent with the Query Planning tool, and configure the tool to use your search templates. -Refer to these to register query planner model and the agent model: +### Step 4(a): Create a model for the agent and Query Planning tool -- [Step 3: Create a model for the agent and Query Planning tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/quick-start-guide/#step-3-create-a-model-for-the-agent-and-query-planning-tool) -- [Step 4: Create an agent]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/quick-start-guide/#step-4-create-an-agent) +Register a model for both the conversational agent and the Query Planning tool: ```json +POST /_plugins/_ml/models/_register { - "name": "GPT 5 Agent for Agentic Search", - "type": "conversational", - "description": "Use this for Agentic Search", - "llm": { - "model_id": "{% raw %}{{llm_model_id}}{% endraw %}", - "parameters": { - "max_iteration": 15 - } - }, - "memory": { - "type": "conversation_index" - }, + "name": "My OpenAI model: gpt-5", + "function_name": "remote", + "description": "Model for agentic search with templates", + "connector": { + "name": "My openai connector: gpt-5", + "description": "The connector to openai chat model", + "version": 1, + "protocol": "http", "parameters": { - "_llm_interface": "openai/v1/chat/completions" + "model": "gpt-5" }, - "tools": [ - - { - "type": "QueryPlanningTool", - "parameters": { - "model_id": "{% raw %}{{query_planner_model_id}}{% endraw %}", - "generation_type": "user_templates", - "search_templates": [ - { - "template_id": "store_sum_skus", - "template_description": "Return stores in a given city where the combined quantity across a list of SKUs meets or exceeds a threshold." - }, - { - "template_id": "stores_with_give_sku", - "template_description": "List stores in a given city that have at least min_qty units of a specific SKU." - } - ] - } - } - ], - "app_type": "os_chat" + "credential": { + "openAI_key": "" + }, + "actions": [ + { + "action_type": "predict", + "method": "POST", + "url": "https://api.openai.com/v1/chat/completions", + "headers": { + "Authorization": "Bearer ${credential.openAI_key}" + }, + "request_body": "{ \"model\": \"${parameters.model}\", \"messages\": [{\"role\":\"developer\",\"content\":\"${parameters.system_prompt}\"},${parameters._chat_history:-}{\"role\":\"user\",\"content\":\"${parameters.user_prompt}\"}${parameters._interactions:-}], \"reasoning_effort\":\"low\"${parameters.tool_configs:-}}" + } + ] + } } ``` {% include copy-curl.html %} -### Step 6: Hard Question Without Search Templates (Failing) +### Step 4(b): Register an agent with search templates -Register the search pipeline before performing the query: +Register an agent with the Query Planning tool configured to use your search templates: -- [Create a search pipeline]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/quick-start-guide/#step-5-create-a-search-pipeline) - -**Agentic Search Query:** ```json -POST /stores/_search?search_pipeline=my_pipeline +POST /_plugins/_ml/agents/_register { - "query": { - "agentic": { - "query_text": "List all stores in Seattle that have at least 30 combined units across these SKUs: iphone_17_air, iphone_17, and vision_pro." - } + "name": "Store Search Agent with Templates", + "type": "conversational", + "description": "Agent for store inventory searches using templates", + "llm": { + "model_id": "your-model-id-from-step-4a", + "parameters": { + "max_iteration": 15 + } + }, + "memory": { + "type": "conversation_index" + }, + "parameters": { + "_llm_interface": "openai/v1/chat/completions" + }, + "tools": [ + { + "type": "QueryPlanningTool", + "parameters": { + "model_id": "your-model-id-from-step-4a", + "generation_type": "user_templates", + "search_templates": [ + { + "template_id": "store_sum_skus", + "template_description": "Return stores in a given city where the combined quantity across a list of SKUs meets or exceeds a threshold." + }, + { + "template_id": "stores_with_give_sku", + "template_description": "List stores in a given city that have at least min_qty units of a specific SKU." + } + ] + } } + ], + "app_type": "os_chat" } ``` {% include copy-curl.html %} -**LLM Response:** +## Step 5: Create a search pipeline + +Create a search pipeline that uses your agent with search templates: + ```json +PUT _search/pipeline/agentic-pipeline { - "error": { - "root_cause": [ - { - "type": "script_exception", - "reason": "runtime error", - "script_stack": [ - "for (item in params._source.inventory) { ", - " ^---- HERE" - ], - "script": "int total = 0; for (item in params._source.inventory) { if (params.skus.contains(item.sku)) { if (item.qty instanceof Integer || item.qty instanceof Long) { total += (int)item.qty; } else if (item.qty instanceof String) { try { total += Integer.parseInt(it ...", - "lang": "painless", - "position": { - "offset": 42, - "start": 15, - "end": 56 - } - } - ], - "type": "search_phase_execution_exception", - "reason": "all shards failed", - "phase": "query", - "grouped": true, - "failed_shards": [ - { - "shard": 0, - "index": "stores", - "node": "u3NEXA8PS8W8EJcT_9suGg", - "reason": { - "type": "script_exception", - "reason": "runtime error", - "script_stack": [ - "for (item in params._source.inventory) { ", - " ^---- HERE" - ], - "script": "int total = 0; for (item in params._source.inventory) { if (params.skus.contains(item.sku)) { if (item.qty instanceof Integer || item.qty instanceof Long) { total += (int)item.qty; } else if (item.qty instanceof String) { try { total += Integer.parseInt(it ...", - "lang": "painless", - "position": { - "offset": 42, - "start": 15, - "end": 56 - }, - "caused_by": { - "type": "null_pointer_exception", - "reason": "Cannot invoke \"Object.getClass()\" because \"callArgs[0]\" is null" - } - } - } - ] - }, - "status": 400 + "request_processors": [ + { + "agentic_query_translator": { + "agent_id": "your-agent-id-from-step-4b" + } + } + ] } ``` +{% include copy-curl.html %} -This error demonstrates that the LLM struggled to generate a valid query for this complex scenario. The failure occurred because the query involves advanced features like scripts and complex aggregations that are difficult for LLMs to generate correctly. - -Let's now demonstrate how search templates solve this problem: +## Step 6: Test a complex question -### Hard Question With Search Templates (Succeeding) +Send a complex query that requires advanced aggregations: -**Agentic Search Query:** ```json -POST /stores/_search?search_pipeline=my_pipeline +POST /stores/_search?search_pipeline=agentic-pipeline { - "query": { - "agentic": { - "query_text": "List all stores in Seattle that have at least 30 combined units across these SKUs: iphone_17_air, iphone_17, and vision_pro." - } + "query": { + "agentic": { + "query_text": "List all stores in Seattle that have at least 30 combined units across these SKUs: iphone_17_air, iphone_17, and vision_pro." } + } } ``` {% include copy-curl.html %} -**Generated Query:** +Without search templates, complex queries involving advanced aggregations and scripts often fail because LLMs struggle to generate the correct syntax. For example, if you did not add search templates when creating an agent in Step 4(b), the preceding request would return a script execution error similar to the following: + +
+ + Error response + + {: .text-delta} + ```json { - "took": 21658, - "timed_out": false, - "terminated_early": true, - "_shards": { - "total": 1, - "successful": 1, - "skipped": 0, - "failed": 0 - }, - "hits": { - "total": { - "value": 4, - "relation": "eq" - }, - "max_score": null, - "hits": [] + "error": { + "root_cause": [ + { + "type": "script_exception", + "reason": "runtime error", + "script_stack": [ + "for (item in params._source.inventory) { ", + " ^---- HERE" + ], + "script": "int total = 0; for (item in params._source.inventory) { if (params.skus.contains(item.sku)) { if (item.qty instanceof Integer || item.qty instanceof Long) { total += (int)item.qty; } else if (item.qty instanceof String) { try { total += Integer.parseInt(it ...", + "lang": "painless", + "position": { + "offset": 42, + "start": 15, + "end": 56 + } + } + ], + "type": "search_phase_execution_exception", + "reason": "all shards failed", + "phase": "query", + "grouped": true, + "failed_shards": [ + { + "shard": 0, + "index": "stores", + "node": "u3NEXA8PS8W8EJcT_9suGg", + "reason": { + "type": "script_exception", + "reason": "runtime error", + "script_stack": [ + "for (item in params._source.inventory) { ", + " ^---- HERE" + ], + "script": "int total = 0; for (item in params._source.inventory) { if (params.skus.contains(item.sku)) { if (item.qty instanceof Integer || item.qty instanceof Long) { total += (int)item.qty; } else if (item.qty instanceof String) { try { total += Integer.parseInt(it ...", + "lang": "painless", + "position": { + "offset": 42, + "start": 15, + "end": 56 + }, + "caused_by": { + "type": "null_pointer_exception", + "reason": "Cannot invoke \"Object.getClass()\" because \"callArgs[0]\" is null" + } + } + } + ] + }, + "status": 400 +} +``` + +
+ +However, with search templates, the agent can handle sophisticated queries by selecting the appropriate template and filling in the parameters. The LLM correctly identifies and uses the `store_sum_skus` template, fills the template parameters (such as `city: "Seattle"` and `sku1: "iphone_17_air"`), and generates a valid query with nested aggregations and bucket selectors. The response contains stores (`S-SEA-002` and `S-SEA-003`) with combined inventory ≥ 30 units: + +```json +{ + "took": 21658, + "timed_out": false, + "terminated_early": true, + "_shards": { + "total": 1, + "successful": 1, + "skipped": 0, + "failed": 0 + }, + "hits": { + "total": { + "value": 4, + "relation": "eq" }, - "aggregations": { - "by_store": { - "doc_count_error_upper_bound": 0, - "sum_other_doc_count": 0, - "buckets": [ + "max_score": null, + "hits": [] + }, + "aggregations": { + "by_store": { + "doc_count_error_upper_bound": 0, + "sum_other_doc_count": 0, + "buckets": [ + { + "key": "S-SEA-002", + "doc_count": 1, + "inv": { + "doc_count": 3, + "skus": { + "doc_count": 3, + "sum_qty": { + "value": 34.0 + } + } + }, + "store": { + "hits": { + "total": { + "value": 1, + "relation": "eq" + }, + "max_score": 1.0, + "hits": [ { - "key": "S-SEA-002", - "doc_count": 1, - "inv": { - "doc_count": 3, - "skus": { - "doc_count": 3, - "sum_qty": { - "value": 34.0 - } - } + "_index": "stores", + "_id": "S-SEA-002", + "_score": 1.0, + "_source": { + "store_id": "S-SEA-002", + "address": { + "city": "Seattle" }, - "store": { - "hits": { - "total": { - "value": 1, - "relation": "eq" - }, - "max_score": 1.0, - "hits": [ - { - "_index": "stores", - "_id": "S-SEA-002", - "_score": 1.0, - "_source": { - "store_id": "S-SEA-002", - "address": { - "city": "Seattle" - }, - "name": "Capitol Hill" - } - } - ] - } - } - }, + "name": "Capitol Hill" + } + } + ] + } + } + }, + { + "key": "S-SEA-003", + "doc_count": 1, + "inv": { + "doc_count": 3, + "skus": { + "doc_count": 3, + "sum_qty": { + "value": 35.0 + } + } + }, + "store": { + "hits": { + "total": { + "value": 1, + "relation": "eq" + }, + "max_score": 1.0, + "hits": [ { - "key": "S-SEA-003", - "doc_count": 1, - "inv": { - "doc_count": 3, - "skus": { - "doc_count": 3, - "sum_qty": { - "value": 35.0 - } - } + "_index": "stores", + "_id": "S-SEA-003", + "_score": 1.0, + "_source": { + "store_id": "S-SEA-003", + "address": { + "city": "Seattle" }, - "store": { - "hits": { - "total": { - "value": 1, - "relation": "eq" - }, - "max_score": 1.0, - "hits": [ - { - "_index": "stores", - "_id": "S-SEA-003", - "_score": 1.0, - "_source": { - "store_id": "S-SEA-003", - "address": { - "city": "Seattle" - }, - "name": "South Lake Union" - } - } - ] - } - } + "name": "South Lake Union" + } } - ] + ] + } + } } - }, - "ext": { - "agent_steps_summary": "I have these tools available: [ListIndexTool, IndexMappingTool, query_planner_tool]\nFirst I used: query_planner_tool — qpt.question: \"List all stores in Seattle that have at least a combined total of 30 units across the following SKUs: \\\"iphone_17_air\\\", \\\"iphone_17\\\", and \\\"vision_pro\\\". The location must be Seattle. Sum the inventory counts for only these three SKUs per store and return stores where the sum is greater than or equal to 30.\"; index_name_provided: \"stores\"\nValidation: qpt output is valid JSON; adjusted numeric literals to integers and sizes to integers.", - "memory_id": "-BxpmJkB-5P992SCQ-qU", - "dsl_query":"{\"size\":0.0,\"query\":{\"term\":{\"address.city\":\"Seattle\"}},\"aggs\":{\"by_store\":{\"terms\":{\"field\":\"store_id\",\"size\":200.0},\"aggs\":{\"inv\":{\"nested\":{\"path\":\"inventory\"},\"aggs\":{\"skus\":{\"filter\":{\"terms\":{\"inventory.sku\":[\"iphone_17_air\",\"iphone_17\",\"vision_pro\"]}},\"aggs\":{\"sum_qty\":{\"sum\":{\"field\":\"inventory.qty\"}}}}}},\"keep\":{\"bucket_selector\":{\"buckets_path\":{\"total\":\"inv\>skus\>sum_qty\"},\"script\":{\"source\":\"params.total \>\= 30\"}}},\"store\":{\"top_hits\":{\"size\":1.0,\"_source\":{\"includes\":[\"store_id\",\"name\",\"address.city\"]}}}}}}}" + ] } + }, + "ext": { + "agent_steps_summary": "I have these tools available: [ListIndexTool, IndexMappingTool, query_planner_tool]\nFirst I used: query_planner_tool — qpt.question: \"List all stores in Seattle that have at least a combined total of 30 units across the following SKUs: \\\"iphone_17_air\\\", \\\"iphone_17\\\", and \\\"vision_pro\\\". The location must be Seattle. Sum the inventory counts for only these three SKUs per store and return stores where the sum is greater than or equal to 30.\"; index_name_provided: \"stores\"\nValidation: qpt output is valid JSON; adjusted numeric literals to integers and sizes to integers.", + "memory_id": "-BxpmJkB-5P992SCQ-qU", + "dsl_query":"{\"size\":0.0,\"query\":{\"term\":{\"address.city\":\"Seattle\"}},\"aggs\":{\"by_store\":{\"terms\":{\"field\":\"store_id\",\"size\":200.0},\"aggs\":{\"inv\":{\"nested\":{\"path\":\"inventory\"},\"aggs\":{\"skus\":{\"filter\":{\"terms\":{\"inventory.sku\":[\"iphone_17_air\",\"iphone_17\",\"vision_pro\"]}},\"aggs\":{\"sum_qty\":{\"sum\":{\"field\":\"inventory.qty\"}}}}}},\"keep\":{\"bucket_selector\":{\"buckets_path\":{\"total\":\"inv\>skus\>sum_qty\"},\"script\":{\"source\":\"params.total \>\= 30\"}}},\"store\":{\"top_hits\":{\"size\":1.0,\"_source\":{\"includes\":[\"store_id\",\"name\",\"address.city\"]}}}}}}}" + } } ``` -**Analysis of the successful response:** - -The query executed successfully and returned the expected results. Key observations: - -- **Template Selection**: The LLM correctly identified and used the `store_sum_skus` template -- **Parameter Filling**: Properly filled template parameters (`city: "Seattle"`, `sku1: "iphone_17_air"`, etc.) -- **Query Execution**: Generated a valid DSL query with nested aggregations and bucket selectors -- **Results**: Successfully returned stores (S-SEA-002 and S-SEA-003) with combined inventory ≥ 30 units - -The search template approach eliminated the script errors and provided deterministic, reliable query generation for this complex use case. - -## Best Practices - -- **Clear descriptions**: Write detailed descriptions for each template to help the LLM choose correctly -- **Meaningful placeholders**: Use descriptive placeholder names that clearly indicate what should be filled -- **Template variety**: Create templates for different query patterns you commonly use -- **Test thoroughly**: Validate that templates work correctly with various inputs - +## Related articles +- [Search templates]({{site.url}}{{site.baseurl}}/search-plugins/search-template/) diff --git a/_vector-search/ai-search/building-agentic-search-flows.md b/_vector-search/ai-search/building-agentic-search-flows.md index 8e11b114ca..3212a0b939 100644 --- a/_vector-search/ai-search/building-agentic-search-flows.md +++ b/_vector-search/ai-search/building-agentic-search-flows.md @@ -7,64 +7,45 @@ nav_order: 20 --- # Configuring agentic search - -This is an experimental UI feature. For updates on the progress of the feature or if you want to leave feedback, join the discussion on the [OpenSearch forum](https://forum.opensearch.org/). -{: .warning} - **Introduced 3.3** {: .label .label-purple } -Agentic search lets you ask questions in natural language and have OpenSearch agents plan and execute the retrieval automatically. The AI Search Flows plugin offers an intuitive user interface for configuring agents, equipping agents with different tools, and executing agentic searches. - -**Prerequisite: Provision ML resources**
-If you'd like to configure new agents, be sure to first provision appropriate models. For working examples, see [Model configurations]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/#model-configurations). +This is an experimental UI feature. For updates on the progress of the feature or if you want to leave feedback, join the discussion on the [OpenSearch forum](https://forum.opensearch.org/). +{: .warning} -**Prerequisite: Ingest data**
-Ensure you have a sufficient number of documents in your cluster to reasonably evaluate your agentic searches. +[Agentic search]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/) lets you ask questions in natural language and have OpenSearch agents plan and execute the retrieval automatically. OpenSearch Dashboards offers an intuitive user interface for configuring agents, equipping agents with different tools, and executing agentic searches. -
- - Table of contents - - {: .text-delta } -1. TOC -{:toc} -
+## Prerequisites -## Agentic search workflow editor +Before configuring agentic search, ensure that you fulfill the following prerequisites. -You can build and test your agentic search workflow in the editor, shown in the following image. +### Provision ML resources -![Agentic search workflow editor]({{site.url}}{{site.baseurl}}/images/dashboards-flow-framework/agentic-search-editor.png) +To configure new agents, be sure to first provision appropriate models. For working examples, see [Model configuration]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/#model-configuration). -The workflow editor is organized into two main components: +### Ingest data -- **Configure agent**: The resizable panel panel for configuring agents. Select existing agents to view details, update existing agents, or create new agents from scratch. Create `flow` or `conversational` agents, and enable different tools to expand your agent's capabilities, such as searching the web, or searching other indices in your cluster. For full customization, toggle to the `JSON` view and edit directly. -- **Test flow**: The resizable panel for executing your agentic search flow. This consists of 2 main selections: - - **Index**: Select an existing index to search against, or search against all available indices. - - **Query**: Write your natural language query. Optionally add query fields, which help the agent focus on particular fields in your selected index to search against (if applicable). You may also toggle to the `JSON` view to edit the full `agentic` search query directly. +Ensure that you have a sufficient number of documents in your cluster to reasonably evaluate your agentic searches. For more information, see [Agentic search]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/). ## Example: Product search with GPT-5 -This example is using a deployed OpenAI GPT-5 model as specified [here]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/#gpt-5-recommended). +This example uses a deployed OpenAI GPT-5 model described in [this documentation]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/#gpt-5-recommended). {: .note} -1. On the **Workflows** page, select the **New workflow** tab, as shown in the following image. +To build and test your agentic search workflow in OpenSearch Dashboards, follow these steps: + +1. Go to **OpenSearch Dashboards** and select **OpenSearch Plugins** > **AI Search Flows** from the top menu. +1. On the **Workflows** page, select the **New workflow** tab, as shown in the following image. In the **Agentic Search** template, select **Create**. ![New workflow page]({{site.url}}{{site.baseurl}}/images/dashboards-flow-framework/new-workflow-page.png) -2. In the **Agentic Search** template, select **Create**. -3. Provide some basic details, as shown in the following image: - - A unique workflow name and description +1. Provide a unique workflow **Name** and an optional **Description**, as shown in the following image. Then select **Create** to create your workflow. You are automatically directed to the workflow editor, where you can begin configuring the agent. ![Quick configure modal]({{site.url}}{{site.baseurl}}/images/dashboards-flow-framework/agentic-search-quick-configure-modal.png) -4. Click **Create** to create your workflow, and automatically navigate to the **Workflow Details** page, where you can begin configuring. -5. Under **Configure agent**, click **Create new agent**. This will pre-populate an agent for you. Provide a unique name and description. -6. Under **Tools** > **Query Planning** > **Query planning model**, select the **GPT-5** model. -7. Click **Create agent** in the bottom-left corner. - ![Agent configuration]({{site.url}}{{site.baseurl}}/images/dashboards-flow-framework/agent-configuration.png) -8. Under **Test flow** > **Index**, select the index you'd like to search against. In this case, a sample index `sports_and_outdoors` containing a subset of documents from the MIT-licensed [AmazonReview2023 dataset](https://github.com/hyp1231/AmazonReviews2023). -9. Under **Test flow** > **Search**, enter a natural language query describing the results you want. -10. Click **Search**. The agent may take several seconds to execute. +1. Under **Configure agent**, select **Create new agent**, as shown in the following image. Once you configure an agent, you can select or update existing agents. For full agent customization, toggle to the `JSON` view and edit directly. + ![Agentic search workflow editor]({{site.url}}{{site.baseurl}}/images/dashboards-flow-framework/agentic-search-editor.png) +1. Under **Agent**, enter a unique **Name** and **Description** for the agent, as shown in the following image. Under **Tools** > **Query Planning** > **Query planning model**, select **OpenAI GPT-5**. Then select **Create agent**. + ![Agent configuration]({{site.url}}{{site.baseurl}}/images/dashboards-flow-framework/agent-configuration.png) +1. Under **Test flow** > **Index**, select the index you'd like to search, as shown in the following image. Under **Test flow** > **Query**, enter a natural language query. Optionally, specify query fields for the agent to search in your selected index. To edit the full `agentic` search query directly, toggle to the `JSON` view. Then select **Search**. The agent may take several seconds to execute. ![Agent searching]({{site.url}}{{site.baseurl}}/images/dashboards-flow-framework/agent-searching.png) -11. Under **Generated query**, view the query DSL that the agent generated and ran against your cluster. +1. Under **Generated query**, view the query DSL that the agent generated and ran against your cluster. ![Agent query]({{site.url}}{{site.baseurl}}/images/dashboards-flow-framework/agentic-search-agent-query.png) -12. Under **Search results**, view the **Raw response**, the formatted table of **Hits**, or **Aggregations** if applicable. +1. Under **Search results**, select **Raw response**, the formatted table of **Hits**, or **Aggregations** to view the results. ![Search results]({{site.url}}{{site.baseurl}}/images/dashboards-flow-framework/agentic-search-results.png) diff --git a/_vector-search/ai-search/workflow-builder.md b/_vector-search/ai-search/workflow-builder.md index cb05631cf0..8e9da457c9 100644 --- a/_vector-search/ai-search/workflow-builder.md +++ b/_vector-search/ai-search/workflow-builder.md @@ -13,7 +13,11 @@ redirect_from: # Building AI search workflows in OpenSearch Dashboards -In OpenSearch Dashboards, you can iteratively build and test workflows containing ingest and search pipelines using AI Search Flows. Using a UI editor to build workflows simplifies the creation of artificial intelligence and machine learning (AI/ML) use cases that include ML inference processors, such as vector search and retrieval-augmented generation (RAG). For example configurations of available AI search types (including semantic search, hybrid search, RAG, and multimodal search), see [Configuring AI search types]({{site.url}}{{site.baseurl}}/vector-search/ai-search/building-flows/). For examples of configuring agentic search flows, see [Configuring agentic search]({{site.url}}{{site.baseurl}}/vector-search/ai-search/building-agentic-search-flows/) +In OpenSearch Dashboards, you can iteratively build and test workflows containing ingest and search pipelines using AI Search Flows. Using a UI editor to build workflows simplifies the creation of artificial intelligence and machine learning (AI/ML) use cases that include ML inference processors, such as vector search and retrieval-augmented generation (RAG). + +For example configurations of available AI search types (including semantic search, hybrid search, RAG, and multimodal search), see [Configuring AI search types]({{site.url}}{{site.baseurl}}/vector-search/ai-search/building-flows/). + +For examples of configuring agentic search flows, see [Configuring agentic search]({{site.url}}{{site.baseurl}}/vector-search/ai-search/building-agentic-search-flows/). Once your workflow is finalized, you can export it as a [workflow template]({{site.url}}{{site.baseurl}}/automating-configurations/workflow-templates/) to recreate identical resources across multiple clusters. @@ -136,3 +140,5 @@ In **Outputs**, you can configure the values passed _from_ the model. There are - For models and model interfaces recommended for use with AI Search Flows, see [Models](https://github.com/opensearch-project/dashboards-flow-framework/blob/main/documentation/models.md). - For example configurations for different AI/ML use cases, see [Configuring AI search types]({{site.url}}{{site.baseurl}}/tutorials/ai-search-flows/building-flows/). + +- For examples of configuring agentic search flows, see [Configuring agentic search]({{site.url}}{{site.baseurl}}/vector-search/ai-search/building-agentic-search-flows/). From 686c41fab3dd84776aa35f58ffcc42c995a35ec8 Mon Sep 17 00:00:00 2001 From: Fanit Kolchina Date: Wed, 8 Oct 2025 17:00:43 -0400 Subject: [PATCH 12/18] Fix links Signed-off-by: Fanit Kolchina --- _vector-search/ai-search/agentic-search/agent-converse.md | 2 +- _vector-search/ai-search/agentic-search/flow-agent.md | 2 +- _vector-search/ai-search/agentic-search/index.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/_vector-search/ai-search/agentic-search/agent-converse.md b/_vector-search/ai-search/agentic-search/agent-converse.md index a4cdb67d9f..bcaf4b24b4 100644 --- a/_vector-search/ai-search/agentic-search/agent-converse.md +++ b/_vector-search/ai-search/agentic-search/agent-converse.md @@ -17,7 +17,7 @@ This guide demonstrates how to configure conversational agents with multiple too Before you start, ensure that you have registered and configured an agent. To configure an agent, follow these steps: -1. Follow [Step 3: Create a model for the agent and Query Planning tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/quick-start-guide/#step-3-create-a-model-for-the-agent-and-query-planning-tool). This model is used by both the conversational agent and the `QueryPlanningTool`. +1. Follow [Step 3: Create a model for the agent and Query Planning tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-3-create-a-model-for-the-agent-and-query-planning-tool). This model is used by both the conversational agent and the `QueryPlanningTool`. 2. Review [model configuration]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/#model-configuration) and choose a model to use. 3. Register and configure an agent using [Step 4: Create an agent]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-4-create-an-agent) or see [Customizing agentic search agents]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/) for advanced configurations. The agent must include a `QueryPlanningTool`. diff --git a/_vector-search/ai-search/agentic-search/flow-agent.md b/_vector-search/ai-search/agentic-search/flow-agent.md index 67322f00a1..15f58ab13d 100644 --- a/_vector-search/ai-search/agentic-search/flow-agent.md +++ b/_vector-search/ai-search/agentic-search/flow-agent.md @@ -70,7 +70,7 @@ POST _bulk ## Step 3: Create a model for the agent and Query Planning tool -Register a single model that will be used by both the conversational agent and the `QueryPlanningTool`. This model analyzes natural language questions, coordinates tool usage, and generates the OpenSearch DSL. For available model options, see [Model configurations]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/#model-configurations): +Register a single model that will be used by both the conversational agent and the `QueryPlanningTool`. This model analyzes natural language questions, coordinates tool usage, and generates the OpenSearch DSL. For available model options, see [Model configurations]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/#model-configuration): ```json POST /_plugins/_ml/models/_register diff --git a/_vector-search/ai-search/agentic-search/index.md b/_vector-search/ai-search/agentic-search/index.md index 709584a112..a6f1f02ae9 100644 --- a/_vector-search/ai-search/agentic-search/index.md +++ b/_vector-search/ai-search/agentic-search/index.md @@ -96,7 +96,7 @@ POST _bulk ## Step 3: Create a model for the agent and Query Planning tool -Register a single model that will be used by both the conversational agent and the `QueryPlanningTool`. This model analyzes natural language questions, coordinates tool usage, and generates the OpenSearch DSL. For available model options, see [Model configurations]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/#model-configurations): +Register a single model that will be used by both the conversational agent and the `QueryPlanningTool`. This model analyzes natural language questions, coordinates tool usage, and generates the OpenSearch DSL. For available model options, see [Model configurations]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/#model-configuration): ```json POST /_plugins/_ml/models/_register From 60214819ed6163da92bb0eba3b650f7a41de75c9 Mon Sep 17 00:00:00 2001 From: Rithin Pullela Date: Wed, 8 Oct 2025 16:10:58 -0700 Subject: [PATCH 13/18] Update _vector-search/ai-search/agentic-search/index.md Signed-off-by: Rithin Pullela --- _vector-search/ai-search/agentic-search/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_vector-search/ai-search/agentic-search/index.md b/_vector-search/ai-search/agentic-search/index.md index a6f1f02ae9..8db35fdb93 100644 --- a/_vector-search/ai-search/agentic-search/index.md +++ b/_vector-search/ai-search/agentic-search/index.md @@ -166,7 +166,7 @@ POST /_plugins/_ml/agents/_register ## Step 5: Create a search pipeline -Create a search pipeline with an agentic query translator search request processor and pass the agent ID created in step 5: +Create a search pipeline with an agentic query translator search request processor and pass the agent ID created in step 4: ```json PUT _search/pipeline/agentic-pipeline From 4fe287a1c2e3dcd769c833ab773231afd97a171b Mon Sep 17 00:00:00 2001 From: Rithin Pullela Date: Wed, 8 Oct 2025 16:11:04 -0700 Subject: [PATCH 14/18] Update _vector-search/ai-search/agentic-search/agent-converse.md Signed-off-by: Rithin Pullela --- _vector-search/ai-search/agentic-search/agent-converse.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_vector-search/ai-search/agentic-search/agent-converse.md b/_vector-search/ai-search/agentic-search/agent-converse.md index bcaf4b24b4..4f54a796d9 100644 --- a/_vector-search/ai-search/agentic-search/agent-converse.md +++ b/_vector-search/ai-search/agentic-search/agent-converse.md @@ -236,7 +236,7 @@ The response includes matching products and detailed agent information in the `e ] }, "ext": { - "agent_steps_summary": "I have these tools available: [ListIndexTool, IndexMappingTool, query_planner_tool]\nFirst I used: query_planner_tool — qpt.question: \"Find white shoes priced under 150 dollars.\"; index_name_provided: \"products-index\"\nValidation: qpt output is valid JSON and aligns with the request for white shoes under 150 dollars in the products-index.", + "agent_steps_summary": "I have these tools available: [ListIndexTool, IndexMappingTool, query_planner_tool]\nFirst I used: ListIndexTool — input: \"[]\"; context gained: \"Found indices; 'products-index' appears most relevant for product queries\"\nSecond I used: query_planner_tool — qpt.question: \"Find white shoes under 150 dollars.\"; index_name_provided: \"products-index\"\nThird I used: query_planner_tool — qpt.question: \"Find white shoes priced under 150 dollars.\"; index_name_provided: \"products-index\"\nValidation: qpt output is valid JSON and aligns with the request for white shoes under 150 dollars in the products-index.", "memory_id": "XRzFl5kB-5P992SCeeqO", "dsl_query": "{\"size\":10.0,\"query\":{\"bool\":{\"filter\":[{\"term\":{\"category\":\"shoes\"}},{\"term\":{\"color\":\"white\"}},{\"range\":{\"price\":{\"lte\":150.0}}}]}},\"sort\":[{\"price\":{\"order\":\"asc\"}},{\"_score\":{\"order\":\"desc\"}}]}" } From 483a6ac5a80eeef19cb6679cd02b3c06c5fdb5cc Mon Sep 17 00:00:00 2001 From: kolchfa-aws <105444904+kolchfa-aws@users.noreply.github.com> Date: Wed, 8 Oct 2025 20:05:33 -0400 Subject: [PATCH 15/18] Update _vector-search/ai-search/agentic-search/agent-converse.md Co-authored-by: Owais Kazi Signed-off-by: kolchfa-aws <105444904+kolchfa-aws@users.noreply.github.com> --- _vector-search/ai-search/agentic-search/agent-converse.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_vector-search/ai-search/agentic-search/agent-converse.md b/_vector-search/ai-search/agentic-search/agent-converse.md index 4f54a796d9..9eb9e019e5 100644 --- a/_vector-search/ai-search/agentic-search/agent-converse.md +++ b/_vector-search/ai-search/agentic-search/agent-converse.md @@ -9,7 +9,7 @@ has_children: false # Using conversational agents for agentic search -Conversational agents provide advanced agentic search capabilities with detailed reasoning traces and conversation memory. Unlike flow agents that only return the generated DSL query, conversational agents provide additional context through the `agentic_context` response processor, including step-by-step reasoning summaries and memory IDs for continuing conversations across multiple queries. +Conversational agents provide advanced agentic search capabilities with detailed reasoning traces and conversation memory. Unlike flow agents that only return the generated DSL query, conversational agents provide additional context through the `agentic_context` response processor, including a step-by-step reasoning summary and a memory ID for continuing conversations across multiple queries. This guide demonstrates how to configure conversational agents with multiple tools and use their advanced features for complex search scenarios. From 29c61ed1641e537625a625cbb31eb99e69ca1e79 Mon Sep 17 00:00:00 2001 From: Rithin Pullela Date: Wed, 8 Oct 2025 17:08:39 -0700 Subject: [PATCH 16/18] Update _vector-search/ai-search/agentic-search/search-templates.md Signed-off-by: Rithin Pullela --- .../agentic-search/search-templates.md | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/_vector-search/ai-search/agentic-search/search-templates.md b/_vector-search/ai-search/agentic-search/search-templates.md index 6a8f7ee17a..85984feb35 100644 --- a/_vector-search/ai-search/agentic-search/search-templates.md +++ b/_vector-search/ai-search/agentic-search/search-templates.md @@ -263,13 +263,21 @@ Create a search pipeline that uses your agent with search templates: ```json PUT _search/pipeline/agentic-pipeline { - "request_processors": [ - { - "agentic_query_translator": { - "agent_id": "your-agent-id-from-step-4b" - } - } - ] + "request_processors": [ + { + "agentic_query_translator": { + "agent_id": "your-agent-id-from-step-4b" + } + } + ], + "response_processors": [ + { + "agentic_context": { + "agent_steps_summary": true, + "dsl_query": true + } + } + ] } ``` {% include copy-curl.html %} From 41b2cab2813579d891ac4c07b396820befb552dc Mon Sep 17 00:00:00 2001 From: rithin-pullela-aws Date: Wed, 8 Oct 2025 17:35:35 -0700 Subject: [PATCH 17/18] address comments Signed-off-by: rithin-pullela-aws --- .../agents-tools/tools/query-planning-tool.md | 23 +++++++ _query-dsl/specialized/agentic.md | 2 +- .../agentic-search/agent-converse.md | 63 ++++++++++++++----- .../ai-search/agentic-search/flow-agent.md | 2 +- 4 files changed, 71 insertions(+), 19 deletions(-) diff --git a/_ml-commons-plugin/agents-tools/tools/query-planning-tool.md b/_ml-commons-plugin/agents-tools/tools/query-planning-tool.md index f8084fc82d..b4376fb8d8 100644 --- a/_ml-commons-plugin/agents-tools/tools/query-planning-tool.md +++ b/_ml-commons-plugin/agents-tools/tools/query-planning-tool.md @@ -349,6 +349,29 @@ You can provide your own `query_planner_system_prompt` and `query_planner_user_p When creating custom prompts, ensure that they include clear output formatting rules to work properly with agentic search. The system prompt should specify that the LLM must return only a valid JSON object without any additional text, code fences, or explanations. {: .important} +**Custom prompt configuration:** +Provide your custom prompts during tool registration in agents as follows: +```json +POST /_plugins/_ml/agents/_register +{ + "name": "Flow Agent for Agentic Search", + "type": "flow", + "description": "Flow agent for agentic search", + "tools": [ + { + "type": "QueryPlanningTool", + "parameters": { + "model_id": "your_model_id", + "response_filter": "", + "query_planner_system_prompt": "", + "query_planner_user_prompt": "" + } + } + ] +} +``` +{% include copy-curl.html %} + The following is the default system prompt:
diff --git a/_query-dsl/specialized/agentic.md b/_query-dsl/specialized/agentic.md index 8fc4d73280..535414967a 100644 --- a/_query-dsl/specialized/agentic.md +++ b/_query-dsl/specialized/agentic.md @@ -27,7 +27,7 @@ The `agentic` query accepts the following fields. Field | Data type | Required/Optional | Description :--- | :--- | :--- | :--- `query_text` | String | Required | The natural language question for the agent to answer. -`query_fields` | Array | Optional | A list of fields that the agent should consider when generating the search query. If omitted, the agent infers the applicable fields based on the index mappings and content. +`query_fields` | Array | Optional | A list of fields of the index that the agent should consider when generating the search query. If omitted, the agent infers the applicable fields based on the index mappings and content. `memory_id` | String | Optional | Applicable for `conversational` agents only. Provides a memory ID from a previous response to continue the conversation with prior context. See [Using conversational agents for agentic search]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-converse/). | ## Example diff --git a/_vector-search/ai-search/agentic-search/agent-converse.md b/_vector-search/ai-search/agentic-search/agent-converse.md index 9eb9e019e5..9a586c9a43 100644 --- a/_vector-search/ai-search/agentic-search/agent-converse.md +++ b/_vector-search/ai-search/agentic-search/agent-converse.md @@ -9,18 +9,10 @@ has_children: false # Using conversational agents for agentic search -Conversational agents provide advanced agentic search capabilities with detailed reasoning traces and conversation memory. Unlike flow agents that only return the generated DSL query, conversational agents provide additional context through the `agentic_context` response processor, including a step-by-step reasoning summary and a memory ID for continuing conversations across multiple queries. +Conversational agents provide advanced agentic search capabilities with detailed reasoning traces and conversation memory. Unlike flow agents runs tools sequentially and that only return the generated DSL query, conversational agents provide additional context through the `agentic_context` response processor, including a step-by-step reasoning summary and a memory ID for continuing conversations across multiple queries. This guide demonstrates how to configure conversational agents with multiple tools and use their advanced features for complex search scenarios. -## Prerequisites - -Before you start, ensure that you have registered and configured an agent. To configure an agent, follow these steps: - -1. Follow [Step 3: Create a model for the agent and Query Planning tool]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-3-create-a-model-for-the-agent-and-query-planning-tool). This model is used by both the conversational agent and the `QueryPlanningTool`. -2. Review [model configuration]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/#model-configuration) and choose a model to use. -3. Register and configure an agent using [Step 4: Create an agent]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/#step-4-create-an-agent) or see [Customizing agentic search agents]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/) for advanced configurations. The agent must include a `QueryPlanningTool`. - ## Step 1: Create a product index Create a sample index with product data that includes various attributes like name, price, color, and category: @@ -69,10 +61,50 @@ POST _bulk ``` {% include copy-curl.html %} -## Step 3: Register an agent +## Step 3: Create a model + +Review [model configuration]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/#model-configuration) and choose a model to use. + +Here we register a GPT model that will be used by both the conversational agent and the `QueryPlanningTool`: + +```json +POST /_plugins/_ml/models/_register +{ + "name": "My OpenAI model: gpt-5", + "function_name": "remote", + "description": "test model", + "connector": { + "name": "My openai connector: gpt-5", + "description": "The connector to openai chat model", + "version": 1, + "protocol": "http", + "parameters": { + "model": "gpt-5" + }, + "credential": { + "openAI_key": "your-openai-api-key" + }, + "actions": [ + { + "action_type": "predict", + "method": "POST", + "url": "https://api.openai.com/v1/chat/completions", + "headers": { + "Authorization": "Bearer ${credential.openAI_key}" + }, + "request_body": "{ \"model\": \"${parameters.model}\", \"messages\": [{\"role\":\"developer\",\"content\":\"${parameters.system_prompt}\"},${parameters._chat_history:-}{\"role\":\"user\",\"content\":\"${parameters.user_prompt}\"}${parameters._interactions:-}], \"reasoning_effort\":\"low\"${parameters.tool_configs:-}}" + } + ] + } +} +``` + +## Step 4: Register an agent Register a conversational agent with multiple tools---`ListIndexTool` to discover available indexes, `IndexMappingTool` to understand index structure, `WebSearchTool` for external data access, and the required `QueryPlanningTool` to generate OpenSearch DSL: +See [Customizing agentic search agents]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/) for advanced configurations. The agent must include a `QueryPlanningTool`. + ```json POST /_plugins/_ml/agents/_register { @@ -107,10 +139,7 @@ POST /_plugins/_ml/agents/_register } }, { - "type": "QueryPlanningTool", - "parameters": { - "model_id": "" - } + "type": "QueryPlanningTool" } ], "app_type": "os_chat" @@ -118,7 +147,7 @@ POST /_plugins/_ml/agents/_register ``` {% include copy-curl.html %} -## Step 4: Configure a search pipeline +## Step 5: Configure a search pipeline Create a search pipeline with both request and response processors. The [`agentic_query_translator` request processor]({{site.url}}{{site.baseurl}}/search-plugins/search-pipelines/agentic-query-translator-processor/) translates natural language queries into OpenSearch DSL, while the [`agentic_context` response processor]({{site.url}}{{site.baseurl}}/search-plugins/search-pipelines/agentic-context-processor/) adds agent execution context information for monitoring and conversation continuity: @@ -144,7 +173,7 @@ PUT _search/pipeline/agentic-pipeline ``` {% include copy-curl.html %} -## Step 5: Run an agentic search +## Step 6: Run an agentic search To run a search, send a natural language search query. The agent analyzes the request, discovers appropriate indexes, and generates an optimized DSL query: @@ -243,7 +272,7 @@ The response includes matching products and detailed agent information in the `e } ``` -## Step 6: Run an agentic search with a memory ID +## Step 7: Run an agentic search with a memory ID Send a follow-up query using the `memory_id` from the previous response: diff --git a/_vector-search/ai-search/agentic-search/flow-agent.md b/_vector-search/ai-search/agentic-search/flow-agent.md index 15f58ab13d..2e657478f5 100644 --- a/_vector-search/ai-search/agentic-search/flow-agent.md +++ b/_vector-search/ai-search/agentic-search/flow-agent.md @@ -160,7 +160,7 @@ PUT _search/pipeline/agentic-pipeline ## Step 6: Run an agentic search -To run an agentic search, use the `agentic` query clause. Flow agents require the index name, so you must include it in your search request. Flow agents don't support conversation memory, so you cannot include the `memory_id` parameter: +To run an agentic search, use the `agentic` query clause. Flow agents *require the index name*, so you must include it in your search request. Flow agents don't support conversation memory, so you cannot include the `memory_id` parameter: ```json GET products-index/_search?search_pipeline=agentic-pipeline From 0c04d2a5355edce08cbba92e2bbd66eb41008b0b Mon Sep 17 00:00:00 2001 From: Nathan Bower Date: Thu, 9 Oct 2025 09:02:29 -0400 Subject: [PATCH 18/18] Apply suggestions from code review Signed-off-by: Nathan Bower --- .../agents-tools/tools/query-planning-tool.md | 12 ++++---- _query-dsl/specialized/agentic.md | 8 +++--- .../agentic-context-processor.md | 2 +- .../agentic-search/agent-converse.md | 10 +++---- .../agentic-search/agent-customization.md | 16 +++++------ .../ai-search/agentic-search/flow-agent.md | 16 +++++------ .../ai-search/agentic-search/index.md | 28 +++++++++---------- .../ai-search/agentic-search/neural-search.md | 4 +-- .../agentic-search/search-templates.md | 24 ++++++++-------- .../building-agentic-search-flows.md | 4 +-- 10 files changed, 62 insertions(+), 62 deletions(-) diff --git a/_ml-commons-plugin/agents-tools/tools/query-planning-tool.md b/_ml-commons-plugin/agents-tools/tools/query-planning-tool.md index b4376fb8d8..1bec951294 100644 --- a/_ml-commons-plugin/agents-tools/tools/query-planning-tool.md +++ b/_ml-commons-plugin/agents-tools/tools/query-planning-tool.md @@ -271,7 +271,7 @@ POST /_plugins/_ml/agents/_register ``` {% include copy-curl.html %} -The LLM uses the `template_description` as the only context to help it choose the best template to use when generating an OpenSearch DSL query based on the user-provided `question`. Make sure to provide a good description of the templates to help LLM make right choices. Note that the LLM doesn't directly populate template variables or render the template; instead, it analyzes the template's query structure and uses it as a guide to generate a new, contextually appropriate OpenSearch DSL query. +The LLM uses the `template_description` as the only context to help it choose the best template to use when generating an OpenSearch DSL query based on the user-provided `question`. Make sure to provide a good description of the templates to help the LLM make appropriate choices. Note that the LLM doesn't directly populate template variables or render the template; instead, it analyzes the template's query structure and uses it as a guide to generate a new, contextually appropriate OpenSearch DSL query. For parameter descriptions, see [Register parameters](#register-parameters). @@ -322,9 +322,9 @@ The following table lists all tool parameters that are available when registerin Parameter | Type | Required/Optional | Description :--- | :--- | :--- | :--- -`model_id` | String | Required | The model ID of the large language model (LLM) used to generate the query DSL. When used within a `conversational` agent, if this value is not provided, the agent's own `llm.model_id` is used by default. +`model_id` | String | Required | The model ID of the LLM used to generate the query DSL. When used within a `conversational` agent, if this value is not provided, the agent's own `llm.model_id` is used by default. `response_filter` | String | Optional | A JSONPath expression used to extract the generated query from the LLM's response. -`generation_type` | String | Optional | Determines how queries are generated. Use `llmGenerated` to rely solely on the LLM's built-in knowledge, or `user_templates` to provide predefined search templates that guide query generation for consistent results. Default is `llmGenerated` +`generation_type` | String | Optional | Determines how queries are generated. Use `llmGenerated` to rely solely on the LLM's built-in knowledge or `user_templates` to provide predefined search templates that guide query generation for consistent results. Default is `llmGenerated`. `query_planner_system_prompt` | String | Optional | A system prompt that provides high-level instructions to the LLM. `query_planner_user_prompt` | String | Optional | A user prompt template that defines how the natural language question and context are presented to the LLM for query generation. `search_templates` | Array | Optional | Applicable only when `generation_type` is `user_templates`. A list of search templates that provide the LLM with predefined query patterns for generating query DSL. Each template must include a `template_id` (unique identifier) and `template_description` (explains the template's purpose and use case to help the LLM choose appropriately). @@ -340,16 +340,16 @@ Parameter | Type | Required/Optional | Description :--- | :--- | :--- | :--- `question` | String | Required | A complete natural language query with all necessary context to generate OpenSearch DSL. Include the question, any specific requirements, filters, or constraints. Examples: `Find all products with price greater than 100 dollars`, `Show me documents about machine learning published in 2023`, `Search for users with status active and age between 25 and 35`. `index_name` | String | Required | The name of the index for which the query needs to be generated. -`embedding_model_id` | String | Optional | The model ID to perform semantic search. +`embedding_model_id` | String | Optional | The model ID used to perform semantic search. ## Customizing the prompts You can provide your own `query_planner_system_prompt` and `query_planner_user_prompt` to customize how the LLM generates OpenSearch DSL queries. -When creating custom prompts, ensure that they include clear output formatting rules to work properly with agentic search. The system prompt should specify that the LLM must return only a valid JSON object without any additional text, code fences, or explanations. +When creating custom prompts, ensure that they include clear output formatting rules so that they work properly with agentic search. The system prompt should specify that the LLM must return only a valid JSON object without any additional text, code fences, or explanations. {: .important} -**Custom prompt configuration:** +**Custom prompt configuration**: Provide your custom prompts during tool registration in agents as follows: ```json POST /_plugins/_ml/agents/_register diff --git a/_query-dsl/specialized/agentic.md b/_query-dsl/specialized/agentic.md index 535414967a..2a49145469 100644 --- a/_query-dsl/specialized/agentic.md +++ b/_query-dsl/specialized/agentic.md @@ -15,7 +15,7 @@ Use the `agentic` query to ask questions in natural language and have OpenSearch Before using an `agentic` query, you must fulfill the following prerequisites: -1. Configure an agent with the [`QueryPlanningTool`]({{site.url}}{{site.baseurl}}/ml-commons-plugin/agents-tools/tools/query-planning-tool/). The QueryPlanningTool is required for generating DSL queries from natural language questions. Optionally, you can configure the agent with additional tools for enhanced functionality. +1. Configure an agent with the [`QueryPlanningTool`]({{site.url}}{{site.baseurl}}/ml-commons-plugin/agents-tools/tools/query-planning-tool/). The `QueryPlanningTool` is required for generating query domain-specific language (DSL) queries from natural language questions. Optionally, you can configure the agent with additional tools for enhanced functionality. 1. Create a search pipeline with an [`agentic_query_translator` search request processor]({{site.url}}{{site.baseurl}}/search-plugins/search-pipelines/agentic-query-translator-processor/). For detailed setup instructions, see [Agentic search]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/). @@ -26,8 +26,8 @@ The `agentic` query accepts the following fields. Field | Data type | Required/Optional | Description :--- | :--- | :--- | :--- -`query_text` | String | Required | The natural language question for the agent to answer. -`query_fields` | Array | Optional | A list of fields of the index that the agent should consider when generating the search query. If omitted, the agent infers the applicable fields based on the index mappings and content. +`query_text` | String | Required | The natural language question to be answered by the agent. +`query_fields` | Array | Optional | A list of index fields that the agent should consider when generating the search query. If omitted, the agent infers the applicable fields based on the index mappings and content. `memory_id` | String | Optional | Applicable for `conversational` agents only. Provides a memory ID from a previous response to continue the conversation with prior context. See [Using conversational agents for agentic search]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-converse/). | ## Example @@ -60,5 +60,5 @@ For a complete example, see [Agentic search]({{site.url}}{{site.baseurl}}/vector - Learn how to configure agentic search in [Agentic search]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/). - Learn about agent types in [Agent types]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/index/#agent-types). -- Learn about the [QueryPlanningTool]({{site.url}}{{site.baseurl}}/ml-commons-plugin/agents-tools/tools/query-planning-tool/). +- Learn about the [`QueryPlanningTool`]({{site.url}}{{site.baseurl}}/ml-commons-plugin/agents-tools/tools/query-planning-tool/). - View the reference documentation for the [`agentic_query_translator` search request processor]({{site.url}}{{site.baseurl}}/search-plugins/search-pipelines/agentic-query-translator-processor/). \ No newline at end of file diff --git a/_search-plugins/search-pipelines/agentic-context-processor.md b/_search-plugins/search-pipelines/agentic-context-processor.md index cb9f27a774..bafabbeef6 100644 --- a/_search-plugins/search-pipelines/agentic-context-processor.md +++ b/_search-plugins/search-pipelines/agentic-context-processor.md @@ -27,7 +27,7 @@ The following table lists all available request fields. Field | Data type | Description :--- | :--- | :--- -`agent_steps_summary` | Boolean | Whether to include the agent's execution steps summary in the response. Available for conversational agents only. Optional. Default is `false`. +`agent_steps_summary` | Boolean | Whether to include the agent's execution step summary in the response. Available for conversational agents only. Optional. Default is `false`. `dsl_query` | Boolean | Whether to include the generated DSL query in the response. Available for both conversational and flow agents. Optional. Default is `false`. ## Response fields diff --git a/_vector-search/ai-search/agentic-search/agent-converse.md b/_vector-search/ai-search/agentic-search/agent-converse.md index 9a586c9a43..f6f2df2689 100644 --- a/_vector-search/ai-search/agentic-search/agent-converse.md +++ b/_vector-search/ai-search/agentic-search/agent-converse.md @@ -9,7 +9,7 @@ has_children: false # Using conversational agents for agentic search -Conversational agents provide advanced agentic search capabilities with detailed reasoning traces and conversation memory. Unlike flow agents runs tools sequentially and that only return the generated DSL query, conversational agents provide additional context through the `agentic_context` response processor, including a step-by-step reasoning summary and a memory ID for continuing conversations across multiple queries. +Conversational agents provide advanced agentic search capabilities with detailed reasoning traces and conversation memory. Unlike flow agents, which run tools sequentially and only return the generated query domain-specific language (DSL) query, conversational agents provide additional context through the `agentic_context` response processor, including a step-by-step reasoning summary and a memory ID for continuing conversations across multiple queries. This guide demonstrates how to configure conversational agents with multiple tools and use their advanced features for complex search scenarios. @@ -63,7 +63,7 @@ POST _bulk ## Step 3: Create a model -Review [model configuration]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/#model-configuration) and choose a model to use. +Review the [model configuration]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/#model-configuration) and choose a model to use. Here we register a GPT model that will be used by both the conversational agent and the `QueryPlanningTool`: @@ -101,9 +101,9 @@ POST /_plugins/_ml/models/_register ## Step 4: Register an agent -Register a conversational agent with multiple tools---`ListIndexTool` to discover available indexes, `IndexMappingTool` to understand index structure, `WebSearchTool` for external data access, and the required `QueryPlanningTool` to generate OpenSearch DSL: +Register a conversational agent with multiple tools---`ListIndexTool` to discover available indexes, `IndexMappingTool` to understand index structure, `WebSearchTool` for external data access, and the required `QueryPlanningTool` to generate OpenSearch DSL. -See [Customizing agentic search agents]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/) for advanced configurations. The agent must include a `QueryPlanningTool`. +See [Customizing agentic search agents]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/) for advanced configurations. The agent must include a `QueryPlanningTool`: ```json POST /_plugins/_ml/agents/_register @@ -377,7 +377,7 @@ GET /_search?search_pipeline=agentic-pipeline ``` {% include copy-curl.html %} -The first query will likely generate a more complex DSL with sorting and aggregations, while the second will be simpler. Use specific terms like "sort by", "aggregate", "filter by", "group by", etc. to guide the agent's query generation. +The first query will likely generate more complex DSL with sorting and aggregations, while the second will be simpler. Use specific terms like "sort by", "aggregate", "filter by", "group by", etc. to guide the agent's query generation. ## Next steps diff --git a/_vector-search/ai-search/agentic-search/agent-customization.md b/_vector-search/ai-search/agentic-search/agent-customization.md index 49f858f7c9..cd324917c8 100644 --- a/_vector-search/ai-search/agentic-search/agent-customization.md +++ b/_vector-search/ai-search/agentic-search/agent-customization.md @@ -13,7 +13,7 @@ You can customize agentic search agents by configuring their models, tools, and - [Model configuration](#model-configuration): Choose different large language models (LLMs) optimized for various tasks. - [Tool orchestration](#tool-orchestration): Combine multiple tools for automated workflows. -- [Prompt engineering](#prompt-engineering-and-customization): Finetune agent behavior using custom prompts. +- [Prompt engineering](#prompt-engineering-and-customization): Fine-tune agent behavior using custom prompts. ## Model configuration @@ -61,7 +61,7 @@ The following OpenAI GPT models are supported. GPT-5 provides advanced reasoning capabilities and is recommended for production use cases. -**Model registration:** +**Model registration**: ```json POST /_plugins/_ml/models/_register @@ -96,7 +96,7 @@ POST /_plugins/_ml/models/_register ``` {% include copy-curl.html %} -**Reasoning modes:** +**Reasoning modes**: - `minimal`: Fastest response time, suitable for simple use cases - `low`(recommended): Slightly more reasoning, suitable for most queries @@ -112,7 +112,7 @@ Anthropic Claude models are available through Amazon Bedrock integration and pro #### Claude 4 Sonnet -**Bedrock connector setup:** +**Amazon Bedrock connector setup**: ```json POST /_plugins/_ml/connectors/_create @@ -157,11 +157,11 @@ Each interface defines a default response schema and function call parser optimi ## Tool orchestration -You must configure a QueryPlanningTool for agentic search. You can configure additional tools to extend your agent's functionality. +You must configure a `QueryPlanningTool` for agentic search. You can configure additional tools to extend your agent's functionality. ### QueryPlanningTool -The [`QueryPlanningTool`]({{site.url}}{{site.baseurl}}/ml-commons-plugin/agents-tools/tools/query-planning-tool/) is required for agentic search functionality. It translates natural language queries into OpenSearch DSL. +The [`QueryPlanningTool`]({{site.url}}{{site.baseurl}}/ml-commons-plugin/agents-tools/tools/query-planning-tool/) is required for agentic search functionality. It translates natural language queries into OpenSearch query domain-specific language (DSL). ### Additional tools @@ -246,7 +246,7 @@ If you don't specify an index in your search query, the search runs against all Configure your agent's behavior and output format using custom prompts that guide the model's reasoning process. -To customize the Query Planning tool prompt, see [Query Planning tool]({{site.url}}{{site.baseurl}}/ml-commons-plugin/agents-tools/tools/query-planning-tool/). +To customize the `QueryPlanningTool` prompt, see [`QueryPlanningTool`]({{site.url}}{{site.baseurl}}/ml-commons-plugin/agents-tools/tools/query-planning-tool/). ### System prompt optimization @@ -264,7 +264,7 @@ The agent must have the following output format: ``` {% include copy.html %} -**Custom prompt configuration:** +**Custom prompt configuration**: When customizing prompts, ensure that both your system and user prompts guide the model to always return results in the preceding agent output format. Proper prompt engineering is crucial for consistent output formatting. diff --git a/_vector-search/ai-search/agentic-search/flow-agent.md b/_vector-search/ai-search/agentic-search/flow-agent.md index 2e657478f5..30558ecfc0 100644 --- a/_vector-search/ai-search/agentic-search/flow-agent.md +++ b/_vector-search/ai-search/agentic-search/flow-agent.md @@ -9,16 +9,16 @@ has_children: false # Using flow agents for agentic search -Flow agents provide a streamlined alternative to conversational agents. While conversational agents use multiple tools for flexible, context-aware search, flow agents focus solely on query planning. This reduces LLM calls, improves response times, and lowers costs. +Flow agents provide a streamlined alternative to conversational agents. While conversational agents use multiple tools for flexible, context-aware search, flow agents focus solely on query planning. This reduces large language model (LLM) calls, improves response times, and lowers costs. -Flow agents are sufficient for most use cases. Use flow agents when low latency and cost efficiency are priorities, queries are simple, and conversation memory isn’t required. Use conversational agents for complex searches, multi-tool workflows, persistent context, or the highest query quality. +Flow agents are sufficient for most use cases. Use flow agents when low latency and cost efficiency are priorities, queries are simple, and conversation memory isn't required. Use conversational agents for complex searches, multi-tool workflows, persistent context, or the highest query quality. Flow agents differ from conversational agents in the following ways: -- Flow agents use only one tool---the Query Planning tool -- You must explicitly specify the target index name in the search request -- Flow agents don't provide agent step summaries or reasoning traces (only the generated DSL query is available when using the `agentic_context` response processor) -- Flow agents don't have conversational memory and cannot maintain context across multiple interactions +- Flow agents use only one tool---the `QueryPlanningTool`. +- You must explicitly specify the target index name in the search request. +- Flow agents don't provide agent step summaries or reasoning traces (only the generated query domain-specific language [DSL] query is available when using the `agentic_context` response processor). +- Flow agents don't have conversation memory and cannot maintain context across multiple interactions. ## Step 1: Create a product index @@ -68,7 +68,7 @@ POST _bulk ``` {% include copy-curl.html %} -## Step 3: Create a model for the agent and Query Planning tool +## Step 3: Create a model for the agent and QueryPlanningTool Register a single model that will be used by both the conversational agent and the `QueryPlanningTool`. This model analyzes natural language questions, coordinates tool usage, and generates the OpenSearch DSL. For available model options, see [Model configurations]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/#model-configuration): @@ -107,7 +107,7 @@ POST /_plugins/_ml/models/_register ## Step 4: Register a flow agent -Next, register a flow agent. You must include a `response_filter` in the `QueryPlanningTool` parameters so the agent extracts the generated DSL correctly from your model provider's response. +Next, register a flow agent. You must include a `response_filter` in the `QueryPlanningTool` parameters so the agent extracts the generated DSL correctly from your model provider's response: ```json POST /_plugins/_ml/agents/_register diff --git a/_vector-search/ai-search/agentic-search/index.md b/_vector-search/ai-search/agentic-search/index.md index 8db35fdb93..acb2fcd414 100644 --- a/_vector-search/ai-search/agentic-search/index.md +++ b/_vector-search/ai-search/agentic-search/index.md @@ -15,7 +15,7 @@ redirect_from: Agentic search lets you ask questions in natural language and have OpenSearch plan and execute the retrieval automatically. A preconfigured agent reads the question, plans the search, and returns relevant results. -You can configure agentic search through the Agentic Search API or the OpenSearch Dashboards UI. This guide describes configuring agentic search using the API. To learn how to configure it in OpenSearch Dashboards, see [Building Agentic Search Flows]({{site.url}}{{site.baseurl}}/vector-search/ai-search/building-agentic-search-flows/). +You can configure agentic search using the API or the OpenSearch Dashboards UI. This guide describes configuring agentic search using the API. To learn how to configure it in OpenSearch Dashboards, see [Building Agentic Search Flows]({{site.url}}{{site.baseurl}}/vector-search/ai-search/building-agentic-search-flows/). ## Agent types @@ -25,19 +25,19 @@ Agentic search supports two types of agents, each optimized for different use ca Conversational agents provide the most flexible and powerful agentic search experience. They support multiple tools, conversation memory, and detailed reasoning traces. Use conversational agents when you need: -- **Multi-tool workflows** - Automatic index discovery, schema analysis, and external data integration -- **Conversation memory** - Ability to continue conversations across multiple queries using memory IDs -- **Complex reasoning** - Detailed step-by-step reasoning traces and tool orchestration -- **Highest query quality** - Maximum flexibility for handling complex or ambiguous queries +- **Multi-tool workflows**: Automatic index discovery, schema analysis, and external data integration. +- **Conversation memory**: The ability to continue conversations across multiple queries using memory IDs. +- **Complex reasoning**: Detailed step-by-step reasoning traces and tool orchestration. +- **Highest query quality**: Maximum flexibility for handling complex or ambiguous queries. ### Flow agents -Flow agents offer a streamlined alternative focused solely on query planning. They provide faster response times and lower costs by using only the Query Planning tool. Use flow agents when you need: +Flow agents offer a streamlined alternative focused solely on query planning. They provide faster response times and lower costs by using only the `QueryPlanningTool`. Use flow agents when you need: -- **Low latency** - Faster query processing with fewer LLM calls -- **Cost efficiency** - Reduced computational overhead and API costs -- **Simple queries** - Straightforward search requirements without complex reasoning -- **Known indexes** - When you can specify target indexes directly in requests +- **Low latency**: Faster query processing with fewer large language model (LLM) calls. +- **Cost efficiency**: Reduced computational overhead and API costs. +- **Simple queries**: Straightforward search requirements without complex reasoning. +- **Known indexes**: When you can specify target indexes directly in requests. The following tutorial uses a conversational agent. To learn about flow agents, see [Using flow agents for agentic search]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/flow-agent/). @@ -94,9 +94,9 @@ POST _bulk ``` {% include copy-curl.html %} -## Step 3: Create a model for the agent and Query Planning tool +## Step 3: Create a model for the agent and QueryPlanningTool -Register a single model that will be used by both the conversational agent and the `QueryPlanningTool`. This model analyzes natural language questions, coordinates tool usage, and generates the OpenSearch DSL. For available model options, see [Model configurations]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/#model-configuration): +Register a single model that will be used by both the conversational agent and the `QueryPlanningTool`. This model analyzes natural language questions, coordinates tool usage, and generates the OpenSearch query domain-specific language (DSL). For available model options, see [Model configurations]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/agent-customization/#model-configuration): ```json POST /_plugins/_ml/models/_register @@ -166,7 +166,7 @@ POST /_plugins/_ml/agents/_register ## Step 5: Create a search pipeline -Create a search pipeline with an agentic query translator search request processor and pass the agent ID created in step 4: +Create a search pipeline with an agentic query translator search request processor and pass the agent ID created in the previous step: ```json PUT _search/pipeline/agentic-pipeline @@ -199,7 +199,7 @@ GET iris-index/_search?search_pipeline=agentic-pipeline ``` {% include copy-curl.html %} -The agentic search request executes the agent with the `QueryPlanningTool` and sends the natural language question, along with the index mapping and a default prompt, to a large language model (LLM) to generate a query domain-specific language (DSL) query. The returned DSL query is then executed as a search request in OpenSearch: +The agentic search request executes the agent with the `QueryPlanningTool` and sends the natural language question, along with the index mapping and a default prompt, to an LLM to generate a DSL query. The returned DSL query is then executed as a search request in OpenSearch: ```json "hits": { diff --git a/_vector-search/ai-search/agentic-search/neural-search.md b/_vector-search/ai-search/agentic-search/neural-search.md index 0985591a4f..c1775a946c 100644 --- a/_vector-search/ai-search/agentic-search/neural-search.md +++ b/_vector-search/ai-search/agentic-search/neural-search.md @@ -148,7 +148,7 @@ Next, configure agentic search. ### Step 2(a): Create a model for agentic search -Register a model that will be used by both the conversational agent and the Query Planning tool: +Register a model that will be used by both the conversational agent and the `QueryPlanningTool`: ```json POST /_plugins/_ml/models/_register @@ -257,7 +257,7 @@ POST /research_papers/_search?search_pipeline=my_pipeline ``` {% include copy-curl.html %} -The agent successfully identifies that semantic search is needed. The `ext` object demonstrates that the Query Planner tool successfully generated a `neural` query using the embedding model ID. The response includes matching research papers ranked by semantic similarity: +The agent successfully identifies that semantic search is needed. The `ext` object demonstrates that the `QueryPlanningTool` successfully generated a `neural` query using the embedding model ID. The response includes matching research papers ranked by semantic similarity: ```json { diff --git a/_vector-search/ai-search/agentic-search/search-templates.md b/_vector-search/ai-search/agentic-search/search-templates.md index 85984feb35..3c4fa9a686 100644 --- a/_vector-search/ai-search/agentic-search/search-templates.md +++ b/_vector-search/ai-search/agentic-search/search-templates.md @@ -9,19 +9,19 @@ has_children: false # Adding search templates -The Query Planning tool can accept a list of [search templates]({{site.url}}{{site.baseurl}}/search-plugins/search-template/) during its registration. During search, the Query Planning tool chooses an appropriate search template based on the user's question and template descriptions, and the large language model (LLM) generates a query based on the selected search template. +The `QueryPlanningTool` can accept a list of [search templates]({{site.url}}{{site.baseurl}}/search-plugins/search-template/) during its registration. During search, the `QueryPlanningTool` chooses an appropriate search template based on the user's question and template descriptions, and the large language model (LLM) generates a query based on the selected search template. This approach allows you to solve complex use cases that would otherwise be challenging for the LLM alone: -- Enhances query response consistency in agentic search. The major portion of the DSL query is provided by the search template, with only minor parts or placeholders filled by the LLM. -- Handles complex use cases, in which the LLM struggles to generate correct queries. +- Enhances query response consistency in agentic search. Most of the query domain-specific language (DSL) query is provided by the search template, with only minor portions or placeholders provided by the LLM. +- Handles complex use cases in which the LLM struggles to generate correct queries. - Ensures predictable query structure and naming conventions. ## Best practices When creating search templates for agentic search, follow these guidelines: -- Write detailed descriptions for each template to help the LLM choose correctly. +- Write detailed descriptions for each template to help the LLM choose appropriately. - Use descriptive placeholder names that clearly indicate what should be filled. - Create templates for different query patterns you commonly use. - Validate that templates work correctly with various inputs before deployment. @@ -127,7 +127,7 @@ POST /_scripts/store_sum_skus ``` {% include copy-curl.html %} -Register a search template that counts stores in a city having at least a minimum quantity of a specific SKU: +Register a search template that counts stores in a city that have at least a minimum quantity of a specific SKU: ```json POST /_scripts/stores_with_give_sku @@ -169,13 +169,13 @@ POST /_scripts/stores_with_give_sku ``` {% include copy-curl.html %} -## Step 4: Register an agent with the Query Planning tool +## Step 4: Register an agent with the QueryPlanningTool -Next, register an agent with the Query Planning tool, and configure the tool to use your search templates. +Next, register an agent with the `QueryPlanningTool`, and configure the tool to use your search templates. -### Step 4(a): Create a model for the agent and Query Planning tool +### Step 4(a): Create a model for the agent and QueryPlanningTool -Register a model for both the conversational agent and the Query Planning tool: +Register a model for both the conversational agent and the `QueryPlanningTool`: ```json POST /_plugins/_ml/models/_register @@ -212,7 +212,7 @@ POST /_plugins/_ml/models/_register ### Step 4(b): Register an agent with search templates -Register an agent with the Query Planning tool configured to use your search templates: +Register an agent with the `QueryPlanningTool` configured to use your search templates: ```json POST /_plugins/_ml/agents/_register @@ -363,7 +363,7 @@ Without search templates, complex queries involving advanced aggregations and sc
-However, with search templates, the agent can handle sophisticated queries by selecting the appropriate template and filling in the parameters. The LLM correctly identifies and uses the `store_sum_skus` template, fills the template parameters (such as `city: "Seattle"` and `sku1: "iphone_17_air"`), and generates a valid query with nested aggregations and bucket selectors. The response contains stores (`S-SEA-002` and `S-SEA-003`) with combined inventory ≥ 30 units: +However, with search templates, the agent can handle sophisticated queries by selecting the appropriate template and filling in the parameters. The LLM correctly identifies and uses the `store_sum_skus` template, fills the template parameters (such as `city: "Seattle"` and `sku1: "iphone_17_air"`), and generates a valid query with nested aggregations and bucket selectors. The response contains stores (`S-SEA-002` and `S-SEA-003`) with a combined inventory of ≥ 30 units: ```json { @@ -472,6 +472,6 @@ However, with search templates, the agent can handle sophisticated queries by se } ``` -## Related articles +## Related documentation - [Search templates]({{site.url}}{{site.baseurl}}/search-plugins/search-template/) diff --git a/_vector-search/ai-search/building-agentic-search-flows.md b/_vector-search/ai-search/building-agentic-search-flows.md index 3212a0b939..9890570ad5 100644 --- a/_vector-search/ai-search/building-agentic-search-flows.md +++ b/_vector-search/ai-search/building-agentic-search-flows.md @@ -13,7 +13,7 @@ nav_order: 20 This is an experimental UI feature. For updates on the progress of the feature or if you want to leave feedback, join the discussion on the [OpenSearch forum](https://forum.opensearch.org/). {: .warning} -[Agentic search]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/) lets you ask questions in natural language and have OpenSearch agents plan and execute the retrieval automatically. OpenSearch Dashboards offers an intuitive user interface for configuring agents, equipping agents with different tools, and executing agentic searches. +[Agentic search]({{site.url}}{{site.baseurl}}/vector-search/ai-search/agentic-search/) lets you ask questions in natural language and have OpenSearch agents plan and execute the retrieval automatically. OpenSearch Dashboards offers an intuitive UI for configuring agents, equipping agents with different tools, and executing agentic searches. ## Prerequisites @@ -45,7 +45,7 @@ To build and test your agentic search workflow in OpenSearch Dashboards, follow ![Agent configuration]({{site.url}}{{site.baseurl}}/images/dashboards-flow-framework/agent-configuration.png) 1. Under **Test flow** > **Index**, select the index you'd like to search, as shown in the following image. Under **Test flow** > **Query**, enter a natural language query. Optionally, specify query fields for the agent to search in your selected index. To edit the full `agentic` search query directly, toggle to the `JSON` view. Then select **Search**. The agent may take several seconds to execute. ![Agent searching]({{site.url}}{{site.baseurl}}/images/dashboards-flow-framework/agent-searching.png) -1. Under **Generated query**, view the query DSL that the agent generated and ran against your cluster. +1. Under **Generated query**, view the query domain-specific language (DSL) that the agent generated and ran against your cluster. ![Agent query]({{site.url}}{{site.baseurl}}/images/dashboards-flow-framework/agentic-search-agent-query.png) 1. Under **Search results**, select **Raw response**, the formatted table of **Hits**, or **Aggregations** to view the results. ![Search results]({{site.url}}{{site.baseurl}}/images/dashboards-flow-framework/agentic-search-results.png)