filesystem-context-offloadlisted
Install: claude install-skill findscripter/everything-skills
# 文件系统上下文卸载
把文件系统当成 Agent 的「无限上下文层」:写一次、按需选读。核心是用**动态上下文发现**取代**静态全量加载**——上下文窗口只保留指针(文件名/描述/路径),需要时才用检索工具拉回完整内容。
## 何时使用
适用:
- 工具输出(网搜、DB 查询、日志)超过 ~2000 token,正在撑大消息历史
- 任务跨多轮对话,需要持久化计划/状态,防止被摘要或注意力衰减丢失
- 多 Agent 协作,子 Agent 需要共享信息但不想靠「传话游戏」逐跳衰减
- 技能/指令集很多但每次只用一小部分,塞进 system prompt 既费 token 又互相干扰
- 终端/日志输出需要被 Agent 选择性查询(grep 取错误行)
- 想让 Agent 把学到的偏好写回自己的指令文件
不该用(负边界):
- 任务单轮即可完成,没有跨轮需求
- 上下文本就装得下,卸载只是徒增 I/O 往返
- 延迟极敏感场景——文件读写有开销
- 底层模型能力弱、不会主动判断何时需要回读文件(动态发现依赖模型自觉拉取)
## 步骤
按场景套用六种模式,统一收敛到「写大块进文件 → 上下文留指针/摘要 → 按需 grep/按行读回」:
1. **暂存盘(Scratch Pad)**:工具输出超阈值就落盘,返回引用而非全文。
2. **计划持久化**:把计划写成结构化文件,每轮开头或迷失时回读(「靠复述操纵注意力」)。
3. **子 Agent 文件通信**:各子 Agent 把发现直接写入文件,协调者直读文件,绕开消息传递的逐跳衰减。
4. **动态技能加载**:技能存为文件,静态上下文只放「名字+一句描述」,相关时才 read_file 拉全文。
5. **终端/日志持久化**:把会话输出同步到文件,用 grep 取相关段而非整段回灌。
6. **自我修改学习**:把学到的偏好写回 Agent 自己的指令文件,下次会话自动加载(需护栏,见注意事项)。
## 指令
**暂存盘落盘逻辑**(超阈值才写文件,返回路径+摘要):
```python
def handle_tool_output(output: str, threshold: int = 2000) -> str:
if len(output) < threshold:
return output
file_path = f"scratch/{tool_name}_{timestamp}.txt"
write_file(file_path, output)
key_summary = extract_summary(output, max_tokens=200)
return f"[Output written to {file_path}. Summary: {key_summary}]"
```
之后用 `grep` 搜特定模式、或 `read_file` 带行范围取定向片段。
**计划持久化**——结构化存盘,每轮回读:
```yaml
# scratch/current_plan.yaml
objective: "Refactor authentication module"
status: in_progress
steps:
- id: 1
description: "Audit current auth endpoints"
status: completed
-