<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[本地 Coding Agent 实测：NInfer 96K 已经很好用，KVMem 150K 我暂时先放弃了  5060ti 16g +32g内存 实测]]></title><description><![CDATA[<h2>本地 Coding Agent 实测：96K 已经能干活，150K 还需要观察</h2>
<blockquote>
<p dir="auto"><strong>我现在的选择：继续用 NInfer 96K，暂时停掉 KVMem 150K。</strong><br />
对 Coding Agent 来说，真正重要的是连续开发几个小时以后，还能不能把项目正确做完。</p>
</blockquote>
<h2>01 · NInfer 96K：已经是我愿意长期用的方案</h2>
<p dir="auto">我之前用 96K 跑过一次比较完整的长程项目。不是简单写几个函数，而是接手一个现有项目，完成真实的 <strong>Brownfield 全栈任务</strong>。</p>
<p dir="auto">从 Domain、API、SQLite、前端，一路做到测试、浏览器 E2E、Vision 检查和最终报告。</p>
<h3>一次 4 小时的完整开发</h3>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="text-align:left">项目</th>
<th style="text-align:left">实测记录</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">任务类型</td>
<td style="text-align:left">Brownfield：接手现有项目，完成全栈业务闭环</td>
</tr>
<tr>
<td style="text-align:left">运行时长</td>
<td style="text-align:left"><strong>4 小时 02 分</strong></td>
</tr>
<tr>
<td style="text-align:left">Agent steps</td>
<td style="text-align:left">约 <strong>293</strong> 个</td>
</tr>
<tr>
<td style="text-align:left">Cumulative tokens</td>
<td style="text-align:left">约 <strong>16.5M</strong></td>
</tr>
<tr>
<td style="text-align:left">Context compaction</td>
<td style="text-align:left"><strong>8 次</strong></td>
</tr>
<tr>
<td style="text-align:left">Domain / API 测试</td>
<td style="text-align:left"><strong>通过</strong></td>
</tr>
<tr>
<td style="text-align:left">Build</td>
<td style="text-align:left"><strong>PASS</strong></td>
</tr>
<tr>
<td style="text-align:left">完整 E2E</td>
<td style="text-align:left"><strong>40/40，连续两轮 PASS</strong></td>
</tr>
</tbody>
</table>
<p dir="auto">中间当然也踩过坑：Google Fonts、Playwright、React UI race、Vision timeout、端口残留……</p>
<p dir="auto">但重要的是：<strong>Agent 没有因为跑得久、压缩了 8 次上下文，就把整个项目做崩。</strong></p>
<p dir="auto">到最后，它仍然能分清：</p>
<ul>
<li>当前业务链推进到哪里，哪些文件已经修改；</li>
<li>哪些测试已经通过，哪些问题还需要处理；</li>
<li>哪些是业务 bug，哪些只是测试 race condition。</li>
</ul>
<p dir="auto">最终，它把整个项目做完了。</p>
<h3>我对 compaction 的看法变了</h3>
<p dir="auto">以前我把 compaction 当缺点。现在反而觉得，它可能是 Coding Agent 的一种 <strong>“工作记忆整理机制”</strong>。</p>
<p dir="auto">旧代码、旧错误、旧 tool output，以及已经失效的中间状态，会被定期压缩掉。留下来的信息，反而更接近当前真正需要的内容。</p>
<blockquote>
<p dir="auto"><strong>适度整理上下文，可能比一直保留所有历史更有用。</strong></p>
</blockquote>
<hr />
<h2>02 · 再跑一次 Greenfield：从空目录开始验证</h2>
<p dir="auto">为了排除“之前那个项目本身已经有基础”的影响，我又建了一个完全空白的目录，只给 Agent 一份需求文件。</p>
<p dir="auto">这次是真正的 <strong>Greenfield 从零开发</strong>。</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="text-align:left">维度</th>
<th style="text-align:left">任务要求</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">起点</td>
<td style="text-align:left">空白目录 + 一份需求文件</td>
</tr>
<tr>
<td style="text-align:left">前端</td>
<td style="text-align:left">React 19 + Vite + Ant Design + ECharts</td>
</tr>
<tr>
<td style="text-align:left">后端</td>
<td style="text-align:left">Node API + SQLite</td>
</tr>
<tr>
<td style="text-align:left">业务闭环</td>
<td style="text-align:left">岗位 → 任务 → 能力 → 课程 → 学习证据 → Rubric → 评价 → 修订 → 学生画像</td>
</tr>
</tbody>
</table>
<p dir="auto">目前这轮 96K 的表现让我更满意。<strong>大约 50 分钟左右</strong>，已经推进到：</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="text-align:left">检查项</th>
<th style="text-align:left">当时的进度 / 结果</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">SQLite</td>
<td style="text-align:left">完成</td>
</tr>
<tr>
<td style="text-align:left">Domain</td>
<td style="text-align:left">完成</td>
</tr>
<tr>
<td style="text-align:left">API</td>
<td style="text-align:left">完成</td>
</tr>
<tr>
<td style="text-align:left">前端</td>
<td style="text-align:left">基本完成</td>
</tr>
<tr>
<td style="text-align:left">Build</td>
<td style="text-align:left"><strong>PASS</strong></td>
</tr>
<tr>
<td style="text-align:left">完整 E2E</td>
<td style="text-align:left"><strong>32/32 checks × 2，连续两轮 PASS</strong></td>
</tr>
<tr>
<td style="text-align:left">生成速度</td>
<td style="text-align:left">约 <strong>70 tok/s</strong></td>
</tr>
<tr>
<td style="text-align:left">Cache hit</td>
<td style="text-align:left">约 <strong>97%</strong></td>
</tr>
</tbody>
</table>
<p dir="auto">即使已经发生 context compaction，项目推进仍然比较稳定。到目前为止，没有明显出现这种严重的状态漂移：</p>
<blockquote>
<p dir="auto">“我记得文件应该是这样，但磁盘里怎么不是这样？”</p>
</blockquote>
<hr />
<h2>03 · 为什么又去测试 KVMem 150K？</h2>
<p dir="auto">原因很简单：既然 96K 已经能跑几个小时，那自然会想——<strong>把上下文扩大到 150K，是不是就能减少 compaction？</strong></p>
<p dir="auto">理论上很漂亮，于是我测试了：</p>
<p dir="auto"><strong>NInfer + KVMem + Qwen3.8-27B，150K context。</strong></p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="text-align:left">项目</th>
<th style="text-align:left">实测表现</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">上下文配置</td>
<td style="text-align:left"><strong>150K</strong></td>
</tr>
<tr>
<td style="text-align:left">生成速度</td>
<td style="text-align:left"><strong>60～70 tok/s</strong></td>
</tr>
<tr>
<td style="text-align:left">显存情况</td>
<td style="text-align:left">没有直接 OOM</td>
</tr>
<tr>
<td style="text-align:left">能否运行</td>
<td style="text-align:left"><strong>能跑</strong></td>
</tr>
</tbody>
</table>
<p dir="auto">这也是 KVMem 最吸引人的地方：把更大的历史 KV 放到系统内存，再按需调度，让 16GB 显存的机器也有机会把上下文推到 150K，甚至更高。</p>
<p dir="auto">但我真正关心的问题是：</p>
<blockquote>
<p dir="auto"><strong>150K 里面，到底有多少是真正稳定、有效、可用的上下文？</strong></p>
</blockquote>
<h3>一个多小时后，开始出现状态混淆</h3>
<p dir="auto">我用 150K KVMem 跑的任务，和现在这轮 96K Greenfield 非常接近，同样从空目录开始。</p>
<p dir="auto">跑到大约一个多小时以后，出现了一些让我不太放心的现象：</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="text-align:left">环节</th>
<th style="text-align:left">发生了什么</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">修改 <code>domain.js</code></td>
<td style="text-align:left">按记忆中的代码做 exact edit，返回 <code>old_string was not found</code></td>
</tr>
<tr>
<td style="text-align:left">重新读取文件</td>
<td style="text-align:left">判断“磁盘上的 domain.js 和我记忆中的不一样”</td>
</tr>
<tr>
<td style="text-align:left">排查原因</td>
<td style="text-align:left">一度怀疑文件被其他东西改过</td>
</tr>
<tr>
<td style="text-align:left">再次 Read</td>
<td style="text-align:left">才意识到自己对当前文件版本的记忆已经不准确</td>
</tr>
<tr>
<td style="text-align:left">修改 <code>index.js</code></td>
<td style="text-align:left">又出现过类似情况</td>
</tr>
</tbody>
</table>
<p dir="auto">让我介意的不是一次普通 typo，而是：<strong>Agent 开始把历史版本代码和当前磁盘状态混淆。</strong></p>
<h3>现象看到了，但原因不能直接归给 KVMem</h3>
<p dir="auto">我不能证明这一定是 KVMem 导致的。可能的原因包括：</p>
<ul>
<li>超长上下文本身的 retrieval interference；</li>
<li>Harness 对 tool result 的压缩；</li>
<li>旧版本代码在上下文里长期残留；</li>
<li>KV 分页、检索或 checkpoint 机制；</li>
<li>模型在超长上下文里的 attention dilution。</li>
</ul>
<p dir="auto">这些都只是可能的解释，<strong>没有完成归因验证</strong>。</p>
<p dir="auto">但对我来说，没有必要一定找到最终责任人：我是拿它干活，不是做论文。</p>
<hr />
<h2>04 · 96K 和 150K，实际用起来差在哪里？</h2>
<p dir="auto">下面是我目前的使用体验，不是严格控制变量的性能结论。</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="text-align:left">对比维度</th>
<th style="text-align:left">NInfer 96K</th>
<th style="text-align:left">KVMem 150K</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">上下文容量</td>
<td style="text-align:left">小一些</td>
<td style="text-align:left">更大</td>
</tr>
<tr>
<td style="text-align:left">Compaction</td>
<td style="text-align:left">更多</td>
<td style="text-align:left">理论上更少</td>
</tr>
<tr>
<td style="text-align:left">当前工作状态</td>
<td style="text-align:left">比较干净，推进稳定</td>
<td style="text-align:left">出现过历史版本与当前状态混淆</td>
</tr>
<tr>
<td style="text-align:left">历史信息</td>
<td style="text-align:left">定期压缩整理</td>
<td style="text-align:left">旧代码、旧 tool output、旧状态可能长期残留</td>
</tr>
<tr>
<td style="text-align:left">错误表现</td>
<td style="text-align:left">大部分是正常 coding bug</td>
<td style="text-align:left">出现 stale-state / memory drift 风险</td>
</tr>
<tr>
<td style="text-align:left">修复体验</td>
<td style="text-align:left">测试后可以快速自修复</td>
<td style="text-align:left">出现过需要重新读取文件、纠正自身记忆的情况</td>
</tr>
<tr>
<td style="text-align:left">我的当前定位</td>
<td style="text-align:left"><strong>主力方案</strong></td>
<td style="text-align:left"><strong>实验方案</strong></td>
</tr>
</tbody>
</table>
<p dir="auto">所以我现在越来越怀疑：<strong>Coding Agent 的最优上下文，并不是越大越好。</strong></p>
<p dir="auto">它可能存在一个甜点区。对我这台机器来说，目前这个甜点区很可能就在：</p>
<blockquote>
<p dir="auto"><strong>Qwen3.8-27B + NInfer 96K</strong></p>
</blockquote>
<hr />
<h2>05 · 为什么暂时停掉 KVMem 150K？</h2>
<p dir="auto">我觉得 KVMem 很有技术价值。它解决的是一个非常现实的问题：<strong>本地显存有限，但大家又想跑更长的 context。</strong></p>
<p dir="auto">这个方向值得继续关注。不过，现阶段我不会把它当作自己的 Coding Agent 主力方案。</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="text-align:left">验证目标</th>
<th style="text-align:left">它回答的问题</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left">150K 成功加载</td>
<td style="text-align:left">上下文能不能装下、能不能运行？</td>
</tr>
<tr>
<td style="text-align:left">连续开发 3～4 小时</td>
<td style="text-align:left">Agent 还能不能稳定知道自己在干什么，并把项目做完？</td>
</tr>
</tbody>
</table>
<p dir="auto">这是两个完全不同的问题。</p>
<p dir="auto">Coding Agent 要反复经历：</p>
<p dir="auto"><strong>代码修改 → 测试 → 再修改 → 浏览器 → API → E2E → 回归 → 报告</strong></p>
<p dir="auto">任何一次状态混乱，都可能让它把前面已经正确的东西改坏。</p>
<p dir="auto">因此，在我的使用场景下：</p>
<blockquote>
<p dir="auto"><strong>稳定性 &gt; 上下文数字</strong><br />
会正确地忘掉一部分旧东西，可能比什么都不忘更重要。</p>
</blockquote>
<h2>06 · 我现在的配置和建议</h2>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="text-align:left">方案</th>
<th style="text-align:left">当前选择</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left"><strong>Qwen3.8-27B GSQ-RCO IQ3_S-MTP + NInfer 96K</strong></td>
<td style="text-align:left">继续作为主力配置</td>
</tr>
<tr>
<td style="text-align:left"><strong>KVMem 150K</strong></td>
<td style="text-align:left">暂时停用，等待后续版本再测</td>
</tr>
</tbody>
</table>
<p dir="auto">后续我会关注这些方面的打磨：</p>
<ul>
<li>Long-context correctness</li>
<li>Page boundary</li>
<li>KV retrieval</li>
<li>Checkpoint / replay</li>
<li>超长 Agent session 稳定性</li>
</ul>
<p dir="auto">如果你现在也准备部署本地 Coding Agent，我个人的建议是：<strong>不要为了 150K、200K 这个数字急着上 KVMem。</strong></p>
<p dir="auto">如果已经有一套稳定的 64K、96K 或类似方案，先把它跑稳。</p>
<p dir="auto">真正衡量一个 Coding Agent 的，是跑几个小时以后，它还能不能把项目正确做完。</p>
<blockquote>
<p dir="auto"><strong>至少目前我的实测结论是：96K 已经能干活。150K KVMem 更像值得研究的实验方案，还不是我愿意长期依赖的生产方案。</strong></p>
</blockquote>
]]></description><link>https://lcz.me/topic/2167</link><generator>RSS for Node</generator><lastBuildDate>Mon, 12 Oct 2026 15:39:15 GMT</lastBuildDate><atom:link href="https://lcz.me/topic/2167.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 07 Oct 2026 08:19:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to 本地 Coding Agent 实测：NInfer 96K 已经很好用，KVMem 150K 我暂时先放弃了  5060ti 16g +32g内存 实测 on Fri, 09 Oct 2026 23:47:29 GMT]]></title><description><![CDATA[<p dir="auto">windows下原来是用<a href="https://github.com/kvmem/kvmem-llama.cpp/releases%EF%BC%8C%E7%BA%AF%E7%89%88ninfer%E5%90%8E%E7%AB%AF%E4%B8%8D%E6%98%AF%E7%BB%995060Ti%E7%94%A8%E7%9A%84" rel="nofollow ugc">https://github.com/kvmem/kvmem-llama.cpp/releases，纯版ninfer后端不是给5060Ti用的</a></p>
]]></description><link>https://lcz.me/post/23640</link><guid isPermaLink="true">https://lcz.me/post/23640</guid><dc:creator><![CDATA[hyaska]]></dc:creator><pubDate>Fri, 09 Oct 2026 23:47:29 GMT</pubDate></item><item><title><![CDATA[Reply to 本地 Coding Agent 实测：NInfer 96K 已经很好用，KVMem 150K 我暂时先放弃了  5060ti 16g +32g内存 实测 on Thu, 08 Oct 2026 11:40:30 GMT]]></title><description><![CDATA[<p dir="auto">一直没搞懂NInfer，运行下载模型的bat，只有</p>
<pre><code>NInfer - model artifact downloader  (Hugging Face)
====================================================

 [1]  Qwen3.6-27B        groupwise-int   qwen3_6_27b.ninfer         ~16.3 GiB
 [2]  Qwen3.6-27B NVFP4  nvfp4           qwen3_6_27b_nvfp4.ninfer   ~17.1 GiB
 [3]  Qwen3.8-27B        groupwise-int   qwen3_8_27b.ninfer          ~19.0 GiB
 [4]  Qwen3.8-27B NVFP4  nvfp4           qwen3_8_27b_nvfp4.ninfer   ~22.1 GiB
 [5]  Qwen3.6-35B-A3B    groupwise-int   qwen3_6_35b_a3b.ninfer     ~21.2 GiB
 [6]  Qwen3.8-27B NVFP4F  nvfp4full       qwen3_8_27b_nvfp4full.ninfer  ~17.1 GiB

 [0]  cancel
</code></pre>
<p dir="auto">楼主的那个不知道哪下载<br />
是魔搭这个吗<br />
<a href="https://www.modelscope.cn/models/fyb423/Swift-1.5-Qwen3.8-27B-GSQ-RCO-NInfer/files" rel="nofollow ugc">https://www.modelscope.cn/models/fyb423/Swift-1.5-Qwen3.8-27B-GSQ-RCO-NInfer/files</a></p>
]]></description><link>https://lcz.me/post/23282</link><guid isPermaLink="true">https://lcz.me/post/23282</guid><dc:creator><![CDATA[hyaska]]></dc:creator><pubDate>Thu, 08 Oct 2026 11:40:30 GMT</pubDate></item><item><title><![CDATA[Reply to 本地 Coding Agent 实测：NInfer 96K 已经很好用，KVMem 150K 我暂时先放弃了  5060ti 16g +32g内存 实测 on Wed, 07 Oct 2026 10:00:58 GMT]]></title><description><![CDATA[<p dir="auto">下次发长文本让AI整理成markdown格式，这次我帮你做了。</p>
]]></description><link>https://lcz.me/post/23051</link><guid isPermaLink="true">https://lcz.me/post/23051</guid><dc:creator><![CDATA[terry]]></dc:creator><pubDate>Wed, 07 Oct 2026 10:00:58 GMT</pubDate></item><item><title><![CDATA[Reply to 本地 Coding Agent 实测：NInfer 96K 已经很好用，KVMem 150K 我暂时先放弃了  5060ti 16g +32g内存 实测 on Wed, 07 Oct 2026 08:30:03 GMT]]></title><description><![CDATA[<p dir="auto"><img src="https://upload.lcz.me/uploads/6bfe545e-6939-4d1d-86af-4c2c117a23bd.png" alt="下载.png" class="img-markdown  img-fluid" /></p>
<p dir="auto">补一个任务完成的截图</p>
]]></description><link>https://lcz.me/post/23041</link><guid isPermaLink="true">https://lcz.me/post/23041</guid><dc:creator><![CDATA[focuser li]]></dc:creator><pubDate>Wed, 07 Oct 2026 08:30:03 GMT</pubDate></item></channel></rss>