Merge pull request #143 from Yif-Yang/draft/technical-blog-sar-review
docs: clarify blog structure and Skill-Aware Reflection
This commit is contained in:
@@ -3,29 +3,29 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<title>SkillOpt Ablations and Sleep: When Should an Agent Accept, Gate, or Reflect on Skill Updates?</title>
|
<title>Expanded SkillOpt Ablations, Skill-Aware Reflection, and SkillOpt-Sleep</title>
|
||||||
<meta name="description" content="A descriptive analysis of 499 completed SkillOpt run summaries and a controlled SkillOpt-Sleep study of gating, reflection, and consolidation.">
|
<meta name="description" content="Expanded SkillOpt ablations, a skill-aware reflection design with memory consolidation, and a controlled study of the SkillOpt-Sleep plugin.">
|
||||||
<meta name="author" content="Ziwei Zhou, Ziyang Gong, Yifan Yang">
|
<meta name="author" content="Ziwei Zhou, Ziyang Gong, Yifan Yang">
|
||||||
<link rel="canonical" href="https://microsoft.github.io/SkillOpt/blog/gating-reflection-safe-updates/">
|
<link rel="canonical" href="https://microsoft.github.io/SkillOpt/blog/gating-reflection-safe-updates/">
|
||||||
<meta property="og:type" content="article">
|
<meta property="og:type" content="article">
|
||||||
<meta property="og:site_name" content="SkillOpt Technical Blog">
|
<meta property="og:site_name" content="SkillOpt Technical Blog">
|
||||||
<meta property="og:title" content="SkillOpt Ablations and Sleep: When Should an Agent Accept, Gate, or Reflect on Skill Updates?">
|
<meta property="og:title" content="Expanded SkillOpt Ablations, Skill-Aware Reflection, and SkillOpt-Sleep">
|
||||||
<meta property="og:description" content="A descriptive 499-run analysis and controlled five-night study of skill-update policies, reflection memory, and validation gates.">
|
<meta property="og:description" content="A three-part report on SkillOpt ablations, skill-aware reflection and memory consolidation, and the SkillOpt-Sleep plugin.">
|
||||||
<meta property="og:url" content="https://microsoft.github.io/SkillOpt/blog/gating-reflection-safe-updates/">
|
<meta property="og:url" content="https://microsoft.github.io/SkillOpt/blog/gating-reflection-safe-updates/">
|
||||||
<meta property="og:image" content="https://microsoft.github.io/SkillOpt/skillopt-assets/teaser-1.png">
|
<meta property="og:image" content="https://microsoft.github.io/SkillOpt/skillopt-assets/teaser-1.png">
|
||||||
<meta property="article:published_time" content="2026-07-14">
|
<meta property="article:published_time" content="2026-07-14">
|
||||||
<meta property="article:modified_time" content="2026-07-14">
|
<meta property="article:modified_time" content="2026-07-14">
|
||||||
<meta name="twitter:card" content="summary_large_image">
|
<meta name="twitter:card" content="summary_large_image">
|
||||||
<meta name="twitter:title" content="SkillOpt Ablations and Sleep">
|
<meta name="twitter:title" content="Expanded SkillOpt Ablations and Reflection">
|
||||||
<meta name="twitter:description" content="When should an agent accept, gate, or reflect on skill updates?">
|
<meta name="twitter:description" content="A three-part report on expanded ablations, Skill-Aware Reflection, and SkillOpt-Sleep.">
|
||||||
<meta name="twitter:image" content="https://microsoft.github.io/SkillOpt/skillopt-assets/teaser-1.png">
|
<meta name="twitter:image" content="https://microsoft.github.io/SkillOpt/skillopt-assets/teaser-1.png">
|
||||||
<link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Crect width='100' height='100' rx='16' fill='%23245fc7'/%3E%3Ctext x='50' y='68' text-anchor='middle' font-size='58' font-family='Arial' font-weight='700' fill='white'%3ES%3C/text%3E%3C/svg%3E">
|
<link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Crect width='100' height='100' rx='16' fill='%23245fc7'/%3E%3Ctext x='50' y='68' text-anchor='middle' font-size='58' font-family='Arial' font-weight='700' fill='white'%3ES%3C/text%3E%3C/svg%3E">
|
||||||
<script type="application/ld+json">
|
<script type="application/ld+json">
|
||||||
{
|
{
|
||||||
"@context": "https://schema.org",
|
"@context": "https://schema.org",
|
||||||
"@type": "BlogPosting",
|
"@type": "BlogPosting",
|
||||||
"headline": "SkillOpt Ablations and Sleep: When Should an Agent Accept, Gate, or Reflect on Skill Updates?",
|
"headline": "Expanded SkillOpt Ablations, Skill-Aware Reflection, and SkillOpt-Sleep",
|
||||||
"description": "A descriptive analysis of 499 completed SkillOpt run summaries and a controlled SkillOpt-Sleep study.",
|
"description": "Expanded SkillOpt ablations, a skill-aware reflection design with memory consolidation, and a controlled study of SkillOpt-Sleep.",
|
||||||
"datePublished": "2026-07-14",
|
"datePublished": "2026-07-14",
|
||||||
"dateModified": "2026-07-14",
|
"dateModified": "2026-07-14",
|
||||||
"author": [
|
"author": [
|
||||||
@@ -260,10 +260,11 @@
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
gap: 14px;
|
gap: 14px;
|
||||||
margin-top: 48px;
|
margin-top: 28px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.citation-title h2 {
|
.citation-title h2,
|
||||||
|
.citation-title h3 {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -292,7 +293,7 @@
|
|||||||
|
|
||||||
.takeaways {
|
.takeaways {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(2, minmax(0, 1fr));
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
||||||
gap: 14px;
|
gap: 14px;
|
||||||
margin: 24px 0 10px;
|
margin: 24px 0 10px;
|
||||||
}
|
}
|
||||||
@@ -618,9 +619,8 @@
|
|||||||
<a href="../../docs/guideline.html">Docs</a>
|
<a href="../../docs/guideline.html">Docs</a>
|
||||||
<a href="#summary">Summary</a>
|
<a href="#summary">Summary</a>
|
||||||
<a href="#setup">Setup</a>
|
<a href="#setup">Setup</a>
|
||||||
<a href="#results">Results</a>
|
<a href="#ablations">Ablations</a>
|
||||||
<a href="#sar">Reflection</a>
|
<a href="#sar">Reflection</a>
|
||||||
<a href="#stability">Stability</a>
|
|
||||||
<a href="#sleep">Sleep</a>
|
<a href="#sleep">Sleep</a>
|
||||||
<a href="#recommendations">Recommendations</a>
|
<a href="#recommendations">Recommendations</a>
|
||||||
</nav>
|
</nav>
|
||||||
@@ -631,27 +631,25 @@
|
|||||||
<article class="article">
|
<article class="article">
|
||||||
<section class="hero">
|
<section class="hero">
|
||||||
<div class="eyebrow">Technical Blog</div>
|
<div class="eyebrow">Technical Blog</div>
|
||||||
<h1>SkillOpt Ablations and Sleep: When Should an Agent Accept, Gate, or Reflect on Skill Updates?</h1>
|
<h1>Expanded SkillOpt Ablations, Skill-Aware Reflection, and SkillOpt-Sleep</h1>
|
||||||
<p class="subtitle">
|
<p class="subtitle">
|
||||||
A descriptive analysis of 499 completed run summaries across SearchQA,
|
A three-part report with expanded analysis of SkillOpt's update policies,
|
||||||
LiveMathematicianBench, and SpreadsheetBench examines how combined update
|
a skill-aware reflection design for directing updates and consolidating memory,
|
||||||
policies trade exploration for stability. A separate five-night
|
and a controlled study of the SkillOpt-Sleep plugin.
|
||||||
SkillOpt-Sleep experiment studies the same controls using shipped components;
|
|
||||||
five nights is the study protocol, not a nightly CLI default.
|
|
||||||
</p>
|
</p>
|
||||||
<div class="meta">
|
<div class="meta">
|
||||||
<span>Ziwei Zhou, Ziyang Gong, and Yifan Yang</span>
|
<span>Ziwei Zhou, Ziyang Gong, and Yifan Yang</span>
|
||||||
<span><time datetime="2026-07-14">July 14, 2026</time></span>
|
<span><time datetime="2026-07-14">July 14, 2026</time></span>
|
||||||
<span>Exploratory SkillOpt ablations + controlled SkillOpt-Sleep study</span>
|
<span>Expanded ablations · Skill-Aware Reflection · SkillOpt-Sleep</span>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="content">
|
<section class="content">
|
||||||
<p class="lead" id="summary">
|
<p class="lead" id="summary">
|
||||||
SkillOpt improves an agent by iteratively editing a natural-language skill file.
|
SkillOpt improves an agent by iteratively editing a natural-language skill file.
|
||||||
That raises a practical control question: when the optimizer proposes a new skill
|
This report extends the earlier project materials in three directions:
|
||||||
update, should the system accept it, gate it against validation performance, or
|
deeper ablations of update-policy design, Skill-Aware Reflection (SAR) with
|
||||||
ask the model to reflect on its own successes and failures first?
|
memory consolidation, and a deployment-oriented SkillOpt-Sleep plugin.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@@ -667,24 +665,16 @@
|
|||||||
|
|
||||||
<div class="takeaways">
|
<div class="takeaways">
|
||||||
<div class="takeaway">
|
<div class="takeaway">
|
||||||
<b><code>Accept Every Edit</code> is competitive in this sweep.</b>
|
<b>Part I · Expanded SkillOpt ablations</b>
|
||||||
<span>Its combined candidate and slow-update policy often has a similar or higher exploratory diagnostic than the paper-style baseline, especially for <code>gpt-5.5</code>.</span>
|
<span>Additional analyses surface conclusions that earlier reporting did not: combined update-policy trade-offs, denser test-case feedback, and the distinction between validation-selected and final checkpoints.</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="takeaway">
|
<div class="takeaway">
|
||||||
<b>Hard gating remains a useful stability control.</b>
|
<b>Part II · Skill-Aware Reflection and consolidation</b>
|
||||||
<span>The stress study motivates retaining validation, checkpointing, and rollback around automated skill edits.</span>
|
<span>SAR adds a useful design principle: interpret a trajectory against the current skill before deciding the update direction, then keep durable reflection memory focused through selective routing and consolidation. The design is inspired by EmbodiSkill <a href="#reference-embodiskill">[1]</a>.</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="takeaway">
|
<div class="takeaway">
|
||||||
<b>Skill memory needs to stay compact.</b>
|
<b>Part III · SkillOpt-Sleep plugin</b>
|
||||||
<span>Long, repetitive, or contradictory notes can hurt smaller targets.</span>
|
<span>The preview plugin turns offline experience replay, validation-gated improvement, and staged adoption into a practical overnight workflow for coding agents.</span>
|
||||||
</div>
|
|
||||||
<div class="takeaway">
|
|
||||||
<b>Selection and consolidation control memory growth.</b>
|
|
||||||
<span>The tested Failure-Only SAR recipe restricts the source of appendix reminders and also uses consolidation, so its result supports the combined compact-memory configuration.</span>
|
|
||||||
</div>
|
|
||||||
<div class="takeaway">
|
|
||||||
<b>The Sleep study combines layered controls.</b>
|
|
||||||
<span>Opt-in replay and diverse rollouts have a better measured robustness profile; in one stress case, the validation-gated run remained flat while the ungated run collapsed.</span>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -718,10 +708,10 @@
|
|||||||
|
|
||||||
<h2 id="setup">Experimental setup</h2>
|
<h2 id="setup">Experimental setup</h2>
|
||||||
<p>
|
<p>
|
||||||
We vary two core mechanisms in SkillOpt. The first is the acceptance gate:
|
The report studies three layers of the system. Part I varies candidate gates,
|
||||||
should a candidate skill update be accepted only if it improves validation
|
slow-update policies, and score signals. Part II studies how reflection uses the
|
||||||
performance? The second is skill-aware reflection: should trajectories from the
|
current skill to direct an update and how consolidation controls reflection
|
||||||
target model be summarized into reusable notes for future skill edits?
|
memory. Part III evaluates SkillOpt-Sleep as a deployment-oriented plugin.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="callout">
|
<div class="callout">
|
||||||
@@ -733,9 +723,10 @@
|
|||||||
provider-connection all-zero cells are excluded where noted. The aggregate
|
provider-connection all-zero cells are excluded where noted. The aggregate
|
||||||
figures support qualitative hypotheses for follow-up; they do not establish
|
figures support qualitative hypotheses for follow-up; they do not establish
|
||||||
statistically reliable rankings, especially when differences are small.
|
statistically reliable rankings, especially when differences are small.
|
||||||
Implementation semantics were checked against
|
The configuration names, defaults, and code paths described below were checked
|
||||||
<a href="https://github.com/microsoft/SkillOpt/tree/a49d0eb1b92ec114b5d22408eaaa18f112c710c8">SkillOpt <code>a49d0eb</code></a>;
|
against <a href="https://github.com/microsoft/SkillOpt/commit/a49d0eb1b92ec114b5d22408eaaa18f112c710c8">SkillOpt commit a49d0eb</a>.
|
||||||
provider behavior can change independently of the repository.
|
This code review does not independently reproduce the reported ablation
|
||||||
|
results, and provider behavior can change outside the repository.
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h3>Key terms</h3>
|
<h3>Key terms</h3>
|
||||||
@@ -744,18 +735,24 @@
|
|||||||
<li><strong>Hard score:</strong> exact task success, such as answering a question correctly or producing a fully correct spreadsheet output.</li>
|
<li><strong>Hard score:</strong> exact task success, such as answering a question correctly or producing a fully correct spreadsheet output.</li>
|
||||||
<li><strong>Soft score:</strong> partial credit, useful when a task has meaningful intermediate progress even if the final answer is not fully correct.</li>
|
<li><strong>Soft score:</strong> partial credit, useful when a task has meaningful intermediate progress even if the final answer is not fully correct.</li>
|
||||||
<li><strong>Slow update:</strong> a periodic rewrite or merge step that incorporates broader training evidence into the skill.</li>
|
<li><strong>Slow update:</strong> a periodic rewrite or merge step that incorporates broader training evidence into the skill.</li>
|
||||||
<li><strong>Skill-aware reflection (SAR):</strong> an EmbodiSkill-inspired routing mechanism that sends skill defects to body edits and execution lapses to protected appendix reminders.</li>
|
<li><strong>Skill-aware reflection (SAR):</strong> a reflection policy that interprets trajectory evidence in light of what the current skill already contains before deciding the direction of an update. This design is inspired by EmbodiSkill <a href="#reference-embodiskill">[1]</a>.</li>
|
||||||
<li><strong>Consolidation:</strong> a compression step for SAR notes. It removes duplicate or overlapping advice before the skill appendix becomes too long.</li>
|
<li><strong>Consolidation:</strong> a compression step for SAR notes. It removes duplicate or overlapping advice before the skill appendix becomes too long.</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<table aria-label="SkillOpt ablation settings">
|
<h2 id="ablations">Part I · Expanded SkillOpt ablations</h2>
|
||||||
|
<p>
|
||||||
|
This section adds analyses that were not developed in the earlier project
|
||||||
|
materials: how combined update policies trade exploration for stability, when
|
||||||
|
denser test-case feedback is informative, and why validation-selected and
|
||||||
|
final checkpoints answer different questions.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<table aria-label="Base SkillOpt update-policy ablation settings">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Base setting or SAR add-on</th>
|
<th>Base update policy</th>
|
||||||
<th>Gate</th>
|
<th>Gate</th>
|
||||||
<th>Slow-update gate</th>
|
<th>Slow-update gate</th>
|
||||||
<th>Reflection</th>
|
|
||||||
<th>Consolidation</th>
|
|
||||||
<th>What it tests</th>
|
<th>What it tests</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
@@ -764,58 +761,32 @@
|
|||||||
<td><span class="tag setting-default">Paper-Style Fully Gated Baseline</span></td>
|
<td><span class="tag setting-default">Paper-Style Fully Gated Baseline</span></td>
|
||||||
<td>Hard validation gate</td>
|
<td>Hard validation gate</td>
|
||||||
<td>Validation-selected</td>
|
<td>Validation-selected</td>
|
||||||
<td>None</td>
|
|
||||||
<td>None</td>
|
|
||||||
<td>The paper-style stability-first baseline; this is not the current <code>main</code> default.</td>
|
<td>The paper-style stability-first baseline; this is not the current <code>main</code> default.</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><span class="tag setting-accept">Accept Every Edit</span></td>
|
<td><span class="tag setting-accept">Accept Every Edit</span></td>
|
||||||
<td>Disabled</td>
|
<td>Disabled</td>
|
||||||
<td>Unconditional</td>
|
<td>Unconditional</td>
|
||||||
<td>None</td>
|
|
||||||
<td>None</td>
|
|
||||||
<td>The combined behavior when candidate edits and slow updates are both accepted unconditionally.</td>
|
<td>The combined behavior when candidate edits and slow updates are both accepted unconditionally.</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><span class="tag setting-hard-slow">Hard Gate + Always-On Slow Updates</span></td>
|
<td><span class="tag setting-hard-slow">Hard Gate + Always-On Slow Updates</span></td>
|
||||||
<td>Hard validation gate</td>
|
<td>Hard validation gate</td>
|
||||||
<td>Unconditional</td>
|
<td>Unconditional</td>
|
||||||
<td>None</td>
|
|
||||||
<td>None</td>
|
|
||||||
<td>Changes only the slow-update policy relative to the paper-style fully gated baseline.</td>
|
<td>Changes only the slow-update policy relative to the paper-style fully gated baseline.</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><span class="tag setting-soft-score">Soft-Score Gate + Always-On Slow Updates</span></td>
|
<td><span class="tag setting-soft-score">Soft-Score Gate + Always-On Slow Updates</span></td>
|
||||||
<td>Soft score gate</td>
|
<td>Soft score gate</td>
|
||||||
<td>Unconditional</td>
|
<td>Unconditional</td>
|
||||||
<td>None</td>
|
|
||||||
<td>None</td>
|
|
||||||
<td>Uses partial test-case success as the candidate signal while keeping slow updates unconditional.</td>
|
<td>Uses partial test-case success as the candidate signal while keeping slow updates unconditional.</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><span class="tag setting-hybrid">Hard/Soft Hybrid Gate + Always-On Slow Updates</span></td>
|
<td><span class="tag setting-hybrid">Hard/Soft Hybrid Gate + Always-On Slow Updates</span></td>
|
||||||
<td>Mixed hard/soft</td>
|
<td>Mixed hard/soft</td>
|
||||||
<td>Unconditional</td>
|
<td>Unconditional</td>
|
||||||
<td>None</td>
|
|
||||||
<td>None</td>
|
|
||||||
<td>Combines exact correctness and partial test-case success while keeping slow updates unconditional.</td>
|
<td>Combines exact correctness and partial test-case success while keeping slow updates unconditional.</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
|
||||||
<td><span class="tag setting-sar-failure">Failure-Only SAR + Consolidation (40)</span></td>
|
|
||||||
<td>Base-dependent</td>
|
|
||||||
<td>Base-dependent</td>
|
|
||||||
<td>Appendix reminders from failed trajectories only</td>
|
|
||||||
<td>After 40 notes</td>
|
|
||||||
<td>Whether failure-sourced appendix routing plus periodic compression keeps memory useful.</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><span class="tag setting-sar-both">Success-and-Failure SAR</span></td>
|
|
||||||
<td>Base-dependent</td>
|
|
||||||
<td>Base-dependent</td>
|
|
||||||
<td>Appendix reminders from successes and failures</td>
|
|
||||||
<td>None in the comparison below</td>
|
|
||||||
<td>Whether a broader memory of both good and bad trajectories is useful.</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
@@ -828,18 +799,7 @@
|
|||||||
Edit</code> force-accepts candidates while slow updates remain unconditional.
|
Edit</code> force-accepts candidates while slow updates remain unconditional.
|
||||||
The other three settings keep slow updates
|
The other three settings keep slow updates
|
||||||
always on while changing the candidate gate to hard, soft-score, or hybrid
|
always on while changing the candidate gate to hard, soft-score, or hybrid
|
||||||
hard/soft evidence. Tag colors stay consistent throughout the post; a composite
|
hard/soft evidence.
|
||||||
configuration inherits its base setting's color, while standalone SAR add-ons
|
|
||||||
use their own colors. SAR can be added to any base setting. Here,
|
|
||||||
<code>Failure-Only SAR</code> is shorthand for sourcing protected appendix
|
|
||||||
reminders only from failures; it does not disable the baseline body-edit path.
|
|
||||||
For example,
|
|
||||||
<code>Accept Every Edit + Failure-Only SAR + Consolidation (40)</code> accepts
|
|
||||||
every candidate, draws appendix reminders only from failures, and compresses
|
|
||||||
accumulated notes once the appendix grows past 40 notes. Because appendix-source
|
|
||||||
selection and consolidation change together in this configuration, its result
|
|
||||||
supports the combined compact-memory recipe, not failure-only appendix sourcing
|
|
||||||
in isolation.
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p class="note">
|
<p class="note">
|
||||||
@@ -851,52 +811,6 @@
|
|||||||
baseline is stated explicitly.
|
baseline is stated explicitly.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3>Where SAR comes from</h3>
|
|
||||||
<p>
|
|
||||||
SkillOpt's skill-aware reflection adapts the central idea of
|
|
||||||
<a href="https://arxiv.org/abs/2605.10332"><em>EmbodiSkill</em> (Ju et al., 2026)</a>:
|
|
||||||
interpret a trajectory against the current skill before allowing that
|
|
||||||
trajectory to change the skill. A failed run is ambiguous evidence. It may
|
|
||||||
expose a missing or incorrect rule, or it may be an execution lapse in which
|
|
||||||
the model simply failed to follow valid guidance. Turning both cases into a
|
|
||||||
generic whole-skill rewrite can delete useful rules, add redundant advice, and
|
|
||||||
amplify noise.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
EmbodiSkill makes this attribution explicit. It separates a prescriptive skill
|
|
||||||
body from an appendix that emphasizes valid rules. When a trajectory provides
|
|
||||||
reliable evidence, successful runs are routed to <em>Discovery</em> or
|
|
||||||
<em>Optimization</em>; failed runs are
|
|
||||||
routed to <em>Skill Defect</em> or <em>Execution Lapse</em>. The first three
|
|
||||||
categories can trigger targeted body edits, whereas an execution lapse only
|
|
||||||
adds an appendix reminder. Before editing, body-changing reflections are
|
|
||||||
consolidated: duplicates are removed, overlapping suggestions are merged,
|
|
||||||
target-specific edits are grouped, and unresolved conflicts can be discarded.
|
|
||||||
A constrained editor then changes the implicated rules while leaving unrelated
|
|
||||||
skill content intact (Ju et al., 2026, Sections 3.1–3.2.2, Equations 2 and
|
|
||||||
6–11).
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
SkillOpt transfers this failure-attribution rule to general-domain skill
|
|
||||||
optimization. A <em>Skill Defect</em> becomes a normal body edit governed by
|
|
||||||
the base setting's acceptance policy, whereas an <em>Execution Lapse</em>
|
|
||||||
becomes a short reminder in a protected appendix that step-level edits cannot
|
|
||||||
rewrite. <code>Failure-Only
|
|
||||||
SAR</code> is closest to EmbodiSkill's original appendix routing.
|
|
||||||
<code>Success-and-Failure SAR</code> extends it by allowing successful
|
|
||||||
trajectories to re-emphasize existing rules, and the note-count consolidation
|
|
||||||
thresholds tested here are a SkillOpt-specific compaction policy rather than a
|
|
||||||
parameter reported by EmbodiSkill. EmbodiSkill does not impose a formal length
|
|
||||||
penalty or show that shorter skills are always better: the compact-memory
|
|
||||||
conclusion below comes from the SkillOpt ablations. In EmbodiSkill's own
|
|
||||||
ALFWorld ablation, skill-aware revision raises success from
|
|
||||||
<code>78.36%</code> to <code>93.28%</code>, an absolute increase of
|
|
||||||
<code>14.92 percentage points</code> (a <code>19.04%</code> relative
|
|
||||||
improvement) over skill-unaware evolution.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
We evaluate on three task families with different reward landscapes.
|
We evaluate on three task families with different reward landscapes.
|
||||||
SearchQA has a high baseline and limited headroom. LiveMathematicianBench is small and high
|
SearchQA has a high baseline and limited headroom. LiveMathematicianBench is small and high
|
||||||
@@ -904,7 +818,7 @@
|
|||||||
correctness and more room for partial progress signals.
|
correctness and more room for partial progress signals.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h2 id="results">Result 1: combined update policies trade exploration for stability</h2>
|
<h3 id="results">1.1 Combined update policies trade exploration for stability</h3>
|
||||||
<p>
|
<p>
|
||||||
The <code>Paper-Style Fully Gated Baseline</code> is a useful
|
The <code>Paper-Style Fully Gated Baseline</code> is a useful
|
||||||
stability-first reference, but it is not the highest-scoring policy in every
|
stability-first reference, but it is not the highest-scoring policy in every
|
||||||
@@ -1000,7 +914,7 @@
|
|||||||
baseline.
|
baseline.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h2>Result 2: combined soft and hybrid policies use denser test-case feedback</h2>
|
<h3>1.2 Combined soft and hybrid policies use denser test-case feedback</h3>
|
||||||
<p>
|
<p>
|
||||||
An acceptance gate does more than find a promising candidate: it determines
|
An acceptance gate does more than find a promising candidate: it determines
|
||||||
which edits survive into the final skill. Hard correctness is a useful anchor,
|
which edits survive into the final skill. Hard correctness is a useful anchor,
|
||||||
@@ -1074,7 +988,138 @@
|
|||||||
slow-update policy.
|
slow-update policy.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h2 id="sar">Result 3: selective appendix routing and consolidation keep skill memory compact</h2>
|
<h3 id="stability">1.3 Best-on-val and final expose different failure modes</h3>
|
||||||
|
<p>
|
||||||
|
The pair <code>bov/fin</code> is more useful than a single score because it
|
||||||
|
separates search ability from training stability. <code>bov</code> asks whether
|
||||||
|
SkillOpt ever found a good skill according to validation selection.
|
||||||
|
<code>fin</code> asks whether the skill left at the end of training is still
|
||||||
|
good. Some exploratory summaries above use <code>max(bov, fin)</code> to
|
||||||
|
describe observed reachability, but that test-aware maximum can inflate what a
|
||||||
|
deployable policy would achieve. The two endpoints must remain separate when
|
||||||
|
diagnosing drift, selection on a small validation set, or steady improvement.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<table aria-label="Best-on-val and final diagnostic examples">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Example</th>
|
||||||
|
<th>Benchmark</th>
|
||||||
|
<th>Mean bov / fin</th>
|
||||||
|
<th>Diagnostic</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td><code>gpt-5.4-mini</code>, <code>Accept Every Edit + Success-and-Failure SAR</code></td>
|
||||||
|
<td>SearchQA</td>
|
||||||
|
<td class="num">70.87% / 56.60%</td>
|
||||||
|
<td>Large endpoint gap, consistent with end-of-run drift under broad reflection.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><code>gpt-5.4-nano</code>, <code>Accept Every Edit + Success-and-Failure SAR</code></td>
|
||||||
|
<td>SearchQA</td>
|
||||||
|
<td class="num">72.04% / 64.62%</td>
|
||||||
|
<td>Same pattern at smaller scale: the final skill is worse than the selected checkpoint.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><code>gpt-5.5</code>, <code>Accept Every Edit</code></td>
|
||||||
|
<td>SpreadsheetBench</td>
|
||||||
|
<td class="num">73.49% / 70.36%</td>
|
||||||
|
<td>The endpoint gap is consistent with later ungated updates eroding the final skill.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><code>gpt-5.4-mini</code>, <code>Hard/Soft Hybrid Gate + Always-On Slow Updates</code></td>
|
||||||
|
<td>SpreadsheetBench</td>
|
||||||
|
<td class="num">64.29% / 66.25%</td>
|
||||||
|
<td>Final exceeds best-on-val; the run continued to improve beyond the validation-selected checkpoint.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><code>gpt-5.5</code>, <code>Accept Every Edit + Success-and-Failure SAR</code></td>
|
||||||
|
<td>SearchQA</td>
|
||||||
|
<td class="num">86.53% / 86.52%</td>
|
||||||
|
<td>No measurable endpoint gap in this aggregate cell.</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
A high oracle maximum shows that one of two retrospectively inspected
|
||||||
|
endpoints scored well; it does not tell an operator which checkpoint could
|
||||||
|
have been selected without test awareness. A high <code>fin</code> is more
|
||||||
|
directly relevant to an automatic training policy. The observed
|
||||||
|
<code>bov-fin</code> gaps under <code>Accept Every Edit</code> motivate retaining
|
||||||
|
validation checkpointing and rollback. The hybrid policy's final-score pattern
|
||||||
|
makes it a candidate for repeated-seed evaluation when the target is smaller or
|
||||||
|
the validation signal is noisy, not a universal default.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2 id="sar">Part II · Skill-Aware Reflection and Memory Consolidation</h2>
|
||||||
|
<h3>Reflection grounded in the current skill</h3>
|
||||||
|
<p>
|
||||||
|
<strong>Skill-Aware Reflection (SAR)</strong> makes the current skill part of
|
||||||
|
the reflection context. When summarizing a trajectory and deciding the
|
||||||
|
direction of the next update, the reflector interprets the evidence in light
|
||||||
|
of what the skill already contains. This design is inspired by EmbodiSkill
|
||||||
|
<a href="#reference-embodiskill">[1]</a>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
In the tested SkillOpt implementation, that judgment can route a likely
|
||||||
|
<em>Skill Defect</em> toward a targeted skill-body update and an
|
||||||
|
<em>Execution Lapse</em> toward a protected appendix reminder. The routing is
|
||||||
|
one implementation of the broader SAR principle, not the definition of SAR
|
||||||
|
itself. Consolidation is the companion memory-control mechanism: it
|
||||||
|
periodically merges duplicate or overlapping reminders to help keep reflection
|
||||||
|
memory compact.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
EmbodiSkill formalizes a related skill-conditioned attribution with
|
||||||
|
<em>Discovery</em>, <em>Optimization</em>, <em>Skill Defect</em>, and
|
||||||
|
<em>Execution Lapse</em> categories. SkillOpt adapts the failure-attribution
|
||||||
|
idea to general-domain skill optimization. In EmbodiSkill's ALFWorld ablation,
|
||||||
|
skill-aware revision raises success from <code>78.36%</code> to
|
||||||
|
<code>93.28%</code>, an absolute increase of <code>14.92 percentage points</code>
|
||||||
|
(a <code>19.04%</code> relative improvement) over skill-unaware evolution. That
|
||||||
|
result provides context for the design; it is not part of the 499-run SkillOpt
|
||||||
|
sweep reported here.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<table aria-label="Skill-Aware Reflection configurations in this report">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>SAR add-on</th>
|
||||||
|
<th>Durable reflection memory</th>
|
||||||
|
<th>Consolidation</th>
|
||||||
|
<th>Scope</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td><span class="tag setting-sar-failure">Failure-Only SAR + Consolidation (40)</span></td>
|
||||||
|
<td>Appendix reminders sourced from failed trajectories</td>
|
||||||
|
<td>After 40 notes</td>
|
||||||
|
<td>An add-on to the base update policy; the normal body-edit path remains active.</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><span class="tag setting-sar-both">Success-and-Failure SAR</span></td>
|
||||||
|
<td>Successful and failed trajectories can re-emphasize existing rules</td>
|
||||||
|
<td>None in the main comparison below</td>
|
||||||
|
<td>An add-on to the base update policy; separate cells add consolidation.</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<p class="note">
|
||||||
|
SAR can be added to any base setting. In the comparison below, both SAR
|
||||||
|
configurations use <code>Accept Every Edit</code>. The failure-only recipe
|
||||||
|
changes appendix-source selection and consolidation together, so its result
|
||||||
|
supports the combined compact-memory recipe rather than either mechanism in
|
||||||
|
isolation.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>2.1 Selective reflection and consolidation keep skill memory compact</h3>
|
||||||
<p>
|
<p>
|
||||||
The key question for skill-aware reflection is not simply whether to reflect,
|
The key question for skill-aware reflection is not simply whether to reflect,
|
||||||
but how much history should remain in the skill. Broad, unconsolidated
|
but how much history should remain in the skill. Broad, unconsolidated
|
||||||
@@ -1145,7 +1190,7 @@
|
|||||||
differences, displayed with a percent sign.
|
differences, displayed with a percent sign.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3>A more direct comparison for consolidation</h3>
|
<h3>2.2 Consolidation recovers broad-memory regressions in three matched cells</h3>
|
||||||
<p>
|
<p>
|
||||||
The next comparison holds the reflection source fixed at successes and failures
|
The next comparison holds the reflection source fixed at successes and failures
|
||||||
and adds consolidation after the appendix grows past 20 notes. This more
|
and adds consolidation after the appendix grows past 20 notes. This more
|
||||||
@@ -1202,7 +1247,7 @@
|
|||||||
sweeps are needed before choosing a threshold by model size.
|
sweeps are needed before choosing a threshold by model size.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3>Compact-memory robustness across hyperparameters</h3>
|
<h3>2.3 Compact-memory patterns across hyperparameters</h3>
|
||||||
<p>
|
<p>
|
||||||
Averages can hide whether a result is broad or driven by one lucky run. We also
|
Averages can hide whether a result is broad or driven by one lucky run. We also
|
||||||
compare settings against <code>Paper-Style Fully Gated Baseline</code> across four
|
compare settings against <code>Paper-Style Fully Gated Baseline</code> across four
|
||||||
@@ -1238,80 +1283,15 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<h2 id="stability">Result 4: best-on-val and final expose different failure modes</h2>
|
<h2 id="sleep">Part III · SkillOpt-Sleep: an overnight optimization plugin</h2>
|
||||||
<p>
|
<p>
|
||||||
The pair <code>bov/fin</code> is more useful than a single score because it
|
Parts I and II study update and reflection policies under a training harness.
|
||||||
separates search ability from training stability. <code>bov</code> asks whether
|
SkillOpt-Sleep brings the same discipline to a deployment-oriented workflow:
|
||||||
SkillOpt ever found a good skill according to validation selection.
|
if an agent sees new real tasks today, can it improve a skill proposal
|
||||||
<code>fin</code> asks whether the skill left at the end of training is still
|
overnight and come back better tomorrow? The preview plugin runs an offline
|
||||||
good. Some exploratory summaries above use <code>max(bov, fin)</code> to
|
sleep cycle rather than an in-session edit: it replays recent experience,
|
||||||
describe observed reachability, but that test-aware maximum can inflate what a
|
proposes a consolidated skill update, validates it against a held-out gate,
|
||||||
deployable policy would achieve. The two endpoints must remain separate when
|
and stages it for review.
|
||||||
diagnosing drift, selection on a small validation set, or steady improvement.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<table aria-label="Best-on-val and final diagnostic examples">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>Example</th>
|
|
||||||
<th>Benchmark</th>
|
|
||||||
<th>Mean bov / fin</th>
|
|
||||||
<th>Diagnostic</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td><code>gpt-5.4-mini</code>, <code>Accept Every Edit + Success-and-Failure SAR</code></td>
|
|
||||||
<td>SearchQA</td>
|
|
||||||
<td class="num">70.87% / 56.60%</td>
|
|
||||||
<td>Large endpoint gap, consistent with end-of-run drift under broad reflection.</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><code>gpt-5.4-nano</code>, <code>Accept Every Edit + Success-and-Failure SAR</code></td>
|
|
||||||
<td>SearchQA</td>
|
|
||||||
<td class="num">72.04% / 64.62%</td>
|
|
||||||
<td>Same pattern at smaller scale: the final skill is worse than the selected checkpoint.</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><code>gpt-5.5</code>, <code>Accept Every Edit</code></td>
|
|
||||||
<td>SpreadsheetBench</td>
|
|
||||||
<td class="num">73.49% / 70.36%</td>
|
|
||||||
<td>The endpoint gap is consistent with later ungated updates eroding the final skill.</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><code>gpt-5.4-mini</code>, <code>Hard/Soft Hybrid Gate + Always-On Slow Updates</code></td>
|
|
||||||
<td>SpreadsheetBench</td>
|
|
||||||
<td class="num">64.29% / 66.25%</td>
|
|
||||||
<td>Final exceeds best-on-val; the run continued to improve beyond the validation-selected checkpoint.</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><code>gpt-5.5</code>, <code>Accept Every Edit + Success-and-Failure SAR</code></td>
|
|
||||||
<td>SearchQA</td>
|
|
||||||
<td class="num">86.53% / 86.52%</td>
|
|
||||||
<td>No measurable endpoint gap in this aggregate cell.</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
A high oracle maximum shows that one of two retrospectively inspected
|
|
||||||
endpoints scored well; it does not tell an operator which checkpoint could
|
|
||||||
have been selected without test awareness. A high <code>fin</code> is more
|
|
||||||
directly relevant to an automatic training policy. The observed
|
|
||||||
<code>bov-fin</code> gaps under <code>Accept Every Edit</code> motivate retaining
|
|
||||||
validation checkpointing and rollback. The hybrid policy's final-score pattern
|
|
||||||
makes it a candidate for repeated-seed evaluation when the target is smaller or
|
|
||||||
the validation signal is noisy, not a universal default.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h2 id="sleep">Result 5: SkillOpt-Sleep applies these controls in an overnight preview</h2>
|
|
||||||
<p>
|
|
||||||
The ablations above ask which update policy is best under a training harness.
|
|
||||||
SkillOpt-Sleep asks the deployment version of the same question: if an agent
|
|
||||||
sees new real tasks today, can it improve a skill proposal overnight and
|
|
||||||
come back better tomorrow? The plugin runs this as an offline sleep cycle rather
|
|
||||||
than an in-session edit: it replays recent experience, proposes a consolidated
|
|
||||||
skill update, validates it against a held-out gate, and stages it for review.
|
|
||||||
Normal operation does not replace the deployed skill until the user explicitly
|
Normal operation does not replace the deployed skill until the user explicitly
|
||||||
runs <code>adopt</code>; <code>auto_adopt</code> is an opt-in mode.
|
runs <code>adopt</code>; <code>auto_adopt</code> is an opt-in mode.
|
||||||
</p>
|
</p>
|
||||||
@@ -1374,7 +1354,7 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<h3>The default validation gate bounded downside in a paired stress case</h3>
|
<h3>3.1 The default validation gate bounded downside in a paired stress case</h3>
|
||||||
<p>
|
<p>
|
||||||
In a paired study with <code>gpt-5.4-nano</code> on SearchQA, the ungated run
|
In a paired study with <code>gpt-5.4-nano</code> on SearchQA, the ungated run
|
||||||
adopted a plausible but wrong rule—answer with the document title string
|
adopted a plausible but wrong rule—answer with the document title string
|
||||||
@@ -1419,7 +1399,7 @@
|
|||||||
rollback—and should stage changes for review before adoption.
|
rollback—and should stage changes for review before adoption.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3>Replay gives the overnight cycle something to learn from</h3>
|
<h3>3.2 Replay and recall give the overnight cycle useful context</h3>
|
||||||
<p>
|
<p>
|
||||||
In the study recipe, diverse rollouts and relevant recalled experience are
|
In the study recipe, diverse rollouts and relevant recalled experience are
|
||||||
associated with larger gains where the target model has headroom. One practical
|
associated with larger gains where the target model has headroom. One practical
|
||||||
@@ -1483,7 +1463,7 @@
|
|||||||
All deltas here are percentage points.
|
All deltas here are percentage points.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3>Diverse dream rollouts improve the study's robustness profile</h3>
|
<h3>3.3 Diverse dream rollouts improve the study's robustness profile</h3>
|
||||||
<p>
|
<p>
|
||||||
Sleep only learns useful contrastive lessons if the dream rollouts are
|
Sleep only learns useful contrastive lessons if the dream rollouts are
|
||||||
independent samples. An early engine configuration collapsed the rollouts to a
|
independent samples. An early engine configuration collapsed the rollouts to a
|
||||||
@@ -1528,7 +1508,7 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<h3>Sensitivity around the study recipe</h3>
|
<h3>3.4 Sensitivity around the study recipe</h3>
|
||||||
<p>
|
<p>
|
||||||
On one gated nano SearchQA cell, every tested change away from the study recipe
|
On one gated nano SearchQA cell, every tested change away from the study recipe
|
||||||
(<code>dream_factor=2</code>, <code>dream_rollouts=5</code>, 10 tasks per night,
|
(<code>dream_factor=2</code>, <code>dream_rollouts=5</code>, 10 tasks per night,
|
||||||
@@ -1676,51 +1656,83 @@
|
|||||||
|
|
||||||
<h2>Conclusion</h2>
|
<h2>Conclusion</h2>
|
||||||
<p>
|
<p>
|
||||||
The main observation is that SkillOpt's update controls should be evaluated as
|
<strong>Expanded ablations.</strong> SkillOpt's update controls should be
|
||||||
a policy, not inferred from one switch in a confounded comparison. The
|
evaluated as a policy, not inferred from one switch in a confounded comparison.
|
||||||
exploratory sweep is consistent with stronger targets tolerating more candidate
|
The exploratory sweep is consistent with stronger targets tolerating more
|
||||||
updates, and with test-case pass rates providing useful signal on
|
candidate updates, and with test-case pass rates providing useful signal on
|
||||||
SpreadsheetBench. Reflection can help, but the displayed comparisons favor
|
SpreadsheetBench. Validation-selected and final checkpoints must remain
|
||||||
keeping its memory compact.
|
separate when judging deployability.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
In practice, choose a SkillOpt configuration with the target model, task,
|
<strong>Skill-Aware Reflection.</strong> SAR contributes a useful design
|
||||||
validation signal, and deployment boundary in mind. Treat the settings above as
|
principle: reflection should interpret a trajectory against the current skill
|
||||||
hypotheses to validate locally, and preserve checkpointing, staged review, and
|
before deciding the direction of an update. The observed cells make SAR a
|
||||||
rollback when skill updates can affect a deployed agent.
|
promising direction, while the large regressions observed with broad,
|
||||||
|
unconsolidated memory motivate selective routing and consolidation as companion
|
||||||
|
controls.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<strong>SkillOpt-Sleep.</strong> The preview plugin turns these ideas into an
|
||||||
|
offline workflow that replays experience, validates a proposed update, and
|
||||||
|
stages it for review. The controlled study motivates further evaluation of
|
||||||
|
replay, recall, and diverse rollouts, while shipping defaults remain
|
||||||
|
conservative and adoption remains explicit by default.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Across all three parts, choose settings with the target model, task, validation
|
||||||
|
signal, provider data boundary, and deployment risk in mind. Treat the reported
|
||||||
|
settings as hypotheses to validate locally, and preserve checkpointing, staged
|
||||||
|
review, and rollback when updates can affect a deployed agent.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h2>Method reference</h2>
|
<h2>References</h2>
|
||||||
<p id="reference-embodiskill">
|
<p id="reference-embodiskill">
|
||||||
Ju, Ruofei, Xinrui Wang, Xin Ding, Yifan Yang, Hao Wu, Shiqi Jiang, Qianxi
|
<strong>[1]</strong> Ju, Ruofei, Xinrui Wang, Xin Ding, Yifan Yang, Hao Wu, Shiqi Jiang, Qianxi
|
||||||
Zhang, Hao Wen, Xiangyu Li, Weijun Wang, Kun Li, Yunxin Liu, Haipeng Dai, Wei
|
Zhang, Hao Wen, Xiangyu Li, Weijun Wang, Kun Li, Yunxin Liu, Haipeng Dai, Wei
|
||||||
Wang, and Ting Cao. 2026. “EmbodiSkill: Skill-Aware Reflection for
|
Wang, and Ting Cao. 2026. “EmbodiSkill: Skill-Aware Reflection for
|
||||||
Self-Evolving Embodied Agents.” <em>arXiv preprint</em> arXiv:2605.10332
|
Self-Evolving Embodied Agents.” <em>arXiv preprint</em> arXiv:2605.10332
|
||||||
[cs.AI]. <a href="https://doi.org/10.48550/arXiv.2605.10332">https://doi.org/10.48550/arXiv.2605.10332</a>.
|
[cs.AI]. <a href="https://doi.org/10.48550/arXiv.2605.10332">https://doi.org/10.48550/arXiv.2605.10332</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<h2>Citation</h2>
|
||||||
|
|
||||||
<div class="citation-title">
|
<div class="citation-title">
|
||||||
<h2>Citation</h2>
|
<h3>Cite this blog post</h3>
|
||||||
<button class="copy-button" type="button" data-copy-target="citation-bibtex" aria-live="polite">Copy BibTeX</button>
|
<button class="copy-button" type="button" data-copy-target="citation-bibtex" aria-live="polite">Copy Blog BibTeX</button>
|
||||||
</div>
|
</div>
|
||||||
<p>
|
<p>
|
||||||
If you find this ablation useful, please cite it as:
|
If you find this report useful, please cite it as:
|
||||||
</p>
|
</p>
|
||||||
<pre><code id="citation-bibtex">@misc{zhou2026skilloptablations,
|
<pre><code id="citation-bibtex">@misc{zhou2026skillopttechnicalreport,
|
||||||
title = {SkillOpt Ablations and Sleep: When Should an Agent Accept, Gate, or Reflect on Skill Updates?},
|
title = {Expanded SkillOpt Ablations, Skill-Aware Reflection, and SkillOpt-Sleep},
|
||||||
author = {Zhou, Ziwei and Gong, Ziyang and Yang, Yifan},
|
author = {Zhou, Ziwei and Gong, Ziyang and Yang, Yifan},
|
||||||
year = {2026},
|
year = {2026},
|
||||||
url = {https://microsoft.github.io/SkillOpt/blog/gating-reflection-safe-updates/},
|
url = {https://microsoft.github.io/SkillOpt/blog/gating-reflection-safe-updates/},
|
||||||
note = {Blog post}
|
note = {SkillOpt Technical Blog post}
|
||||||
|
}</code></pre>
|
||||||
|
|
||||||
|
<div class="citation-title">
|
||||||
|
<h3>SkillOpt paper</h3>
|
||||||
|
<button class="copy-button" type="button" data-copy-target="citation-skillopt-bibtex" aria-live="polite">Copy SkillOpt BibTeX</button>
|
||||||
|
</div>
|
||||||
|
<p>
|
||||||
|
For the underlying SkillOpt method, please also cite the
|
||||||
|
<a href="https://arxiv.org/abs/2605.23904">SkillOpt paper</a>:
|
||||||
|
</p>
|
||||||
|
<pre><code id="citation-skillopt-bibtex">@article{yang2026skillopt,
|
||||||
|
title={Skillopt: Executive strategy for self-evolving agent skills},
|
||||||
|
author={Yang, Yifan and Gong, Ziyang and Huang, Weiquan and Yang, Qihao and Zhou, Ziwei and Huang, Zisu and Li, Yan and Gao, Xuemei and Dai, Qi and Liu, Bei and others},
|
||||||
|
journal={arXiv preprint arXiv:2605.23904},
|
||||||
|
year={2026}
|
||||||
}</code></pre>
|
}</code></pre>
|
||||||
|
|
||||||
<hr class="section-divider">
|
<hr class="section-divider">
|
||||||
|
|
||||||
<div class="footer-note">
|
<div class="footer-note">
|
||||||
<p>
|
<p>
|
||||||
This post summarizes the gating, skill-aware reflection, and consolidation
|
This three-part report presents expanded SkillOpt ablations, Skill-Aware
|
||||||
ablations used to choose practical SkillOpt training settings, plus the
|
Reflection with memory consolidation, and a controlled study of the
|
||||||
SkillOpt-Sleep results that turn those controls into an overnight plugin.
|
SkillOpt-Sleep plugin.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|||||||
+3
-3
@@ -136,10 +136,10 @@
|
|||||||
<article class="post-card">
|
<article class="post-card">
|
||||||
<div>
|
<div>
|
||||||
<div class="meta"><time datetime="2026-07-14">July 14, 2026</time> · Ziwei Zhou, Ziyang Gong, and Yifan Yang</div>
|
<div class="meta"><time datetime="2026-07-14">July 14, 2026</time> · Ziwei Zhou, Ziyang Gong, and Yifan Yang</div>
|
||||||
<h2><a href="gating-reflection-safe-updates/">SkillOpt Ablations and Sleep: When Should an Agent Accept, Gate, or Reflect on Skill Updates?</a></h2>
|
<h2><a href="gating-reflection-safe-updates/">Expanded SkillOpt Ablations, Skill-Aware Reflection, and SkillOpt-Sleep</a></h2>
|
||||||
<p class="summary">A descriptive analysis of 499 completed SkillOpt run summaries, plus a controlled five-night SkillOpt-Sleep study, examines the trade-offs between exploration, validation gates, partial-credit signals, and compact reflection memory.</p>
|
<p class="summary">A three-part report with expanded SkillOpt ablations, a skill-aware reflection design with memory consolidation, and a controlled study of the SkillOpt-Sleep plugin.</p>
|
||||||
</div>
|
</div>
|
||||||
<a class="read-link" href="gating-reflection-safe-updates/" aria-label="Read SkillOpt Ablations and Sleep">Read article →</a>
|
<a class="read-link" href="gating-reflection-safe-updates/" aria-label="Read Expanded SkillOpt Ablations, Skill-Aware Reflection, and SkillOpt-Sleep">Read article →</a>
|
||||||
</article>
|
</article>
|
||||||
</section>
|
</section>
|
||||||
</main>
|
</main>
|
||||||
|
|||||||
Reference in New Issue
Block a user