Hunter Lovell 1225a7ff86 feat(deepagents): make todo middleware opt-in (#708)
## Summary

Makes `todoListMiddleware` opt-in. Default agents and default subagents
no longer expose `write_todos` or the `todos` state channel, reducing
the default tool surface while preserving explicit opt-in.

## Changes

- Remove default todo middleware from the main, general-purpose, and
declarative subagent stacks.
- Preserve opt-in support through `middleware: [todoListMiddleware()]`;
declarative subagents opt in through their own middleware.
- Remove `write_todos` from always-present tool typing and built-in
name-collision handling.
- Update state and subagent documentation plus shared runtime assertions
for the optional todo state/tool.

### Harness profiles and coverage

- Re-add todo middleware in the Codex harness profile because its
model-specific prompt requires `write_todos`
- Apply profile `extraMiddleware` to subagent stacks, with profile
factories creating fresh instances per stack.
- Add coverage for default exclusion, explicit opt-in,
main/GP/declarative isolation, profile middleware propagation, and type
inference.
2026-07-24 15:40:43 -07:00
2025-08-05 10:25:41 -04:00
2025-08-05 11:47:34 -07:00
2026-01-09 15:10:42 -08:00

The batteries-included agent harness.

npm version License: MIT TypeScript Twitter / X

Deep Agents is an agent harness. An opinionated, ready-to-run agent out of the box. Instead of wiring prompts, tools, and context management yourself, you get a working agent immediately and customize what you need.

What's included:

  • Planningwrite_todos for task breakdown and progress tracking
  • Filesystemread_file, write_file, edit_file, ls, glob, grep for working memory
  • Sub-agentstask for delegating work with isolated context windows
  • Smart defaults — built-in prompt and middleware that make these tools useful out of the box
  • Context management — file-based workflows to keep long tasks manageable

Note

Looking for the Python package? See langchain-ai/deepagents.

Quickstart

npm install deepagents
# or
pnpm add deepagents
# or
yarn add deepagents

Important

deepagents declares the LangChain runtime packages as peer dependencies so your app controls their versions and everything resolves to a single shared copy. npm 7+ and pnpm 8+ install these automatically; Yarn users must add them explicitly:

yarn add @langchain/core @langchain/langgraph @langchain/langgraph-checkpoint @langchain/langgraph-sdk langchain langsmith
import { createDeepAgent } from "deepagents";

const agent = createDeepAgent();

const result = await agent.invoke({
  messages: [
    {
      role: "user",
      content: "Research LangGraph and write a summary in summary.md",
    },
  ],
});

The agent can plan, read/write files, and manage longer tasks with sub-agents and filesystem tools.

Tip

For developing, debugging, and deploying AI agents and LLM applications, see LangSmith.

Runtime Entrypoints

deepagents now publishes environment-specific entrypoints:

  • deepagents - default Node.js/server entrypoint with the full API.
  • deepagents/browser - recommended browser entrypoint (no Node-only exports).
  • deepagents/node - optional explicit Node.js entrypoint (same full API as deepagents).
// Browser-safe usage
import { createDeepAgent, StateBackend } from "deepagents/browser";

// Node.js usage (recommended)
import { createDeepAgent, FilesystemBackend } from "deepagents";

// Optional explicit Node.js usage
// import { createDeepAgent, FilesystemBackend } from "deepagents/node";

Customization

Add tools, swap models, and customize prompts as needed:

import { ChatOpenAI } from "@langchain/openai";
import { createDeepAgent } from "deepagents";

const agent = createDeepAgent({
  model: new ChatOpenAI({ model: "gpt-5", temperature: 0 }),
  tools: [myCustomTool],
  systemPrompt: "You are a research assistant.",
});

See the JavaScript Deep Agents docs for full configuration options.

LangGraph Native

createDeepAgent returns a compiled LangGraph graph, so you can use streaming, Studio, checkpointers, and other LangGraph features.

Why Use It

  • 100% open source — MIT licensed and extensible
  • Provider agnostic — works with tool-calling chat models
  • Built on LangGraph — production runtime with streaming and persistence
  • Batteries included — planning, file access, sub-agents, and defaults out of the box
  • Fast to start — install and run with sensible defaults
  • Easy to customize — add tools/models/prompts when you need to

Documentation

Security

Deep Agents follows a "trust the LLM" model. The agent can do anything its tools allow. Enforce boundaries at the tool/sandbox level, not by expecting the model to self-police. See the security policy for more information.

S
Description
Latest
2026-05-13 09:39:28 -04:00
Languages
TypeScript 100%