rasbt 实操:开源权重 + Claude Code/Codex harness 搭 100% 本地 coding agent,附四点选型清单
rasbt 实操教程:Ollama + 开源权重 + Claude Code/Codex harness 搭 100% 本地 coding agent;Qwen3.6 35B 本地约 40 tok/s、5 题任务包 5/5;harness 可任意切换、非原生有时更好。
- 从『本地模型只能聊天/玩具』→『30–35B MoE 在 Claude Code/Codex 里 5 题任务包全过(5/5)、本地约 40 tok/s 与 GPT-5.5 high 同速』
- 从『必须用模型原生 harness』→『harness 可任意切换,且非原生 harness(Codex)有时得分更高、还省约 50% token』
- 从『开源前沿即最强=本地可用』→『最强开源(GLM 5.2)仍太大跑不动本地,本地实际可用的是小一档的 30–35B MoE』
6 月 27 日,机器学习研究者、Ahead of AI 主笔 Sebastian Raschka(@rasbt,《Build a Large Language Model From Scratch》作者、前统计学教授)发了一条被广泛收藏的推文——约 2,044 赞、9.19 万次浏览、2,154 次收藏——宣布新文章《Using Local Coding Agents》:用开源权重模型搭一个100% 本地运行的 coding agent。做法并不玄乎:用 Ollama 起本地推理,再把模型接进你已经在用的 coding harness——Claude Code、OpenAI 的 Codex CLI,或开源的 Qwen-Code。他附了一套四点选型清单,并放出一组让人愿意动手的实测:Qwen3.6 35B-A3B(MoE,22 GB 下载、30–40 GB RAM)在 Mac 上跑出约 40 tok/s,他称这与 GPT-5.5 的 high 推理档同速;在一组 5 道题的 agent 任务包里,Qwen3.6 在 Claude Code 与 Codex 中全部 5/5 通过。
rasbt 自己写得很克制:GPT-5.5 和 Opus 4.8 仍比这些小一号的开源权重更强,而他被问及的「目前最强开源权重」GLM 5.2 则「消费级硬件跑不动」。但真正让这篇值得从业者读的,不是「本地能干活」这个开源社区喊了大半年的结论,而是它用一组实测把一个被忽略的变量拎到了前台——harness 才是本地 coding agent 的主战场,不是模型。本文顺着这条主线拆:先看这套方案成立的前提(模型与 harness 解耦),再看它给出的四道测量筛子,然后落到那两组支撑「harness 主战场」的反直觉数据,最后把开源追赶的图景切成云端前沿与本地可用两层。
模型与 harness 解耦:这件事能成立的前提
rasbt 方案的底层是「模型与 harness 解耦」:本地用 Ollama 跑模型(也可换 LM Studio、vLLM、SGLang、MLX),harness 那一头通过 OpenAI 兼容端点(http://127.0.0.1:11434/v1)把本地模型当普通 provider 接进来。三个 harness 接法各异,但都没离开「换 base URL、填占位 key、选模型」的套路:
- Qwen-Code(
github.com/QwenLM/qwen-code,开源):setup 里选 Custom Provider → OpenAI-compatible,填本地端点与ollama占位 key,开启 thinking 模式即可。 - Codex CLI(
github.com/openai/codex,开源):写一个~/.codex/ollama.config.toml,指定model = "qwen3.6:35b"、model_provider = "ollama"、model_reasoning_effort = "high",用codex --profile ollama启动。注意 Codex 的 UI 不支持非 OpenAI 模型,本地只能走 CLI。 - Claude Code(闭源):Ollama 提供
ollama launch claude --model qwen3.6:35b一键拉起。rasbt 特意点出代价——Claude Code 是专有软件,「我们无法检查或关闭 Anthropic 的数据日志实践」,这对「100% 本地」的隐私承诺是个隐患。
这套解耦之所以是「前提」而非细节,是因为它把模型从「harness 的固定配件」变成了「可随时替换的插件」。硬件上他还演示了 Mac ↔ DGX Spark 的远程跑法:用 SSH 隧道转发 11434 端口,让 Mac 直接调远端 DGX 上的 Ollama,入门 kit 的灵活性是 rasbt 反复强调的卖点——随时能换更新的模型,或在某个任务本地模型不够时临时切到云端,harness 不用动。一旦模型可换、harness 不动,「harness 本身是不是变量」这个问题才有了被回答的空间;下面四道筛子,以及后面那两组反直觉数据,都建立在这个前提上。
四道筛子:把「能不能用」变成可测的数字
rasbt 真正有增量价值的不是 setup 步骤,而是那套选型检查清单——它把「这个本地模型到底能不能用于严肃工作」拆成四个可独立测量的维度,每个维度配了自建脚本(已开源在 GitHub)。换句话说,当模型可以随便换,从业者需要的是一套不依赖具体模型、能横向比的标准:
- 长上下文下的 RAM 占用——看模型在真实工作所需上下文长度(他测到 5 万词输入)下吃多少内存。Qwen3.6 与 North Mini Code 在 50k 上下文下用到约 30 GB RAM(运行中在 20–29 GB 间波动);小一号的 Gemma 4 E2B 则只占约 8 GB。
- prefill / decoding 的 tok/s——测速度是否「快到不烦人」。他的门槛是**「快于 20–30 tok/s 就算可用于本地 agent」,而 Qwen3.6 在 Mac MLX 上跑到约 40 tok/s**、DGX Spark 上约 30 tok/s。一个有意思的细节:得益于优化的 MLX 版本,Qwen3.6 在 Mac 上反而比 DGX Spark 快。
- tool-calling 能力——用
ollama_hard_reasoning_bench.py测工具选择、JSON 格式化、调试判断。结果是Qwen3.6 3/5(60%)、Cohere North Mini Code 1/5(20%)、Gemma 4 E2B 0/5。评语很实在:Qwen3.6 的 3/5「可用,但不足以完全可靠地自主用工具」,得靠 harness 加约束、加重试、给更强项目上下文来补。 - 在 harness 里解难题的能力——用一组 5 道题的 agent 问题包端到端测。这是最贴近真实的一关,也是结果最乐观、最能暴露 harness 差异的一关。
把第四维度的结果铺开,harness 之间的差异比模型之间的差异还显眼:
| 本地模型(Ollama 跑) | Qwen-Code | Codex | Claude Code |
|---|---|---|---|
| Qwen3.6 35B-A3B | 4/5 | 5/5 | 5/5 |
| Cohere North Mini Code 1.0 | 4/5 | — | 5/5 |
| Nemotron 3 Nano 30B-A3B | 4/5 | — | 5/5 |
| Gemma 4 E2B | 0/5 | — | 2/5 |
数据为 rasbt 自建 5 题问题包,样本小、任务偏轻量;「—」表示该组合未测。作者推荐把 Artificial Analysis 榜单(
artificialanalysis.ai/models)的 average / coding / agentic 三栏作为横向对照补充。
harness 才是主战场:两组反直觉数据
这张表里最该被记住的,不是「Qwen3.6 全过」,而是Qwen3.6 在非原生的 Codex(5/5)里反而高于它原生配对的 Qwen-Code(4/5)。rasbt 据此推翻一个流行假设——「模型在自家 harness 里调优得最好」「可能并不成立」。他的建议很工程师味:别纠结原生配对,用你已经有肌肉记忆的 harness,把模型丢进去试。这是第一组数据:同一个模型、不同 harness,得分不同,且非原生更高。
第二组数据更实质,是 token 经济性。他统计了单次任务跑下来的 token:Claude Code 用得最多(约 578k 输入 / 4.5k 输出 / 25 轮),Codex 用得最少,在同等任务成功率下 Codex 比 Claude Code 省约 50% token,差异主要在输入——Claude Code「跨轮反复把更多上下文喂回模型」。他的结论直白:等成功率下,省一半 token 意味着任务快一倍,「这是一个巨大的胜利」。而且「token 用量主要由 harness、而非模型决定」。
把两组数据并到一起,结论就比「本地能干活」硬了一截:当模型可以随便换,真正决定体验的是 harness 怎么用它——是 native 配对还是非原生、是反复喂回上下文还是克制、是放任 tool-calling 只有 3/5 的模型裸奔还是加约束加重试。这把本地 coding agent 的选型重心,从「等下一个更强的开源模型」往「换/调 harness」推了一截。对一个 tool-calling 仅 3/5、要靠 harness 补足才能可靠的模型来说,harness 的 token 效率与约束机制,恰恰是未来一两年唯一能持续拉开差距的杠杆——这一点被多数还在盯着模型榜单的人低估了。
扩展:rasbt 对本地模型可用性的整体判断
rasbt 的落点很平衡:GPT-5.5 和 Opus 4.8 目前仍强于能在 Mac 或 DGX Spark 上跑的小型开源权重,但 30–35B 这一档的新 MoE「都非常、非常有能力,对很多任务真的足够」,且本地速度与 GPT-5.5 Pro 订阅「不应会拖慢你的工作流」。他建议拿一个模型「用一两天判断是否达到你的标准」,并维护一份自己的任务集。对 Qwen3.6 tool-calling 仅 3/5,他认为「一个能约束动作、加重试、给更强项目上下文的 harness,能让它变得相当可用」。最后他承认动机里有一点非理性:「不知为何,在本地跑模型就是好玩」,且「本地方案每天都在变得更有吸引力」。
但「最强开源」跑不动本地:开源被切成两层
「harness 主战场」的判断要落地,绕不开一个 rasbt 在本地语境下点明、却被宏观叙事忽略的事实:GLM 5.2 是「目前最强开源权重」,却「消费级硬件跑不动」。这与 06-28 OpenRouter 的「3-6 个月差距」判断互为印证——06-28 那篇里,GLM 5.2 以 Artificial Analysis 智能指数 51 列开源第一、仅落后榜首 Claude Fable 5 约 5 分,被 OpenRouter 点名为「跨过 agentic 临界点」的四款开源之一;但 rasbt 的实操把它从榜单拉回桌面:它和 DeepSeek V4 Pro 一样是「前沿开源」,而前沿开源 ≠ 本地可用。
于是开源追赶的图景被切成两层:上层是云端前沿(GLM 5.2、DeepSeek V4 Pro,分数逼近闭源,但体量太大、跑不动消费级硬件);下层是本地可用(Qwen3.6 35B、Nemotron 3 Nano 30B、North Mini Code 这档 30–35B MoE,分数够不上前沿,但「对很多任务足够」、能在 Mac 上跑出 GPT-5.5 high 的速度)。rasbt 的清单和实测,丈量出了「3-6 个月差距」在工程师桌面上的真实厚度:差距已经收窄到「本地这一档能干活」的临界点,但前沿那一档仍需云端。这不是「开源追平」,而是「开源分层可用」——对个体开发者而言,后者其实更可操作,也恰恰是「harness 主战场」论断成立的现实土壤:本地这一档分数够不上前沿,才更需要靠 harness 把它约束到可用。
rasbt 这篇的真正价值,不在「本地模型已能干活」(这点开源社区喊了大半年),而在它把一个被忽略的变量拎到了前台:harness 才是本地 coding agent 的主战场,不是模型。「Qwen3.6 在 Codex 里比原生 Qwen-Code 还高 1 分」「Codex 比 Claude Code 省一半 token」「token 用量由 harness 而非模型决定」——这三句连起来,意味着本地 coding agent 的下一步红利不在等更强的开源模型,而在谁的 harness 能用更少 token、更稳地把一个 tool-calling 只有 3/5 的模型约束到可用。这把选型重心从「换模型」挪到了「换/调 harness」,是个被多数人低估的方向。
但这个判断立得住的前提,是把三处容易被放大的地方同时降一档来听。「5 题全过」是示范而非证据——rasbt 的问题包自建、偏轻量,他本人也说 GPT-5.5/Opus 4.8 仍更强,把 5/5 读成「本地可替代云端」是把示范当基准测试;不过正因为是同一个模型在三个 harness 上得分不同,harness 之间的相对差异比绝对分数更可信,这反而加强而非削弱了上面的判断。同样,「100% 本地」在 Claude Code 这条路上要打折——它闭源、无法关闭 Anthropic 数据日志,推理在本地、harness 的数据实践却不透明;若用户的诉求是「代码不离机」,Codex CLI、Qwen-Code 这类开源 harness 才算真本地,Claude Code 只是折中——而这个差别本身就再次印证「harness 主战场」:选哪个 harness,决定了你拿到的是哪种「本地」。至于开源是否已追平,本地语境下必须分层看——前沿开源(GLM 5.2、DeepSeek V4 Pro)分数逼近闭源却跑不动消费级硬件,能跑的 30–35B 那一档是「够用」而非「追平」;06-28 那句「3-6 个月差距」在云端前沿上成立,在本地桌面上还要再打一个折扣。
三处限定收拢到从业者真正会盯的那个开放问题上:量化或蒸馏,能不能把 GLM 5.2 那一档压到 Mac 上跑。如果能,本地这一档会从「够用」直接跳到「逼近前沿」,harness 的优化空间也会随之被重新定义;如果不能,那 harness 的 token 效率与 tool-calling 约束能力,就会是未来一两年本地 coding agent 唯一能持续拉开差距的杠杆。rasbt 的 kit 给了一个诚实的起点,但这个问题的答案,要等模型蒸馏与硬件两头的下一条消息。
接下来盯什么
- 更大任务集的复现:Qwen3.6 35B-A3B 等本地 MoE 在远超 5 题、跨多日的真实工程负载下可靠性如何——这是把「示范」变成「证据」的关键。
- Claude Code 闭源数据日志的实质影响:它对「100% 本地」隐私承诺的缺口,会否让隐私敏感团队倒向 Codex CLI / Qwen-Code 等开源 harness,从而重塑 harness 份额。
- harness token 效率之争:Codex 比 Claude Code 省约 50% token 在更长任务/更多模型上是否成立,谁会率先优化上下文喂回策略。
- 本地档与前沿开源的鸿沟:30–35B 本地档与 GLM 5.2(AA 51)/ DeepSeek V4 的智能差,能否靠量化或蒸馏压到消费级硬件可跑;GLM 5.2 是否披露参数、是否出可本地跑的小版本。
- tool-calling 的补足路径:Qwen3.6 的 3/5 能否被 harness 的约束/重试机制稳定补足,以及 Ollama 等本地引擎对 tool-calling 协议的成熟度。