DeepAgents:为企业级AI应用打造的完整框架深度解析
引言:AI Agent开发的下一站
在AI应用开发领域,我们经常面临这样的挑战:如何让AI不仅仅是聊天机器人,而是真正能够操作文件、执行任务、管理项目的生产力工具?如何构建既强大又安全的AI应用?DeepAgents框架正是为解决这些问题而生。
DeepAgents是基于LangGraph的企业级AI Agent框架,它将文件系统、子智能体、长期记忆、命令执行和人机协作等高级功能整合到一个统一的框架中。今天,我们将深入探索这个框架的核心特性和实际应用。
一、框架概览:AI的瑞士军刀
什么是DeepAgents?
DeepAgents就像是给AI装上了一整套专业工具箱:
-
文件系统:让AI能像人类一样读写、编辑、搜索文件
-
子智能体:主Agent可以委派任务给专业助手
-
长期记忆:跨会话保存重要信息
-
命令执行:安全的shell命令执行能力
-
人机协作:关键操作前征求人类同意
核心架构
DeepAgents采用分层架构设计:
-
中间件层:7个默认中间件按顺序处理请求
-
存储层:灵活的后端存储策略
-
智能体层:主Agent与子智能体协同工作
-
持久化层:Checkpointer和Store确保状态持久化
二、核心组件深度解析
1. Middleware中间件:AI的功能模块
中间件是DeepAgents的核心创新,每个中间件为AI添加特定能力:
FilesystemMiddleware(文件系统中间件)
from deepagents import create_deep_agent
agent = create_deep_agent(
system_prompt="你是一个文件管理助手"
)
# AI现在可以执行文件操作
result = agent.invoke({
"messages": [{"role": "user", "content": "创建/data/test.txt文件,内容是'Hello World'"}]
})
提供7个核心工具:
-
ls():列出目录文件 -
read_file():读取文件内容 -
write_file():创建新文件 -
edit_file():编辑现有文件 -
glob():模式匹配查找文件 -
grep():搜索文件内容 -
execute():执行shell命令
SubAgentMiddleware(子智能体中间件)
让主Agent能够委派复杂任务给专业助手:
code_reviewer = {
"name": "code-reviewer",
"description": "代码审查专家,用于审查代码质量、安全性和最佳实践",
"system_prompt": "你是一个资深代码审查专家...",
"tools": [analyze_code],
}
agent = create_deep_agent(
subagents=[code_reviewer],
system_prompt="你是一个智能助手"
)
# 主Agent自动决定何时调用子智能体
result = agent.invoke({
"messages": [{"role": "user", "content": "审查/src/main.py的代码质量"}]
})
优势:
-
任务隔离:每个子任务独立上下文
-
并行处理:多个子Agent同时工作
-
节省Token:只返回摘要,不保留详细过程
HumanInTheLoopMiddleware(人机交互中间件)
from langchain.agents.middleware import InterruptOnConfig
agent = create_deep_agent(
interrupt_on={
"execute": True, # 执行命令前需要批准
"write_file": InterruptOnConfig(
interrupt_before=True, # 执行前中断
interrupt_after=False, # 执行后不中断
),
"edit_file": True,
}
)
2. Backend后端存储:AI的"硬盘"选择
DeepAgents提供多种存储策略,适应不同场景:
StateBackend(临时存储)
from deepagents.backends import StateBackend
agent = create_deep_agent(
backend=lambda rt: StateBackend(rt)
)
特点:文件存储在Agent状态中,不跨会话
StoreBackend(持久存储)
from deepagents.backends import StoreBackend
from langgraph.store.memory import InMemoryStore
store = InMemoryStore()
agent = create_deep_agent(
backend=lambda rt: StoreBackend(rt),
store=store
)
特点:文件存储在LangGraph Store中,跨会话共享
CompositeBackend(混合存储 - 企业级推荐)
from deepagents.backends import CompositeBackend, StateBackend, StoreBackend
composite_backend = CompositeBackend(
default=lambda rt: StateBackend(rt), # 默认临时存储
routes={
"/memories/": lambda rt: StoreBackend(rt), # 长期记忆路径
"/projects/": lambda rt: StoreBackend(rt), # 项目文件路径
"/cache/": lambda rt: StateBackend(rt), # 缓存路径
}
)
agent = create_deep_agent(backend=composite_backend)
路由规则(最长前缀优先):
-
/memories/notes.txt→ StoreBackend -
/cache/temp.txt→ StateBackend -
/test.py→ 默认Backend
3. Store长期记忆:记住重要信息
Store与Backend的区别:
-
Store:存储结构化数据(用户偏好、历史记录)
-
Backend:存储文件内容(文档、代码文件)
# 保存用户偏好到长期记忆
result = agent.invoke({
"messages": [{
"role": "user",
"content": "记住我的偏好:我喜欢简洁的代码风格,使用4空格缩进"
}]
})
# AI会自动创建:/memories/user_prefs.json
三、实际应用案例
案例1:代码分析助手(企业级)
from deepagents import create_deep_agent
from deepagents.backends import CompositeBackend, StateBackend, StoreBackend
from langgraph.store.memory import InMemoryStore
from langgraph.checkpoint.memory import MemorySaver
# 配置专业子智能体
subagents = [
{
"name": "code-reviewer",
"description": "代码审查专家",
"system_prompt": "你是代码审查专家,关注代码质量、安全性和性能..."
},
{
"name": "doc-generator",
"description": "文档生成专家",
"system_prompt": "你是技术文档专家,生成清晰易读的文档..."
}
]
# 企业级配置
store = InMemoryStore()
checkpointer = MemorySaver()
composite_backend = CompositeBackend(
default=lambda rt: StateBackend(rt),
routes={
"/memories/": lambda rt: StoreBackend(rt),
"/projects/": lambda rt: StoreBackend(rt),
}
)
agent = create_deep_agent(
subagents=subagents,
backend=composite_backend,
store=store,
checkpointer=checkpointer,
interrupt_on={
"execute": True,
"write_file": True
},
system_prompt="你是企业级代码分析助手"
)
# 使用:分析整个代码库
result = agent.invoke({
"messages": [{
"role": "user",
"content": "分析/src目录下的所有Python代码,生成审查报告和文档"
}]
})
执行流程:
-
使用
glob()找到所有Python文件 -
并行启动多个
code-reviewer子智能体审查不同文件 -
启动
doc-generator子智能体生成文档 -
汇总结果,返回综合报告
案例2:性能测试编排系统
# 定义K6性能测试工作流
composite_backend = CompositeBackend(
default=lambda rt: StateBackend(rt), # 临时文件
routes={
"/memories/": lambda rt: StoreBackend(rt), # 历史测试数据
}
)
agent = create_deep_agent(
subagents=[
{
"name": "script-generator",
"description": "K6脚本生成专家",
"tools": [generate_k6_script]
},
{
"name": "test-executor",
"description": "测试执行专家",
"tools": [execute_k6_test]
}
],
backend=composite_backend,
interrupt_on={
"execute_k6_test": True, # 执行测试前需要批准
}
)
# 提交测试需求
result = agent.invoke({
"messages": [{
"role": "user",
"content": """
为以下API创建性能测试:
- GET https://api.example.com/users
- POST https://api.example.com/users
测试要求:
- 100并发用户
- 持续5分钟
- 响应时间 < 200ms
"""
}]
})
案例3:智能研究助手(并行处理)
agent = create_deep_agent(
system_prompt="你是一个研究助手,当需要研究多个独立主题时,为每个主题启动并行子智能体"
)
result = agent.invoke({
"messages": [{
"role": "user",
"content": """
研究以下三个AI框架并比较:
1. LangChain
2. LlamaIndex
3. AutoGPT
对比维度:
- 核心功能
- 优缺点
- 适用场景
- 社区活跃度
"""
}]
})
# AI会自动启动3个并行子智能体,分别研究三个框架
四、最佳实践指南
1. Backend选择策略
# 场景1:简单应用,单会话
agent = create_deep_agent() # 默认StateBackend
# 场景2:需要跨会话记忆
agent = create_deep_agent(
backend=lambda rt: StoreBackend(rt),
store=InMemoryStore()
)
# 场景3:企业级应用(推荐)
agent = create_deep_agent(
backend=CompositeBackend(
default=SandboxBackend(...), # 代码执行
routes={
"/memories/": StoreBackend, # 长期记忆
"/projects/": StoreBackend, # 项目文件
"/cache/": StateBackend, # 临时缓存
}
),
store=InMemoryStore()
)
2. 子智能体使用原则
应该使用子智能体的场景:
-
复杂多步骤任务
-
可以并行处理的独立任务
-
需要专业领域知识的任务
-
需要隔离上下文避免主线程被淹没
不应该使用子智能体的场景:
-
简单的单步操作
-
需要看到完整推理过程的任务
-
任务之间有强依赖关系
3. 安全配置建议
# 开发环境:相对宽松
interrupt_on = {
"execute": True, # 只拦截命令执行
}
# 生产环境:严格保护
interrupt_on = {
"execute": True,
"write_file": True,
"edit_file": True,
"task": InterruptOnConfig(
interrupt_before=False,
interrupt_after=True, # 查看子智能体结果
),
}
4. 性能优化技巧
-
使用Prompt缓存:
AnthropicPromptCachingMiddleware自动缓存系统提示词 -
合理配置摘要阈值:根据模型上下文长度调整
SummarizationMiddleware -
利用并行执行:框架自动并行执行多个
task调用 -
优化存储策略:使用
CompositeBackend将文件存储到最合适的位置
五、常见问题解答
Q1:StateBackend和StoreBackend的主要区别?
A:
-
StateBackend:文件存储在Agent状态中,通过Checkpointer持久化,不跨会话 -
StoreBackend:文件存储在LangGraph Store中,跨会话共享所有文件
Q2:如何让不同子智能体使用不同模型?
A:
subagents = [
{
"name": "fast-agent",
"description": "快速响应的助手",
"model": "gpt-3.5-turbo", # 使用更快的模型
},
{
"name": "smart-agent",
"description": "深度分析的助手",
"model": "gpt-4", # 使用更强的模型
},
]
Q3:如何查看Agent的执行过程?
A:
# 方式1:开启debug模式
agent = create_deep_agent(debug=True)
# 方式2:使用LangSmith追踪
import os
os.environ["LANGCHAIN_TRACING_V2"] = "true"
# 方式3:流式输出
for chunk in agent.stream({...}):
print(chunk)
Q4:如何处理大文件?
A:FilesystemMiddleware自动处理:
-
读取时使用分页:
read_file("/large.txt", offset=0, limit=100) -
工具结果太大时自动保存到
/large_tool_results/目录
六、框架优势总结
1. 完整的文件系统支持
-
7个核心文件操作工具
-
灵活的存储后端选择
-
自动处理大文件和分页
2. 智能的任务委派系统
-
主Agent智能调度子智能体
-
支持并行处理节省时间
-
上下文隔离节省Token
3. 企业级存储方案
-
临时存储、持久存储、沙箱执行灵活组合
-
CompositeBackend提供路由机制
-
支持复杂的文件组织结构
4. 安全可控的操作
-
灵活的人机交互配置
-
操作前后都可中断
-
保护敏感操作和文件
5. 性能优化内置
-
自动对话摘要防止上下文溢出
-
Prompt缓存节省API成本
-
并行执行提升效率
七、学习路径建议
初学者路径
-
阅读框架深度解析的"框架概览"部分
-
运行示例代码的前两个示例
-
参考快速参考手册进行实践
进阶开发者路径
-
深入阅读框架深度解析的所有章节
-
运行所有示例代码,理解不同配置差异
-
根据实际需求定制子智能体和Backend
企业级应用路径
-
学习CompositeBackend的路由机制
-
设计合理的文件组织结构
-
配置完善的人机交互策略
-
参考完整示例构建生产级应用
八、快速开始
from deepagents import create_deep_agent
# 最简单的开始
agent = create_deep_agent(
system_prompt="你是一个智能助手"
)
result = agent.invoke({
"messages": [{"role": "user", "content": "创建一个项目结构,包含src、tests、docs目录"}]
})
print(result)
结语:AI应用开发的新范式
DeepAgents代表了AI应用开发的一个重要进步。它不仅仅是另一个AI框架,而是为企业级AI应用提供了一套完整的解决方案。通过将文件操作、任务委派、长期记忆和人机协作等高级功能整合到统一的框架中,DeepAgents让开发者能够构建出真正强大、安全、可靠的AI应用。
无论你是要构建代码分析工具、自动化测试系统、研究助手还是完整的企业级AI工作台,DeepAgents都提供了必要的构建模块和最佳实践。
关键启示:
-
从简单的聊天机器人升级到能够操作系统的智能助手
-
利用子智能体实现复杂任务的分解和并行处理
-
通过人机交互确保AI操作的安全可控
-
选择合适的存储策略平衡性能和持久化需求
DeepAgents框架正在重新定义我们与AI协作的方式,让AI从被动的问答工具转变为主动的生产力伙伴。
更多推荐

所有评论(0)