LangChain Reference home pageLangChain ReferenceLangChain Reference
  • GitHub
  • Main Docs
Deep Agents
LangChain
LangGraph
Integrations
LangSmith
  • Overview
  • Agent
  • Middleware
  • Backends
  • Sandboxes
  • Skills
  • Subagents
  • Types
Modal
Daytona
Deno
Node VFS
Sandbox Standard Tests
  • Vitest
⌘I

LangChain Assistant

Ask a question to get started

Enter to send•Shift+Enter new line

Menu

OverviewAgentMiddlewareBackendsSandboxesSkillsSubagentsTypes
Modal
Daytona
Deno
Node VFS
Sandbox Standard Tests
Vitest
Language
Theme
JavaScriptdeepagentstypesCreateDeepAgentParams
Interface●Since v1.4

CreateDeepAgentParams

Configuration parameters for creating a Deep Agent Matches Python's create_deep_agent parameters

Copy
interface CreateDeepAgentParams

Properties

property
backend: AnyBackendProtocol | (config: __type) => AnyBackendProtocol

Backend instance or factory (default: StateBackend)

property
checkpointer: boolean | BaseCheckpointSaver<number>

Optional checkpointer for persisting agent state between runs

property
contextSchema: ContextSchema

Optional schema for context (not persisted between invocations)

property
interruptOn: Record<string, boolean | __type>

Human-in-the-loop configuration for specific tools. Requires a checkpointer.

property
memory: string[]

Optional list of memory file paths (AGENTS.md files) to load (e.g., ["~/.deepagents/AGENTS.md", "./.deepagents/AGENTS.md"]). Display names are automatically derived from paths. Memory is loaded at agent startup and added into the system prompt.

property
middleware: TMiddleware

Additional middleware to append after default_middleware

property
model: string | BaseLanguageModel<any, BaseLanguageModelCallOptions>

The model for the agent. Defaults to defaultModel

property
name: string
property
responseFormat: TResponse

Structured output response format for the subagent.

When specified, the subagent will produce a structuredResponse conforming to the given schema. The structured response is JSON-serialized and returned as the ToolMessage content to the parent agent, replacing the default last-message extraction.

Accepts any format supported by createAgent: Zod schemas, JSON schema objects, toolStrategy(schema), providerStrategy(schema), etc.

Copy
import { z } from "zod"

const analyzer: SubAgent = {
  name: "analyzer",
  description: "Analyzes data and returns structured findings",
  systemPrompt: "Analyze the data and return your findings.",
  responseFormat: z.object({
    findings: z.string(),
    confidence: z.number(),
  }),
};
property
skills: string[]

Skill source paths for SkillsMiddleware.

List of paths to skill directories (e.g., ["/skills/user/", "/skills/project/"]). When specified, the subagent will have its own SkillsMiddleware that loads skills from these paths. This allows subagents to have different skill sets than the main agent.

Note: Custom subagents do NOT inherit skills from the main agent by default. Only the general-purpose subagent inherits the main agent's skills.

Copy
const researcher: SubAgent = {
  name: "researcher",
  description: "Research assistant",
  systemPrompt: "You are a researcher.",
  skills: ["/skills/research/", "/skills/web-search/"],
};
property
store: BaseStore

Optional BaseStore for persistent cross-conversation storage

property
subagents: TSubagents

A list of additional subagents to provide to the agent

property
systemPrompt: string | SystemMessage<MessageStructure<MessageToolSet>>

System prompt override. Set to null to disable. Defaults to ASYNC_TASK_SYSTEM_PROMPT.

property
tools: TTools | StructuredTool<ToolInputSchemaBase, any, any, any, unknown>[]

The tools to use for the agent (tool instances, not names). Defaults to defaultTools

View source on GitHub