Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 13 additions & 10 deletions apps/presentation/site/public/blog/context-delivery/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,21 @@
<meta property="og:type" content="article"><meta property="og:site_name" content="LoopX"><meta property="og:locale" content="en_US"><meta property="og:title" content="An Agent needs a way to look things up, too"><meta property="og:description" content="One voice task, from choosing facts to fitting the first read, preserving exact values, and recovering without replaying work."><meta property="og:url" content="https://loopx-project.github.io/loopx/blog/context-delivery/"><meta name="twitter:card" content="summary"><link rel="icon" href="data:,"><link rel="stylesheet" href="../blog.css">
</head><body><a class="skip-link" href="#main">Skip to content</a>
<header class="site-header"><a class="brand" href="../../"><span class="product-mark" aria-hidden="true"><i></i><i></i></span>LoopX</a><nav aria-label="Main navigation"><a href="../">Blog</a><a href="../../docs/book/">Docs</a></nav><div class="header-actions"><a class="language" href="../zh/context-delivery/" lang="zh-CN" hreflang="zh-CN">中文</a><a class="github" href="https://github.com/loopx-project/loopx">GitHub ↗</a></div></header>
<main id="main"><div class="article-heading"><a class="back" href="../">← All articles</a><p class="eyebrow">Context delivery</p><h1>An Agent needs a way to look things up, too</h1><p class="lead">One voice task, from choosing facts to fitting the first read, preserving exact values, and recovering without replaying work.</p><div class="byline"><a href="https://github.com/loopx-project/loopx">LoopX</a><span>·</span><time datetime="2026-11-01">November 1, 2026</time><span>·</span><span>Updated November 10</span></div></div>
<div class="article-layout"><aside class="toc"><details><summary>On this page</summary><nav aria-label="On this page"><a href="#multitask-context-byte-ratios">8-task context byte ratios</a><a href="#ablation-evidence">Multi-task and layered ablation</a><a href="#example">Follow one task: give an assistant voice input</a><a href="#known-paths">When you know the locations, read them together</a><a href="#discover">When the structure is unfamiliar, index the relevant subtree</a><a href="#requirements">See requirements first, then open their evidence</a><a href="#stage-scopes">Read scope before choosing</a><a href="#sharing">Share exact records within one delivery</a><a href="#cycle">On the next continuation, deliver what changed</a><a href="#native-path">When enabled, the default output is a reading entrypoint</a><a href="#first-read-budget">The first response has to arrive complete</a><a href="#transport-cost">Count the trips and the copies</a><a href="#recovery">Recover missing context while preserving the original work</a><a href="#evidence">What the measurements establish</a><a href="#reproduce">Read the same material yourself</a></nav></details></aside><article class="prose"><p>Long-running work accumulates material: the original goal, later constraints, attempted routes, failed experiments and current progress. Sending everything again on each continuation repeats more and more content; keeping only a summary can make the original basis of a decision difficult to recover.</p>
<p>LoopX's context delivery separates these jobs: <strong>preserve complete sources, read the facts needed for the current decision, expand supporting material around questions, and reuse unchanged structures exactly within a valid compaction cycle.</strong></p>
<h2 id="results">Results first: progressive reading, deltas and task ablation</h2>
<h3 id="multitask-context-byte-ratios">Eight tasks: progressive reading and in-cycle deltas</h3>
<p>This section recalculates the published eight-task Four-Arm Context ON 18h aggregates to distinguish Progressive and in-cycle Delta transport costs. The source reports 213 model-facing wakes: 101 new-session or post-compaction baseline reads and 112 in-cycle continuations. Per-task cells retain the published values; totals are recomputed from those cells. Raw per-wake logs are not included here.</p>
<main id="main"><div class="article-heading"><a class="back" href="../">← All articles</a><p class="eyebrow">Context delivery</p><h1>An Agent needs a way to look things up, too</h1><p class="lead">Read necessary facts first, reuse verified structures within a compaction cycle, and recover the complete baseline when continuity is lost.</p><div class="byline"><a href="https://github.com/loopx-project/loopx">LoopX</a><span>·</span><time datetime="2026-11-01">November 1, 2026</time><span>·</span><span>Updated November 12</span></div></div>
<div class="article-layout"><aside class="toc"><details><summary>On this page</summary><nav aria-label="On this page"><a href="#four-stage-cascade">Four mechanisms and their baselines</a><a href="#multitask-context-byte-ratios">8-task single-layer vs stacked</a><a href="#ablation-evidence">Multi-task and layered ablation</a><a href="#example">Follow one task: give an assistant voice input</a><a href="#known-paths">When you know the locations, read them together</a><a href="#discover">When the structure is unfamiliar, index the relevant subtree</a><a href="#requirements">See requirements first, then open their evidence</a><a href="#stage-scopes">Read scope before choosing</a><a href="#sharing">Share exact records within one delivery</a><a href="#cycle">On the next continuation, deliver what changed</a><a href="#native-path">When enabled, the default output is a reading entrypoint</a><a href="#first-read-budget">The first response has to arrive complete</a><a href="#transport-cost">Count the trips and the copies</a><a href="#recovery">Recover missing context while preserving the original work</a><a href="#evidence">What the measurements establish</a><a href="#reproduce">Read the same material yourself</a></nav></details></aside><article class="prose"><p>Long-running work accumulates material: the original goal, later constraints, attempted routes, failed experiments and current progress. Sending everything again on each continuation repeats more and more content; keeping only a summary can make the original basis of a decision difficult to recover.</p>
<p>Selective JSON Pointer lookup by itself is straightforward—it folds long-tail history not needed for the immediate decision. The core mechanism in LoopX's context delivery is <strong>compaction-cycle-bounded structured delta context</strong>: complete sources are saved first, unchanged typed subtrees are reused exactly against a verified baseline within the active <code>context_epoch</code>, and any host compaction or digest mismatch atomically resets to a fresh complete baseline rather than chaining dangling deltas.</p>
<h2 id="results">Evidence: separate context comparisons, cycle deltas and task ablation</h2>
<h3 id="four-stage-cascade">Four mechanisms, with separate measurement baselines</h3>
<p>Complete capture, Progressive views, compaction-cycle structured Delta and a bounded <code>--initial-read</code> are composable mechanisms, but their bytes do not decrease monotonically for every input. Delta requires a verified same-cycle baseline; a new epoch, mismatch or smaller full representation uses complete delivery. The archived tutorial below measures <strong>three independent comparisons, not a same-source four-stage cascade</strong>.</p>
<figure class="diagram" data-comparison-progressive="5107/57014" data-comparison-cycle-delta="2164/5543" data-comparison-manual-select="674/51547"><p class="diagram-label">Separate tutorial comparisons and 18h compaction-cycle Delta observations</p><a href="../images/context-delivery/context-cascade-en.svg" target="_blank" rel="noopener" aria-label="Open the independent context comparisons at full size"><img src="../images/context-delivery/context-cascade-en.svg" alt="Independent tutorial comparisons: Progressive view 5,107 / 57,014 B (9.0%); in-cycle Delta 2,164 / 5,543 B (39.0%); manual selection 674 / 51,547 B (1.3% body). ANN and eight-task archived cohorts retain separate baselines." width="1440" height="690" loading="lazy" style="width:100%;height:auto;border-radius:10px;margin:8px 0 12px 0"></a><figcaption>A: Three archived tutorial comparisons from <code>measurements.json</code>: the necessary view is 5,107 / 57,014 B (9.0%); the next capture's Delta file is 2,164 / 5,543 B of its full Progressive delivery file (39.0%); manually selecting three paths from the separate 51,547 B <code>capture.json</code> returns 674 B (1.3% body), or 1,362 B including CLI metadata (2.6%). The 674 B is <strong>not</strong> a measured <code>--initial-read</code> after Progressive + Delta. These saved observations belong to the revision recorded in <code>measurements.json</code>; output size may change with source revision and reader paths. B1: ANN's archived 18h pairs compare Delta against selected packets, with 38.54% reduction across 46 events and 74.25% across 24 in-cycle Delta events. B2: Eight-task aggregates retain the separate 213-wake and 112-continuation denominators; their percentages cannot be chained into this tutorial.</figcaption></figure>
<h3 id="multitask-context-byte-ratios">Eight tasks: single-layer payloads (Progressive / lossless Delta file) vs stacked first-read</h3>
<p>When reading the published eight-task Four-Arm Context ON 18h table below, separate <strong>single-layer file payloads</strong> from the <strong>stacked first-read entrypoint</strong>. Across 213 model-facing wakes (101 new-session or post-compaction baseline reads and 112 in-cycle continuations), the published “In-cycle Delta payload” column (4.49 MB / ≈ 12.53 MB = <strong>35.8%</strong>) measures the <strong>unprojected lossless <code>delivery.json</code> file on disk (All → Delta)</strong>—a parallel single-layer cut alongside “Progressive projection” (7.29 / 22.41 MB = <strong>32.5%</strong>, All → Progressive), not stacked <code>Progressive + Delta</code>. Both mechanisms stack in the final column, <strong>Prog+Delta first-screen (3.0% body / 5.0% CLI)</strong>. Per-task cells retain the published values; totals are recomputed from those cells without raw per-wake logs.</p>
<ul>
<li><strong>Progressive reading:</strong> across all 213 wakes, full packets fall from <strong>22.41 MB to 7.29 MB (−67.5%)</strong>. The projection retains 32.5% of original bytes, with a per-task range of 26.5%–39.0%; unselected candidates and historical detail remain available on demand.</li>
<li><strong>In-cycle deltas:</strong> across 112 continuations, corresponding full packets fall from <strong>approximately 12.53 MB to 4.49 MB (−64.2%)</strong>. Deltas retain 35.8% of same-wake full bytes, with a per-task range of 20.7%–47.1%.</li>
<li><strong>Progressive + delta first read:</strong> for those same 112 continuations, the <code>--initial-read</code> body carries <strong>3.0%</strong> of original bytes, or <strong>5.0%</strong> including the CLI JSON envelope (−97.0% / −95.0%). First-read size is not whole-episode model input.</li>
<li><strong>Single-layer progressive view (All → Progressive):</strong> across all 213 wakes, full packets fall from <strong>22.41 MB to 7.29 MB (−67.5%)</strong>, retaining 32.5% of original bytes (26.5%–39.0% per task) while keeping unselected candidates and historical detail expandable on demand.</li>
<li><strong>Single-layer lossless delta file (All → Delta):</strong> across 112 continuations, unprojected lossless delta files fall from <strong>approximately 12.53 MB to 4.49 MB (−64.2%)</strong>, retaining 35.8% of same-wake full bytes (20.7%–47.1% per task).</li>
<li><strong>Stacked entrypoint (Progressive + Delta First Read):</strong> for those same 112 continuations, stacking progressive selection with compaction-cycle deltas brings the <code>--initial-read</code> body to <strong>3.0%</strong> of original bytes, or <strong>5.0%</strong> including the CLI JSON envelope (−97.0% / −95.0%). First-read size is not whole-episode model input.</li>
</ul>
<figure class="diagram"><p class="diagram-label">8-task Four-Arm Context ON byte ratios (N = 213 wakes, 112 in-cycle Deltas)</p><a href="../images/context-delivery/multitask-byte-ratios-en.svg" target="_blank" rel="noopener" aria-label="Open the 8-task Progressive vs. Delta control-plane byte ratio chart at full size"><img src="../images/context-delivery/multitask-byte-ratios-en.svg" alt="8-Task Four-Arm Context ON 18h Control-Plane Byte Share: Progressive 32.5% (-67.5%), In-Cycle Delta 35.8% (-64.2%), Prog+Delta First-Screen 3.0% / 5.0%" width="1380" height="680" loading="lazy" style="width:100%;height:auto;border-radius:10px;margin:8px 0 12px 0"></a><figcaption>A: Per-task shares, with Progressive over all wakes and Delta/first-read over in-cycle wakes only. B: Separate cohort totals: Progressive 7.29 / 22.41 MB over 213 wakes; Delta 4.49 / approximately 12.53 MB over 112 wakes. First-read body / CLI totals are 0.374 / 0.631 MB for the same 112 wakes. The two denominators are not interchangeable. Open image for full size.</figcaption></figure>
<figure class="diagram"><p class="diagram-label">8-task Four-Arm Context ON byte audit (N = 213 wakes, 112 in-cycle continuations)</p><a href="../images/context-delivery/multitask-byte-ratios-en.svg" target="_blank" rel="noopener" aria-label="Open the 8-task single-layer vs stacked context byte ratio chart at full size"><img src="../images/context-delivery/multitask-byte-ratios-en.svg" alt="8-Task Four-Arm Context ON 18h Control-Plane Byte Audit: All 100% vs Lossless Delta File 35.8%, Progressive View 32.5%, and Stacked Prog+Delta First-Read 3.0% / 5.0%" width="1400" height="680" loading="lazy" style="width:100%;height:auto;border-radius:10px;margin:8px 0 12px 0"></a><figcaption>A: Per-task shares comparing the two single-layer payloads (Progressive over all 213 wakes; lossless Delta file over 112 continuations) against the stacked first-read body. B: Cohort totals anchored at 100% Full: lossless Delta file ≈ 35.8% (4.49 / ≈ 12.53 MB), Progressive view 32.5% (7.29 / 22.41 MB), and stacked Prog+Delta first-read ≈ 5.0% (CLI) / ≈ 3.0% (body). The two denominators are not interchangeable.</figcaption></figure>
<details><summary>Expand the eight-task data table</summary>
<div class="table-scroll" role="region" tabindex="0" aria-label="8-task Four-Arm Context ON control-plane byte ratio table"><table style="min-width:880px">
<thead>
Expand Down
Loading
Loading