<?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[把 Strata+qwen3.8-flash-next-unsloth-ud-q4_k_xl 接进 Claude Code的五个坑]]></title><description><![CDATA[<p dir="auto">把 Strata+qwen3.8-flash-next-unsloth-ud-q4_k_xl 模型（262,144 上下文），通过 CC Switch 接进 Claude Code 当日常 coding 的模型。</p>
<p dir="auto">连通本身没什么难度，<code>claude -p</code> 第一次就出结果。麻烦全在后面，一个坑接一个坑。</p>
<p dir="auto">五个坑里四个是上下文的问题。下面按踩到的顺序记。</p>
<hr />
<h2>接入</h2>
<p dir="auto">Claude Code 插件通过 CC Switch 接入：</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>字段</th>
<th>值</th>
</tr>
</thead>
<tbody>
<tr>
<td>请求地址</td>
<td><code>http://&lt;推理机&gt;:18090</code>，只填基址，不带路径</td>
</tr>
<tr>
<td>上游格式</td>
<td>Anthropic Messages（原生）</td>
</tr>
<tr>
<td>认证字段</td>
<td>ANTHROPIC_AUTH_TOKEN（默认）</td>
</tr>
</tbody>
</table>
<hr />
<h2>坑 1：「获取模型列表」失败，可以无视</h2>
<p dir="auto">点那个按钮一直失败。为了确认是客户端还是服务端的问题，DSH在本机起了个探针服务，把地址指过去：</p>
<p dir="auto"><img src="https://upload.lcz.me/uploads/1eb8b013-faaa-41b9-8243-7c18a720dd24.jpeg" alt="获取模型列表失败" class="img-markdown  img-fluid" /></p>
<p dir="auto">探针一条记录都没收到。查数据库、应用日志、活动连接，结论一致：那个按钮根本没发出 HTTP 请求，在客户端就失败了。</p>
<p dir="auto">它只是个自动填模型名的便利功能。Strata 不校验模型名，手填 <code>qwen3.8-flash-next-unsloth-ud-q4_k_xl</code> 直接保存就行。在这个按钮上耗掉的时间，比全篇其他坑加起来还多。</p>
<hr />
<h2>坑 2：<code>[1m]</code> 不是 CC Switch 加的</h2>
<p dir="auto">第一次跑通后，输出里带着一条：</p>
<pre><code>[claude-code:unrecognized_model] {"model":"qwen3.8-flash-next-unsloth-ud-q4_k_xl[1m]"}
</code></pre>
<p dir="auto">CC Switch 表单里确实有个「声明支持 1M」的勾，但没选中。数据库和 <code>settings.json</code> 里的模型名都是干净的：</p>
<pre><code>ANTHROPIC_DEFAULT_SONNET_MODEL = 'qwen3.8-flash-next-unsloth-ud-q4_k_xl'
</code></pre>
<p dir="auto"><code>[1m]</code> 是 Claude Code 自己的 1M 上下文标记，官方文档里的模型别名就有 <code>sonnet[1m]</code> / <code>opus[1m]</code>。</p>
<hr />
<h2>坑 3：这个标记会导致 400</h2>
<p dir="auto">带上之后，Claude Code 认为窗口是 100 万，于是请求 <code>max_tokens: 300000</code>，Strata 直接拒绝：</p>
<p dir="auto"><img src="https://upload.lcz.me/uploads/e86cc793-41db-49b6-bbb8-48cd69fa4e48.jpeg" alt="Strata 服务端的 400" class="img-markdown  img-fluid" /></p>
<p dir="auto">图里它自己把解法写出来了。</p>
<hr />
<h2>坑 4：200k 兜底，以及修它时会踩的第二个坑</h2>
<p dir="auto">没设变量时，Claude Code 会提示：</p>
<blockquote>
<p dir="auto"><img src="https://lcz.me/assets/plugins/nodebb-plugin-emoji/emoji/android/26a0.png?v=ec85ec55bc1" class="not-responsive emoji emoji-android emoji--warning" style="height:1.4em;width:auto;vertical-align:middle" title="⚠" alt="⚠" /> Model "qwen3.8-flash-next-unsloth-ud-q4_k_xl" isn't recognized · context assumed to be 200k tokens</p>
</blockquote>
<p dir="auto">这不是提示，是客户端会真执行：到 20 万就 auto-compact，对着 262,144 的上限白白丢掉六万 token。兜底值高了同样有害，会一路撞到网关硬限制才报错。</p>
<p dir="auto">正确做法是显式声明窗口。但官方文档里这节有个前提：</p>
<blockquote>
<p dir="auto">If ... the ID contains <code>[1m]</code>, in any casing, Claude Code assumes a 1M window for it and the variable doesn't apply on its own. To correct the window while keeping proactive compaction, also set <code>CLAUDE_CODE_DISABLE_1M_CONTEXT=1</code>.</p>
</blockquote>
<p dir="auto">也就是说，模型 ID 里带着 <code>[1m]</code> 时，声明窗口的变量单独失效。要么同时加 <code>CLAUDE_CODE_DISABLE_1M_CONTEXT=1</code>，要么把模型名弄干净。</p>
<p dir="auto">我用的后者，只留一条 Haiku 映射加 <code>model: haiku</code>，变量就生效了：</p>
<pre><code class="language-json">"env": {
  "CLAUDE_CODE_MAX_CONTEXT_TOKENS": "262144"
}
</code></pre>
<p dir="auto">重启后 <code>/context</code> 从 <code>200k</code> 变成 262.1k：</p>
<p dir="auto"><img src="https://upload.lcz.me/uploads/e73bc550-18f9-460f-9c6d-9d591b3ca994.jpeg" alt="上下文窗口修复前后" class="img-markdown  img-fluid" /></p>
<hr />
<h2>坑 5：把压缩点设成 200,000，窗口也跟着变成 200k</h2>
<p dir="auto">窗口修好之后我又想"再稳一点"：声明 262,144，把压缩点压到 200,000，留六万富余。于是用 <code>/autocompact</code> 设了 <code>autoCompactWindow: 200000</code>。</p>
<p dir="auto">重启，<code>/context</code> 变成 <code>9.6k/200k</code>——<strong>它把 200k 当成了窗口本身</strong>：</p>
<p dir="auto"><img src="https://upload.lcz.me/uploads/176d7a85-9d1b-467c-9b29-3344b84d3688.jpeg" alt="同一个会话，唯一的差别是这个键" class="img-markdown  img-fluid" /></p>
<p dir="auto">翻 CLI 的代码才明白语义：</p>
<pre><code class="language-js">if (window &lt;= b) return y;                                           // 配置值 ≥ 声明窗口 → 用声明值
return { window: Math.min(s, b), configured: b, source: "settings" }  // 否则用配置值
</code></pre>
<p dir="auto"><code>autoCompactWindow</code> 给工作窗口设上限，不是设压缩阈值。阈值是从这个上限往下扣出来的：</p>
<pre><code>声明窗口 262,144 → min(262144, 200000) = 200,000 → 减输出预留 → 再减 33k buffer → 压缩点约 167k
</code></pre>
<p dir="auto">所以实际能用的是 167k 左右，不是 200k，比我以为的少了一大截。想"留六万富余"，结果扔了将近十万。</p>
<p dir="auto">改回 <code>auto</code> 之后恢复成 <code>262.1k</code>，buffer 33k，可用约 229k，重启后不变：</p>
<pre><code class="language-json">"modelSettings": {
  "qwen3.8-flash-next-unsloth-ud-q4_k_xl": {
    "effortLevel": "low",
    "autoCompactWindow": "auto"
  }
}
</code></pre>
<p dir="auto">这个键要么留 <code>auto</code>，要么设一个不小于声明窗口的值（等于没设）。<strong>别拿它来留余量</strong>——余量是从窗口里扣的，不是从阈值里扣的。</p>
<hr />
<h2>两层防护</h2>
<p dir="auto">客户端这边折腾完之后，服务端还应该有一层兜底。</p>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>层</th>
<th>配置</th>
<th>负责</th>
</tr>
</thead>
<tbody>
<tr>
<td>客户端</td>
<td>声明真实窗口 262,144，压缩点留 <code>auto</code></td>
<td>在到顶前主动压缩对话</td>
</tr>
<tr>
<td>服务端</td>
<td><code>fit_max_tokens: true</code></td>
<td>兜住客户端超额的单次输出请求</td>
</tr>
</tbody>
</table>
<p dir="auto">服务端那项加完之后，用之前必然报 400 的参数实测：</p>
<pre><code>之前: 400 prompt (16 tokens) + max tokens (300000) exceeds the context (262144)
现在: reply 'FIT OK'   stop_reason: end_turn
</code></pre>
<p dir="auto">日志里 <code>400 invalid request</code> 的总数没有增加。</p>
<p dir="auto">**客户端管对话别太长，服务端管单次输出别要太多。**只配一边，另一边迟早撞墙。顺带一提，服务端这个变量还解决了一类更普遍的毛病：agent 客户端普遍把输出上限按上下文满额来要，不加就只能靠客户端自觉。</p>
<hr />
<h2>小结</h2>
<p dir="auto">五个坑里，除了第一个是客户端按钮的问题，其余四个都指向同一件事：<strong>客户端不知道这个模型有多大，于是自己编了一套答案</strong>。</p>
<p dir="auto">编的方式有三种。写小了，客户端提前压缩，安静地扔掉一半上下文；写大了，一路灌到服务端才 400，报错还跟真正的原因隔着一层。第三种是我自己造的——为了留点余量去设压缩点，结果把工作窗口一起改小了，而 <code>/context</code> 显示出来的数字看着都正常。</p>
<p dir="auto">最后一条是这次最贵的教训。<code>autoCompactWindow</code> 这个名字听着就是"到多大开始压缩"，谁也想不到它会把工作窗口本身也一起改小。</p>
]]></description><link>https://lcz.me/topic/2414</link><generator>RSS for Node</generator><lastBuildDate>Fri, 23 Oct 2026 02:54:04 GMT</lastBuildDate><atom:link href="https://lcz.me/topic/2414.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 18 Oct 2026 11:22:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to 把 Strata+qwen3.8-flash-next-unsloth-ud-q4_k_xl 接进 Claude Code的五个坑 on Thu, 22 Oct 2026 23:43:57 GMT]]></title><description><![CDATA[<p dir="auto">好的 感謝解答 我也來試一試。</p>
]]></description><link>https://lcz.me/post/26836</link><guid isPermaLink="true">https://lcz.me/post/26836</guid><dc:creator><![CDATA[Charly Cheng]]></dc:creator><pubDate>Thu, 22 Oct 2026 23:43:57 GMT</pubDate></item><item><title><![CDATA[Reply to 把 Strata+qwen3.8-flash-next-unsloth-ud-q4_k_xl 接进 Claude Code的五个坑 on Thu, 22 Oct 2026 03:09:01 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/charly-cheng" aria-label="Profile: charly-cheng">@<bdi>charly-cheng</bdi></a><br />
老特之前曾经为此专门发了一个本地模型如何接入Codex的帖子，你可以搜搜。</p>
]]></description><link>https://lcz.me/post/26651</link><guid isPermaLink="true">https://lcz.me/post/26651</guid><dc:creator><![CDATA[wml-ai]]></dc:creator><pubDate>Thu, 22 Oct 2026 03:09:01 GMT</pubDate></item><item><title><![CDATA[Reply to 把 Strata+qwen3.8-flash-next-unsloth-ud-q4_k_xl 接进 Claude Code的五个坑 on Thu, 22 Oct 2026 03:07:32 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/charly-cheng" aria-label="Profile: charly-cheng">@<bdi>charly-cheng</bdi></a><br />
OpenAI已经全面改为Responses格式，目前主流的开放模型虽然都宣称支持该格式，但是我个人实际体验来说兼容性不好，尤其是在Codex里接入本地模型后，工具调用时体验较差，长任务过程中会有多次中断。有很多路由转换的工具，包括CC Switch的新版也加入了聚合模式，简化了将本地模型整合入Codex的过程，但是具体使用过程中仍然不如官方模型那么丝滑。而Claude Code就没有这些问题，主流模型都支持Anthropic messages格式，通过CC Switch接入后，无论是线上模型还是本地模型接入后都能很顺利的工作。推荐使用Deepseek Harness，灵活、方便、功能强大。</p>
]]></description><link>https://lcz.me/post/26650</link><guid isPermaLink="true">https://lcz.me/post/26650</guid><dc:creator><![CDATA[wml-ai]]></dc:creator><pubDate>Thu, 22 Oct 2026 03:07:32 GMT</pubDate></item><item><title><![CDATA[Reply to 把 Strata+qwen3.8-flash-next-unsloth-ud-q4_k_xl 接进 Claude Code的五个坑 on Thu, 22 Oct 2026 00:46:09 GMT]]></title><description><![CDATA[<p dir="auto">我是小白 請教一下。接入 Claude Code 有什麼特別嗎？ 接入Codex 的效果 會有什麼差別嗎?</p>
]]></description><link>https://lcz.me/post/26613</link><guid isPermaLink="true">https://lcz.me/post/26613</guid><dc:creator><![CDATA[Charly Cheng]]></dc:creator><pubDate>Thu, 22 Oct 2026 00:46:09 GMT</pubDate></item><item><title><![CDATA[Reply to 把 Strata+qwen3.8-flash-next-unsloth-ud-q4_k_xl 接进 Claude Code的五个坑 on Tue, 20 Oct 2026 01:00:50 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/terry" aria-label="Profile: terry">@<bdi>terry</bdi></a> 从官方的说法上讲，所有qwen系列的官宣跑分都是号称在cc+针对性提示词环境下测得的。可以大概理解为qwen系的“专武”是claude code也没错。</p>
<p dir="auto">claude code的问题还是老样子，一个是冷启动提示词巨大，一个是闭源，一个是提示词针对他自家模型，以及其混合模型调用分工有优化，导致有点“教做人”。</p>
<p dir="auto">尤其是最后一点，这就导致有时候cluade code盲目相信模型能力，不做校验就完成。要么是极度不信任模型结果，反复校验。本质上就是他复合模型调用的路径不同导致的。</p>
]]></description><link>https://lcz.me/post/26076</link><guid isPermaLink="true">https://lcz.me/post/26076</guid><dc:creator><![CDATA[kop wang]]></dc:creator><pubDate>Tue, 20 Oct 2026 01:00:50 GMT</pubDate></item><item><title><![CDATA[Reply to 把 Strata+qwen3.8-flash-next-unsloth-ud-q4_k_xl 接进 Claude Code的五个坑 on Mon, 19 Oct 2026 22:04:41 GMT]]></title><description><![CDATA[<p dir="auto">不错，虽然是小众玩法</p>
]]></description><link>https://lcz.me/post/26065</link><guid isPermaLink="true">https://lcz.me/post/26065</guid><dc:creator><![CDATA[terry]]></dc:creator><pubDate>Mon, 19 Oct 2026 22:04:41 GMT</pubDate></item></channel></rss>