【AI赋能测试笔记】4deepagents与skills基础
一、开始使用
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 不会一开始就把所有技能说明全读进去,而是:
- 先快速浏览"目录"(名称+描述)
- 遇到相关任务时,再调取完整说明书
- 最后执行具体操作
这样既节省 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验证技能的功能:列出技能、验证工作流程
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐
所有评论(0)