-
Notifications
You must be signed in to change notification settings - Fork 529
Configuring Agentic Investigation and Chatbot Features in OpenSearch: A Complete Guide #4056
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Signed-off-by: Jiaru Jiang <[email protected]>
|
Thank you for submitting a blog post! The blog post review process is: Submit a PR -> (Optional) Peer review -> Doc review -> Editorial review -> Marketing review -> Published. |
|
Hi @PauiC, It looks like you're adding a new blog post but don't have an issue mentioned. Please link this PR to an open issue using one of these keywords in the PR description:
If an issue hasn't been created yet, please create one and then link it to this PR. |
|
@PauiC - Please open a blog issue for this so it can be published. |
|
@kolchfa-aws - Adding you for review |
|
@PauiC Let me know when your team has reviewed the draft and it's ready for my review. Thanks! |
_posts/2026-01-09-configuring-investigation-and-chatbot-features-in-opensearch.md
Outdated
Show resolved
Hide resolved
_posts/2026-01-09-configuring-investigation-and-chatbot-features-in-opensearch.md
Outdated
Show resolved
Hide resolved
_posts/2026-01-09-configuring-investigation-and-chatbot-features-in-opensearch.md
Show resolved
Hide resolved
_posts/2026-01-09-configuring-investigation-and-chatbot-features-in-opensearch.md
Show resolved
Hide resolved
Signed-off-by: Jiaru Jiang <[email protected]>
| ```bash | ||
| git clone https://github.com/opensearch-project/OpenSearch-Dashboards.git | ||
| cd OpenSearch-Dashboards/plugins/ | ||
| git clone https://github.com/opensearch-project/dashboards-investigation.git | ||
| git clone https://github.com/opensearch-project/dashboards-assistant.git | ||
| cd .. | ||
| yarn osd bootstrap | ||
| yarn start --no-base-path | ||
| ``` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For this part, with 3.5 been released, we could use 3.5 distribution directly instead of building from source
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Where can I find the latest release? I noticed that the latest version of ml on GitHub is 3.3.0.0
| # Install all built plugins into OpenSearch | ||
| cd build/distribution/local/opensearch-3.4.0-SNAPSHOT | ||
| ./bin/opensearch-plugin install file:///path/to/job-scheduler.zip | ||
| ./bin/opensearch-plugin install file:///path/to/ml-commons.zip | ||
| ./bin/opensearch-plugin install file:///path/to/skills.zip | ||
| ./bin/opensearch-plugin install file:///path/to/sql.zip | ||
| ./bin/opensearch-plugin install file:///path/to/transport-reactor-netty4.zip | ||
| ./bin/opensearch-plugin install file:///path/to/arrow-flight-rpc.zip | ||
| ./bin/opensearch # Start OpenSearch with all plugins | ||
| ``` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
same here, we can use 3.5 distribution. but for transport-reactor-netty4 and arrow-flight-rpc, we need to build from source
| plugins.ml_commons.stream_enabled: true | ||
| plugins.ml_commons.ag_ui_enabled: true | ||
| plugins.ml_commons.mcp_connector_enabled: true | ||
| plugins.ml_commons.trusted_connector_endpoints_regex: ["^https?://localhost.*", "^https?://127\.0\.0\.1.*"] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we should include LLM endpoints like claude/openai
| opensearch.experimental.feature.transport.stream.enabled: true | ||
|
|
||
| # HTTP transport type | ||
| http.type: reactor-netty4 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
for security enabled case, this should be reactor-netty4-secure
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can only use reactor-netty4 for local building, and an error will occur if I use the reactor-netty4-secureconfiguration.
| git clone https://github.com/opensearch-project/opensearch-mcp-server-py.git | ||
| cd opensearch-mcp-server-py | ||
| pip install -r requirements.txt # Install Python dependencies | ||
| # Configure and start MCP server with your OpenSearch credentials |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
same here, guess we don't need to build from source
| "action_type": "predict", | ||
| "method": "POST", | ||
| "url": "https://bedrock-runtime.${parameters.region}.amazonaws.com/model/${parameters.model}/converse-stream", | ||
| "request_body": "{\"messages\": [${parameters._chat_history:-}{\"role\":\"user\",\"content\":[{\"text\":\"${parameters.prompt}\"}]}${parameters._interactions:-}]${parameters.tool_configs:-}}" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
{\"system\": [{\"text\": \"${parameters.system_prompt}\"}],\"messages\": [${parameters._chat_history:-}{\"role\":\"user\",\"content\":[{\"text\":\"${parameters.prompt}\"}]}${parameters._interactions:-}]${parameters.tool_configs:-}}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can we have latest screenshot
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
maybe a screenshot for trigger investigation from chatbot as well?
| "mcp_connectors": "[{\"mcp_connector_id\":\"{% raw %}{{mcp_connector_id}}{% endraw %}\"}]" | ||
| }, | ||
| "tools": [ | ||
| { | ||
| "type": "ListIndexTool" | ||
| }, | ||
| { | ||
| "type": "SearchIndexTool" | ||
| }, | ||
| { | ||
| "type": "IndexMappingTool" | ||
| } | ||
| ], | ||
| "app_type": "os_chat" | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
those tools are duplicate with MCP tools
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are there any tools that MCP doesn't have? Or should I just modify it to:
"tools": [
],
| "description": "Connector to MCP server", | ||
| "version": "1", | ||
| "protocol": "mcp_streamable_http", | ||
| "url": "http://localhost:8080" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
missing parameters for connector?
"endpoint": "/mcp/"
}```
| { | ||
| "name": "Claude 4.5", | ||
| "function_name": "remote", | ||
| "description": "openai model", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: let's update this description
| } | ||
| ] | ||
| }, | ||
| "tools": [ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't think we need these built-in tools as they are provided by MCP server
| OPENSEARCH_URL="<your_opensearch_endpoint>" \ | ||
| OPENSEARCH_USERNAME="<your_username>" \ | ||
| OPENSEARCH_PASSWORD="<your_password>" \ | ||
| python -m src.mcp_server_opensearch --transport stream --host 0.0.0.0 --port 8080 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1 to the comment above, we can replace this line with uvx opensearch-mcp-server-py --transport stream --port 8080 and skip the clone and install steps
Description
Learn how to configure OpenSearch chatbot and investigation features, including OpenSearch backend, Dashboards frontend, and MCP server configuration.
Issues Resolved
[List any issues this PR will resolve]
Check List
By submitting this pull request, I confirm that my contribution is made under the terms of the BSD-3-Clause License.