一、开始使用

uv add deepagents tavily-python
from deepagents import create_deep_agent
agent = create_deep_agent(
    model="deepseek-chat", 
    tools=[],
    middleware=[check_message_limit],
    system_prompt="You are a helpful assistant",
)

前端不用改


二、对 Deep Agents 的介绍


Deep Agents 是构建 LLM 驱动 Agent 的最简方式,内置四大能力:

  • 任务规划(task planning)
  • 文件系统上下文管理(file systems for context management)
  • 子 Agent 生成(subagent-spawning)
  • 长期记忆(long-term memory)

适用于任何任务,尤其是复杂多步骤任务


技术栈关系

层级 组件 作用
底层 LangChain 提供 Agent 核心构建块
运行时 LangGraph 持久执行、流式传输、人机协作等
上层 Deep Agents 独立库,封装易用接口

LangGraph 提供的关键运行时能力:

  • durable execution — 可恢复的持续执行
  • streaming — 流式输出
  • human-in-the-loop — 人工介入审批

一句话总结

Deep Agents = LangChain/LangGraph 之上的一层" harness",用预置工具和能力让你快速构建复杂 Agent,同时集成 LangSmith 实现自动调试。


三、Deep Agents SDK 适用场景

核心定位

这是 LangChain 生态中一个**“智能体 harness(套具/框架)”**——比基础 LangChain 更高级,但比从零搭建更省心,内置了大量开箱即用的工具和能力。

逐条解释适用场景

场景 说明
复杂多步任务 需要规划拆解的任务,内置 write_todos 工具让 Agent 自主分解步骤、跟踪进度
大上下文管理 通过文件系统工具(ls/read_file/write_file/edit_file)把超长上下文 offload 到存储,避免撑爆上下文窗口;自动摘要压缩历史消息
可插拔文件后端 内存状态 ↔ 本地磁盘 ↔ 持久化存储 ↔ 沙箱(Modal/Daytona/Deno)↔ 自定义后端,随意切换
Shell 命令执行 沙箱环境下运行测试、构建、git 等系统命令,隔离主机系统
解释器运行代码 内置 JavaScript 解释器(QuickJS),用于工具组合、子 Agent 编排、结构化数据转换
子 Agent 委派 task 工具 spawn 专门子 Agent,主 Agent 上下文保持干净,子任务深度处理
长期记忆 跨对话/线程持久化,基于 LangGraph Memory Store 存取历史信息
文件权限控制 声明式规则限制 Agent 能读写的文件路径,子 Agent 可继承或覆盖
人工审批介入 敏感操作(如执行命令、写文件)触发中断,等人确认再继续
模型无关 不绑定特定厂商,OpenAI/Anthropic/Google/开源模型/OpenRouter 等都能用

一句话总结

当你需要构建能自主规划、能操作文件系统、能写代码、能派生子任务、有记忆、有权限管控、还能随时让人类把关的生产级 Agent 时,用 Deep Agents;如果只是简单 Agent,用 LangChain 的 create_agent 或裸 LangGraph 就够了。


四、skills

skill本质上就是一个智能体里面分解了好多个任务,给每个任务一套对应的提示词,这套提示词和约束就是咱们所谓的技能

技能 = 可复用的智能体能力,包含两方面:

  • 工作流(workflows):完成特定任务的步骤流程
  • 领域知识(domain knowledge):某个专业领域的上下文信息

无需重新训练模型,像搭积木一样扩展能力。

  • SKILL.md = 说明书(告诉 AI 这是什么工具、什么时候用、怎么用)
  • 其他文件夹 = 实际工具零件(代码、模板、参考资料)

按需加载:AI 不会一开始就把所有技能说明全读进去,而是:

  1. 先快速浏览"目录"(名称+描述)
  2. 遇到相关任务时,再调取完整说明书
  3. 最后执行具体操作
    这样既节省 AI 的"注意力资源",又能让它掌握大量不同领域的专业技能。

The SKILL.md file

---
name: langgraph-docs
description: Use this skill for requests related to LangGraph in order to fetch relevant documentation to provide accurate, up-to-date guidance.
module: index.ts
---

# 上面是格式约束,下面随便发挥,markdown格式

MCP客户端

https://www.tavily.com/(一个月一千次的互联网搜索)
生成mcp link在这里插入图片描述
在这里插入图片描述

#graph.json
{
  "dependencies": ["."],
  "graphs": {
    "research_agent": {
      "path": "./agents/examples/research_agent.py:agent"
    }
  },
  "env": ".env",
  "image_distro": "wolfi"
}
# research_agent.py
from dotenv import load_dotenv
load_dotenv()
from deepagents import create_deep_agent
from langchain_mcp_adapters.client import MultiServerMCPClient
client = MultiServerMCPClient(
    {

        "weather": {
            "transport": "http",  # HTTP-based remote server
            # Ensure you start your weather server on port 8000
            "url": "https://mcp.tavily.com/mcp/?tavilyApiKey=123", # 检索工具MCP调用
        }
    }
)# 用例智能体时候要用这样的MCP访问知识库
import asyncio
tools = asyncio.run(client.get_tools())


agent = create_deep_agent(
    model="deepseek-chat", # 智能体对接哪个模型。现在写法是默认参数,如果model=llm,传上面创建的llm实例,可以控制更多参数
    # 不写工具只能与大模型对话
    tools=tools,
    middleware=[],# 中间件等会儿放技能,写法一它拿到2个参数之后它封装成中间件,写法二咱们先把中间件做好省得它封装了
    system_prompt="You are a helpful assistant",
)

backends有很多种类,比如是一个文件系统的backends
backends参数告诉智能体文件系统的根目录是谁
写法一:

agent = create_deep_agent(
    model="deepseek-chat",
    tools=tools,
    middleware=[],
    backend=FilesystemBackend(root_dir=r"/Users/amber/PycharmProjects/ai-test-agent-system/agents/examples",virtual_mode=True),# 必须是绝对路径,如果不传这个参数就是临时的,virtual_mode虚拟路径模式不写默认是关闭
    skills=["/skills/"],# 意为skills下所有的
    system_prompt=SKILLS_SYSTEM_PROMPT,
)

SKILLS_SYSTEM_PROMPT=""" """

在这里插入图片描述这俩名儿保持一致


官方有个创建skills的技能
https://github.com/anthropics/skills/tree/main/skills/skill-creator
把这个复制到项目技能目录下
通过启动项目对话的方式使其创建更多的skills

token超过最大限度,处理方式:压缩上下文(加总结中间件)、分解给多个技能分开处理最后汇总


写法二:

back = FilesystemBackend(root_dir=r"/Users/amber/PycharmProjects/ai-test-agent-system/agents/examples",virtual_mode=True)
skill_mid = SkillsMiddleware(backend=back,sources=["/skills/"])

agent = create_deep_agent(
    model="deepseek-chat", 
    tools=tools,
    middleware=[skill_mid],
    
    system_prompt=SKILLS_SYSTEM_PROMPT,
)

(1)基于skill-creator创建测试用例生成相关技能
(2)基于DeepAgent验证技能的功能:列出技能、验证工作流程

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐