0%

DeepAgents In Action

什么是DeepAgents

LangChain 官方推出的Agent Harness(智能体外壳 / 成套 Agent 框架),独立开源包,构建在 LangChain + LangGraph 之上,专门面向长周期、多步骤复杂 Agent 任务(编码、调研、复杂规划、多子 Agent)LangChain。

EP01、02

DeepAgents 调用 Python 函数作为工具调用简述

DeepAgents 是 LangChain 官方基于LangGraph封装的 Agent SDK,复用langchain‑core工具抽象,普通 Python 函数可直接作为工具传入,不一定需要 @tool 装饰器,底层自动做转换。

整体流程(5 步)

  1. 工具注册与 Schema 自动生成

    把普通 Python 函数传给create_deep_agent(tools=[func])。框架读取函数签名、类型注解、docstring,底层通过 Pydantic 自动生成 OpenAI 格式的JSON Schema(工具名称、描述、入参定义),转换成 LangChain 标准BaseTool对象。

也可以显式用@tool装饰器预先包装。

  1. 工具描述送入 LLM

    构建 LangGraph 图时,将全部工具 schema 随系统提示一并传给大模型,告诉模型 “有哪些函数可以调用、参数怎么填”。

  2. 模型输出 tool_calls 结构化请求

    LLM 推理后返回AIMessage,携带tool_calls数组:工具名、参数字典、call_id,不直接执行 Python 代码,只是输出调用意图。

  3. LangGraph 节点分发、执行 Python 函数

    LangGraph 执行流检测到 AI 消息带有tool_calls,进入工具执行节点:

  • 根据tool_calls.name匹配注册好的原始 Python 函数;
  • 将模型输出的 JSON 参数解包,作为实参调用该 Python 函数;
  • 捕获函数返回值 / 异常,封装成ToolMessage,带上对应tool_call_id写回消息状态。
  1. 结果回传给模型,循环或结束

    ToolMessage追加到对话历史,再次交给 LLM。模型基于工具返回结果继续思考,可以再次调用工具,直到输出最终回答,LangGraph 循环终止。

参考资料

https://datawhalechina.github.io/deepagents-in-action