Skip to main content

create-retrieval-plugin

Guide developers through creating a custom retrieval pipeline plugin for AutoRAG-Research. Walks through scaffolding, implementing BaseRetrievalPipeline methods, writing YAML configs, testing, and installing. Use when building a new search/retrieval strategy (e.g., Elasticsearch, ColBERT, custom vector search).

ソース情報

リポジトリ
NomaDamas/AutoRAG-Research
ソースの最終更新活動
2026年3月28日 08:36
検出された SKILL.md の言語
英語
スター
149
フォーク
22

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
create-retrieval-plugin
description
Guide developers through creating a custom retrieval pipeline plugin for AutoRAG-Research. Walks through scaffolding, implementing BaseRetrievalPipeline methods, writing YAML configs, testing, and installing. Use when building a new search/retrieval strategy (e.g., Elasticsearch, ColBERT, custom vector search).
allowed-tools
["Bash","Read","Write","Edit"]
# Create Retrieval Plugin ## Workflow ### 1. Scaffold ```bash autorag-research plugin create my_search --type=retrieval ``` Read the generated `pipeline.py`, `pyproject.toml`, YAML config, and test file to understand the structure. ### 2. Implement For the shared pipeline implementation and testing rules, read: - `ai_instructions/pipeline_implementer.md` - `ai_instructions/pipeline_test_writer.md` - `ai_instructions/pipeline_architecture_mapper.md` Implement the two abstract methods in the pipeline class: - `_retrieve_by_id(query_id, top_k)` — retrieve using query ID (query exists in DB with stored embedding) - `_retrieve_by_text(query_text, top_k)` — retrieve using raw text (may need on-the-fly embedding) Both must return `list[dict[str, Any]]` with `doc_id` (chunk ID) and `score` keys. > **DO NOT add your own `asyncio.gather`, `asyncio.Semaphore`, or any concurrency control.** > The base pipeline's `run()` already handles parallel execution of all queries via > `run_with_concurrency_limit()` (semaphore + gather), controlled by the `max_concurrency` > config parameter. Your method is called once per single query — just implement the > retrieval logic for that one query. **Custom parameters:** Add fields to your config class and pass them via `get_pipeline_kwargs()` → accept them in the pipeline constructor. See `bm25.py` for a real example. ### 3. Write tests and install ```bash cd my_search_plugin pip install -e . # or: uv pip install -e . cd .. && autorag-research plugin sync ``` Verify: `ls configs/pipelines/retrieval/my_search.yaml` ## Key Files | Purpose | Path | |---|---| | Base config class | `autorag_research/config.py` → `BaseRetrievalPipelineConfig` | | Base pipeline class | `autorag_research/pipelines/retrieval/base.py` → `BaseRetrievalPipeline` | | Service layer | `autorag_research/orm/service/retrieval_pipeline.py` → `RetrievalPipelineService` | | Plugin entry point discovery | `autorag_research/plugin_registry.py` | ## Examples Study these existing implementations for patterns: - `autorag_research/pipelines/retrieval/bm25.py` — BM25 retrieval (simple) - `autorag_research/pipelines/retrieval/vector_search.py` — Vector similarity search - `autorag_research/pipelines/retrieval/hybrid.py` — Hybrid (BM25 + vector) - `autorag_research/pipelines/retrieval/hyde.py` — HyDE (Hypothetical Document Embeddings) - YAML configs: `configs/pipelines/retrieval/bm25.yaml`, `configs/pipelines/retrieval/vector_search.yaml`
GitHubで見る