1. 项目概述
在LangChain生态系统中,create_deep_agent和create_agent是两种构建智能代理的核心方法。它们都基于大语言模型(LLM)实现任务自动化,但在架构设计和功能特性上存在显著差异。DeepAgents作为LangChain的高级扩展框架,专为解决复杂、多步骤任务而设计,内置了任务规划、子代理管理、文件系统操作等企业级功能。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心差异解析
2.1 架构设计差异
create_agent采用经典的单一代理架构,所有任务处理都在同一个上下文窗口中完成。这种设计适合简单、线性的任务流程,比如:
python复制from langchain.agents import create_agent
agent = create_agent(
llm=ChatOpenAI(model="gpt-4"),
tools=[search_tool],
system_prompt="You are a helpful assistant"
)
而create_deep_agent基于LangGraph运行时构建,采用分层架构:
- 主代理层:负责任务分解和协调
- 子代理层:执行具体子任务
- 中间件层:处理文件系统、权限控制等
python复制from deepagents import create_deep_agent
agent = create_deep_agent(
model="anthropic:claude-3-opus",
tools=[code_executor, file_editor],
middleware=[FilesystemMiddleware()]
)
2.2 核心功能对比
| 特性 | create_agent | create_deep_agent |
|---|---|---|
| 上下文管理 | 单窗口 | 多窗口隔离 |
| 文件系统操作 | 不支持 | 完整POSIX支持 |
| 子代理系统 | 无 | 动态生成 |
| 任务规划 | 手动实现 | 内置write_todos |
| 人类干预 | 需自定义 | 中断钩子 |
| 长期记忆 | 会话级 | 持久化存储 |
3. 关键技术实现
3.1 执行环境构建
DeepAgents通过四层架构实现安全执行:
- 工具层:自定义函数和API接口
- 虚拟文件系统:支持多种存储后端
python复制from deepagents.backends import LocalDiskBackend backend = LocalDiskBackend(root_path="/workspace") - 权限系统:基于glob规则的访问控制
python复制permissions = [ {"operations": ["read"], "paths": ["/docs/*"], "mode": "allow"}, {"operations": ["write"], "paths": ["/tmp/*"], "mode": "deny"} ] - 沙箱环境:隔离的代码执行空间
3.2 上下文管理机制
采用分级加载策略优化token使用:
- 启动时加载:系统提示词+AGENTS.md记忆文件
- 按需加载:技能文件(SKILL.md)的渐进式加载
- 自动压缩:对话历史摘要生成
- 结果卸载:大文件存储到虚拟文件系统
4. 高级功能实现
4.1 子代理系统
主代理通过task工具动态创建子代理:
python复制# 主代理生成任务
task = {
"description": "Analyze sales data Q2-2023",
"subagent": {
"model": "claude-3-sonnet",
"tools": [data_analyzer],
"constraints": "Use only /data/ directory"
}
}
子代理具有以下特性:
- 独立的上下文窗口
- 可配置的资源限制
- 结果自动压缩回传
- 支持同步/异步执行模式
4.2 人类干预系统
通过中断钩子实现关键操作审批:
python复制agent = create_deep_agent(
model="
