Agentic query
Introduced 3.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.
Prerequisite
Before using an agentic
query, you must fulfill the following prerequisites:
- Configure an agent with the
QueryPlanningTool
. TheQueryPlanningTool
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. - Create a search pipeline with an
agentic_query_translator
search request processor.
For detailed setup instructions, see Agentic search.
Request body fields
The agentic
query accepts the following fields.
Field | Data type | Required/Optional | Description |
---|---|---|---|
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. |
Example
The following example uses an agentic
query that asks a natural language question about flowers in an iris
dataset. In this example, query_text
contains the natural language question, query_fields
specifies the fields to use when generating the query, and the search-pipeline
query parameter specifies the search pipeline containing the agentic query translator processor:
GET /iris-index/_search?search_pipeline=agentic-pipeline
{
"query": {
"agentic": {
"query_text": "List all the flowers present",
"query_fields": ["species", "petal_length_in_cm"]
}
}
}
When executed, the agentic search request performs the following steps:
- Sends the natural language question, along with the index mapping and a default prompt, to a large language model (LLM).
- The LLM generates a query domain-specific language (DSL) query based on the input.
- The generated DSL query is executed as a search request in OpenSearch.
- Returns the search results based on the generated query.
For a complete example, see Agentic search.
Next steps
- Learn how to configure agentic search in Agentic search.
- Learn about agent types in Agent types.
- Learn about the
QueryPlanningTool
. - View the reference documentation for the
agentic_query_translator
search request processor.