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. 下一步应该做什么

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

相关推荐
oier_Asad.Chen几秒前
【洛谷题解/AcWing题解】洛谷P4011 孤岛营救问题/AcWing1131拯救大兵瑞恩
数据结构·笔记·学习·算法·动态规划·图论·宽度优先
xxwl58528 分钟前
Git 完整学习笔记:从入门到团队协作
笔记·git·学习
minglie144 分钟前
zynq的xlnx_rebase_v5.4_2020.2分支打patch-5.4.3-rt1.patch.xz补丁
学习
醉城夜风~1 小时前
HTML常用标签详解学习博客:从基础标签到页面结构完整掌握
前端·学习·html
minglie13 小时前
蚂蚁S9矿板PS 内核定时器驱动
学习
你想知道什么?3 小时前
决策树-学习笔记
笔记·学习·决策树
MartinYeung53 小时前
[论文学习]WASP:面向提示注入攻击的Web代理安全性基准测试
前端·网络·学习
懒狗跑ai的程序员Brain3 小时前
如何利用粒子系统在unity制作一个烟花(粒子系统学习向)
学习·unity·游戏引擎
念何架构之路3 小时前
moby-BuildKit(builder-next)
学习·docker·容器
惠惠软件3 小时前
快速生成磁盘目录文件-双击运行a.bat ,可以看到磁盘目录下出现了 文件目录.txt-供大家学习研究参考
windows·学习·文件列表