agentsclimarketplace

Langchain components

Skill krzysztofsurdy/code-virtuoso/skills/frameworks/langchain/langchain-components

Comprehensive reference for the LangChain ecosystem including LangChain, LangGraph, and Deep Agents for Python 3.10+. Use when the user asks to build AI agents, implement RAG pipelines, configure chat models, create tool-calling agents, set up retrieval chains, manage conversation memory, orchestrate multi-agent workflows, or integrate with LLM providers (OpenAI, Anthropic, Google). Covers models, messages, output parsers, vector stores, embedding strategies, streaming, middleware, and LangGraph state machines.From its SKILL.md

Install
npx -y skills add krzysztofsurdy/code-virtuoso --skill langchain-components

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 20 stars20 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

6.3 KB, ~1.3k tokens by cl100k_base, as published. Nobody here has run it

LangChain Components

Complete reference for the LangChain ecosystem — models, agents, tools, retrieval, memory, middleware, streaming, multi-agent orchestration, LangGraph workflows, Deep Agents, and provider integrations for Python 3.10+.

Component Index

Models & Output

  • Models — Chat models, tool calling, multimodal inputs, caching, rate limiting, custom models reference
  • Messages — Message types (Human, AI, System, Tool), message operations, serialization, OpenAI format conversion reference

Agents

  • Agents — create_agent, tools, structured output, guardrails, human-in-the-loop, context engineering reference
  • Multi-Agent — Subagents, handoffs, skills, router, custom workflows, pattern selection reference

Tools & MCP

  • Tools — Tool creation (@tool decorator, ToolNode), InjectedState, MCP integration, error handling reference

Retrieval & RAG

  • Retrieval — Document loaders, text splitters, embeddings, vector stores, agentic RAG, semantic search reference

Memory

  • Memory — Short-term (checkpointers, message trimming, summarization), long-term (store abstraction, namespaces) reference

Middleware & Streaming

  • Middleware — 16 built-in middleware, custom middleware (decorator, class, wrap-style), execution order reference
  • Streaming — Stream modes (updates, messages, custom), token streaming, useStream React hook reference

Runtime & Architecture

  • Runtime — Dependency injection, context schemas, ToolRuntime, component architecture (5 layers) reference

Testing & Deployment

  • Testing — Unit testing (GenericFakeChatModel), integration testing (AgentEvals), LangSmith observability reference

LangGraph

  • LangGraph Core — Graph API, Functional API, workflows vs agents, state management, quickstart reference
  • LangGraph State — Memory, persistence, durable execution, interrupts, checkpointers reference
  • LangGraph Advanced — Subgraphs, time-travel, streaming, Graph API usage, Functional API usage reference

Deep Agents

  • Deep Agents — Harness framework, models, subagents, skills, sandboxes, human-in-the-loop, long-term memory reference

Integrations

  • Integrations — Chat models, document loaders, retrievers, embeddings, vector stores, tools, stores, splitters reference
  • Providers — OpenAI, Anthropic, Google, AWS, Ollama setup and configuration reference

Quick Patterns

Create an Agent with Tools

from langchain.chat_models import init_chat_model
from langgraph.prebuilt import create_agent

model = init_chat_model("anthropic:claude-sonnet-4-20250514")

def get_weather(city: str) -> str:
    """Get weather for a city."""
    return f"Sunny, 72F in {city}"

agent = create_agent(model, [get_weather])
response = agent.invoke(
    {"messages": [{"role": "user", "content": "What's the weather in SF?"}]}
)

Structured Output

from pydantic import BaseModel

class SearchQuery(BaseModel):
    query: str
    year: int

structured_model = model.with_structured_output(SearchQuery)
result = structured_model.invoke("Who won the World Cup in 2022?")

RAG with Retrieval

from langchain_community.document_loaders import WebBaseLoader
from langchain_text_splitters import RecursiveCharacterTextSplitter
from langchain_openai import OpenAIEmbeddings
from langchain_core.vectorstores import InMemoryVectorStore

docs = WebBaseLoader("https://example.com").load()
chunks = RecursiveCharacterTextSplitter(chunk_size=1000).split_documents(docs)
vector_store = InMemoryVectorStore.from_documents(chunks, OpenAIEmbeddings())
retriever_tool = vector_store.as_retriever()

Multi-Agent Handoffs

from langgraph.prebuilt import create_agent

billing_agent = create_agent(model, [lookup_billing], name="billing")
tech_agent = create_agent(model, [check_status], name="tech_support")
supervisor = create_agent(
    model,
    [billing_agent, tech_agent],
    prompt="Route to the appropriate specialist."
)

LangGraph Workflow

from langgraph.graph import StateGraph, START, END

graph = StateGraph(dict)
graph.add_node("process", process_fn)
graph.add_node("review", review_fn)
graph.add_edge(START, "process")
graph.add_edge("process", "review")
graph.add_edge("review", END)
app = graph.compile()

Streaming

for chunk in agent.stream(
    {"messages": [{"role": "user", "content": "Hello"}]},
    stream_mode="messages"
):
    print(chunk)

Best Practices

  • Use init_chat_model() for provider-agnostic model initialization
  • Prefer create_agent over building custom agent loops
  • Use LangGraph for complex workflows requiring state, persistence, or human-in-the-loop
  • Apply middleware for cross-cutting concerns (guardrails, rate limiting, PII detection)
  • Use checkpointers for conversation persistence and short-term memory
  • Use the Store abstraction for long-term memory across conversations
  • Choose the right multi-agent pattern: handoffs for specialization, routers for classification, subagents for parallel work
  • Use with_structured_output() for type-safe LLM responses
  • Prefer agentic RAG (tool-based retrieval) over chain-based RAG for flexibility
  • Use stream_mode="messages" for token-level streaming to frontends

What ships with it: 17 files

189.2 KB alongside SKILL.md

Gives 0 of the 12 instructions most rag retrieval skills give in ~1.3k tokens

Counted across 199 of the 213 authors here whose files we hold, read 2026-09-06

  • Enable caching for frequent queriesin 14 of 199, across 5 files
  • Enable MMR for diverse resultsin 12 of 199, across 5 files
  • Enable binary quantization to reduce memoryin 11 of 199, across 4 files
  • Initialize the database with dimensions matching the embedding modelin 11 of 199, across 4 files
  • Start the similarity threshold at 0.7in 11 of 199, across 4 files
  • Check database statistics when diagnosing slow searchin 11 of 199, across 4 files
  • Export and import vectors as JSONin 10 of 199, across 3 files
  • Match index dimension to the embedding modelin 10 of 199, across 9 files
  • Order filters cheap before expensivein 9 of 199, across 2 files
  • Generate a runnable scaffold in the user's stackin 9 of 199, across 2 files
  • Recommend multi-action scoring when frequent tuning is expectedin 9 of 199, across 2 files
  • Batch store documents for bulk insertsin 9 of 199, across 2 files

Said here and by no other author read

  • Use init_chat_model for provider-agnostic model initialization
  • Prefer create_agent over custom agent loops
  • Use LangGraph for stateful or human-in-the-loop workflows
  • Apply middleware for cross-cutting concerns
  • Use checkpointers for conversation persistence
  • Use the Store abstraction for long-term memory

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.