Configuration parameters for creating a Deep Agent Matches Python's create_deep_agent parameters
interface CreateDeepAgentParamsBackend instance or factory (default: StateBackend)
Optional checkpointer for persisting agent state between runs
Optional schema for context (not persisted between invocations)
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.
Additional middleware to append after default_middleware
The model for the agent. Defaults to defaultModel
Filesystem permission rules enforced on every tool call.
Rules are evaluated in declaration order; first match wins; permissive
default. Applies to ls, read_file, write_file, edit_file,
glob, and grep.
Note on execute: permissions are not enforced on execute because
shell commands can access any path regardless of path-based rules. Using
permissions with an execution-capable backend (one where isSandboxBackend
returns true) throws a ConfigurationError unless the backend is a
CompositeBackend and every permission path is scoped to a route prefix.
When omitted or empty, all filesystem operations are permitted.
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.
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(),
}),
};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.
const researcher: SubAgent = {
name: "researcher",
description: "Research assistant",
systemPrompt: "You are a researcher.",
skills: ["/skills/research/", "/skills/web-search/"],
};Optional BaseStore for persistent cross-conversation storage
Optional StreamTransformer factories to register with the underlying agent.
Deepagents always registers its built-in subagent transformer; custom
transformers are appended after it and are exposed on run.extensions
when using streamEvents(..., { version: "v3" }).
A list of additional subagents to provide to the agent
System prompt override. Set to null to disable. Defaults to ASYNC_TASK_SYSTEM_PROMPT.
The tools to use for the agent (tool instances, not names). Defaults to defaultTools