learn claude code学习记录-S06

1. 上下文压缩

因为agent会做的事情更多了,上下文会越来越快膨胀:

  • 读一个大文件,会塞进很多文本
  • 跑一条长命令,会得到大段输出
  • 多轮任务推进后,旧结果会越来越多

如果没有压缩机制,很快就会出现这些问题:

  1. 模型注意力被旧结果淹没
  2. API 请求越来越重,越来越贵
  3. 最终直接撞上上下文上限,任务中断

所以这一章真正要解决的是:

怎样在不丢掉主线连续性的前提下,把活跃上下文重新腾出空间。

1.1 最小心智模型

建议你先记三层,不要一上来记八层十层:

复制代码
第 1 层:大结果不直接塞进上下文
  -> 写到磁盘,只留预览

第 2 层:旧结果不一直原样保留
  -> 替换成简短占位

第 3 层:整体历史太长时
  -> 生成一份连续性摘要

手动触发 /compactcompact 工具,本质上也是走第 3 层。

1.2 关键数据结构

(1)Persisted Output Marker

当工具输出太大时,不要把全文强塞进当前对话。

最小标记可以长这样:

复制代码
<persisted-output>
Full output saved to: .task_outputs/tool-results/abc123.txt
Preview:
...
</persisted-output>

这个结构表达的是:

  • 全文没有丢
  • 只是搬去了磁盘
  • 当前上下文里只保留一个足够让模型继续判断的预览

(2)CompactState

最小教学版建议你显式维护一份压缩状态:

复制代码
{
    "has_compacted": False,
    "last_summary": "",
    "recent_files": [],
}

这里的字段分别表示:

  • has_compacted:这一轮之前是否已经做过完整压缩
  • last_summary:最近一次压缩得到的摘要
  • recent_files:最近碰过哪些文件,压缩后方便继续追踪

(3)Micro-Compact Boundary

可以先设一条简单规则:

复制代码
只保留最近 3 个工具结果的完整内容
更旧的改成占位提示

这就已经足够让初学者理解:

不是所有历史都要原封不动地一直带着跑。

所以一份合格的压缩结果,至少要保住下面这些东西:

  1. 当前任务目标
  2. 已完成的关键动作
  3. 已修改或重点查看过的文件
  4. 关键决定与约束
  5. 下一步应该做什么

如果这些没有保住,那压缩虽然腾出了空间,却打断了工作连续性。

相关推荐
七老板的blog11 分钟前
从持久化任务到多 Agent 协作
python·学习·ai
book012117 分钟前
华为ensp学习日志 记2026
学习·华为·智能路由器
Huangxy__35 分钟前
线程池的学习
学习
小丶舟37 分钟前
6GB显卡跑Hermes Agent!开源AI自学习编程Agent实测
人工智能·学习·开源
Bechamz1 小时前
大数据开发学习Day45
大数据·学习
吃好睡好便好1 小时前
说说如何爱护肠道
学习·生活
CoreTK_EMC1 小时前
牙科医疗器械 ESD 静电整改案例|芯通康医疗级方案,护航诊疗安全与合规
网络·学习·emc整改·芯通康
南浦别a1 小时前
第一百一十三天--慢慢改变吧
学习·程序人生
小新同学^O^2 小时前
Redis的简单总结
数据库·redis·学习
garmin Chen2 小时前
LeetcodeHot100打卡(14、合并空间,15、轮转数组,16、除了自身以外数组乘积,17.缺失的第一个整数)
java·笔记·学习·算法