opensearch-launchpad について
OpenSearch Launchpadは、要件の整理からローカルのDockerまたはAWS上での検索環境構築までを案内するスキルです。サンプルデータの収集・検証、設計、実行、任意の評価を段階的に進めます。
主な機能
- 01クラスターの稼働状況を事前確認
- 02構造化データと文書の取り込み
- 03検索方式とアーキテクチャの計画
- 04ローカルまたはAWSでの構築実行
- 05検索品質の任意評価
活用シーン
- 01JSONやCSVからローカル検索アプリを構築
- 02PDFや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を実行してください。例外はありません。 - エージェント型検索のルーティング — Flow エージェントは Serverless NextGen でサポートされています。会話型エージェント(メモリ/RAG 付き)には、マネージドドメイン(Amazon OpenSearch Service)が必要です。ユーザーが種類を指定せずに「Serverless でのエージェント型検索」を希望した場合は、この違いを明確にしてください。
- クラシック Serverless はゼロまでスケールしません — Amazon OpenSearch Serverless(NextGen ではない従来型)は、常に最小 OCU 容量を維持します。クラシック Serverless がゼロまでスケールすると決して説明しないでください。注:Serverless NextGen はゼロまでのスケールに対応しています。
基本ルール
- 1 回のメッセージで尋ねる希望事項は 1 つにしてください。
- サンプルドキュメントの収集を省略しないでください — ターゲットにかかわらず必須です。
- 実行前にアーキテクチャ案をユーザーに提示してください。
- フェーズは順番どおりに進めてください — 先のフェーズに飛ばないでください。
- 手順に失敗した場合は、エラーを提示して指示を待ってください。
ワークフローのフェーズ
フェーズ 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)
一度に1つずつ質問します。
-
検索戦略。
- 非構造化ドキュメント(PDF、DOCX、PPTX など)の場合:デフォルトで
agentic検索を使用します。5つの戦略すべてを提示してはいけません。デフォルトとしてagenticを進めてください。ユーザーから希望があれば、ほかの選択肢も利用できることを伝えます。 - 構造化データ(JSON、CSV など)の場合:以下の5つすべてを提示します。
bm25(キーワード)dense_vector(埋め込みによるセマンティック検索)neural_sparse(学習済みスパース表現によるセマンティック検索)hybrid(キーワード検索とセマンティック検索の組み合わせ)agentic(LLM による複数ステップの検索。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 または 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 のクラウド手順に従います。