上下文管理
长任务的上下文是稀缺资源。DeepAgents 的三板斧:文件系统把信息外置、子代理隔离上下文、skills 按需加载。面试主线:每板斧解决什么、怎么配合。
filesystem:信息外置
文件系统 = 外部记忆: 不占上下文, 随时可取
- 内置工具:读、写、编辑、搜索文件(pluggable 后端:本地、沙箱、远程)
- 上下文工程的关键动作:长任务把中间结果写盘,不留在对话里;需要时再读回来
- 搜索能力(grep 式)让 agent 只读需要的片段,而不是整个文件
- 对应 agent-engineering/context-engineering 的原则:上下文只放当前决策需要的,其余外置
subagents:隔离上下文
from deepagents import create_deep_agent, SubAgent
sub_agents = [
SubAgent(
name="web_researcher",
system_prompt="负责网络调研, 返回结构化结论。",
tools=[search_tool],
),
]
agent = create_deep_agent(
model="openai:gpt-5.5",
tools=[main_tools],
sub_agents=sub_agents,
)- 主 agent 把子任务委派给子代理,子代理有独立上下文窗口
- 收益:主上下文不被子任务细节污染(研究过程 vs 最终结论);多个子代理可并行
- 交互模式:主 agent 通过工具调用委派,拿回结构化结果
- 与 LangGraph supervisor/handoff 的关系:DeepAgents 内置了这套编排(见多 Agent 编排篇)
skills:按需加载
- Skills 是可复用的行为单元:提示词 + 工具 + 使用说明打包
- 按需加载:agent 遇到对应任务时才加载 skill,不常驻上下文
- 与 agentskills 规范的关系:和 Agent 分类 skills 篇讲的能力同源(可移植的行为包)
- 收益:一个 agent 可以拥有大量能力(几十个 skill),但每次只在上下文里放当前需要的
三者的配合
| 机制 | 解决 | 类比 |
|---|---|---|
| filesystem | 信息放哪 | 外部存储 |
| subagents | 谁来做 | 团队分工 |
| skills | 会什么 | 能力清单 |
配合逻辑:主 agent 持最小上下文(指令 + 当前任务),具体知识读文件、具体活派子代理、具体技能按需加载。这就是“上下文工程最佳实践”在 harness 层的落地。
面试追问
- 文件系统对 agent 的价值? 上下文外置:中间结果写盘不占对话,需要时搜索读回。长任务不膨胀的关键
- subagents 解决什么? 隔离上下文:子任务细节不进主上下文,主 agent 只拿结构化结论
- skills 怎么工作? 行为包按需加载,不常驻。几十个能力也不撑爆上下文
- 三者怎么配合? 读文件取信息、派子代理干活、按需加载技能。主 agent 上下文保持最小
- 和 context engineering 什么关系? 是它的 harness 层落地:上下文只放决策所需,其余外置(文件/子代理/按需加载)