You're viewing version 2.13 of the OpenSearch documentation. This version is no longer maintained. For the latest version, see the current documentation. For information about OpenSearch version maintenance, see Release Schedule and Maintenance Policy.
Tools
Introduced 2.13
A tool performs a set of specific tasks. The following table lists all tools that OpenSearch supports.
Specify a tool by providing its type
, parameters
, and, optionally, a description
. For example, you can specify an AgentTool
as follows:
{
"type": "AgentTool",
"description": "A general agent to answer any question",
"parameters": {
"agent_id": "9X7xWI0Bpc3sThaJdY9i"
}
}
Each tool takes a list of parameters specific to that tool. In the preceding example, the AgentTool
takes an agent_id
of the agent it will run. For a list of parameters, see each tool’s documentation.
Tool | Description |
---|---|
AgentTool | Runs any agent. |
CatIndexTool | Retrieves index information for the OpenSearch cluster. |
IndexMappingTool | Retrieves index mapping and setting information for an index. |
MLModelTool | Runs machine learning models. |
NeuralSparseSearchTool | Performs sparse vector retrieval. |
PPLTool | Translates natural language into a Piped Processing Language (PPL) query. |
RAGTool | Uses neural search or neural sparse search to retrieve documents and integrates a large language model to summarize the answers. |
SearchAlertsTool | Searches for alerts. |
SearchAnomalyDetectorsTool | Searches for anomaly detectors. |
SearchAnomalyResultsTool | Searches anomaly detection results generated by anomaly detectors. |
SearchIndexTool | Searches an index using a query written in query domain-specific language (DSL). |
SearchMonitorsTool | Searches for alerting monitors. |
VectorDBTool | Performs dense vector retrieval. |
VisualizationTool | Finds visualizations in OpenSearch Dashboards. |
Developer information
The agents and tools framework is flexible and extensible. You can find the list of tools provided by OpenSearch in the Tools library. For a different use case, you can build your own tool by implementing the Tool interface.