> ## 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.

# Deep Agents overview

> Build agents that can plan, use subagents, and leverage file systems for complex tasks

The easiest way to start building agents and applications powered by LLMs—with built-in 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"](/oss/javascript/concepts/products#agent-harnesses-like-the-deep-agents-sdk). It is the same core tool calling loop as other agent frameworks, but with built-in tools and capabilities.

[`deepagents`](https://www.npmjs.com/package/deepagents) is a standalone library built on top of [LangChain](/oss/javascript/langchain/)'s core building blocks for agents and using [LangGraph](/oss/javascript/langgraph/)'s tooling for running agents in production.

The [`deepagents` repository](https://github.com/langchain-ai/deepagents) contains:

* **Deep Agents SDK**: A package for building agents that can handle any task
* [**Deep Agents CLI**](/oss/javascript/deepagents/cli): A terminal coding agent built on the Deep Agents SDK
* [**ACP integration**](/oss/javascript/deepagents/acp): An Agent Client Protocol connector for using deep agents in code editors like Zed

[LangChain](/oss/javascript/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](/oss/javascript/concepts/products). For a side-by-side comparison with Anthropic's harness, see [Deep Agents vs. Claude Agent SDK](/oss/javascript/deepagents/comparison).

## <Icon icon="wand" /> Create a deep agent

```ts theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
import * as z from "zod";
// npm install deepagents langchain @langchain/core
import { createDeepAgent } from "deepagents";
import { tool } from "langchain";

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],
  systemPrompt: "You are a helpful assistant",
});

console.log(
  await agent.invoke({
    messages: [{ role: "user", content: "What's the weather in Tokyo?" }],
  })
);
```

See the [Quickstart](/oss/javascript/deepagents/quickstart/) and [Customization guide](/oss/javascript/deepagents/customization/) to get started building your own agents and applications with Deep Agents.

<Tip>
  Trace requests, debug agent behavior, and evaluate outputs with [LangSmith](https://smith.langchain.com?utm_source=docs\&utm_medium=cta\&utm_campaign=langsmith-signup\&utm_content=oss-deepagents-overview). Follow the [tracing quickstart](/langsmith/trace-with-langchain) to get set up. When ready for production, [deploy to LangSmith Cloud](/langsmith/deploy-to-cloud) for managed hosting.
</Tip>

## 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 and [summarization](/oss/javascript/deepagents/context-engineering#summarization)
* **Swap filesystem backends** to use in-memory state, local disk, durable stores, [sandboxes](/oss/javascript/deepagents/sandboxes), or [your own custom backend](/oss/javascript/deepagents/backends)
* **Execute shell commands** via the `execute` tool when using a [sandbox backend](/oss/javascript/deepagents/sandboxes)
* **Delegate work** to specialized subagents for context isolation
* **Persist memory** across conversations and threads
* **Control filesystem access** with declarative [permission rules](/oss/javascript/deepagents/permissions) that restrict which files agents can read or write
* **Require human approval** for sensitive operations with [human-in-the-loop](/oss/javascript/deepagents/human-in-the-loop) workflows
* **Use any model** — [provider agnostic](/oss/javascript/deepagents/models) across frontier and open models

For building simpler agents, consider using LangChain's [`createAgent`](/oss/javascript/langchain/agents) or building a custom [LangGraph](/oss/javascript/langgraph/overview) workflow.

## Core capabilities

<Card title="Planning and task decomposition" icon="timeline">
  Deep Agents include a built-in [`write_todos`](/oss/javascript/langchain/middleware/built-in#to-do-list) tool that enables agents to break down complex tasks into discrete steps, track progress, and adapt plans as new information emerges.
</Card>

<Card title="Context management" icon="scissors">
  File system tools ([`ls`](/oss/javascript/deepagents/harness#virtual-filesystem-access), [`read_file`](/oss/javascript/deepagents/harness#virtual-filesystem-access), [`write_file`](/oss/javascript/deepagents/harness#virtual-filesystem-access), [`edit_file`](/oss/javascript/deepagents/harness#virtual-filesystem-access)) allow agents to offload large context to in-memory or filesystem storage, preventing context window overflow and enabling work with variable-length tool results. Auto-summarization compacts older conversation messages when the context window grows long, keeping the agent effective across extended sessions.
</Card>

<Card title="Shell execution" icon="terminal">
  When using a [sandbox backend](/oss/javascript/deepagents/sandboxes), agents get an `execute` tool to run shell commands for tests, builds, git operations, and system tasks. Sandbox backends provide isolation so agents can execute code without compromising your host system.
</Card>

<Card title="Pluggable filesystem backends" icon="plug">
  The virtual filesystem is powered by [pluggable backends](/oss/javascript/deepagents/backends) that you can swap to fit your use case. Choose from in-memory state, local disk, LangGraph store for cross-thread persistence, [sandboxes](/oss/javascript/deepagents/sandboxes) for isolated code execution (Modal, Daytona, Deno), or combine multiple backends with composite routing. You can also implement your own custom backend.
</Card>

<Card 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.
</Card>

<Card title="Long-term memory" icon="database">
  Extend agents with persistent memory across threads using LangGraph's [Memory Store](/oss/javascript/langgraph/persistence#memory-store). Agents can save and retrieve information from previous conversations.
</Card>

<Card title="Filesystem permissions" icon="lock">
  Declare [permission rules](/oss/javascript/deepagents/permissions) that control which files and directories agents can read or write. Subagents can inherit or override the parent's rules.
</Card>

<Card title="Human-in-the-loop" icon="user-check">
  Configure [human approval](/oss/javascript/deepagents/human-in-the-loop) for sensitive tool operations using LangGraph's interrupt capabilities. Control which tools require confirmation before execution.
</Card>

<Card title="Skills" icon="puzzle">
  Extend agents with reusable [skills](/oss/javascript/deepagents/skills) that provide specialized workflows, domain knowledge, and custom instructions.
</Card>

<Card title="Smart defaults" icon="wand">
  Ships with opinionated system prompts that teach the model how to use its tools effectively — plan before acting, verify work, and manage context. Customize or replace the defaults as needed.
</Card>

## Get started

<CardGroup cols={2}>
  <Card title="Quickstart" icon="rocket" href="/oss/javascript/deepagents/quickstart">
    Build your first deep agent
  </Card>

  <Card title="Customization" icon="adjustments" href="/oss/javascript/deepagents/customization">
    Learn about customization options
  </Card>

  <Card title="Models" icon="cpu" href="/oss/javascript/deepagents/models">
    Configure models and providers
  </Card>

  <Card title="Backends" icon="plug" href="/oss/javascript/deepagents/backends">
    Choose and configure pluggable filesystem backends
  </Card>

  <Card title="Permissions" icon="lock" href="/oss/javascript/deepagents/permissions">
    Control filesystem access with permission rules
  </Card>

  <Card title="Human-in-the-loop" icon="user-check" href="/oss/javascript/deepagents/human-in-the-loop">
    Configure approval for sensitive operations
  </Card>

  <Card title="CLI" icon="terminal" href="/oss/javascript/deepagents/cli/overview">
    Use the Deep Agents CLI
  </Card>

  <Card title="Reference" icon="external-link" href="https://reference.langchain.com/javascript/modules/deepagents.html">
    See the `deepagents` API reference
  </Card>
</CardGroup>

***

<div className="source-links">
  <Callout icon="terminal-2">
    [Connect these docs](/use-these-docs) to Claude, VSCode, and more via MCP for real-time answers.
  </Callout>

  <Callout icon="edit">
    [Edit this page on GitHub](https://github.com/langchain-ai/docs/edit/main/src/oss/deepagents/overview.mdx) or [file an issue](https://github.com/langchain-ai/docs/issues/new/choose).
  </Callout>
</div>
