Deep Agents overview ↗
noOriginal Documentation
Documentation Index#
Fetch the complete documentation index at: https://docs.langchain.com/llms.txt Use this file to discover all available pages before exploring further.
Build agents that can plan, use subagents, and leverage file systems for complex tasks
Deep agents are the easiest way to start building agents and applications powered by LLMs—with builtin capabilities for task planning, file systems for context management, subagent-spawning, and long-term memory. You can use deep agents for any task, including complex, multi-step tasks.
We think of deepagents as an “agent harness”. It is the same core tool calling loop as other agent frameworks, but with built-in tools and capabilities.
deepagents is a standalone library built on top of LangChain’s core building blocks for agents and using LangGraph’s tooling for running agents in production.
The deepagents library contains:
- Deep Agents SDK: A package for building agents that can handle any task
- Deep Agents CLI: A terminal coding agent built on top of the
deepagentspackage
LangChain is the framework that provides the core building blocks for your agents. To learn more about the differences between LangChain, LangGraph, and Deep Agents, see Frameworks, runtimes, and harnesses.
Create a deep agent#
import * as z from "zod";
// npm install deepagents langchain @langchain/core
const getWeather = tool(
({ city }) => `It's always sunny in ${city}!`,
{
name: "get_weather",
description: "Get the weather for a given city",
schema: z.object({
city: z.string(),
}),
},
);
const agent = createDeepAgent({
tools: [getWeather],
system: "You are a helpful assistant",
});
console.log(
await agent.invoke({
messages: [{ role: "user", content: "What's the weather in Tokyo?" }],
})
);See the Quickstart and Customization guide to get started building your own agents and applications with deep agents.
Use LangSmith to trace requests, debug agent behavior, and evaluate outputs. Set LANGSMITH_TRACING=true and your API key to get started.
When to use the Deep Agents#
Use the Deep Agents SDK when you want to build agents that can:
- Handle complex, multi-step tasks that require planning and decomposition
- Manage large amounts of context through file system tools
- Swap filesystem backends to use in-memory state, local disk, durable stores, sandboxes, or your own custom backend
- Delegate work to specialized subagents for context isolation
- Persist memory across conversations and threads
For building simpler agents, consider using LangChain’s createAgent or building a custom LangGraph workflow.
Use the Deep Agents CLI when you want to use an interactive deep agent on the command-line for coding or other tasks:
- Customize agents with skills and memory.
- Teach agents as you use them about your preferences, common patterns, and custom project knowledge.
- Execute code on your machine or in sandboxes.
Core capabilities#
<span class=“card-start” data-card-raw=“title=“Planning and task decomposition” icon=“timeline”">
Deep agents include a built-in write_todos tool that enables agents to break down complex tasks into discrete steps, track progress, and adapt plans as new information emerges.
<span class=“card-start” data-card-raw=“title=“Context management” icon=“scissors”">
File system tools (ls, read_file, write_file, edit_file) allow agents to offload large context to in-memory or filesystem storage, preventing context window overflow and enabling work with variable-length tool results.
<span class=“card-start” data-card-raw=“title=“Pluggable filesystem backends” icon=“plug”"> The virtual filesystem is powered by pluggable backends that you can swap to fit your use case. Choose from in-memory state, local disk, LangGraph store for cross-thread persistence, sandboxes for isolated code execution (Modal, Daytona, Deno), or combine multiple backends with composite routing. You can also implement your own custom backend.
<span class=“card-start” data-card-raw=“title=“Subagent spawning” icon=“users-group”">
A built-in task tool enables agents to spawn specialized subagents for context isolation. This keeps the main agent’s context clean while still going deep on specific subtasks.
<span class=“card-start” data-card-raw=“title=“Long-term memory” icon=“database”"> Extend agents with persistent memory across threads using LangGraph’s Memory Store. Agents can save and retrieve information from previous conversations.
Get started#
Build your first deep agent
Learn about customization options for the SDK
Choose and configure pluggable filesystem backends
Use the Deep Agents CLI
See the deepagents API reference
Edit this page on GitHub or file an issue.
Connect these docs to Claude, VSCode, and more via MCP for real-time answers.