🐳 第六章 Agent一轮工作的全过程
📄 一句话概括

实测 compaction 分组三件包,修剪器带真实参数(thresholdChars 8192/headChars 4096/tailChars 1024)——压了多少、压剩多少,必须说得清。

📝 本节和前面几节的关系

压缩是 2.5 埋过伏笔的话题(Minimal 连它都没有)。这一节看它的真身——以及为什么它也在【可解释】的管辖区里。

一、实测:压缩是三件包

compaction 分组(cordis:group,带 isolate)里挂着:

压缩不是一段代码,是一组可替换的插件——和别的能力一个待遇。

二、实测:修剪器的真实参数

tool-result-pruner 在配置里写着:

thresholdChars: 8192——超过 8192 字就修剪; headChars: 4096——保头部 4096 字; tailChars: 1024——保尾部 1024 字。

算一笔账:一个 8000 字的工具结果进上下文——头 4096 + 尾 1024 + 中间省略标记。压了多少、压剩多少,说得清。

三、为什么压缩必须可解释

压缩改变了模型看见的世界:

可解释的压缩:被压的内容能指出来、能恢复(流水里都有)——6.4 的事实库在这里兑现价值。

四、与 Minimal 的对照

2.5 说过 Minimal 连 compaction 都没有——现在可以补全这句话:

两种选择都成立,因为都有清楚的语义——怕的不是压缩,是说不清的压缩。

五、动手 Demo:上下文压缩也必须保持可解释

三件压缩包与修剪器的真实参数:

packs = [("compaction-basic", "基础压缩"),
         ("compaction-image-offload", "图片卸载"),
         ("compaction-tool-result-pruner", "工具结果修剪")]
for a, b in packs:
    print("  %-30s %s" % (a, b))
print()
print("  pruner 参数: threshold 8192 / head 4096 / tail 1024")
print("  8000 字结果 -> 头 4096 + 尾 1024 + 省略标记")

实跑输出:

--------------------------------------------------------------------
上下文压缩也必须保持可解释
--------------------------------------------------------------------
  实测:compaction 分组里挂了三件:

  包                                干什么
  -----------------------------------------------
  compaction-basic                  基础压缩
  compaction-image-offload          图片卸载
  compaction-tool-result-pruner     工具结果修剪
  -----------------------------------------------

  修剪器在配置里带着真实参数:

        thresholdChars: 8192     <- 超过 8192 字就修剪
        headChars: 4096          <- 保头部 4096 字
        tailChars: 1024          <- 保尾部 1024 字

  算一笔账:一个 8000 字的工具结果进上下文——
  头 4096 + 尾 1024 + 中间省略标记——**压了多少、压剩多少,说得清**。

  可解释的意思:**压缩不能是黑箱**——被压掉的内容要能指出来,
  否则模型【没看见】就说不清是谁的锅(6.8.3 会用到)。

压缩是一组可替换插件,不是写死的逻辑——3.7 再证。 真实参数摆在这:规则白纸黑字,行为可预测。 可解释的兑现靠 6.4 的事实库——压掉的东西流水里都有。

30 秒实验

  1. 在配置树里找到 pruner 的三个参数,抄下来。
  2. 算一笔账:一个 20000 字的工具结果,修剪后剩多少字?
  3. 解释:为什么【说不清的压缩】会让调试完全失效。

常见误区

  1. 错误:压缩就是悄悄删旧内容。——纠正:删了什么要能指出来——可解释是硬要求。
  2. 错误:压缩是模型自己做的。——纠正:是 Harness 的插件做的(compaction 组)——在上下文装配层就完成了。
  3. 错误:Minimal 没压缩是偷懒。——纠正:行为完全可预测正是它的测量价值。
自测三问(点开对答案) 1. 压缩分组里有哪三件包? —— compaction-basic、compaction-image-offload、compaction-tool-result-pruner。 2. 修剪器的三个参数是什么? —— thresholdChars 8192/headChars 4096/tailChars 1024——**规则白纸黑字**。 3. 为什么压缩必须可解释? —— 压掉的模型就没看见——**说不清压了什么,调试就没法判断谁的锅**。

相关笔记