rag-implementation — Claude Code skill: what it does, install
This skill helps build RAG systems with vector search and LLM answers grounded in external documents. Use it for document Q&A and knowledge assistants.
/plugin marketplace add wshobson/agents
/plugin install llm-application-dev@claude-code-workflowsWhat rag-implementation does
rag-implementation guides the core flow of a RAG application: turn documents into embeddings, retrieve relevant context from a vector database, then let an LLM answer from that context. It fits document Q&A, semantic search, documentation assistants, and systems that need domain-specific knowledge.
The skill covers Pinecone, Weaviate, Milvus, Chroma, Qdrant, and pgvector, along with dense, sparse, and hybrid retrieval, multi-query, HyDE, and reranking. Its working example uses LangGraph, LangChain, Anthropic, Voyage AI, and Pinecone; deeper patterns are kept in references/details.md.
Install it when your application needs retrieval before generation. For a basic chatbot with no external knowledge base, this skill adds more structure than you need.
What it helps with
- build Q&A over proprietary documents
- add semantic search to an application
- connect an LLM to an external knowledge base
- ground generated answers in retrieved context
- create a documentation assistant
Example prompts for the agent
- Build a RAG system for Q&A over the files in `docs/` with Pinecone.
- Add semantic search with Voyage AI embeddings and LangGraph.
- Show how to add reranking to the current retriever and keep answer sources.
How to install rag-implementation
1Plugin marketplace
/plugin marketplace add wshobson/agents/plugin install llm-application-dev@claude-code-workflowsThis installs the whole llm-application-dev plugin with all its skills
2Skills CLI (Vercel)
npx skills add wshobson/agents --skill rag-implementation -a claude-code3Manually: put the files in place
~/.claude/skills/rag-implementation/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/rag-implementation/
1Skills CLI (Vercel)
npx skills add wshobson/agents --skill rag-implementation -a codex2Manually: put the files in place
.agents/skills/rag-implementation/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add wshobson/agents --skill rag-implementation -a cursor2Manually: put the files in place
.cursor/skills/rag-implementation/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install wshobson/agents rag-implementation2Manually: put the files in place
.github/skills/rag-implementation/SKILL.mdPlatform CLI
gemini skills install https://github.com/wshobson/agents --path plugins/llm-application-dev/skills/rag-implementationManually: put the files in place
.devin/skills/rag-implementation/SKILL.mdThe legacy .windsurf/skills/ path still works
Claude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set213
The whole set →Similar
Questions about rag-implementation
How do I install rag-implementation in Claude Code?
Run npx skills add wshobson/agents --skill rag-implementation -a claude-code. The skill will be available at ~/.claude/skills/rag-implementation/SKILL.md.
What does rag-implementation do?
It guides the design of RAG applications that store embeddings, retrieve relevant documents, and pass context to an LLM before generating an answer.
Which technologies does the rag-implementation example use?
The example uses LangGraph, LangChain, ChatAnthropic, VoyageAIEmbeddings, and PineconeVectorStore. Retrieval and reranking patterns are covered separately.
Source text
SKILL.md · MIT
---
name: rag-implementation
description: Build Retrieval-Augmented Generation (RAG) systems for LLM applications with vector databases and semantic search. Use when implementing knowledge-grounded AI, building document Q&A systems, or integrating LLMs with external knowledge bases.
---
# RAG Implementation
Master Retrieval-Augmented Generation (RAG) to build LLM applications that provide accurate, grounded responses using external knowledge sources.
## When to Use This Skill
- Building Q&A systems over proprietary documents
- Creating chatbots with current, factual information
- Implementing semantic search with natural language queries
- Reducing hallucinations with grounded responses
- Enabling LLMs to access domain-specific knowledge
- Building documentation assistants
- Creating research tools with source citation
## Core Components
### 1. Vector Databases
**Purpose**: Store and retrieve document embeddings efficiently
**Options:**
- **Pinecone**: Managed, scalable, serverless
- **Weaviate**: Open-source, hybrid search, GraphQL
- **Milvus**: High performance, on-premise
- **Chroma**: Lightweight, easy to use, local development
- **Qdrant**: Fast, filtered search, Rust-based
- **pgvector**: PostgreSQL extension, SQL integration
### 2. Embeddings
**Purpose**: Convert text to numerical vectors for similarity search
**Models (2026):**
| Model | Dimensions | Best For |
|-------|------------|----------|
| **voyage-3-large** | 1024 | Claude apps (Anthropic recommended) |
| **voyage-code-3** | 1024 | Code search |
| **text-embedding-3-large** | 3072 | OpenAI apps, high accuracy |
| **text-embedding-3-small** | 1536 | OpenAI apps, cost-effective |
| **bge-large-en-v1.5** | 1024 | Open source, local deployment |
| **multilingual-e5-large** | 1024 | Multi-language support |
### 3. Retrieval Strategies
**Approaches:**
- **Dense Retrieval**: Semantic similarity via embeddings
- **Sparse Retrieval**: Keyword matching (BM25, TF-IDF)
- **Hybrid Search**: Combine dense + sparse with weighted fusion
- **Multi-Query**: Generate multiple query variations
- **HyDE**: Generate hypothetical documents for better retrieval
### 4. Reranking
**Purpose**: Improve retrieval quality by reordering results
**Methods:**
- **Cross-Encoders**: BERT-based reranking (ms-marco-MiniLM)
- **Cohere Rerank**: API-based reranking
- **Maximal Marginal Relevance (MMR)**: Diversity + relevance
- **LLM-based**: Use LLM to score relevance
## Quick Start with LangGraph
```python
from langgraph.graph import StateGraph, START, END
from langchain_anthropic import ChatAnthropic
from langchain_voyageai import VoyageAIEmbeddings
from langchain_pinecone import PineconeVectorStore
from langchain_core.documents import Document
from langchain_core.prompts import ChatPromptTemplate
from langchain_text_splitters import RecursiveCharacterTextSplitter
from typing import TypedDict, Annotated
class RAGState(TypedDict):
question: str
context: list[Document]
answer: str
# Initialize components
llm = ChatAnthropic(model="claude-sonnet-5")
embeddings = VoyageAIEmbeddings(model="voyage-3-large")
vectorstore = PineconeVectorStore(index_name="docs", embedding=embeddings)
retriever = vectorstore.as_retriever(search_kwargs={"k": 4})
# RAG prompt
rag_prompt = ChatPromptTemplate.from_template(
"""Answer based on the context below. If you cannot answer, say so.
Context:
{context}
Question: {question}
Answer:"""
)
async def retrieve(state: RAGState) -> RAGState:
"""Retrieve relevant documents."""
docs = await retriever.ainvoke(state["question"])
return {"context": docs}
async def generate(state: RAGState) -> RAGState:
"""Generate answer from context."""
context_text = "\n\n".join(doc.page_content for doc in state["context"])
messages = rag_prompt.format_messages(
context=context_text,
question=state["question"]
)
response = await llm.ainvoke(messages)
return {"answer": response.content}
# Build RAG graph
builder = StateGraph(RAGState)
builder.add_node("retrieve", retrieve)
builder.add_node("generate", generate)
builder.add_edge(START, "retrieve")
builder.add_edge("retrieve", "generate")
builder.add_edge("generate", END)
rag_chain = builder.compile()
# Use
result = await rag_chain.ainvoke({"question": "What are the main features?"})
print(result["answer"])
```
## Detailed patterns and worked examples
Detailed pattern documentation lives in `references/details.md`. Read that file when the navigation tier above is insufficient.
© Seth Hobson · MIT · wshobson/agents