Generated banner for RAG Implementation
Generated logo for RAG Implementation

RAG Implementation

Seth HobsonCommunityCreated by Seth Hobson

  • Skill
  • Tool integration
  • Data and AI
  • MIT
  • No issues found

From the author

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.
— the description by Seth Hobson

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

This skill provides a structured approach to implementing Retrieval-Augmented Generation (RAG) systems. It covers the end-to-end pipeline, including vector database selection, embedding model configuration, advanced retrieval strategies, and reranking techniques. It includes practical implementation patterns using LangGraph and LangChain to help developers build accurate, knowledge-grounded AI applications that minimize hallucinations.

What it does

  • Explains the architecture of RAG systems including retrieval and generation phases.
  • Provides a comparative overview of vector databases and embedding models.
  • Details advanced retrieval strategies like hybrid search, multi-query, and HyDE.
  • Demonstrates how to implement RAG pipelines using LangGraph.
  • Offers patterns for contextual compression and parent document retrieval.
  • Outlines document chunking strategies for optimized semantic search.

When to use it

  • When building Q&A systems over proprietary or domain-specific documents.
  • When you need to reduce LLM hallucinations by grounding responses in factual data.
  • When creating chatbots that require access to current or private information.
  • When implementing semantic search functionality for natural language queries.
  • When building research tools that require source citations.

Advantages

  • Enables LLMs to access and reason over private or external knowledge bases.
  • Improves response accuracy and reliability through grounded context.
  • Provides modular patterns for scaling retrieval performance.
  • Supports diverse search requirements through hybrid and multi-query approaches.
  • Facilitates the creation of transparent AI systems with source-backed answers.

Usage examples

“How do I implement a hybrid search RAG pipeline?”
The agent provides a code example using EnsembleRetriever to combine BM25 keyword matching with dense vector embeddings using weighted Reciprocal Rank Fusion.
“What is the best way to improve retrieval accuracy for long documents?”
The agent suggests using the Parent Document Retriever pattern, which uses small chunks for precise retrieval while maintaining larger parent chunks for context.
“How can I use HyDE to improve my RAG system?”
The agent provides a LangGraph implementation that generates a hypothetical document from the user's query to perform more effective semantic similarity searches.

Install

  1. Download the skill as a ZIP:

    https://mp-staging.autogineer.com/agent-skills/wshobson/rag-implementation/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip rag-implementation.zip -d .agents/skills

Documentation by Seth Hobson

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: Local persistence with Lite, or self-hosted server deployments

  • 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):

ModelDimensionsBest For
voyage-3-large1024Claude apps (Anthropic recommended)
voyage-code-31024Code search
text-embedding-3-large3072OpenAI apps, high accuracy
text-embedding-3-small1536OpenAI apps, cost-effective
bge-large-en-v1.51024Open source, local deployment
multilingual-e5-large1024Multi-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

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.

Files

ATTRIBUTION.md

Attribution

This folder is an unmodified copy of the Agent Skill "rag-implementation", distributed by AutoGineer (https://autogineer.com/agent-skills).

The skill's own files are unmodified copies. AutoGineer is not affiliated with or endorsed by the author or the publisher.

Files added by AutoGineer

  • ATTRIBUTION.md: this file, written by AutoGineer

  • LICENSE: copied from LICENSE

Requirements and compatibility

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Needs: Needs Python

Security

No issues found by our static scan· No issues found

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Created by
Seth Hobson
Publisher
Seth Hobson (Community)
Source
wshobson/agents · plugins/llm-application-dev/skills/rag-implementation · commit 4bde316
Licence
MIT License (redistribution allowed)
  • LICENSE (added by AutoGineer from LICENSE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by Seth Hobson.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download rag-implementation.zip