Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
langchain-ai avatar

Langchain Oss Primer

  • 56 installs
  • 111 repo stars
  • Updated July 29, 2026
  • langchain-ai/skills-benchmarks

Helps with ai & agent building tasks.

About

langchain-oss-primer is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted development.

  • langchain-oss-primer
  • AI & Agent Building
  • AI-coding skill

Langchain Oss Primer by the numbers

  • 56 all-time installs (skills.sh)
  • +2 installs in the week ending Aug 2, 2026 (Skillselion tracking)
  • Ranked #6,750 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
  • Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/langchain-ai/skills-benchmarks --skill langchain-oss-primer

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs56
repo stars111
Last updatedJuly 29, 2026
Repositorylangchain-ai/skills-benchmarks

What it does

Helps with ai & agent building tasks.

Files

SKILL.mdMarkdownGitHub ↗

<overview> Always load this skill first. This is the required starting point for any LangChain open source agent project — before choosing other skills, before writing code, before installing packages.

It answers three questions every project must resolve upfront:

1. Which framework? — LangChain, LangGraph, or Deep Agents 2. Which agent archetype? — maps your use case to the right API and patterns 3. What to install and which skills to load next

Load this skill first. Once you've decided on a framework and agent type, follow the "Next Skills" section at the bottom — it tells you exactly which skills to invoke next based on your choices.

</overview>

---

Step 1 — Pick Your Framework

The three frameworks are layered, not competing. Each builds on the one below:

┌─────────────────────────────────────────┐
│              Deep Agents                │  ← batteries included
│   (planning, memory, skills, files)     │
├─────────────────────────────────────────┤
│               LangGraph                 │  ← custom orchestration
│    (nodes, edges, state, persistence)   │
├─────────────────────────────────────────┤
│               LangChain                 │  ← foundation
│      (models, tools, prompts, RAG)      │
└─────────────────────────────────────────┘

<framework-decision>

Answer these questions in order:

QuestionYes →No →
User needs or wants planning, persistent memory, complex task management, long-running tasks, out-of-the-box file management, on-demand skills, or built-in middleware, subagents, easy expansion capabilities?Deep Agents
Needs custom control flow — specified loops, branching, deterministic parallel workers, or manually instrumented human-in-the-loop?LangGraph
Single-purpose agent with a fixed set of tools?LangChain (create_agent)
Simple prompt pipeline or retrieval chain with no agent loop?LangChain (direct model / chain)

Higher layers depend on lower ones only when necessary — you can mix them. A LangGraph graph can be a subagent inside Deep Agents; LangChain tools work inside both.

</framework-decision>

<framework-profiles>

LangChainLangGraphDeep Agents
Control flowFixed (tool loop)Custom (graph)Managed (middleware)
MiddlewareCallbacks only✗ None✓ Explicit, configurable
PlanningManual✓ TodoListMiddleware
File managementManual✓ FilesystemMiddleware
Persistent memoryWith checkpointer✓ MemoryMiddleware
Subagent delegationManual✓ SubAgentMiddleware
On-demand skills✓ SkillsMiddleware
Human-in-the-loopManual interrupt✓ HumanInTheLoopMiddleware
Custom graph edges✓ Full controlLimited
Setup complexityLowMediumLow
Middleware is a concept specific to Deep Agents (explicit middleware layer). LangGraph has no middleware — behavior is wired directly into nodes and edges. If a user asks for built-in hooks or automatic middleware, route to Deep Agents.

</framework-profiles>

---

Step 2 — Pick Your Agent Archetype

Once you've chosen a framework, match your use case to the right API and pattern.

<langchain-archetypes>

LangChain — use create_agent()

Best for single-purpose agents in a ReACT style with a fixed tool set. No built-in planning, memory management, or delegation.

ArchetypeDescriptionKey tools
QA / ChatbotAnswer questions, summarise, classify. One job, done well.LLM + optional retrieval
SQL AgentQuery a database, return structured resultsSQLDatabase, create_agent
Search AgentLook up information, return findingsTavilySearchResults, DuckDuckGoSearch
RAG AgentRetrieve from a vector store, ground answers in documentsretriever tool + create_agent
Data Analysis AgentLoad, transform, and summarise structured dataPythonREPL, pandas tools
Tool-calling AgentCall APIs, run code, or chain arbitrary toolscustom @tool functions

All LangChain agents use create_agent(model, tools=[...]). Next skill: `langchain-fundamentals`.

</langchain-archetypes>

<langgraph-archetypes>

LangGraph — use StateGraph

Best when you need explicit, deterministic control flow.

ArchetypeDescriptionKey pattern
Deterministic Parallel WorkflowsFan out to multiple nodes, collect results, mergeparallel edges → aggregation node
Multi-stage PipelineExtract → Transform → Load with typed stateTypedDict state + sequential nodes
Branching ClassifierRoute inputs to different handlers based on contentconditional edges + classifer node
Reflection LoopGenerate → Critique → Revise cycle with explicit exitcycle edges + iteration counter
Custom HITLComplex human-in-the-loop with structured review and conditional edgesinterrupt_before/interrupt_after + Command resume

LangGraph agents use StateGraph(State) with explicit add_node, add_edge, add_conditional_edges. Next skill: `langgraph-fundamentals`.

</langgraph-archetypes>

<deep-agents-archetypes>

Deep Agents — use create_deep_agent()

Best when the agent needs to manage its own work: planning tasks, remembering users across sessions, delegating to specialists, or managing files autonomously.

ArchetypeDescriptionWhy Deep Agents
Research AssistantReceives an open-ended research brief, breaks it into subtasks, delegates to specialist subagents, writes up findingsNeeds SubAgentMiddleware for delegation + TodoListMiddleware for planning
Personal AssistantRemembers user preferences, ongoing projects, and context across multiple sessionsNeeds MemoryMiddleware (Store) for cross-session persistence
Coding AssistantReads codebases, writes files, plans refactors across many steps, optionally asks for approval before writesNeeds FilesystemMiddleware + TodoListMiddleware + optional HITL
OrchestratorTop-level agent that routes work to 2+ specialized subagents (researcher, coder, writer…)Needs SubAgentMiddleware with custom subagent configs
Long-running Task AgentMulti-hour or multi-day workflows where state must survive restartsNeeds checkpointer + MemoryMiddleware
On-demand Skills AgentAgent that loads different skill sets depending on what the user asksNeeds SkillsMiddleware + FilesystemBackend
Multi Agent ArchitectureAgent that spawns or has access to subagents for isolated tasks

All Deep Agents use create_deep_agent(model, tools=[...], ...). Next skill: `deep-agents-core` — load it immediately after deciding on Deep Agents.

<deep-agents-middleware>

Deep Agents built-in middleware

Six components pre-wired out of the box. First three are always active; the rest are opt-in:

MiddlewareAlways on?What it gives the agent
TodoListMiddlewarewrite_todos tool — tracks multi-step task plans
FilesystemMiddlewarels, read_file, write_file, edit_file, glob, grep
SubAgentMiddlewaretask tool — delegates subtasks to named subagents
SkillsMiddlewareOpt-inLoads SKILL.md files on demand from a skills directory
MemoryMiddlewareOpt-inLong-term memory across sessions via a Store instance
HumanInTheLoopMiddlewareOpt-inPauses execution and requests human approval before specified tool calls

You configure middleware — you don't implement it.

</deep-agents-middleware>

<mixing-note> You can combine layers in the same project. The most common pattern: Deep Agents as the top-level orchestrator, with a compiled LangGraph graph registered as a specialized subagent. LangChain tools and chains are usable at every level. </mixing-note>

</deep-agents-archetypes>

---

Step 3 — Set Up Your Dependencies

Environment requirements

PythonTypeScript / Node
RuntimePython 3.10+Node.js 20+
LangChain1.0+ (LTS)1.0+ (LTS)
LangSmith SDK>= 0.3.0>= 0.3.0
Always use LangChain 1.0+. LangChain 0.3 is maintenance-only until December 2026 — do not start new projects on it.

---

Core packages — always required

<python-core> Python

PackageRoleVersion
langchainAgents, chains, retrieval>=1.0,<2.0
langchain-coreBase types & interfaces>=1.0,<2.0
langsmithTracing, evaluation, datasets>=0.3.0

</python-core>

<typescript-core> TypeScript

PackageRoleVersion
@langchain/coreBase types & interfaces (peer dep — install explicitly)^1.0.0
langchainAgents, chains, retrieval^1.0.0
langsmithTracing, evaluation, datasets^0.3.0

</typescript-core>

---

Orchestration — add based on your framework choice

<orchestration-packages>

FrameworkPythonTypeScript
LangGraphlanggraph>=1.0,<2.0@langchain/langgraph ^1.0.0
Deep Agentsdeepagents (depends on LangGraph; installs it as a transitive dep)deepagents

</orchestration-packages>

---

Model providers — pick the one(s) you use

<provider-packages>

ProviderPythonTypeScript
OpenAIlangchain-openai@langchain/openai
Anthropiclangchain-anthropic@langchain/anthropic
Google Geminilangchain-google-genai@langchain/google-genai
Mistrallangchain-mistralai@langchain/mistralai
Groqlangchain-groq@langchain/groq
Coherelangchain-cohere@langchain/cohere
AWS Bedrocklangchain-aws@langchain/aws
Azure AIlangchain-azure-ai@langchain/azure-openai
Ollama (local)langchain-ollama@langchain/ollama
Hugging Facelangchain-huggingface
Fireworks AIlangchain-fireworks
Together AIlangchain-together

</provider-packages>

---

Common tools & retrieval — add as needed

<tool-packages>

PackageAddsNotes
langchain-tavily / @langchain/tavilyTavily web searchKeep at latest; frequently updated for compatibility
langchain-text-splittersText chunkingSemver; keep current
langchain-chroma / @langchain/communityChroma vector storeDedicated integration package; keep at latest
langchain-pinecone / @langchain/pineconePinecone vector storeDedicated integration package; keep at latest
langchain-qdrant / @langchain/qdrantQdrant vector storeDedicated integration package; keep at latest
faiss-cpuFAISS vector store (Python only, local)Via langchain-community
langchain-community / @langchain/community1000+ integrations fallbackPython: NOT semver — pin to minor series
langsmith[pytest]pytest pluginRequires langsmith>=0.3.4
Prefer dedicated integration packages over langchain-community when one exists — they are independently versioned and more stable.

</tool-packages>

---

Dependency templates

<ex-langchain-python> <python> LangChain agent — provider-agnostic starting point.

# requirements.txt
langchain>=1.0,<2.0
langchain-core>=1.0,<2.0
langsmith>=0.3.0

# Add your model provider:
# langchain-openai | langchain-anthropic | langchain-google-genai | ...

# Add tools/retrieval as needed:
# langchain-tavily | langchain-chroma | langchain-text-splitters | ...

</python> </ex-langchain-python>

<ex-langgraph-python> <python> LangGraph project — provider-agnostic starting point.

# requirements.txt
langchain>=1.0,<2.0
langchain-core>=1.0,<2.0
langgraph>=1.0,<2.0
langsmith>=0.3.0

# Add your model provider:
# langchain-openai | langchain-anthropic | langchain-google-genai | ...

</python> </ex-langgraph-python>

<ex-langgraph-typescript> <typescript> LangGraph project — provider-agnostic starting point.

{
  "dependencies": {
    "@langchain/core": "^1.0.0",
    "langchain": "^1.0.0",
    "@langchain/langgraph": "^1.0.0",
    "langsmith": "^0.3.0"
  }
}

</typescript> </ex-langgraph-typescript>

<ex-deepagents-python> <python> Deep Agents project — provider-agnostic starting point.

# requirements.txt
deepagents
langchain>=1.0,<2.0
langchain-core>=1.0,<2.0
langsmith>=0.3.0

# Add your model provider:
# langchain-openai | langchain-anthropic | langchain-google-genai | ...

</python> </ex-deepagents-python>

<ex-deepagents-typescript> <typescript> Deep Agents project — provider-agnostic starting point.

{
  "dependencies": {
    "deepagents": "latest",
    "@langchain/core": "^1.0.0",
    "langchain": "^1.0.0",
    "langsmith": "^0.3.0"
  }
}

</typescript> </ex-deepagents-typescript>

---

Step 4 — Set Your Environment Variables

<environment-variables>

# LangSmith — always recommended for observability
LANGSMITH_API_KEY=<your-key>
LANGSMITH_PROJECT=<project-name>    # optional, defaults to "default"

# Model provider — set the one(s) you use
OPENAI_API_KEY=<your-key>
ANTHROPIC_API_KEY=<your-key>
GOOGLE_API_KEY=<your-key>
MISTRAL_API_KEY=<your-key>
GROQ_API_KEY=<your-key>
COHERE_API_KEY=<your-key>
FIREWORKS_API_KEY=<your-key>
TOGETHER_API_KEY=<your-key>
HUGGINGFACEHUB_API_TOKEN=<your-key>

# Common tool/retrieval services
TAVILY_API_KEY=<your-key>
PINECONE_API_KEY=<your-key>

</environment-variables>

---

Step 5 — Load the Right Skill Next

Based on the framework and archetype you chose above, invoke these skills now before writing any code:

<next-skills>

If you chose LangChain

Your archetypeLoad next
Any LangChain agent (QA bot, SQL, search, RAG, tool-calling)`langchain-fundamentals` — always
Adding external tools/packages (Tavily, Pinecone, etc.)`langchain-dependencies` — package patterns and version guidance
Need streaming or async responses`langchain-fundamentals` then langgraph-fundamentals

If you chose LangGraph

Your archetypeLoad next
Any LangGraph graph`langgraph-fundamentals` — always
Approval pipeline, HITL, or pause/resume`langgraph-fundamentals` + langgraph-human-in-the-loop
State that must survive restarts or cross-thread memory`langgraph-persistence`
Streaming output token by token`langgraph-fundamentals`

If you chose Deep Agents

Always load `deep-agents-core` first — it is the mandatory starting point for any Deep Agents project.

Your archetypeLoad next (after deep-agents-core)
Research Assistant — delegates to specialist subagents`deep-agents-orchestration` — subagent config, TodoList, HITL
Personal Assistant — remembers users across sessions`deep-agents-memory` — MemoryMiddleware, Store backends
Coding Assistant — reads/writes files, plans refactorsdeep-agents-core is sufficient; add deep-agents-orchestration if using HITL
Orchestrator — routes work across multiple named subagents`deep-agents-orchestration` — SubAgentMiddleware patterns
Long-running task agent — survives restarts`deep-agents-memory` + deep-agents-orchestration
On-demand skills agentdeep-agents-core covers SkillsMiddleware setup

</next-skills>

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.