论文链接:SkillProx: Self-Evolving Agent Skills via Proximal Textual Gradient Descent HTML 全文:arxiv.org/html/2608.07449v1 代码仓库:github.com/Steven011018/SkillProx 发表时间:2026 年 8 月 机构:香港科技大学(Mingxuan Zheng 等,Yike Guo)


一、论文背景

1.1 什么是 LLM Agent 的「技能(Skill)」

如果把一个 LLM Agent 比作一名新入职的员工,那么大模型本身的预训练权重就像他天生的智商与语言能力;而 「技能(Skill)」 就像公司给他发的一本岗位操作手册——这本手册里写着:「处理电子表格时先这样检查、遇到聚合函数时那样规避陷阱、跨表查询时这样组织代码」。

形式上,一个技能制品 $X$ 是一个轻量级、可复用的文本包,典型结构包括:

  • 一个主指令文件 SKILL.md:类似手册的目录与总章
  • 一个可选的 references/ 目录:类似手册的附录,存放具体章节、示例代码、领域启发式规则

这本手册会被在推理时整体加载到 agent 的上下文里,不需要任何权重更新,就能让 agent 在特定任务上表现更好。可以理解为:「不改大脑,只换说明书」。

1.2 技能为什么需要「进化」

早期工作主要研究 技能合成(Skill Synthesis):从一批成功轨迹或外部文档,一次性自动写出一本技能手册。但 SkillsBench 基准测试揭示了一个尴尬的事实——一次性写出来的手册在不同任务上增益不均匀,有时候甚至会拖后腿,因为它根本无法预见将来会遇到的所有情况。

于是研究范式从「静态合成」转向「技能进化(Skill Evolution)」:让 agent 在不断求解新任务的过程中,自己迭代修改这本手册。代表性方法 SkillGrad 把任务失败当作「文本梯度」:agent 失败一次,诊断器写一段诊断,再把诊断直接翻译成补丁、提交到手册里。

1.3 现有方法的两个关键缺陷

作者发现,这种「诊断即补丁、补丁即提交」的开环模式有两个结构性漏洞:

缺陷一:前向更新未被验证(Unverified forward updates)

LLM 写的诊断看起来头头是道,但没人真的去测一下「加了这条补丁,任务真的做得更好了吗?」。补丁一旦生成就被直接提交,既不重新执行任务来测量效果,也不把结果反馈给诊断器。就像厨师改了菜谱却从不尝味道。

缺陷二:技能增长不受控(Unregulated skill growth)

迭代补丁一直在叠加手册内容,却没有任何机制定期回头审视:「这一条三年前加的规则,现在还有用吗?是不是已经被新规则取代了?是不是跟另一条矛盾?」久而久之,手册里堆满了重复指令、互相冲突的启发式规则、被错误泛化的任务特定答案——它们不仅占地方,还会主动干扰真正有用的知识。

1.4 一个观察:删掉一条规则,准确率从 46% 涨到 54%

作者做了一个简单却关键的实验:开放式地把技能不断增长后,回头去手动审计已积累的知识单元,发现有一条规则,删掉它之后,准确率反而从 46% 涨到 54%。

这条规则长这样:「在写代码前手动 trace 一个具体示例」。听起来像一条金玉良言,对吧?但它其实不可证伪——它不改变 agent 实际生成的程序,门控测试根本测不出它有没有用,反而占据上下文、稀释真正可执行指令的信号。

这个观察直接催生了 SkillProx 的核心设计:技能的健康不能靠无限增长,而要靠选择性收缩来维护。


二、论文定位和关联工作

2.1 研究谱系一:技能合成(静态构建)

这一支工作假设「技能是一次性写好的」,关注如何从各种来源蒸馏出一本手册:

工作核心思想与 SkillProx 的关键区别
Trace2Skill把 agent 的成功轨迹蒸馏成技能制品静态构建,不迭代进化
EvoSkill迭代失败分析 + 验证选择来发现/编辑技能已具备进化雏形,但仍是开环更新
CoEvoSkills技能生成器与共进化验证器耦合验证仅用于过滤,不闭环重执行
SkillComposer把技能构建拆成三个可学习操作一次性构建,不解决长期增长问题

2.2 研究谱系二:技能自进化(动态优化)

SkillsBench 的发现「一次性合成远不足够」催生了这一支,受 TextGrad、GEPA 等「文本空间优化」工作启发:

工作核心思想与 SkillProx 的关键区别
SkillOpt每次编辑用文本学习率 + 留出门控约束仍开环:诊断不重新执行,删除被当作普通编辑
SkillGrad把技能视为参数,用轨迹级损失 + 文本梯量 + 动量更新最强梯度基线,但仍未关闭诊断-验证循环

2.3 SkillProx 在谱系中的定位

SkillProx 把优化论中的 近端梯度下降(Proximal Gradient Descent, PGD) 这一经典框架引入文本技能进化,从而同时闭合了上述两支的盲点。下表给出全文最重要的对照关系:

维度SkillGrad(最强基线)SkillProx(本文)
更新是否重执行验证❌ 诊断即补丁✅ 同批次重执行 + 回滚 + 反馈
知识是否会收缩❌ 只增不减✅ 验证门控的整合/降级/删除
优化类比文本梯度下降近端梯度下降(前向梯度 + 后向近端)
平均准确率(IID + OOD)基线+3.0 pp

定位结论:SkillProx 是技能自进化方向上第一个同时关闭前向诊断-验证循环、并引入显式后向收缩机制的框架。它把「技能进化」从「单向叠加」推向「双向自我修正」。


三、问题定义

3.1 从具体场景到抽象结构

具体问题:怎样让 agent 在不断求解任务的过程中,既能改进技能手册,又不至于让手册越改越臃肿、越改越混乱?

核心洞察:作者识别出这个场景与**优化论中的「组合目标最小化」**有相同的数学结构:

  • 既要让任务损失 $f(x)$ 小(手册让 agent 把任务做对)
  • 又要让复杂度正则 $g(x)$ 小(手册别太长太杂)

而这两件事在经典优化里有一个非常优雅的解法——近端梯度下降(PGD)。

3.2 形式化问题定义

技能制品 $X$ 可被结构化分解为知识单元集合:

$$\mathcal{Q}(X) = \{q_1, q_2, \ldots, q_m\}$$

每个 $q_i$ 是一个可独立审计的最小单元(一个 L2 级节,或一个 L3 级参考文件组)。

组合优化目标:

$$\min_{X \in \mathcal{X}} J_\lambda(X) := L_\mathcal{T}(X) + \lambda G(X), \quad \lambda \geq 0$$
符号含义
$L_\mathcal{T}(X)$技能 $X$ 在未知任务分布 $\mathcal{T}$ 上的预期损失(任务做得不好就高)
$G(X)$技能的文本复杂度(SKILL.md + 所有活跃参考文件的总字符数)
$\lambda$任务性能与文本复杂度之间的权衡系数

3.3 这个抽象的精妙之处

作者明确指出,文本技能是离散且不可微的,方法并不把 $\lambda$ 作为显式输入,也不直接优化这个目标。这个公式真正的价值是提供一个共同的概念基底:

  • 让我们看清:技能进化里其实始终存在两个子目标
  • 让我们看清:现有方法只优化了第一个子目标(任务性能),完全忽略了第二个子目标(复杂度控制)
  • 让我们能把 PGD 这一经典解法结构性地映射过来——前向梯度步对应任务优化,后向近端步对应复杂度收缩

这就是 SkillProx 名字中「Proximal」的由来。


四、问题解法

SkillProx 的整体结构就是把 PGD 的两步搬到文本技能上:

组件标准 PGDSkillProx
目标组合任务损失 $f$ 和复杂度正则 $g$任务优化 + 文本复杂度控制
前向方向解析方向 $-\nabla f$从任务轨迹推断的自然语言编辑方向
前向更新$v_k = x_k - \eta \nabla f(x_k)$诊断 → 补丁 → 同批次重执行 → 拒绝反馈 → 回滚
后向步骤求解近端子问题 $\text{prox}_{\eta\lambda g}$冻结效用审计 + 语义收缩 + 结构检查 + 验证门控
局部性距离惩罚 $\|x-v\|^2/(2\eta)$局部单目标编辑 + 软压缩上限 $\rho$
收缩强度由 $\eta\lambda$ 控制由 $\tau, \delta_h, \delta_c, \rho$ 分别控制

下面分两节详述。

4.1 前向阶段:闭环诊断驱动进化(Forward)

输入:当前技能 $X_k$、训练批次 $B_k$、最近 6 条接受/拒绝历史。

流程(每次迭代):

  1. 执行:当前技能 $X_k$ 在批次 $B_k$ 上跑一遍,得到失败/成功轨迹。
  2. 诊断:Diagnostician 读入失败轨迹、对比成功轨迹、最近历史、以及上一轮被拒绝的尝试的原因,提出编辑方向。
  3. 补丁:Patcher 从相同的迭代前快照产生候选 $\widetilde{X}_k^{(j)}$(注意:每次都从同一快照出发,不是在已修改的基础上叠加)。
  4. 同批次重执行:候选在同一个训练批次上重新执行一次,得到 $H_{B_k}$(硬准确率)和 $C_{B_k}$(单元格准确率)。
  5. 门控判定:
$$\text{Gate}_{\text{fwd}}(\widetilde{X}_k^{(j)}) = \mathbf{1}[H_{B_k}(\widetilde{X}_k^{(j)}) \geq H_{B_k}(X_k)] \times \mathbf{1}[C_{B_k}(\widetilde{X}_k^{(j)}) \geq C_{B_k}(X_k)]$$
  1. 接受规则:

    • 第一个取得严格硬准确率增益的候选 → 提前终止搜索
    • 若无候选严格改进硬准确率 → 最多评估三次尝试,选硬准确率和单元格准确率字典序最佳的候选;该候选仍须满足门控才被接受
    • 否则迭代保持 $X_k$ 不变(整轮回滚)
  2. 拒绝反馈:被拒绝的尝试的「硬/单元格变化量 + 失败方向」会反馈给下一次诊断,形成跨迭代的接受/拒绝记忆。

关键点:诊断器不再是「写完诊断就完事」,而是处在一条编辑 → 执行 → 反馈的闭环里。它的每一次诊断都会被真实的执行结果校准。

4.2 后向阶段:效用感知的近端收缩(Backward / Prox)

前向阶段产生的 $X_f$ 可能仍然冗长——因为批次级门控捕捉不到「在来源批次上无害,但在更广分布下有害」的内容。后向阶段用近端收缩来回顾性地清洗。

整体流程:冻结效用审计 → 候选选择 → 验证门控收缩。

4.2.1 冻结的留一效用审计(Frozen Leave-One-Out Utility Audit)

把 $X_f$ 解析为 $n$ 个可审计的知识单元 $\mathcal{Q}(X_f) = \{q_1, \ldots, q_n\}$。对每个单元 $q_i$ 计算边际效用:

$$u_i^{\text{hard}} = H_V(X_f) - H_V(\text{Ablate}(X_f, q_i))$$$$u_i^{\text{cell}} = C_V(X_f) - C_V(\text{Ablate}(X_f, q_i))$$

直觉解读:

  • 正值 → 移除单元会降低性能 → 有用
  • 负值 → 消融版本反而更好 → 有害

关键设计:所有效用在 Prox 步骤开始前测量一次,并在整个候选遍历中保持冻结。这避免了「移除单元 A 之后,单元 B 的效用也跟着变」的连锁评估成本,把后向阶段变成一个有限步、确定预算的过程。

4.2.2 候选集与处理顺序

候选集:

$$\mathcal{I}_\tau = \{i \in \{1, \ldots, n\} : u_i^{\text{cell}} < \tau\}, \quad \tau = -0.001$$

排序规则(字典序,从最负效用开始处理):

$$i \prec j \Longleftrightarrow (u_i^{\text{cell}}, u_i^{\text{hard}}) <_{\text{lex}} (u_j^{\text{cell}}, u_j^{\text{hard}})$$

4.2.3 验证门控的近端收缩(Shrinker + Gate)

对每个候选 $i_m$(最多处理一次,若已被先前整合移除则跳过):

  1. Shrinker 在当前技能的临时副本中产生试验 $T_m$(可能是整合、降级或删除,不一定是纯删除)。
  2. 结构检查:$T_m$ 必须结构有效且严格减少复杂度:$G(T_m) < G(X^{(m)})$。
  3. 三重验证门控(在固定验证集 $V$ 上):
$$H_V(T_m) \geq H_V(X^{(m)}) - \delta_h, \quad \delta_h = 0$$

$$C_V(T_m) \geq C_V(X^{(m)}) - \delta_c, \quad \delta_c = 0.02$$

$$1 - \frac{G(X^{(m)})}{G(X_f)} < \rho, \quad \rho = 0.10$$
参数含义
$\delta_h = 0$硬准确率一步都不能降
$\delta_c = 0.02$每次接受的编辑最多让单元格准确率降 2 个百分点
$\rho = 0.10$软停止阈值:累积压缩到 10% 就不再启动新编辑(注意是软上限,最后一次接受可能略超)
  1. 状态更新:全部通过才接受 $X^{(m+1)} = T_m$,否则保持 $X^{(m+1)} = X^{(m)}$。

4.2.4 后向阶段的保证与界限

由于每个候选最多处理一次,Prox 是有限步终止的。若接受了 $R$ 次收缩编辑,有:

$$G(X^\star) < G(X_f) \text{(只要 } R > 0\text{)}$$

$$H_V(X^\star) \geq H_V(X_f)$$

$$C_V(X^\star) \geq C_V(X_f) - R \delta_c$$

重要澄清:作者特别强调验证门控只提供逐编辑的经验约束,不蕴含测试集单调性,也不蕴含经典 PGD 的收敛性。

4.3 两阶段的互补角色

维度闭环前向后向 Prox
角色在线更新验证训练后效用优化
时机每个训练迭代内全部前向进化结束后
看到的数据当前训练批次固定验证集
主要拦截来源批次上即可见的退化来源批次上看不见的残余冗余
必要性证据消融 -1.5pp消融 -2.5pp

闭环前向不能完全替代 Prox:闭环技能实际上更长(+12.1% 字符),仍包含两个负效用单元。因为批次级门控捕捉不到「在训练批次上无害,但在更广分布下有害」的内容——这正是 Prox 的不可替代价值所在。


五、评估指标与实验证据

5.1 数据集与划分

数据集类型用途
SpreadsheetBench Verified分布内(IID)人工验证的子集,专为可靠自动评估设计
WikiTableQuestions (WikiTQ)分布外(OOD)半结构化表上的组合语义解析
HiTab分布外(OOD)分层表格问答与自然语言生成

训练 : 验证 : 测试 = 2 : 1 : 8;所有方法最大交互轮次统一为 30。

5.2 评估指标体系

指标定义衡量的本质能力
硬准确率 $H$整个任务判定为对/错(0/1)端到端任务正确性
单元格准确率 $C$输出单元格中正确比例部分正确性的细粒度信号
文本复杂度 $G$SKILL.md + 活跃参考文件总字符数技能紧凑度
压缩比$1 - G(X^\star)/G(X_f)$Prox 阶段的实际收缩幅度

5.3 主实验结果

Qwen3.5-4B(小模型):

方法IIDWikiTQHiTab
No Skill20.365.061.7
Human Skill20.368.363.5
EvoSkill6.776.863.3
Trace2Skill10.066.057.5
SkillOpt15.326.016.0
SkillGrad19.369.765.4
SkillProx21.078.569.2

Qwen3.5-27B(中模型):

方法IIDWikiTQHiTab
SkillGrad51.385.277.5
SkillProx51.386.878.5

Qwen3.6-27B(旗舰模型):

方法IIDWikiTQHiTab
SkillGrad50.084.878.3
SkillProx54.586.280.0

5.4 这些数字为什么能证明核心论点

论点 1:SkillProx 能把基础技能可靠地改进为净正面信号。

  • Qwen3.5-27B:Human Skill 38.3 → SkillProx 51.3(+13.0pp)
  • Qwen3.6-27B:Human Skill 36.7 → SkillProx 54.5(+17.8pp)

而 EvoSkill、Trace2Skill 这些「合成派」方法在小模型上反而严重退化(4B 上 EvoSkill 只有 6.7),说明一次性合成完全不可靠。

论点 2:IID 上稳定最优,OOD 上不过拟合。

SkillOpt 是反面教材——它在 4B 上的 WikiTQ 只有 26.0、HiTab 只有 16.0,完全崩溃。这是典型的「过拟合 IID 风格」:技能越写越像训练分布,泛化能力反而坍塌。SkillProx 在 OOD 上不仅不崩,还经常是最佳(4B 的 WikiTQ 78.5、HiTab 69.2;3.6-27B 的 HiTab 80.0)。

论点 3:方差最低。

在自进化基线中,SkillProx 的方差几乎总是最小(如 3.6-27B IID 上 ±0.5 vs SkillOpt ±7.6)。这一点的根源会在第六部分详细解释。

5.5 消融实验:组件必要性的清晰分工

变体(Qwen3.6-27B, IID)准确率Δ
w/o 闭环诊断53.0 ± 1.0-1.5
w/o Prox52.0 ± 1.0-2.5
SkillProx 完整54.5 ± 0.5—

为什么这个消融设计能清晰分工?

  • 「w/o Prox」测的是「只做前向、不收缩」——掉 2.5pp,说明前向会积累冗余/过特定的内容,必须由 Prox 清洗
  • 「w/o 闭环诊断」测的是「Prox 仍存在但前向开环」——掉 1.5pp,说明 Prox 需要一个已经 decent 的前向技能来收缩,而不是收缩一个原始的基础技能

两个组件互补:完整方法方差降到 ±0.5(其他两个变体都是 ±1.0),证明稳定性来自两阶段的协同。

5.6 准确率-压缩分析($\tau$ 扫描)

$\tau$压缩比硬准确率
$-\infty$(无 Prox)0%50.3%
-0.00125.7%52.3%
0.00541.5%52.0%
0.05074.9%51.0%

关键发现:准确率在压缩比超过约 80% 后才开始下降。这意味着技能中确实存在大量冗余甚至有害的内容——删掉相当一部分反而更好。这是对「技能健康 = 选择性收缩」这一核心论点的最直接证据。


六、效果优势的根源解释

本节建立方法差异 → 机制变化 → 指标提升的完整因果链,禁止「因为用了 X 所以好」的表面解释。

6.1 因果链一:闭环前向 → 在线拦截退化 → 稳定下尾部

对比对象:开放式 SkillGrad(诊断即补丁,直接提交)。

baseline 的根本局限:诊断器写出的诊断文本与实际任务效果之间存在语义鸿沟——「看起来合理的诊断」完全不等于「实际有效的编辑」。开放式更新把诊断当作可信更新方向,本质上是在用一个未经验证的代理信号去驱动优化,必然积累错误更新。

SkillProx 的根本性改变:在同批次上重新执行候选补丁,把「诊断的有效性」从未验证的先验变成已验证的后验。

因果链:

步骤机制变化
1同批次重执行把诊断的有效性从先验变成后验
2退化更新被门控在线拦截,而非积累到技能里
3拒绝反馈把「为什么退化」的信息注入下一次诊断
4诊断器在闭环中持续校准,不再写「看起来合理」但实际无效的诊断

实证证据(Seed 8 的门控追踪):22 次尝试中,8 次因硬准确率退化被阻止,1 次完整迭代被回滚。这 8 次阻止的更新如果发生在开放式基线中,会全部进入技能制品,造成持续污染。

相关性证据:作者计算了 $\text{corr}(H_{G1}, H_{G3f} - H_{G1}) = -0.800$。这个强负相关是关键——它说明闭环进化主要稳定的是下尾部(开放式基线表现差的种子,闭环提升最大),而不是统一抬升上限。这与因果链完全一致:闭环的价值就在于阻止下尾部的发生。

十种子聚合证据:

指标开放式 G1闭环 G3f
平均硬准确率50.30 ± 2.5051.40 ± 1.51
跨种子标准差2.501.51
最低值4649

方差从 2.50 降到 1.51,最低值从 46 抬到 49——这正是「在线拦截退化」的直接表现:不是因为跑得更高,而是因为不再摔倒。

6.2 因果链二:闭环选择了「可证伪」的编辑 → 语义可执行性提升

对比对象:开放式诊断器会写下大量元指令式建议,如「在编码前仔细追踪一个示例」。

baseline 的根本局限:这类建议不可证伪——它不改变 agent 实际生成的程序行为,因此门控测试根本测不到它有没有用。它占据上下文却不产生可测量的行为变化。

SkillProx 的根本性改变:闭环重执行构成了一种达尔文式选择压力——只有能实际改变程序行为的编辑,才有可能通过门控;那些「听起来对、但什么都没改变」的元指令,会在同批次重执行中被发现「没有任何增益」从而被拒。

案例 A 的直接证据:

维度开放式 G1闭环 G3f
节标题Trace Stateful Algorithms Before CodingSequential Scan with Dynamic Reference
指令性质元指令(不可证伪)操作语义(可证伪)
模板19 行硬编码阈值 1.10短参数化模式
$u^{\text{cell}}$-0.0337(有害)+0.0495(有用)
$u^{\text{hard}}$-0.0556(有害)+0.0474(有用)

效用符号从 -0.0337 翻转到 +0.0495——同一个任务场景下,闭环选出的编辑是有用的,开放式选出的编辑是有害的。差异不在长度,而在可操作性(actionability):闭环选择了能被门控测试的编辑。

6.3 因果链三:Prox → 冻结审计 + 验证门控 → 移除残余负效用

对比对象:仅做闭环前向、不做 Prox 的变体。

baseline 的根本局限:批次级门控只能拦截来源批次上可见的退化。但有些内容在训练批次上无害(甚至略有帮助),到了更广的验证分布上却有害——这种「来源批次盲区」是批次级验证的结构性盲点,闭环前向无法解决。

SkillProx 的根本性改变:

  1. 把验证切换到一个独立的、更广的 20 任务验证集
  2. 用留一消融直接量化每个单元的边际效用,把「单元有害性」从隐性变成显性数值
  3. 用冻结避免连锁评估的混淆
  4. 用三重门控在每次编辑上独立验证,避免审计分数被当成确定性因果效应

案例 B 的直接证据(同一份技能中"trace an example"的四个变体):

节名称$u^{\text{cell}}$决策
Ground Task Interpretation+0.1038保留
Interpreting Aggregation Language+0.0119保留
Verify Ambiguous Arithmetic Direction-0.0212候选
Trace Stateful Algorithms Before Coding-0.0337整合后接受

关键洞察:五个候选被尝试,但只有一个编辑被接受。四个被拒绝的编辑虽然冻结审计分数为负或接近零,但从当前活跃技能中删除它们会降低验证准确率——这证明冻结审计识别候选,但独立的验证门控仍然必要。这不是冗余设计,而是双重保障。

最终效果:移除负效用内容后

度量整合前整合后变化
验证单元格准确率96.05%99.73%+3.68
OJ 硬准确率46%54%+8
失败→通过 / 通过→失败——8 / 0

8 个任务从失败翻转为通过,0 个任务从通过翻转为失败——这是对「Prox 提升的不是统计平均,而是真实任务行为」的最强证据。

6.4 因果链四:两阶段互补 → 方差最低

为什么完整方法的方差(±0.5)比两个消融变体(±1.0)都低?

  • 单纯闭环:缺少 Prox → 残余冗余积累 → 不同种子下冗余程度不同 → 方差大
  • 单纯 Prox:缺少闭环 → 输入给 Prox 的技能质量参差 → 收缩效果不稳 → 方差大
  • 完整方法:闭环把前向质量稳定住,Prox 把后向冗余洗掉 → 两个噪声源都被压制 → 方差最低

这是一条典型的「两个互补机制协同降噪」的因果链,而不是「两个独立增益叠加」。

6.5 反事实小结

移除的设计退化幅度根源解释
移除闭环重执行-1.5pp退化更新无法被在线拦截,污染技能
移除 Prox-2.5pp来源批次盲区内的负效用内容无法被清洗
移除冻结审计计算量爆炸连锁评估使 Prox 不可行
移除验证门控准确率崩溃审计分数被误当因果效应,错误删除有用内容

每条反事实都对应了第五部分的某个实验结果,因果闭环完整。


七、必要知识反推

假设找一个完全没有相关知识和信息的人去做这个工作,他最少必须掌握什么?

7.1 领域知识层

必须掌握的知识为什么必须
LLM Agent 的工作机制(推理 + 工具调用 + 上下文加载)不理解这个就无法理解「技能是加载到上下文的文本包」这一基本设定
电子表格任务(SpreadsheetBench)的领域特点不理解任务就理解不了失败模式的语义(如「动态参考值」「借/贷符号方向」)
技能制品的工程结构(SKILL.md + references/)这是所有编辑、审计、收缩操作的载体

7.2 方法论知识层

必须掌握的知识为什么必须
近端梯度下降(PGD)这是整个框架的概念骨架——没有 PGD 就没有「前向梯度 + 后向近端」的两阶段划分
文本空间优化(TextGrad、GEPA)这是「把离散文本编辑类比为连续梯度」的源头,不理解就无法定位 SkillGrad 的局限
留一消融(Leave-One-Out)思想这是后向效用审计的方法论源头
组合优化与正则化理论不理解 $f + \lambda g$ 的结构,就无法理解为什么 $\tau$ 是 $\lambda$ 的代理而非精确对应
因果推断与相关性分析不理解这个就无法正确解释 $\text{corr} = -0.800$ 的含义(闭环稳定下尾部而非抬升上限)

7.3 工程知识层

必须掌握的知识为什么必须
LLM agent 的沙箱执行与判分(OJ 评估)这是所有准确率数字的产生方式,不理解就无法设计实验
上下文长度与文本复杂度的权衡不理解这个就无法解释「为什么技能越长反而越差」
验证集设计(20 任务验证集 vs 来源训练批次)这是后向 Prox 能否发现「盲区内容」的关键

7.4 知识融合的关键节点

这篇论文真正的创造性不在上述任一单点,而在三个融合节点:

节点 1:把 PGD 的两步结构映射到文本技能

  • 把「前向梯度步」→「诊断驱动的编辑」
  • 把「后向近端步」→「效用感知的收缩」
  • 融合要求:同时懂 PGD 与文本空间优化,才能看出这个结构同构

节点 2:闭环与 Prox 的角色分工

  • 闭环 = 在线拦截(来源批次可见的退化)
  • Prox = 回顾性优化(来源批次盲区内的冗余)
  • 融合要求:同时懂「批次级验证的局限」与「留一审计的能力」,才能意识到两者互补

节点 3:冻结审计 + 独立门控的双重保障

  • 冻结审计识别候选
  • 独立门控验证决策
  • 融合要求:理解「审计分数是候选证据而非因果效应」,才能避免「审计分负 → 直接删」的陷阱

八、论文中可以提取的通用性灵感

灵感 1:闭环验证是优化任何「文本制品」的通用模式

核心思想:当你让 LLM 改写一个文本制品(提示词、技能、文档、代码注释)时,不要相信「看起来合理」的诊断——把它在同分布的小批量样本上重新执行一次,用真实结果作为接受/拒绝的判据。

论文证据:闭环把跨种子标准差从 2.50 降到 1.51,最低值从 46 抬到 49;22 次尝试中 8 次被门控拦截。

推广场景:

  • Prompt 工程平台:自动改写 prompt 时,在留出测试集上验证后才提交
  • 文档自动维护:CI 流程中,文档改动后自动跑一遍基于该文档的问答测试
  • 代码注释生成:注释改动后,重新运行「注释引导的代码生成」评估
  • 教学材料更新:教材改版后,让一批学生在新版上做练习,准确率不降才发布

灵感 2:持续增长 ≠ 健康,选择性收缩才是

核心思想:任何长期演化的知识/规则/配置系统,都需要回顾性的效用审计——光「添加新规则」是不够的,还要定期回头移除已经变成负效用的旧规则。

论文证据:$\tau$ 扫描显示,压缩到约 80% 之前,准确率都不降反升;案例 B 中移除一条规则后,准确率从 46% 涨到 54%,8 个任务从失败翻转为通过、0 个反向。

推广场景:

  • Feature Flag 系统:长期堆积的 flag 大多是负效用,需要留一审计
  • lint 规则集:规则越多越好是错觉,留一评估每条规则对真实 bug 率的边际影响
  • 技术债治理:定期评估每条「保留兼容代码」的实际使用情况
  • 企业制度:每年对内部规章做一次「留一效用审计」,删掉互相冲突或已失效的条款

灵感 3:拒绝信号是高价值的学习信号

核心思想:优化过程中,被拒绝的尝试及其原因不应该被丢弃,而应该作为高密度信息反馈给下一步决策。

论文证据:SkillProx 把每次拒绝的「硬/单元格变化量 + 失败方向」反馈给下一次诊断,并把最近 6 条接受/拒绝记录作为跨迭代先验注入。

推广场景:

  • 编译器/类型检查器:把每次报错作为下一轮代码补全的负反馈上下文
  • 推荐系统:被用户「划走/拉黑」的内容是极强的负信号,应注入下一轮排序模型
  • 代码 review:PR 被拒的原因应该作为该作者下次 PR 的隐式先验
  • 销售/谈判:失败的成交尝试及其失败点是高价值训练数据

灵感 4:「冻结评估 + 独立门控」是控制连锁成本的关键

核心思想:当一个系统的多个组件互相耦合时,先做一次冻结的全局评估作为排序依据,再在每一步独立验证,可以避免「修改 A → 重新评估 B → 修改 B → 重新评估 A」的指数级成本。

论文证据:SkillProx 在 Prox 开始前测量一次所有单元的效用并冻结,整个遍历中不再重新评估,把后向阶段变成 $\mathcal{O}((n+M)|V|)$、$M \leq n$ 的有限步过程。

推广场景:

  • 微服务下线决策:先冻结一次全链路依赖评估,再逐个下线时独立验证
  • 大模型剪枝/量化:先冻结一次 sensitivity 评估,再逐层应用 + 独立 perplexity 验证
  • 数据库索引优化:先冻结一次查询计划评估,再逐个删/加索引并独立测量
  • 产品功能下线:先冻结一次 DAU 影响评估,再逐个下线并独立观察核心指标

灵感 5:可证伪性是「建议」与「规则」的分界

核心思想:任何写进系统(手册、prompt、技能、规范)的建议,都应该问一句——「这条建议改不改 agent 的实际行为?能不能被测试测出来?」 如果不能,它就是不可证伪的元指令,会占据上下文却不产生信号。

论文证据:案例 A 中「在编码前仔细追踪一个示例」是元指令,效用为 -0.0337;「每次事件后把参考值更新为变量」是可操作规则,效用为 +0.0495。符号翻转的关键不在长度,在可证伪性。

推广场景:

  • prompt 模板维护:定期审计 prompt 中的「请认真思考」「请仔细检查」类元指令
  • OKR 制定:不可衡量的 KR 都是元指令,应该改写成可证伪的操作定义
  • 员工手册:「要积极主动」「要有大局观」这类条款缺乏可证伪性
  • API 文档:示例代码必须能复制粘贴运行,而不是「请根据实际情况调整」

附录 A:核心超参速查

阶段参数设置
生成Temperature / thinking0.7 / disabled
前向进化训练任务 / 批次大小最多 40 / 4
计划更新 / 早停10 / 连续四个全正确批次
闭环尝试次数 / 硬容差 / 先验大小3 / 0 / 6 条记录
效用审计验证任务 / 测试用例20 / 1
Prox候选阈值 $\tau$-0.001
硬/单元格容差$\delta_h=0$ / $\delta_c=0.02$
压缩上限 $\rho$0.10(软上限)
OJ 评估任务 / 测试用例 / 超时100 / 3 / 180 秒
OOD 评估示例 / 测试用例每基准 200 / 1

附录 B:模型大小与技能长度的反直觉关系

指标Qwen3.5-4BQwen3.5-27B
总长度40.4k ± 8.6k27.9k ± 12.9k
主文件长度14.8k ± 3.3k15.4k ± 3.5k
参考文件长度25.6k ± 9.1k12.6k ± 11.1k
Prox 压缩比29.4%19.0%

反直觉发现:4B 模型产生的技能比 27B 长 45%,差异几乎完全来自参考文件(4B 是 27B 的两倍)。但主技能文件收敛到几乎相同长度(~15k 字符)。

解释:更大的模型自然产生更选择性、更紧凑的技能;而闭环验证和近端收缩是为较小模型提供的外部选择性机制。技能长度与 IID 硬准确率负相关——这进一步验证了「短而精 > 长而杂」这一核心论点。