本文へ移動
cccskills
無料GitHub で公開

langchain

Framework para construir aplicações com LLM usando agentes, chains e RAG. Suporta múltiplos provedores (OpenAI, Anthropic, Google), 500+ integrações, agentes ReAct, tool calling, gerenciamento de memória e recuperação de vector stores. Use para construir chatbots, sistemas de perguntas e respostas, agentes autônomos ou aplicações RAG. Ideal para prototipagem rápida e deployments em produção.

インストール方法を見る

含まれるファイル(4)

  • SKILL.md12.9 KB
  • references/agents.md12.4 KB
  • references/integration.md11.6 KB
  • references/rag.md14.2 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

LangChain - Construa aplicações com LLM, agentes e RAG

O framework mais popular para construir aplicações powered por LLM.

Quando usar LangChain

Use LangChain quando:

  • Construir agentes com tool calling e reasoning (padrão ReAct)
  • Implementar pipelines RAG (retrieval-augmented generation)
  • Precisar trocar provedores de LLM facilmente (OpenAI, Anthropic, Google)
  • Criar chatbots com memória de conversa
  • Prototipagem rápida de aplicações com LLM
  • Deployments em produção com observabilidade LangSmith

Métricas:

  • 119.000+ stars no GitHub
  • 272.000+ repositórios usam LangChain
  • 500+ integrações (modelos, vector stores, tools)
  • 3.800+ contribuidores

Use alternativas em vez disso:

  • LlamaIndex: focado em RAG, melhor para Q&A de documentos
  • LangGraph: workflows stateful complexos, mais controle
  • Haystack: pipelines de busca em produção
  • Semantic Kernel: ecossistema Microsoft

Início rápido

Instalação

# Biblioteca principal (Python 3.10+)
pip install -U langchain

# Com OpenAI
pip install langchain-openai

# Com Anthropic
pip install langchain-anthropic

# Extras comuns
pip install langchain-community  # 500+ integrações
pip install langchain-chroma     # Vector store

Uso básico de LLM

from langchain_anthropic import ChatAnthropic

# Inicializar modelo
llm = ChatAnthropic(model="claude-sonnet-4-5-20250929")

# Conclusão simples
response = llm.invoke("Explain quantum computing in 2 sentences")
print(response.content)

Criar um agente (padrão ReAct)

from langchain.agents import create_agent
from langchain_anthropic import ChatAnthropic

# Definir tools
def get_weather(city: str) -> str:
    """Get current weather for a city."""
    return f"It's sunny in {city}, 72°F"

def search_web(query: str) -> str:
    """Search the web for information."""
    return f"Search results for: {query}"

# Criar agente (<10 linhas!)
agent = create_agent(
    model=ChatAnthropic(model="claude-sonnet-4-5-20250929"),
    tools=[get_weather, search_web],
    system_prompt="You are a helpful assistant. Use tools when needed."
)

# Executar agente
result = agent.invoke({"messages": [{"role": "user", "content": "What's the weather in Paris?"}]})
print(result["messages"][-1].content)

Conceitos principais

1. Models - abstração de LLM

from langchain_openai import ChatOpenAI
from langchain_anthropic import ChatAnthropic
from langchain_google_genai import ChatGoogleGenerativeAI

# Trocar provedores facilmente
llm = ChatOpenAI(model="gpt-4o")
llm = ChatAnthropic(model="claude-sonnet-4-5-20250929")
llm = ChatGoogleGenerativeAI(model="gemini-2.0-flash-exp")

# Streaming
for chunk in llm.stream("Write a poem"):
    print(chunk.content, end="", flush=True)

2. Chains - operações sequenciais

from langchain.chains import LLMChain
from langchain.prompts import PromptTemplate

# Definir template de prompt
prompt = PromptTemplate(
    input_variables=["topic"],
    template="Write a 3-sentence summary about {topic}"
)

# Criar chain
chain = LLMChain(llm=llm, prompt=prompt)

# Executar chain
result = chain.run(topic="machine learning")

3. Agents - reasoning com tools

Padrão ReAct (Reasoning + Acting):

from langchain.agents import create_tool_calling_agent, AgentExecutor
from langchain.tools import Tool

# Definir tool customizada
calculator = Tool(
    name="Calculator",
    func=lambda x: eval(x),
    description="Useful for math calculations. Input: valid Python expression."
)

# Criar agente com tools
agent = create_tool_calling_agent(
    llm=llm,
    tools=[calculator, search_web],
    prompt="Answer questions using available tools"
)

# Criar executor
agent_executor = AgentExecutor(agent=agent, tools=[calculator], verbose=True)

# Executar com reasoning
result = agent_executor.invoke({"input": "What is 25 * 17 + 142?"})

4. Memory - histórico de conversa

from langchain.memory import ConversationBufferMemory
from langchain.chains import ConversationChain

# Adicionar memória para rastrear conversa
memory = ConversationBufferMemory()

conversation = ConversationChain(
    llm=llm,
    memory=memory,
    verbose=True
)

# Conversa multi-turno
conversation.predict(input="Hi, I'm Alice")
conversation.predict(input="What's my name?")  # Remembers "Alice"

RAG (Retrieval-Augmented Generation)

Pipeline RAG básico

from langchain_community.document_loaders import WebBaseLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain_openai import OpenAIEmbeddings
from langchain_chroma import Chroma
from langchain.chains import RetrievalQA

# 1. Carregar documentos
loader = WebBaseLoader("https://docs.python.org/3/tutorial/")
docs = loader.load()

# 2. Dividir em chunks
text_splitter = RecursiveCharacterTextSplitter(
    chunk_size=1000,
    chunk_overlap=200
)
splits = text_splitter.split_documents(docs)

# 3. Criar embeddings e vector store
vectorstore = Chroma.from_documents(
    documents=splits,
    embedding=OpenAIEmbeddings()
)

# 4. Criar retriever
retriever = vectorstore.as_retriever(search_kwargs={"k": 4})

# 5. Criar chain de QA
qa_chain = RetrievalQA.from_chain_type(
    llm=llm,
    retriever=retriever,
    return_source_documents=True
)

# 6. Consultar
result = qa_chain({"query": "What are Python decorators?"})
print(result["result"])
print(f"Sources: {result['source_documents']}")

RAG conversacional com memória

from langchain.chains import ConversationalRetrievalChain

# RAG com memória de conversa
qa = ConversationalRetrievalChain.from_llm(
    llm=llm,
    retriever=retriever,
    memory=ConversationBufferMemory(
        memory_key="chat_history",
        return_messages=True
    )
)

# RAG multi-turno
qa({"question": "What is Python used for?"})
qa({"question": "Can you elaborate on web development?"})  # Remembers context

Padrões avançados de agentes

Saída estruturada

from langchain_core.pydantic_v1 import BaseModel, Field

# Definir schema
class WeatherReport(BaseModel):
    city: str = Field(description="City name")
    temperature: float = Field(description="Temperature in Fahrenheit")
    condition: str = Field(description="Weather condition")

# Obter resposta estruturada
structured_llm = llm.with_structured_output(WeatherReport)
result = structured_llm.invoke("What's the weather in SF? It's 65F and sunny")
print(result.city, result.temperature, result.condition)

Execução paralela de tools

from langchain.agents import create_tool_calling_agent

# Agente paraleliza automaticamente tool calls independentes
agent = create_tool_calling_agent(
    llm=llm,
    tools=[get_weather, search_web, calculator]
)

# Isso chamará get_weather("Paris") e get_weather("London") em paralelo
result = agent.invoke({
    "messages": [{"role": "user", "content": "Compare weather in Paris and London"}]
})

Streaming de execução de agente

# Fazer stream dos passos do agente
for step in agent_executor.stream({"input": "Research AI trends"}):
    if "actions" in step:
        print(f"Tool: {step['actions'][0].tool}")
    if "output" in step:
        print(f"Output: {step['output']}")

Padrões comuns

QA multi-documento

from langchain.chains.qa_with_sources import load_qa_with_sources_chain

# Carregar múltiplos documentos
docs = [
    loader.load("https://docs.python.org"),
    loader.load("https://docs.numpy.org")
]

# QA com citações de fontes
chain = load_qa_with_sources_chain(llm, chain_type="stuff")
result = chain({"input_documents": docs, "question": "How to use numpy arrays?"})
print(result["output_text"])  # Inclui citações de fontes

Tools customizadas com tratamento de erros

from langchain.tools import tool

@tool
def risky_operation(query: str) -> str:
    """Perform a risky operation that might fail."""
    try:
        # Your operation here
        result = perform_operation(query)
        return f"Success: {result}"
    except Exception as e:
        return f"Error: {str(e)}"

# Agente trata erros com graça
agent = create_agent(model=llm, tools=[risky_operation])

Observabilidade LangSmith

import os

# Habilitar tracing
os.environ["LANGCHAIN_TRACING_V2"] = "true"
os.environ["LANGCHAIN_API_KEY"] = "your-api-key"
os.environ["LANGCHAIN_PROJECT"] = "my-project"

# Todos os chains/agentes são rastreados automaticamente
agent = create_agent(model=llm, tools=[calculator])
result = agent.invoke({"input": "Calculate 123 * 456"})

# Ver traces em smith.langchain.com

Vector stores

Chroma (local)

from langchain_chroma import Chroma

vectorstore = Chroma.from_documents(
    documents=docs,
    embedding=OpenAIEmbeddings(),
    persist_directory="./chroma_db"
)

Pinecone (cloud)

from langchain_pinecone import PineconeVectorStore

vectorstore = PineconeVectorStore.from_documents(
    documents=docs,
    embedding=OpenAIEmbeddings(),
    index_name="my-index"
)

FAISS (busca de similaridade)

from langchain_community.vectorstores import FAISS

vectorstore = FAISS.from_documents(docs, OpenAIEmbeddings())
vectorstore.save_local("faiss_index")

# Carregar depois
vectorstore = FAISS.load_local("faiss_index", OpenAIEmbeddings())

Document loaders

# Páginas web
from langchain_community.document_loaders import WebBaseLoader
loader = WebBaseLoader("https://example.com")

# PDFs
from langchain_community.document_loaders import PyPDFLoader
loader = PyPDFLoader("paper.pdf")

# GitHub
from langchain_community.document_loaders import GithubFileLoader
loader = GithubFileLoader(repo="user/repo", file_filter=lambda x: x.endswith(".py"))

# CSV
from langchain_community.document_loaders import CSVLoader
loader = CSVLoader("data.csv")

Text splitters

# Recursivo (recomendado para texto geral)
from langchain.text_splitter import RecursiveCharacterTextSplitter
splitter = RecursiveCharacterTextSplitter(
    chunk_size=1000,
    chunk_overlap=200,
    separators=["\n\n", "\n", " ", ""]
)

# Code-aware
from langchain.text_splitter import PythonCodeTextSplitter
splitter = PythonCodeTextSplitter(chunk_size=500)

# Semântico (por significado)
from langchain_experimental.text_splitter import SemanticChunker
splitter = SemanticChunker(OpenAIEmbeddings())

Melhores práticas

  1. Comece simples - Use create_agent() na maioria dos casos
  2. Habilite streaming - Melhor UX para respostas longas
  3. Adicione tratamento de erros - Tools podem falhar, trate com graça
  4. Use LangSmith - Essencial para debugar agentes
  5. Otimize tamanho de chunk - 500-1000 caracteres para RAG
  6. Versionize prompts - Rastreie mudanças em produção
  7. Cache de embeddings - Caro, cache quando possível
  8. Monitore custos - Rastreie uso de tokens com LangSmith

Benchmarks de performance

OperaçãoLatênciaNotas
Simple LLM call~1-2sDepende do provedor
Agent with 1 tool~3-5sOverhead de reasoning ReAct
RAG retrieval~0.5-1sVector search + LLM
Embedding 1000 docs~10-30sDepende do modelo

LangChain vs LangGraph

FeatureLangChainLangGraph
Ideal paraQuick agents, RAGWorkflows complexos
Nível de abstraçãoAltoBaixo
Código para começar<10 linhas~30 linhas
ControleSimplesTotal
Workflows statefulLimitadoNativo
Grafos cíclicosNãoSim
Human-in-loopBásicoAvançado

Use LangGraph quando:

  • Precisar de workflows stateful com ciclos
  • Exigir controle refinado
  • Construir sistemas multi-agente
  • Aplicações em produção com lógica complexa

Referências

Recursos

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Especialista em construir experiências 3D para a web - Three.js, React Three Fiber, Spline, WebGL e cenas 3D interativas. Cobre configuradores de produtos, portfólios 3D, websites imersivos e adição de profundidade às experiências web. Use quando: website 3D, three.js, WebGL, react three fiber, experiência 3D.

日本語の概要は準備中です。原文の説明を表示しています。

artubss/SKILLS-CLAUDE-CODE112026年5月17日 更新

Quando o usuário quer planejar, projetar ou implementar um teste A/B ou experimento. Também use quando o usuário menciona "teste A/B", "split test", "experimento", "testar essa mudança", "copy variante", "teste multivariado" ou "hipótese". Para implementação de rastreamento, veja analytics-tracking.

日本語の概要は準備中です。原文の説明を表示しています。

artubss/SKILLS-CLAUDE-CODE112026年5月17日 更新

Auditar e melhorar a acessibilidade web seguindo as diretrizes WCAG 2.1. Use quando solicitado para "melhorar acessibilidade", "auditoria a11y", "conformidade WCAG", "suporte a leitor de tela", "navegação por teclado" ou "tornar acessível".

日本語の概要は準備中です。原文の説明を表示しています。

artubss/SKILLS-CLAUDE-CODE112026年5月17日 更新

Testes e benchmarking de agentes LLM incluindo testes comportamentais, avaliação de capacidades, métricas de confiabilidade e monitoramento em produção—onde até os melhores agentes alcançam menos de 50% em benchmarks do mundo real. Use quando: testes de agentes, avaliação de agentes, benchmark de agentes, confiabilidade de agentes, teste de agentes.

日本語の概要は準備中です。原文の説明を表示しています。

artubss/SKILLS-CLAUDE-CODE112026年5月17日 更新

Criar, gerenciar e orquestrar agentes de IA usando o CLI AI Maestro. Use quando o usuário pedir para "criar agente", "listar agentes", "deletar agente", "hibernar agente", "despertar agente", "instalar plugin", "mostrar agente", "reiniciar agente" ou qualquer tarefa de gerenciamento do ciclo de vida do agente.

日本語の概要は準備中です。原文の説明を表示しています。

artubss/SKILLS-CLAUDE-CODE112026年5月17日 更新

Gerencie múltiplos agentes CLI locais via sessões tmux (iniciar/parar/monitorar/atribuir) com agendamento compatível com cron.

日本語の概要は準備中です。原文の説明を表示しています。

artubss/SKILLS-CLAUDE-CODE112026年5月17日 更新

artubss のスキルをすべて見る

このスキルの問題を報告する