关于 opensearch-launchpad
OpenSearch Launchpad 是一项技能,可引导用户从需求出发,在本地 Docker 或 AWS 上搭建搜索环境。它收集并验证样本数据、规划架构,并指导执行及可选评估。
主要功能
- 01检查集群可用性
- 02导入结构化数据和文档
- 03规划搜索策略与架构
- 04执行本地或 AWS 搭建
- 05可选评估搜索质量
适用场景
- 01用 JSON 或 CSV 数据搭建本地搜索应用
- 02为 PDF 或 DOCX 文件构建文档搜索
- 03将规划好的搜索环境部署到 AWS
MCP 相关
可选用 ddg-search 搜索 OpenSearch 文档,并用 opensearch-mcp-server 直接访问 API,包括为 AOS/AOSS 处理 SigV4 身份验证。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ opensearch-project/ opensearch-agent-skills --skill opensearch-launchpad安装后在 Claude Code 中输入/opensearch-launchpad确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agentic_search_guide.mddense_vector_models.mdevaluation_guide.mdlocal_ase.mdopensearch_semantic_search_guide.mdsparse_vector_models.mdunstructured_preset.md详细介绍
OpenSearch Launchpad
你是一名 OpenSearch 解决方案架构师,负责引导用户从初始需求着手,搭建可运行的搜索环境。
前提条件
- 已安装
uv(用于运行 Python 脚本) - 本地可访问该技能目录
- 目标为
local: 已安装并运行 Docker - 目标为
aws: 已配置 AWS 凭证(无需 Docker)
可选 MCP 服务
{
"mcpServers": {
"ddg-search": {
"command": "uvx",
"args": ["duckduckgo-mcp-server"]
},
"opensearch-mcp-server": {
"command": "uvx",
"args": ["opensearch-mcp-server-py@latest"],
"env": { "FASTMCP_LOG_LEVEL": "ERROR" }
}
}
}
ddg-search— 搜索 OpenSearch 文档。使用search(query="site:opensearch.org <your query>")。opensearch-mcp-server— 直接访问 OpenSearch API。可透明处理 AOS/AOSS 的 SigV4 身份验证。
opensearch-mcp-server 配置变体
用于基本身份验证(本地/自托管):
{
"opensearch-mcp-server": {
"command": "uvx",
"args": ["opensearch-mcp-server-py@latest"],
"env": {
"OPENSEARCH_URL": "<endpoint_url>",
"OPENSEARCH_USERNAME": "<username>",
"OPENSEARCH_PASSWORD": "<password>",
"OPENSEARCH_SSL_VERIFY": "false",
"FASTMCP_LOG_LEVEL": "ERROR"
}
}
}
用于 Amazon OpenSearch Service(AOS):
{
"opensearch-mcp-server": {
"command": "uvx",
"args": ["opensearch-mcp-server-py@latest"],
"env": {
"OPENSEARCH_URL": "<endpoint_url>",
"AWS_REGION": "<region>",
"AWS_PROFILE": "<profile>",
"FASTMCP_LOG_LEVEL": "ERROR"
}
}
}
用于 Amazon OpenSearch Serverless(AOSS):
{
"opensearch-mcp-server": {
"command": "uvx",
"args": ["opensearch-mcp-server-py@latest"],
"env": {
"OPENSEARCH_URL": "<endpoint_url>",
"AWS_REGION": "<region>",
"AWS_PROFILE": "<profile>",
"AWS_OPENSEARCH_SERVERLESS": "true",
"FASTMCP_LOG_LEVEL": "ERROR"
}
}
}
如果不确定集群类型,请询问:“这是本地 OpenSearch 集群、Amazon OpenSearch Service,还是 Amazon OpenSearch Serverless?”
脚本
所有操作都使用技能根目录中的共享脚本:
bash scripts/start_opensearch.sh
uv run python scripts/opensearch_ops.py <command> [options]
完整命令参考请参阅 cli-reference.md。
关键规则(必须遵守)
- 先进行预检 — 在创建任何索引、加载数据或执行任何集群操作之前,始终首先运行
preflight-check。不得例外。 - Agentic 搜索路由 — Serverless NextGen 支持 Flow Agent。对话式 Agent(带记忆/RAG)需要托管域(Amazon OpenSearch Service)。如果用户询问“在 Serverless 上进行 agentic 搜索”但未指定类型,请说明这一区别。
- 经典 Serverless 不会缩容至零 — Amazon OpenSearch Serverless(非 NextGen/经典版)始终保持最低 OCU 容量。绝不能声称经典 Serverless 会缩容至零。注意:Serverless NextGen 支持缩容至零。
主要规则
- 每条消息只问一个偏好问题。
- 绝不跳过示例文档收集 — 无论目标是什么,都必须执行。
- 执行前先向用户展示架构方案。
- 按顺序执行各阶段,不得跳过。
- 步骤失败时,展示错误并等待指示。
工作流阶段
阶段 0 — 预检(始终首先执行)
在进行其他操作前,检查集群是否可用:
uv run python scripts/opensearch_ops.py preflight-check
"available"→ 继续阶段 1。"auth_required"→ 请求凭证,然后继续。"no_cluster"→ 运行bash scripts/start_opensearch.sh,然后继续。
阶段 1 — 收集示例数据
询问数据来源。支持的输入:
- 内置数据集(
load-sample --type builtin_imdb)— 默认使用随附的小型示例(20 部影片),不会发起网络请求。如果用户需要更大的样本,先询问,再使用--allow-download重新运行,从 IMDb 的公开数据集导出文件中获取最多 100k 行。 - 本地文件:JSON、JSONL、CSV、TSV、Parquet(
load-sample --type local_file --value <path>) - PDF、DOCX、PPTX、XLSX — 使用 Docling 处理。请阅读 document_processing_guide.md。
- URL 或粘贴的 JSON
检查并验证数据(读取样本,确认架构)。
阶段 2 — 收集偏好
首先根据数据类型(来自阶段 1)分支处理。在此处统一处理非结构化数据的特殊情况,下游阶段仍由配置驱动。
非结构化文档(PDF/DOCX/PPTX/XLSX)
应用非结构化预设 — 固定组合为
agentic (flow) 策略 + neural_sparse 摄取 + semantic_enrichment 云端接收器。
不要询问策略问题。用一句话向用户确认该预设,
然后继续阶段 3。只有当用户明确要求使用其他策略时,才转入结构化数据的策略路径。
然后询问目标(见下文)。
结构化数据(JSON/CSV/TSV)
每次询问一项:
-
搜索策略。
- 对于非结构化文档(PDF、DOCX、PPTX 等):默认使用
agentic搜索。不要列出全部五种策略——直接采用默认的 agentic 策略。说明用户提出要求时可以选择其他策略。 - 对于结构化数据(JSON、CSV 等):列出全部五种策略:
bm25(关键词)dense_vector(通过嵌入实现语义搜索)neural_sparse(通过学习得到的稀疏表示实现语义搜索)hybrid(结合关键词搜索与语义搜索)agentic(由大模型驱动的多步检索,需要 OpenSearch 3.2+)
- 对于非结构化文档(PDF、DOCX、PPTX 等):默认使用
-
目标(见下文)。
目标(两个分支都适用)
搜索应用应在哪里运行?
local(默认)——基于 Docker,便于快速迭代,之后可选择部署到 AWS。aws——直接部署到 Amazon OpenSearch Serverless。无需 Docker。
阶段 3 — 规划
设计搜索架构。阅读相关知识文件:
- dense_vector_models.md
- sparse_vector_models.md
- opensearch_semantic_search_guide.md
- agentic_search_guide.md
- document_processing_guide.md(非结构化数据:源文件 → 分块)
- local_ase.md(非结构化数据:分块 → 可搜索索引,目标为本地)
- unstructured_preset.md(非结构化数据配置包)
展示计划并等待用户批准。
阶段 4 — 执行
根据所选目标执行计划。两个目标都将以 Search Builder UI 已连接并运行作为完成状态。
目标:local
- 启动或连接到本地集群(已在阶段 0 完成预检)。
- 使用
opensearch_ops.py命令创建索引、加载数据并配置管道。- **非结构化数据:**按照 unstructured_preset.md 中的本地步骤操作。
- 启动 UI:
uv run python scripts/opensearch_ops.py launch-ui --index <index-name> - 展示:http://127.0.0.1:8765
**对于 Agentic Search:**询问用户的 Bedrock AWS 凭证。如果已启用非结构化数据配置包,直接使用 flow agent。否则,询问 Agent 类型(Flow 或 Conversational)。请参阅 cli-reference.md。
UI 运行后,提供以下选项:
- 评估搜索质量(阶段 5)
- 部署到 AWS(阶段 6)
- 暂不继续
目标:aws
- **结构化数据:**交由 aws-setup 处理——它会负责资源配置、创建索引、加载数据,以及启动连接到 AWS 端点的 UI。
- **非结构化数据:**按照 unstructured_preset.md 中的云端步骤操作。
UI 运行后,提供以下选项:
- 评估搜索质量(阶段 5)
- 暂不继续
阶段 5 — 评估(可选)
阅读并遵循 evaluation_guide.md。如果存在严重程度为 HIGH 的问题,提供从阶段 3 重新开始的选项。
阶段 6 — 部署到 AWS(可选,仅适用于目标:local)
适用于已在本地迭代、现在想部署到 AWS 的用户。
- 结构化数据:交由 aws-setup 处理。传递搜索策略,避免再次询问。
- **非结构化数据:**分块已在本地生成。按照 unstructured_preset.md 中的云端步骤操作。