Skip to main content
skill Claude Code CX Codex Cursor

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.

Install into Claude Code · Plugin marketplace All methods and platforms ↓
/plugin marketplace add wshobson/agents
/plugin install llm-application-dev@claude-code-workflows
Open on GitHub

What 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-workflows

This installs the whole llm-application-dev plugin with all its skills

2Skills CLI (Vercel)

npx skills add wshobson/agents --skill rag-implementation -a claude-code

3Manually: put the files in place

~/.claude/skills/rag-implementation/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/rag-implementation/

From the same set213

The whole set →
typescript-advanced-types Seth Hobson Guides an agent through advanced TypeScript types, from generics to conditional and mapped types. Use it for typed libraries, API clients, or strict configuration objects. Claude Code CX Codex Cursor 92,169installs tailwind-design-system Seth Hobson Helps build design systems with Tailwind CSS v4, from theme tokens to component variants. Use it when a project needs shared UI patterns. Claude Code CX Codex Cursor 70,180installs brand-landingpage Travis D. Elliott This skill interviews you about the product and its visual direction, then builds a landing page through Stitch. Use it when there’s no established design yet. Claude Code CX Codex Cursor 39,476installs python-testing-patterns Seth Hobson This skill guides Python testing with pytest, fixtures and mocks. Use it when building a test suite or tracking down failing checks. Claude Code CX Codex Cursor 36,943installs python-performance-optimization Seth Hobson This skill profiles Python code to locate CPU and memory bottlenecks. Use it when an application responds slowly or consumes too many resources. Claude Code CX Codex Cursor 35,675installs nextjs-app-router-patterns Seth Hobson This skill covers Next.js App Router patterns for rendering, routing, and data fetching. Use it when starting an App Router project or moving from Pages Router. Claude Code CX Codex Cursor 32,529installs api-design-principles Seth Hobson Use this skill to plan or review REST and GraphQL APIs. It helps when writing a specification or setting API conventions for a team. Claude Code CX Codex Cursor 30,348installs code-review-excellence Seth Hobson This skill guides pull request reviews, catches logic and security issues, and helps teams give specific feedback. Use it for review standards or developer mentoring. Claude Code CX Codex Cursor 30,193installs

Similar

gke-ai-troubleshooting-jobset-interruption official google Diagnoses GKE JobSet restarts and interruptions in AI/ML training workloads. Use it to trace worker crashes, node failures, and spot VM preemptions. Claude Code Gemini CLI CX Codex 4,500installs fx-carry-trade official anthropics Skill to evaluate FX carry trade opportunities: combines spot rates, forward points, interest rate differentials, and volatility surfaces. Finds the optimal tenor and computes risk-adjusted returns using carry-to-vol ratios. Claude Code CX Codex Cursor +1 1,700installs gke-ai-troubleshooting-tpu-vbar-oom official google Investigate vbar_control_agent crashes and OOMs on GKE TPU v6e nodes, especially around device resets or frequent metrics polling. Claude Code Gemini CLI CX Codex 4,400installs finding-google-skills official Google LLC This skill finds the right entry in Google’s skill catalog for stack decisions and setup. Use it when a Google product is named or remains a viable platform option. Claude Code Gemini CLI CX Codex 4,200installs cloud-monitoring-list-time-series-request official google This skill builds Cloud Monitoring ListTimeSeries requests and aggregations. Use it when you need a filter, JSON payload, or chart query parameters. Claude Code Gemini CLI CX Codex 4,100installs skill-creator official anthropics Creates and refines skills, then tests them with prompts, evaluations, and performance checks. Claude Code Claude.ai 414,180installs writing-for-agents Matt Pocock Guidance for writing skills and agent-facing documents. Use it when editing AGENTS.md, CLAUDE.md, or reference files reached from them. Claude Code 466,719installs media-use heygen-com Finds or generates media for HyperFrames videos, including voiceovers, music, cutouts, and color grades. Stores files locally in assets. Claude Code CX Codex Cursor +1 1,100,000installs

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

See also

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor