建网站建立,厦门造价工程信息网,阐述网络营销策略的内容,手机建网站步骤软件LangChain Agent 与 Deep Agent 深度解析 一、核心概念#xff1a;两个函数的定位 1.1 create_agent — 通用基础框架 create_agent 是 LangChain 官方提供的通用 Agent 创建函数#xff0c;位于 langchain/agents/factory.py。它提供了最基础的 Agent 架构#xff1a; ┌─…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。