什么是DeepAgents
LangChain 官方推出的Agent Harness(智能体外壳 / 成套 Agent 框架),独立开源包,构建在 LangChain + LangGraph 之上,专门面向长周期、多步骤复杂 Agent 任务(编码、调研、复杂规划、多子 Agent)LangChain。
EP01、02
DeepAgents 调用 Python 函数作为工具调用简述
DeepAgents 是 LangChain 官方基于LangGraph封装的 Agent SDK,复用
langchain‑core工具抽象,普通 Python 函数可直接作为工具传入,不一定需要 @tool 装饰器,底层自动做转换。
整体流程(5 步)
工具注册与 Schema 自动生成
把普通 Python 函数传给
create_deep_agent(tools=[func])。框架读取函数签名、类型注解、docstring,底层通过 Pydantic 自动生成 OpenAI 格式的JSON Schema(工具名称、描述、入参定义),转换成 LangChain 标准BaseTool对象。
也可以显式用
@tool装饰器预先包装。
工具描述送入 LLM
构建 LangGraph 图时,将全部工具 schema 随系统提示一并传给大模型,告诉模型 “有哪些函数可以调用、参数怎么填”。
模型输出 tool_calls 结构化请求
LLM 推理后返回
AIMessage,携带tool_calls数组:工具名、参数字典、call_id,不直接执行 Python 代码,只是输出调用意图。LangGraph 节点分发、执行 Python 函数
LangGraph 执行流检测到 AI 消息带有
tool_calls,进入工具执行节点:
- 根据
tool_calls.name匹配注册好的原始 Python 函数; - 将模型输出的 JSON 参数解包,作为实参调用该 Python 函数;
- 捕获函数返回值 / 异常,封装成
ToolMessage,带上对应tool_call_id写回消息状态。
结果回传给模型,循环或结束
ToolMessage追加到对话历史,再次交给 LLM。模型基于工具返回结果继续思考,可以再次调用工具,直到输出最终回答,LangGraph 循环终止。