rag-implementation
Faz seu agente usar fontes de informação externas para responder perguntas. É útil para criar sistemas de perguntas e respostas com documentos ou conectar IA a bases de conhecimento.
O que ela faz
Essa ferramenta ajuda a criar sistemas de inteligência artificial que respondem perguntas usando informações de documentos específicos. Ela faz isso conectando a IA a bancos de dados que entendem o significado das palavras.
Quando usar
- ✓Criar um assistente que responde perguntas sobre seus documentos.
- ✓Fazer um chatbot que sempre dá respostas atuais e corretas.
- ✓Permitir que a IA use conhecimentos de áreas específicas.
Exemplo do que pedir para a IA
“Responda minhas perguntas com base nos documentos da minha empresa.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A IA transforma seus documentos em códigos numéricos (vetores) e os armazena. Quando você pergunta algo, ela busca os códigos mais parecidos para encontrar a informação relevante e te dar a resposta.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add wshobson/agents --skill rag-implementationOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/wshobson/agents/main/plugins/llm-application-dev/skills/rag-implementation/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Implementação de RAG
Domine a Geração Aumentada por Recuperação (RAG) para construir aplicações de LLM que fornecem respostas precisas e fundamentadas usando fontes de conhecimento externas.
Quando Usar Esta Habilidade
- Construir sistemas de Perguntas e Respostas sobre documentos proprietários
- Criar chatbots com informações atuais e factuais
- Implementar busca semântica com consultas em linguagem natural
- Reduzir alucinações com respostas fundamentadas
- Permitir que LLMs acessem conhecimento específico de domínio
- Construir assistentes de documentação
- Criar ferramentas de pesquisa com citação de fontes
Componentes Principais
1. Bancos de Dados Vetoriais
Propósito: Armazenar e recuperar embeddings de documentos de forma eficiente
Opções:
- Pinecone: Gerenciado, escalável, serverless
- Weaviate: Código aberto, busca híbrida, GraphQL
- Milvus: Alto desempenho, on-premise
- Chroma: Leve, fácil de usar, desenvolvimento local
- Qdrant: Rápido, busca filtrada, baseado em Rust
- pgvector: Extensão do PostgreSQL, integração SQL
2. Embeddings
Propósito: Converter texto em vetores numéricos para busca de similaridade
Modelos (2026):
| Modelo | Dimensões | Ideal para |
|---|---|---|
| voyage-3-large | 1024 | Aplicações Claude (recomendado pela Anthropic) |
| voyage-code-3 | 1024 | Busca de código |
| text-embedding-3-large | 3072 | Aplicações OpenAI, alta precisão |
| text-embedding-3-small | 1536 | Aplicações OpenAI, custo-benefício |
| bge-large-en-v1.5 | 1024 | Código aberto, implantação local |
| multilingual-e5-large | 1024 | Suporte multilíngue |
3. Estratégias de Recuperação
Abordagens:
- Recuperação Densa: Similaridade semântica via embeddings
- Recuperação Esparsa: Correspondência de palavras-chave (BM25, TF-IDF)
- Busca Híbrida: Combina densa + esparsa com fusão ponderada
- Multi-Query: Gera múltiplas variações de consulta
- HyDE: Gera documentos hipotéticos para melhor recuperação
4. Reclassificação (Reranking)
Propósito: Melhorar a qualidade da recuperação reordenando os resultados
Métodos:
- Cross-Encoders: Reclassificação baseada em BERT (ms-marco-MiniLM)
- Cohere Rerank: Reclassificação baseada em API
- Maximal Marginal Relevance (MMR): Diversidade + relevância
- Baseado em LLM: Usa LLM para pontuar a relevância
Início Rápido com 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"])
Padrões detalhados e exemplos práticos
A documentação detalhada dos padrões está em references/details.md. Leia este arquivo quando o nível de navegação acima for insuficiente.
Perguntas frequentes
O que são 'embeddings'?
São representações numéricas de textos que permitem à IA entender a similaridade entre palavras e frases.
O que é um 'banco de dados vetorial'?
É um tipo especial de banco de dados otimizado para armazenar e buscar esses códigos numéricos (vetores) de forma rápida.
Por que usar isso em vez de perguntar direto para a IA?
Para garantir que a IA use informações precisas e atuais dos seus documentos, em vez de 'inventar' respostas.
Detalhes
Descrição original do autor
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.
repo: wshobson/agents
Popularidade
- Estrelas no GitHub
- 41 mil
- Posição no ranking
- #4892
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
screen-reader-testing
Faz seu agente testar sites usando leitores de tela para garantir que sejam acessíveis.
wshobson/agents
wcag-audit-patterns
Ajuda seu agente a auditar sites para acessibilidade e corrigir problemas de acordo com as diretrizes WCAG.
wshobson/agents
multi-reviewer-patterns
Faz seu agente coordenar revisões de código paralelas, deduplicando achados e consolidando relatórios.
wshobson/agents
parallel-debugging
Permite ao agente depurar problemas complexos com investigações paralelas e análise de causa raiz.
wshobson/agents
Skills parecidas
agent-architecture-audit
Faz seu agente verificar se tudo está funcionando corretamente. Ele encontra e conserta problemas em sistemas de IA, garantindo que funcionem como esperado.
affaan-m/ECC
agent-eval
Ajuda seu agente a comparar diferentes ferramentas de programação de IA. Ele mede qual é mais rápido, barato e confiável para realizar tarefas específicas.
affaan-m/ECC
agent-harness-construction
Faz seu agente entender melhor como realizar tarefas. Ele otimiza as ferramentas e instruções que o agente usa para aumentar suas chances de sucesso.
affaan-m/ECC