目录
[1. create_agent - LangChain 标准函数](#1. create_agent - LangChain 标准函数)
[2. create_deep_agent - DeepAgents 高级函数](#2. create_deep_agent - DeepAgents 高级函数)
1. create_agent - LangChain 标准函数
来源: langchain.agents
作用: 创建基础智能体
特点:
- ✅ 基础功能:LLM + Tools
- ✅ 简单直接:适合单智能体场景
- ❌ 不支持子代理协作
- ❌ 不支持复杂的多智能体编排
使用示例:
python
from langchain.agents import create_agent
agent = create_agent(
model=llm,
tools=[search_tool, calculator],
system_prompt="你是一个助手"
)
# 运行
result = agent.invoke({"messages": ["查询天气"]})
2. create_deep_agent - DeepAgents 高级函数
来源: deepagents 库
作用: 创建支持子代理协作的高级智能体
特点:
- ✅ 支持子代理:可以调用多个子代理协作
- ✅ 多智能体编排:主代理协调子代理完成任务
- ✅ 并行执行:支持多个子代理并行工作
- ✅ 复杂任务拆解:自动将复杂任务拆分给不同子代理
- ✅ 层级架构:支持多层级代理结构
使用示例:
python
from deepagents import create_deep_agent
# 定义子代理
research_agent = {
"name": "research_agent",
"system_prompt": "你是研究员",
"tools": [search_tool]
}
writer_agent = {
"name": "writer_agent",
"system_prompt": "你是作家",
"tools": []
}
# 创建主代理(协调员)
coordinator = create_deep_agent(
model=llm,
tools=[],
system_prompt="你是项目协调员",
subagents=[research_agent, writer_agent] # 关键:支持子代理
)
# 运行
result = coordinator.invoke({
"messages": ["研究AI趋势并写报告"]
})
核心区别对比
|------------|--------------|-------------------|
| 特性 | create_agent | create_deep_agent |
| 来源 | LangChain | DeepAgents |
| 子代理支持 | ❌ 不支持 | ✅ 支持 |
| 多智能体协作 | ❌ 不支持 | ✅ 支持 |
| 并行执行 | ❌ 不支持 | ✅ 支持 |
| 任务拆解 | ❌ 手动 | ✅ 自动 |
| 适用场景 | 简单任务 | 复杂多步骤任务 |
| 复杂度 | 低 | 高 |
实际应用对比
场景1:简单查询(使用 create_agent)
python
from langchain.agents import create_agent
# 简单的天气查询
agent = create_agent(
model=llm,
tools=[weather_tool],
system_prompt="你是天气助手"
)
result = agent.invoke({"messages": ["北京今天天气怎么样?"]})
适用: 单一工具、简单查询
场景2:复杂项目(使用 create_deep_agent)
python
from deepagents import create_deep_agent
# 研究员子代理
researcher = {
"name": "researcher",
"system_prompt": "收集信息",
"tools": [search_tool]
}
# 分析师子代理
analyst = {
"name": "analyst",
"system_prompt": "分析数据",
"tools": [calculator]
}
# 作家子代理
writer = {
"name": "writer",
"system_prompt": "撰写报告",
"tools": []
}
# 主协调员
coordinator = create_deep_agent(
model=llm,
tools=[],
system_prompt="协调子代理完成项目",
subagents=[researcher, analyst, writer]
)
# 复杂任务:研究→分析→撰写
result = coordinator.invoke({
"messages": ["研究AI趋势并撰写分析报告"]
})
适用: 多步骤、多角色、需要协作的复杂任务
工作流程对比
create_agent 工作流程:
python
用户请求
↓
LLM 理解意图
↓
调用工具(如果有)
↓
返回结果
create_deep_agent 工作流程:
用户请求
↓
主代理分析任务
↓
拆解为子任务
↓
并行调用子代理
├─→ 研究员:搜索信息
├─→ 分析师:分析数据
└─→ 作家:撰写内容
↓
整合子代理结果
↓
返回最终结果
何时使用哪个?
使用 create_agent:
- ✅ 简单的问答场景
- ✅ 单一工具调用
- ✅ 不需要多智能体协作
- ✅ 快速原型开发
使用 create_deep_agent:
- ✅ 复杂的多步骤任务
- ✅ 需要多个专业角色协作
- ✅ 需要并行处理
- ✅ 需要任务自动拆解
- ✅ 构建企业级应用
总结
|-----------------------|----------|
| 函数 | 一句话概括 |
| create_agent | 单兵作战的智能体 |
| create_deep_agent | 团队协作的智能体 |
简单理解:
create_agent= 单个员工create_deep_agent= 项目经理 + 多个专业员工