Documentation Index Fetch the complete documentation index at: https://langchain-5e9cc07a-preview-openap-1765292790-ae6c60d.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
By default, deepagents uses claude-sonnet-4-5-20250929 . You can customize the model used by passing any supported model identifier string or LangChain model object .
import { ChatAnthropic } from "@langchain/anthropic" ;
import { ChatOpenAI } from "@langchain/openai" ;
import { createDeepAgent } from "deepagents" ;
// Using Anthropic
const agent = createDeepAgent ({
model: new ChatAnthropic ({
model: "claude-sonnet-4-20250514" ,
temperature: 0 ,
}),
});
// Using OpenAI
const agent2 = createDeepAgent ({
model: new ChatOpenAI ({
model: "gpt-5" ,
temperature: 0 ,
}),
});
System prompt
Deep agents come with a built-in system prompt inspired by Claude Code’s system prompt. The default system prompt contains detailed instructions for using the built-in planning tool, file system tools, and subagents.
Each deep agent tailored to a use case should include a custom system prompt specific to that use case.
import { createDeepAgent } from "deepagents" ;
const researchInstructions = `You are an expert researcher. Your job is to conduct thorough research, and then write a polished report.` ;
const agent = createDeepAgent ({
systemPrompt: researchInstructions ,
});
Just like tool-calling agents, a deep agent gets a set of top level tools that it has access to.
import { tool } from "langchain" ;
import { TavilySearch } from "@langchain/tavily" ;
import { createDeepAgent } from "deepagents" ;
import { z } from "zod" ;
const internetSearch = tool (
async ({
query ,
maxResults = 5 ,
topic = "general" ,
includeRawContent = false ,
}: {
query: string ;
maxResults ?: number ;
topic ?: "general" | "news" | "finance" ;
includeRawContent ?: boolean ;
}) => {
const tavilySearch = new TavilySearch ({
maxResults ,
tavilyApiKey: process . env . TAVILY_API_KEY ,
includeRawContent ,
topic ,
});
return await tavilySearch . _call ({ query });
},
{
name: "internet_search" ,
description: "Run a web search" ,
schema: z . object ({
query: z . string (). describe ( "The search query" ),
maxResults: z . number (). optional (). default ( 5 ),
topic: z
. enum ([ "general" , "news" , "finance" ])
. optional ()
. default ( "general" ),
includeRawContent: z . boolean (). optional (). default ( false ),
}),
},
);
const agent = createDeepAgent ({
tools: [ internetSearch ],
});
In addition to any tools that you provide, deep agents also get access to a number of default tools:
write_todos – Update the agent’s to-do list
ls – List all files in the agent’s filesystem
read_file – Read a file from the agent’s filesystem
write_file – Write a new file in the agent’s filesystem
edit_file – Edit an existing file in the agent’s filesystem
task – Spawn a subagent to handle a specific task