DeepAgents

  |   0 评论   |   0 浏览

你将学会:create_deep_agent 拿到文件系统和子代理;知道规划是 opt-in。
前置: L02、L09。还是「模型调工具」循环,多了 harness。

研究工位

四块能力

适合:要写/搜很多中间文件、要派隔离上下文的小弟、任务会跑很久。
不适合:一个天气查询(L02 就够)。

write_todos 从 deepagents 0.7 起要自己加 TodoListMiddleware。DeepSeek 没有内置网页搜索。

完整代码

from dotenv import load_dotenv

load_dotenv()

from deepagents import create_deep_agent
from langchain.agents.middleware import TodoListMiddleware
from langchain.chat_models import init_chat_model

model = init_chat_model(
    "deepseek:deepseek-chat",
    temperature=0.5,
    max_tokens=2500,
    timeout=300,
    max_retries=6,
)


def get_weather(city: str) -> str:
    """Get weather for a given city."""
    return f"It's always sunny in {city}!"


agent = create_deep_agent(
    model=model,
    tools=[get_weather],
    system_prompt="需要事实时调用工具。用中文短答。",
)
print(agent.invoke(
    {"messages": [{"role": "user", "content": "sf 天气?"}]}
)["messages"][-1].content)

planned = create_deep_agent(
    model=model,
    tools=[get_weather],
    middleware=[TodoListMiddleware()],
)
print("已创建带 write_todos 的 agent =>", type(planned).__name__)

子代理(可选加跑)

from dotenv import load_dotenv

load_dotenv()

from deepagents import create_deep_agent
from langchain.chat_models import init_chat_model

model = init_chat_model(
    "deepseek:deepseek-chat",
    temperature=0.5,
    max_tokens=2500,
    timeout=300,
    max_retries=6,
)


def internet_search(query: str) -> str:
    """Run a web search. Demo stub."""
    return f"Hits for {query}: LangGraph 是图运行时。"


researcher = {
    "name": "researcher",
    "description": "调研一个主题。一次一个主题。",
    "system_prompt": "调用 internet_search,只返回不超过 80 字的摘要。",
    "tools": [internet_search],
}
agent = create_deep_agent(
    model=model,
    subagents=[researcher],
    system_prompt="用户要调研时,用 task 工具交给 researcher。",
)
print(agent.invoke({
    "messages": [{"role": "user", "content": "调研 LangGraph 是什么,中文三句。"}]
})["messages"][-1].content)

磁盘上的 Skills/Memory 见仓库 14-DeepAgents/Skills技能.py(读 _skills/)。和 Claude Agent SDK 的差异见 Comparison对比.py

练习

  1. 用自己的话填这张表:天气查询 / 公司制度问答 / 调研十篇资料写报告 —— 分别用 L02、L05 还是本课?
  2. 不加 TodoListMiddleware 问一个多步骤问题,再加了对比(观察是否出现 todos)。

本章验收

  •  能独立写出最小 create_deep_agent
  •  能解释和 create_agent 的差别(文件系统、子代理、规划 opt-in)

阶段 3 过关: 能向别人讲清三套入口,不背定义,用「我遇到什么问题」举例。

下一课:观测与部署


标题:DeepAgents
作者:llp
地址:https://llinp.cn/articles/2026/08/23/1787493751726.html