第 10 章 · Skills、Memory 与审批模式
本章目标:
- 掌握 Deep Agents Skills 系统(AGENTS.md 文件格式)
- 理解 Memory 的短期与长期区分
- 学会使用三种审批模式:Manual、Auto、YOLO
- 配置远程代码沙箱(E2B/Modal)
10.1 Skills 系统
Skills 是 Agent 的可复用能力和指令:
markdown
<!-- .deepagents/skills/researcher/AGENTS.md -->
---
name: researcher
description: 研究主题并生成报告
model: anthropic:claude-haiku-4-5-20251001
---
你是一位专业研究员。
## 工作流程
1. 使用 Tavily 搜索相关信息
2. 整理关键发现
3. 生成结构化报告
## 输出格式
- 标题(H1)
- 摘要(100 字内)
- 关键发现(带编号)
- 参考资料链接python
from deepagents import create_deep_agent
agent = create_deep_agent(
model="openai:gpt-4o",
skills=["researcher", "writer"], # 加载多个技能
system_prompt="你是一个多技能助手"
)10.2 Memory 系统
python
from deepagents import create_deep_agent
# 短期记忆:对话历史(自动管理)
# 长期记忆:跨会话知识(需显式存储)
agent = create_deep_agent(
model="openai:gpt-4o",
memory={
"type": "long_term",
"store": "sqlite://memory.db", # 持久化存储
"max_tokens": 4000 # 记忆容量限制
}
)
# 存储长期记忆
agent.memory.save("user_preferences", {
"name": "张三",
"favorite_color": "蓝色",
"project_context": "正在开发 RAG 系统"
})
# 检索记忆
pref = agent.memory.load("user_preferences")10.3 审批模式
python
from deepagents import ApprovalMode
# Manual:每个工具调用前都需人工确认
agent_manual = create_deep_agent(
model="openai:gpt-4o",
approval_mode=ApprovalMode.MANUAL,
tools=[write_file, execute_code]
)
# Auto:信任工具,自动执行
agent_auto = create_deep_agent(
model="openai:gpt-4o",
approval_mode=ApprovalMode.AUTO,
tools=[get_weather, search_web]
)
# YOLO:不过滤任何工具(高风险)
agent_yolo = create_deep_agent(
model="openai:gpt-4o",
approval_mode=ApprovalMode.YOLO,
tools=[delete_files, execute_shell]
)10.4 代码沙箱
python
from deepagents import create_deep_agent
# E2B 沙箱(推荐)
agent = create_deep_agent(
model="openai:gpt-4o",
sandbox="e2b", # 或 "modal"、"agentcore"
sandbox_config={
"api_key": "e2b_xxx",
"template": "python-3.11"
}
)
# 沙箱内执行代码
result = agent.invoke({
"messages": [{"role": "user", "content": "计算 2+2"}]
})
# Agent 在隔离环境中执行 Python 代码10.5 完整配置示例
python
from deepagents import create_deep_agent, ApprovalMode
agent = create_deep_agent(
model="anthropic:claude-sonnet-4-6",
tools=[search_web, calculate, write_report],
skills=["researcher", "analyst"],
memory={
"type": "long_term",
"store": "postgres://user:pass@localhost/agent_db"
},
approval_mode=ApprovalMode.MANUAL,
sandbox="e2b",
system_prompt="""你是一个专业分析师。
## 你的能力
- 使用 researcher 技能进行深度研究
- 使用 analyst 技能生成分析报告
- 在沙箱中安全执行代码
## 约束
- 敏感操作必须人工审批
- 每次分析后保存记忆
"""
)本章小结
- Skills 通过 AGENTS.md 文件定义,支持 YAML frontmatter
- Memory 分为短期(对话历史)和长期(跨会话存储)
- 审批模式:Manual(手动确认)、Auto(自动)、YOLO(无过滤)
- 沙箱提供安全的代码执行环境
🛠️ 动手实践
- 创建自定义 Skill(AGENTS.md),定义专属工作流程
- 实现带 Long-term Memory 的 Agent,验证跨会话记忆
- 对比三种审批模式的行为差异