LangChain V1 create_agent 与 DeepAgents create_deep_agent 对比学习
LangChain Agent 与 Deep Agent 深度解析一、核心概念两个函数的定位1.1create_agent— 通用基础框架create_agent是 LangChain 官方提供的通用 Agent 创建函数位于langchain/agents/factory.py。它提供了最基础的 Agent 架构┌─────────────────────────────────────────────────────────┐ │ create_agent │ ├─────────────────────────────────────────────────────────┤ │ • 创建 LangGraph StateGraph │ │ • 核心节点model tools可选 │ │ • 支持 8 个中间件钩子接口 │ │ • 工具循环model → tools → model → ... │ │ • 支持结构化输出 response_format │ └─────────────────────────────────────────────────────────┘1.2create_deep_agent— 预置全家桶create_deep_agent是deepagents库的高级封装基于create_agent构建添加了大量开箱即用的企业级功能┌─────────────────────────────────────────────────────────┐ │ create_deep_agent │ ├─────────────────────────────────────────────────────────┤ │ ✓ 调用 create_agent底层实现 │ │ ✓ 预置 BASE_AGENT_PROMPT │ │ ✓ 注入 8 个内置中间件 │ │ ✓ 配置默认模型Claude Sonnet 4.5 │ │ ✓ 支持子代理系统、Skill、Memory │ │ ✓ 支持后端抽象开发/生产环境切换 │ └─────────────────────────────────────────────────────────┘二、功能对比特性create_agentcreate_deep_agent默认模型无需手动指定Claude Sonnet 4.5内置工具无ls,read_file,write_file,execute,task等内置中间件无8 个预置中间件子代理系统需手动实现subagents参数直接配置后端支持无StateBackend / FilesystemBackend人工介入需自己实现interrupt_on参数System Prompt用户完全自定义预置 BASE_AGENT_PROMPT三、预置全家桶的位置3.1 基础 System Prompt预置的 AI 行为指导 prompt包含核心行为准则、专业客观风格、任务执行流程等。3.2 内置中间件栈┌──────────────────────────────────────────────────────────┐ │ deepagent_middleware 栈 │ ├──────────────────────────────────────────────────────────┤ │ 1. TodoListMiddleware → Todo 列表管理 │ │ 2. MemoryMiddleware → 记忆加载 │ │ 3. SkillsMiddleware → Skill 能力扩展 │ │ 4. FilesystemMiddleware → 文件系统操作 │ │ 5. SubAgentMiddleware → 子代理调用 │ │ 6. SummarizationMiddleware → 消息压缩 │ │ 7. AnthropicPromptCachingMiddleware → 提示缓存 │ │ 8. PatchToolCallsMiddleware → 工具调用修补 │ └──────────────────────────────────────────────────────────┘四、tools 参数的作用4.1 工具来源对比来源工具类型示例内置 Middleware通用能力文件操作、子代理、Shell 执行tools参数业务自定义天气查询、数据库查询、内部 API4.2 使用示例fromdeepagentsimportcreate_deep_agent# 业务自定义工具defquery_orders(order_id:str)-dict:查询订单信息return{order_id:order_id,status:shipped}defsearch_internal_docs(query:str)-str:搜索内部文档return搜索结果...# 使用内置能力 自定义业务工具agentcreate_deep_agent(tools[query_orders,search_internal_docs],# 你的业务工具)五、工具调用时机5.1 调用流程两者完全相同┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ Model │────▶│ ToolNode │────▶│ Model │────▶│ END │ │ invoke() │ │ 执行工具 │ │ 处理结果 │ │ │ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │ │ │ tool_calls ToolMessage tool_calls无论工具来自 Middleware 还是tools参数调用时机完全相同Model 输出tool_callsToolNode 执行对应工具返回ToolMessage给 ModelModel 继续处理5.2 唯一的区别注册时机来源注册时机灵活性tools参数静态- agent 创建时确定固定Middleware 工具动态- 可在运行时注册更灵活六、为什么用 Middleware 而非直接内置6.1 不仅仅只是工具这些 Middleware 提供的远不止简单工具而是带状态的复杂能力# 文件系统中间件 - 需要 backend 来确定如何执行FilesystemMiddleware(backendbackend)# 子代理中间件 - 不是简单工具是复杂编排SubAgentMiddleware(backendbackend,subagentsall_subagents)# 记忆中间件 - 需要 backend 存储MemoryMiddleware(backendbackend,sourcesmemory)# Skill 中间件 - 运行时动态加载SkillsMiddleware(backendbackend,sourcesskills)6.2 架构优势对比方面直接tools[]Middleware配置能力固定可传参数backend、sources 等状态管理无有自己的状态后端解耦硬编码可切换执行后端动态能力静态可运行时加载编排逻辑无复杂流程控制6.3 关键后端抽象┌─────────────────────────────────────────────────────────┐ │ Backend 抽象层 │ ├─────────────────────────────────────────────────────────┤ │ │ │ ┌──────────────┐ ┌──────────────────┐ │ │ │ StateBackend │ │ FilesystemBackend │ │ │ │ (内存模拟) │ │ (真实文件系统) │ │ │ └──────────────┘ └──────────────────┘ │ │ ▲ ▲ │ │ │ backend │ │ │ └───────────────────────┘ │ │ │ │ │ ┌──────────────────────────────────────────┐ │ │ │ FilesystemMiddleware / SubAgentMiddleware │ │ │ └──────────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────┘通过backend参数可以轻松切换开发环境用StateBackend内存模拟安全快速生产环境用FilesystemBackend真实文件系统七、总结对比维度create_agentcreate_deep_agent定位通用框架预置全家桶复杂度低需自己组合高开箱即用适用场景简单场景、定制化需求复杂企业场景工具来源手动传入Middleware tools 参数后端支持无有可切换核心理解create_agent通用框架你自己组合中间件和工具create_deep_agent预置全家桶开箱即用的 AI 助手适合需要文件操作、子代理、记忆等复杂场景通过 Middleware 提供内置工具是为了可配置、可替换、带状态— 工具不是孤立的函数而是需要执行环境backend、需要动态加载能力Skills、Memory、需要复杂编排SubAgent。

相关新闻

鸿蒙工具学习四十六:BLE蓝牙setCharacteristicChangeNotification接口错误排查与优化

鸿蒙工具学习四十六:BLE蓝牙setCharacteristicChangeNotification接口错误排查与优化

引言:BLE蓝牙开发中的关键接口在HarmonyOS应用开发中,BLE(低功耗蓝牙)技术广泛应用于物联网设备连接、数据传输等场景。setCharacteristicChangeNotification接口作为BLE蓝牙通信的核心功能之一,负责启用或禁用接收ser…

2026/5/17 9:15:34 阅读更多 →
鸿蒙工具学习四十七:设备标识符获取技术

鸿蒙工具学习四十七:设备标识符获取技术

引言:HarmonyOS设备标识的重要性与隐私保护在HarmonyOS应用开发中,设备标识符的获取是一个常见且关键的需求。无论是用户行为分析、个性化服务推荐,还是广告转化追踪,都需要可靠的设备标识来区分不同设备和用户。然而,…

2026/5/17 7:23:07 阅读更多 →
ssm基于java的东风锻造有限公司重大停管理系统(源码+文档+调试+vue+前后端分离)

ssm基于java的东风锻造有限公司重大停管理系统(源码+文档+调试+vue+前后端分离)

前言 东风锻造有限公司重大停管理系统提供给员工和经理一个重大停信息管理的系统。本系统采用了B/S体系的结构,使用了java技术以及MYSQL作为后台数据库进行开发。系统主要分为系统管理员,员工和经理三个部分,系统管理员主要功能包括个人中心&…

2026/5/17 9:15:33 阅读更多 →

最新新闻

Windows平台分布式架构实践 - 负载均衡概述

Windows平台分布式架构实践 - 负载均衡概述

最近.NET的世界开始闹腾了,微软官方终于加入到了对.NET跨平台的支持,并且在不久的将来,我们在VS里面写的代码可能就可以通过Mono直接在Linux和Mac上运行。那么大家(开发者和企业)为什么那么的迫切的希望.NET跨平台呢&a…

2026/7/3 23:28:18 阅读更多 →
LARA-R6401 LTE模块与MKV44F64VLH16 MCU的硬件连接与优化实践

LARA-R6401 LTE模块与MKV44F64VLH16 MCU的硬件连接与优化实践

1. LARA-R6401模块深度解析LARA-R6401是u-blox公司推出的一款高性能LTE Cat 1模块,专为北美市场设计。这款模块支持LTE FDD频段2/4/5/12/13/14/66/71,完美兼容AT&T、Verizon、T-Mobile和FirstNet等主流运营商网络。作为开发者,我最看重的…

2026/7/3 23:26:17 阅读更多 →
AI学习路径:从数学基础到工程实践的完整指南

AI学习路径:从数学基础到工程实践的完整指南

1. 从零开始构建AI学习体系作为一名长期奋战在AI研发一线的工程师,我经常被问到"如何系统学习人工智能"。今天我想分享自己十二年来积累的学习笔记和方法论,希望能帮助更多人少走弯路。AI学习就像建造一座大厦,需要从地基开始层层递…

2026/7/3 23:26:17 阅读更多 →
5分钟搭建本地Web漏洞靶场:PHPStudy+Xray实战指南

5分钟搭建本地Web漏洞靶场:PHPStudy+Xray实战指南

1. 项目概述与核心价值刚入行安全测试,你是不是也遇到过这样的尴尬:想动手练练Web漏洞挖掘,但找不到合适的靶场?网上的在线靶场要么太简单,要么访问不稳定,要么就是环境配置复杂到让人望而却步。我当年也是…

2026/7/3 23:22:16 阅读更多 →
3PEAK思瑞浦 TPCMP232-VS1R MSOP8 比较器

3PEAK思瑞浦 TPCMP232-VS1R MSOP8 比较器

特性 电源电压:2.7V至5.5V 低供电电流:每通道400mA 传播延迟:50纳秒 偏移电压:3.5mV 输入共模范围扩展至200mV 推挽输出

2026/7/3 23:20:16 阅读更多 →
本地部署AI绘画:Codex与Cowart打造离线无限画布工作站

本地部署AI绘画:Codex与Cowart打造离线无限画布工作站

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Claude 随心用,限时 5 折。 👉 点击领海量免费额度 最近在尝试将AI绘画能力集成到本地工作流时,发现了一个痛点:很多在线AI绘画工具要么需要联网、要么功能受限…

2026/7/3 23:20:16 阅读更多 →

日新闻

Nginx防御TLS重协商攻击实战:从原理到配置与监控

Nginx防御TLS重协商攻击实战:从原理到配置与监控

1. 项目概述:为什么TLS重协商攻击至今仍需警惕十多年前的CVE-2011-1473,一个关于TLS/SSL协议重协商机制的漏洞,现在提起来还有必要吗?很多运维和开发朋友可能会觉得,这都老掉牙了,现代服务器和客户端不都默…

2026/7/3 0:03:59 阅读更多 →
华为防火墙双通道远程管理实战:Web与SSH配置详解

华为防火墙双通道远程管理实战:Web与SSH配置详解

1. 项目概述:为什么需要双通道远程管理防火墙?在任何一个稍具规模的企业网络里,防火墙都是那个默默守护在边界的关键角色。作为网络工程师,我们不可能每次都跑到机房,插上console线去配置它。远程管理能力,…

2026/7/3 0:03:59 阅读更多 →
AD74413R与PIC18F65K40的高精度工业数据采集方案

AD74413R与PIC18F65K40的高精度工业数据采集方案

1. 项目概述:AD74413R与PIC18F65K40的协同工作在工业自动化和精密测量领域,同时实现高精度模数转换(ADC)和数模转换(DAC)功能是许多复杂系统的核心需求。AD74413R作为一款四通道可配置模拟输入/输出器件,与PIC18F65K40微控制器的组合&#xf…

2026/7/3 0:05:59 阅读更多 →

周新闻

月新闻