LangChain DeepAgents create_deep_agent 参数说明

按官方文档和 Python API Reference 来看,deepagents 本质上是 LangChain/LangGraph 上的一层 “agent harness”:它把长任务里最常见的几件事预组装好了,包括规划、文件系统、子代理、长上下文压缩,以及可选的人类审批、技能和记忆。

create_deep_agent() 返回的是一个 CompiledStateGraph,所以后续你仍然可以按 LangGraph 的方式去 invokestreamastream

完整签名

注意一点:官方 Customization 页面只展示了“核心参数”的简化签名,完整参数要以 API Reference 为准。

python
create_deep_agent(
  model: str | BaseChatModel | None = None,
  tools: Sequence[BaseTool | Callable | dict[str, Any]] | None = None,
  *,
  system_prompt: str | SystemMessage | None = None,
  middleware: Sequence[AgentMiddleware] = (),
  subagents: list[SubAgent | CompiledSubAgent] | None = None,
  skills: list[str] | None = None,
  memory: list[str] | None = None,
  response_format: ResponseFormat | None = None,
  context_schema: type[Any] | None = None,
  checkpointer: Checkpointer | None = None,
  store: BaseStore | None = None,
  backend: BackendProtocol | BackendFactory | None = None,
  interrupt_on: dict[str, bool | InterruptOnConfig] | None = None,
  debug: bool = False,
  name: str | None = None,
  cache: BaseCache | None = None
) -> CompiledStateGraph

参数逐项说明

model

主模型。可以传字符串,比如 openai:gpt-5,也可以传 LangChain 的模型实例。默认是 claude-sonnet-4-6

tools

你额外提供给 agent 的工具。它是在 deepagents 内建工具之外追加的,不是替换。

system_prompt

你的业务提示词。会拼接到 deepagents 自带系统提示前后体系里,而不是完全覆盖底层提示。

middleware

追加中间件。标准栈本身已经有 Todo、Filesystem、SubAgent、Summarization、Anthropic prompt caching、PatchToolCalls 等。

subagents

子代理配置。主 agent 通过内建 task 工具把子任务委派出去,适合做上下文隔离和专长拆分。

skills

技能目录或路径列表。技能是懒加载的,不会一开始全塞进 prompt。路径用 POSIX 风格,并且相对 backend 根目录。

memory

AGENTS.md 这类记忆文件路径列表。启动时读入并注入系统提示,适合长期偏好、项目约定。

response_format

结构化输出 schema。开启后,结果会额外出现在 state 的 structured_response 里。

context_schema

官方说明很短,只写了 “The schema of the deep agent”。按 LangGraph 的用法推断,它是给 deep agent 扩展上下文/schema 用的,通常配合自定义 middleware 或状态扩展。

checkpointer

状态持久化组件。跨轮次保留 agent 状态时要用;做人类审批时基本也需要它。

store

持久存储对象。只有当你的 backend 依赖 StoreBackend 之类的持久存储时才需要。

backend

文件系统或执行后端。默认是 StateBackend;如果要真实磁盘、持久存储、沙箱执行,都在这里切换。

interrupt_on

定义哪些工具调用前要暂停,等待人工批准、编辑或拒绝。典型用于 write_fileedit_file、发邮件、删文件之类高风险操作。

debug

调试模式,底层透传给 create_agent

name

agent 名称,底层透传给 create_agent

cache

缓存对象,底层透传给 create_agent

容易混淆但很关键的点

  • tools 是“加法”,内建工具仍然存在。
  • execute 这个工具不是永远可用,只有 backend 实现了 SandboxBackendProtocol 才能真正执行命令。
  • skillsmemory 都依赖 backend 里能找到对应文件;默认 StateBackend 下通常要在 invoke(..., files={...}) 里先把文件喂进去。
  • interrupt_on 想稳定工作,实践上要配 checkpointer
  • 如果你只是想快速做一个 deep agent,最常配的其实就 4 个:modeltoolssystem_promptbackend

参考资料