本贴发布的目的不是推产品,不是炫技,而是想扬眉吐气——和华人开发者一起,和开源模型本地部署开发者一起,做一件我们自己的事。
去年开始用本地模型做编程辅助。原因很简单:公司代码不能传到海外服务器,Claude Code 和 Cursor 走不通。
但更大的问题是:中国开发者根本没有一个好用的本地 coding agent 平台。
CC 需要翻墙,还要订阅。Cursor 同样。Codex 刚出来也是海外服务。Hermes 这类开源工具不支持 Windows 原生运行,要装 WSL2 ,劝退了大多数国内开发者。最后大家的选择是:要么翻墙凑合用,要么忍着不用。
这是一个真实存在的空缺,没有人填。
本地跑 qwen3:8b ,然后发现问题一个接一个:
🔴 无限循环,像卡带一样
这是本地小模型最让人抓狂的问题。遇到它不会处理的场景,它不会说"我不知道",而是开始重复——同一句话说三遍,同一个错误的修改建议循环出现,同一段代码反复生成。整个任务卡死,只能手动强制退出。这不是偶发现象,是小模型在推理能力不足时的典型崩溃模式。
🔴 修 bug 反复踩同一个坑
让它修一个函数,第一次失败,第二次用完全一样的方式再试,第三次依然。三次机会全浪费在同一个错误上,什么都没推进。
🔴 模型能力本身就弱于 API 模型
这是无法回避的现实。8B 、14B 的参数量,推理能力和 Claude Opus 、GPT-4 差距明显。让一个 8B 模型扛下一个复杂任务的全部推理,成功率很低,这不是哪个工具的问题,是模型本身的边界。
🔴 找不到要改的文件
项目大了之后,模型根本不知道要改哪个文件。让它找 bug ,它要么猜错,要么说"我需要看更多代码",然后把整个项目塞进 context ,然后 context 又爆了。
🔴 对话几轮就开始遗忘
8B 模型 context 窗口只有 8K ,对话多了就满了,模型开始给出驴唇不对马嘴的回答。
这些问题叠在一起,用本地模型做开发辅助的体验极差。
所以我想自己做一个产品来跑。有人就会说:为什么不直接用 ollama + cc ?还友情指导我命令。
哎。
大厂的产品只会为它的商业模式服务。ollama 放弃了参数微调来换取稳定,lm 让开发者纠结什么是最优,CC/Codex/Cursor 都是卖 token ,没有人会真的认真想本地部署缺什么,需要优化什么,记忆怎么优化,上下文怎么压缩,小参数怎么辅助。
但我人微言轻,所以我做了个 MVP 想抛砖引玉。我们可以一起把要优化的都优化了,打造我们自己的产品。
有人也说,我能力不够。
那我的思路是:不够就做整合,够了就做突破。
所以我做了 KWCode ,不是为了商业化,MIT 任何人都能拿走,只希望哪个感兴趣的大神,愿意和我或者和所有开发者一起把它实现并开源,给所有被本地部署膈应的宝子们。
这是 KWCode 最核心的设计决策,也是解决上面所有问题的根本思路。
传统 coding agent 的架构是:一个 LLM 扛全部——理解需求、定位代码、生成修改、验证结果,全让同一个模型做。强模型能扛,小模型扛不住,然后就开始循环、幻觉、乱说。
KWCode 用的是 MoE ( Mixture of Experts )架构:把任务切碎,每个专家只做一件事,LLM 只负责 Gate 分类和内容生成,其他步骤能不调 LLM 就不调。
用户输入
└─► Gate ( LLM 做一次分类,判断任务类型)
└─► Locator ( BM25 + 调用图,不调 LLM ,毫秒级定位文件和函数)
└─► Generator ( LLM 只写需要修改的那几行代码)
└─► Verifier (自动跑语法检查 + pytest ,不调 LLM )
└─► SearchAugmentor (两次失败后自动搜索)
LLM 在这条流水线里的任务被压到了最小:Gate 做一次分类,Generator 生成几行代码。定位文件、验证结果这两件最耗推理能力的事,完全不让 LLM 做。
参考:Agentless 论文( ICSE 2025 )——确定性流水线在 SWE-bench 上同时达到最高通过率和最低成本,优于让 LLM 自主决策的复杂 agent 。原因很简单:每一步 scope 极小,小模型在小 scope 里表现稳定。
代码定位是小模型最容易失败的步骤,把它从 LLM 手里拿走,换成确定性算法。
CodeCompass ( arXiv:2602.20048 ,2026 年)做了 258 次实验,发现了一个关键结论:
真实项目里,很多 bug 的根因文件名和错误描述毫无关联,只能通过调用链追踪才能找到。对这类"隐藏依赖"任务,BM25 关键词搜索准确率只有 **76.2%**,而图遍历达到 **99.4%**,差了 23 个百分点。
KWCode 的两阶段检索:
整个过程不调 LLM ,SQLite 持久化调用图,重启不重建。
技术栈:tree-sitter + rank-bm25 + SQLite。不需要 Neo4j ,不需要 embedding 模型,不需要额外 Docker 。
针对"反复踩同一个坑"和"无限循环"这两个问题:
反无限循环:MAX_RETRIES 硬编码为 3 ,没有任何路径能绕过。同时检测连续两次生成完全相同的 patch ,直接跳过不重试,告诉用户"模型卡住了,建议缩小任务范围"。
反重复失败:三次重试强制用三种不同的问题表述:
| 第几次 | 策略 |
|---|---|
| 第一次 | 正常描述需求 |
| 第二次 | 从错误信息出发:"直接修复这个报错,不要解释" |
| 第三次 | 最小化修改:"只改这一个函数,其他代码一行不动" |
第一次失败后先做 Reflection:让 LLM 一句话分析上次失败的原因,然后把这个分析注入下次的 prompt 。不是让模型自由发挥,是强制它先诊断再修。
参考:EE-MCP ( NeurIPS 2025 )——从任务执行轨迹自动提取经验,验证可显著提升后续同类任务成功率。
KWCode 预置了 15 个专家( BugFix 、TestGen 、SpringBoot 、FastAPI 等),每个专家有独立的 system prompt 。
同类任务成功 5 次之后,飞轮自动分析轨迹,生成新专家,经过三道验证门后投产:
专家可以导出成 .kwx 文件,kwcode expert install URL 一行安装别人分享的专家。
CC 不需要考虑这个,因为它只用一个模型。KWCode 需要。
自动检测当前模型的参数量,然后应用不同策略:
| 模型规模 | 自动策略 |
|---|---|
| < 10B ( qwen3:8b ) | 强制计划确认 · 任务范围限 2 个文件 · 第 1 次失败触发搜索 |
| 10-30B ( qwen3:14b ) | 可选计划 · 4 个文件范围 · 第 2 次失败触发搜索 |
| > 30B ( qwen3:72b ) | 宽松策略 · 8 个文件 · 自动处理复杂任务 |
切换模型,策略自动切换。
核心功能跑通了。282/282 单元测试通过,E2E 验收通过率 87%( 26/30 ,4 个失败是模型能力边界,不是框架问题)。
代码能力
工程能力
/plan 计划模式 + 风险评估( High/Medium/Low ,基于历史失败记录)体验
说实话,有些地方还挺粗糙的:
我一个人做这个工具有明显的上限,不是技术上的上限,是视野上的上限。
我自己主要用 Python 和 FastAPI ,所以这方面想得细。但我不知道每天写 Spring Boot 的人最痛的点在哪,不知道搞 Rust 的人在本地模型上遇到什么问题,不知道做小程序的人需要什么。
更重要的是,这件事不应该只是一个人的工具,应该是中国开发者社区的工具。
CC 是 Anthropic 的,Cursor 是美国公司的,Hermes 是外国社区做的。我们用的工具,我们的使用习惯、技术栈偏好、本地化需求,从来都是别人顺手加进去的功能,不是第一优先级。
我想做的是反过来——把中国开发者的需求放在第一位,把本地开源模型的适配放在第一位,然后把这个工具做到能和大厂产品掰手腕。
这件事一个人做不到,但开源社区可以。
Linux 打败了 Unix ,不是因为某一个天才,而是全球开发者共同维护了几十年。VSCode 能超过那么多商业 IDE ,也是因为背后有庞大的插件和贡献生态。
KWCode 不需要你有多高的水平,只需要你在用本地模型做开发,然后把你遇到的问题、你的解法、你的改进贡献进来。多一个人,就多一个使用场景被照顾到,多一个坑被填掉。
Fork 这个项目,改进你最痛的那个点,提 PR ,我们互相借力,一起把它做好。
闭源大厂有钱有人有算力,我们有什么?我们有真实的使用场景,有对本地部署的真实需求,有不依赖海外服务的动力。这已经足够了。
项目地址:github.com/val1813/kwcode
# Fork 项目,克隆到本地
git clone https://github.com/your-fork/kwcode.git
cd kwcode
# 安装开发版
pip install -e ".[dev]"
# 运行测试确认环境正常
python -m pytest kaiwu/tests/ -v
# 找一个你最想改的地方,开始动手
git checkout -b fix/your-improvement
改什么都可以:
Issues 里列了已知问题和规划中的功能,可以从那里找方向。Discussions 里可以聊技术思路,聊某个方向值不值得做。
没有什么贡献太小。
我不知道 KWCode 能不能真的超越 CC 或者 Hermes 。
但我知道,如果中国开发者一直用别人做的工具,一直把自己的需求当作"次要功能"等别人来实现,这件事永远不会有答案。
有些东西,只有自己做才知道能不能做到。
项目是 MIT 开源的,你贡献的代码永远是你的。如果 KWCode 最后做成了,这件事是所有参与的人一起做成的。
项目地址:github.com/val1813/kwcode
天工开物 · KWCode · 中国开发者自己的本地 Coding Agent
1
KaiWuBOSS OP 抖音被群嘲了 不知道真懂假懂 问我为啥不用 ollama+cc 问我电费不要钱 告诉我最差的闭源都比 30b 最好开源好
|
2
aceboy 5h 53m ago
目前主要问题是本地开源部署的模型太弱,但是,未来身份验证一定越来越严格,无论中外。因为 ai 智能后面是算力是能源支撑的巨量消耗,不是边际成本为零的传统软件。势必分层,出现阶级属性,成为一部分人压迫另一部分人的工具之一。那么本地开源模型及智能体可能是唯一选择,使用者越多就越有发展潜力。
|
3
Tink PRO 这真的是个大工程啊佬
我能力不够,但是我 respect🫡,期待能用上本地模型来 coding |
7
wxyoux2 5h 34m ago via Android
大佬牛逼,我也一样,公司不让用外部大模型,但是内部的模型又不行,刚部署上一个本地小模型
|
8
purerain 5h 28m ago
放弃本地吧,agent 要模型能力支持的,本地只能玩玩 4bit chat ,真干活至少 FP8 版本起步,能玩得起的没几个。
|
9
KaiWuBOSS OP @zhanying 确实现在 30b 还不行 如果未来 100b 模型可能在 5060 部署了呢 如果不久我们发现 30b 模型够了能各方面超越 opus 呢?我们依然被他们牵着。大厂在争抢更好的模型,开发者继续被折腾。我不喜欢这样,但我又无能为力,这是我为什么要发起这件事的原因。
|
11
ChicVoice 5h 25m ago
搞个 trae 不香吗
|
12
KaiWuBOSS OP 如果没人一起搞我就自己干了 反正 tok 开发那些无聊的 skill 也是浪费 认真深耕这套产品
|
14
kennylam777 5h 20m ago
Roo code 也不做了, 你現在才開始?
同類型的還有 OpenCode 在做, 中國模型也有首輪適配的, 這輪子不要自己造吧。 不過我建議你用 claude code 配 local model 試試看, llama.cpp 支援 Anthropic API https://huggingface.co/blog/ggml-org/anthropic-messages-api-in-llamacpp 只要設定好兩個環境變數就能用 claude code, 不用 login 也不怕被 ban ANTHROPIC_BASE_URL=http://127.0.0.1:8080 claude ANTHROPIC_AUTH_TOKEN=local |
16
suiterchik 5h 18m ago
已 fork ,后面看看有没有能帮上忙的 🫡
|
17
KaiWuBOSS OP @kennylam777 1 、这几个我都看了 但他是标准的通用型 coding agent 不是专门为本地部署优化的 采用都是串行的 llm 解决思路 意思就是靠主模型强大能力去做任务 框架只做约束和规范。 但本地模型参数小干不了 2 你这句话很像我刚说的 ollama+cc 都不用你这么麻烦 你装了 ollama 再装 claude code 然后 ollama 有命令直接接入 claude 。
|
18
KaiWuBOSS OP @suiterchik 谢谢哥
|
19
xzcv 5h 13m ago
opencode 不是可以吗?
|
21
KaiWuBOSS OP @xzcv 我说下技术不同,opencode 和 cc 一样的思路,是 llm 做功的串行框架,就是自然语言给 llm llm 去调用各种工具去实现。这个技术对本地低参数模型并不友好。因为他没那么大能力去实现多参数多文件的处理。所以我用了 moe 框架,llm 只需要控制 gate 然后分配专家去干活 ,不需要他亲自去解题,我不知道这么说能不能听懂。
|
22
kennylam777 5h 2m ago
喔我看懂了, 思路是把問題切小, 讓小模型能處理, 一步一步來能讓自我修復
的確, 即使是 Cluade Code 的 context management 比 OpenCode 還是強太多, 以前用 Roo Code 在 4090 上跑 local LLM 基本上 tool calling fail 是基本, 現在用 Qwen3.6 + 5090 會好一點但還是有差 我也來試試用看 |
23
CuteGirl 4h 59m ago
点了个 star 加油
|
24
sampeng 4h 55m ago
当我看到 5060 部署 100b 我就乐了。。so 。。你认识后面那个 b 代表什么意思么?
|
25
int0x03 4h 50m ago
公司能用 Claude code + sonnet 4.6, 4.5. 还有公司本地部署的 GLM 4.7, Minmax 2.*. 如果能用 sonnet 没人用 GLM 和 Minmax, 没有对比就没有伤害.
我今天在一个项目上尝试使用 Claude code + 本地 Qwen3.5 30B 模型(M4 64G MAC pro 上), 能干活, 但是干的不好, 理解能力和整个过程都欠缺. 相同的问题, 扔给 Sonnet 4.6 又快又好. 模型真的很重要, 当然配合它自己的 本地 Agent 也很重要. ------------------ 我想说的是: 我们还是需要最好的模型, 比如 Deepseek v4, 虽然我还没用上. 模型带来的能力让很多我们期望的 agent 框架的工作很苍白. 如果愿景变成超越 opencode, 简介可靠,自主可控, 是不是更好呢? 不知道. ----------------- 加油 ⛽️ |
26
KaiWuBOSS OP @kennylam777 我本来想了个天才点子 能彻底解决小模型能力不足问题 就是搞不定的问题上网搜答案 我现在 opus 修不了的我就让他上网搜 一搜就有方案了 但我搭建的搜索引擎太拉胯了 优化不够
|
27
KaiWuBOSS OP @sampeng 嗯 我当然也笑了 我找找那人链接 1.76 复制打开抖音,看看 [牛码架构的作品] 还在为大模型部署的显存焦虑? 重磅开源项目 AirL... https://v.douyin.com/JS3W756Zja8/ 10/22 HvS:/ [email protected]
|
28
ntdll 4h 42m ago 其实抛开模型不谈,你做的东西,本质上是一个 AI Agent ,我理解的正确吗,至于模型是本地还是远程,国内还是国外,其实并没有什么影响。
而 AI Agent 的核心问题就在于 Agent Loop 怎么设计,以及如何编排不同的 Agent 。 其实类似的需求,我自己动手已经做了一丢丢,只是应用场景上,比你考虑的要收窄了许多,是某个领域特化的 Agent ,虽然也还没做到能用的程度就是了。 我自己的体验是,做这个玩意,跑起来不难,但是到好用还是挺难的。就是能用 -> 好用的这个路径很长。 |
29
cyp0633 4h 37m ago
感觉是 LLM 给你太多自信了,你的所谓 expert 相比于其他 coding agent 的多种可自定义 agent 的优势在哪里
|
30
whyw 4h 34m ago
@ntdll 我也做了一个 codg 自己用, 也支持本地模型, 我觉得核心是 loop 编排和自动化, 但他的出发点很奇怪, 本地除了找代码, 要不装台服务器, 复杂任务根本不能玩, 他自己都用 opus 写这个, 还动不动 XX 主义指不定有啥大病
|
31
maix27 4h 32m ago
> 所以国际共产主义要求我们 必须一起去突破
你也知道是国际共产主义啊,那 readme 为啥中文写两遍呢?发现问题了,改吧。 |
32
maix27 4h 28m ago
|
33
KaiWuBOSS OP @ntdll 嗯理解是对的 他是什么呢 就是模型部署后在哪里运行 不管什么模型 。不过我这个是专门针对本地模型优化的,api 接进来使用就工程量冗余了,因为很多功能是给低参数模型辅助的,高参数模型用不到。另外你说的很对,能用到好用需要持续优化,所以我希望大家一起,我一个人力量太小。同时大家也看到了,基础设施上,这些 lmstudio ollama 还是 cc codex cursor 好用都是国外的 就连龙虾和爱马仕都不是国人开发的。所以我觉得国人应该打造一个不用翻墙贴合自己使用的 cli
|
34
KaiWuBOSS OP @cyp0633 这是两种东西 一个专家是静态的文本不是智能体 agent 他是一个 python ,进入数据 出来是固定的数据或者代码。你说的那个自定义 agent 是 llm 分出来的子 agent 。这两个不是一个东西 不好比。我这么说你就懂了,moe 架构相当于 ai 控制若干个门,门外面有很多 python 的软件,要做任务时候 ai 告诉打开哪几个门让门里的软件干活。而现在主流的 cc codex 这类是 ai 动用里面工具把任务干完,这是两个不同东西。
|
36
KaiWuBOSS OP @maix27 其实本身是个求指导贴子 希望有人帮我把项目完善 一起做一个好的产品出来用 只是后面大家争论到本地模型值不值得开发。方向带偏了。不带个人情绪,我只是求助。另外我本身也是 vibe ,代码不是专业出身,也没有炫技成分。
|
37
maix27 4h 9m ago
@KaiWuBOSS 你要是觉得老路子有问题,你就写论文拉投资。或者做个初版去 AI conf 上演讲拉人。而不是在这里发情绪贴。我也是分享路子,不带个人情绪。
|
40
maix27 4h 0m ago
不要做定标准的事,一流公司定标准那是因为人家有足够的资源来把产品做到那个标准。
OpenAI 和人类学有无限的 token 给员工用,你有吗? 你最该做的是去 fork 一个合适的开源项目像 pi-mono 这样的,在人家基础上改。 另外我觉得一个开源项目的领导者最需要的能力是写作能力,他写的东西得易读易懂。你觉得你的 readme 写的很好是吗?发个评论讲着讲着开始大段放 AI output 很帅是吗。 如果你离开 AI 就不会说话,用了 AI 不会说人话。那我建议你别整开源。害人害己,糟践精力。 |
42
maix27 3h 58m ago
没事,反正我语气冲。你大可以喷我。
|
43
unnyxi 3h 54m ago
8K context 没意义吧,5000 买张 3090 都能跑 64K Qwen 3.6 了...
|
44
KaiWuBOSS OP @maix27 但是我没想定标准呀 我只是找问题最好解决的方案 。没说要都按我这个来吧。你批评我 readme 是 ai 写的确实是,我接受但我确实不会写呀。但这样就不能发仓库了吗?感觉老师您有点上头了 我刚翻了评论,我没有哪里刺激您吧。您是觉得我们这种 vibe 不会代码,又胡思乱想,还不按正常道路做项目是这个意思吗?那我确实跟您道歉,但不至于害人害己,糟蹋精力,如果不喜欢或者用不上甚至说方向不对,不理睬就是。
|
45
seakingii 3h 53m ago
OP 我推荐你关注 REDDIT 的 频道 r/LocalLLaMA
里面有很多人研究之为本地模型的部署和怎么利用它 |
48
maix27 3h 45m ago
@KaiWuBOSS 我是说你的大段文字组织能力很差,你再看看这个帖子你的介绍怎么写的?你去 codex 看看人家 readme 怎么写的?
你要做的就是像人家的 readme 一样写 readme ,然后把 readme 当介绍发到 V2EX 来。而不是放一堆你的心路历程上来。 还有你 readme 中文写两遍怎么想的? readme 里面为啥要放这么多东西?你有东西就分门别类放 docs 目录里面。 |
50
KaiWuBOSS OP @maix27 我何止是差呀 我是压根不会呀 除了吐吐槽 哪有什么文字能力 。好的我去学习,不过我真的觉得懒,我觉得 ai 写得蛮好的 我学到头可能也写不出他那样水平 所以直接用了。另外你说的 readme 中文为啥写两遍,是我没删干净。待会去删。另外请问怎么参会 有报名链接吗?我就是觉得自己缺少圈子,做什么都只能自己干。
|
51
maix27 3h 29m ago
而且你这东西也经不起细看啊,乍一看没工程思维的人都可能被奇奇怪怪的词唬住。
你做了什么东西,为什么不放在开头说? 你搁着说反话呢?你给个定义就行。 有什么功能为什么不说?功能没有展示吗?(任何类型)就一句话? 你说的 KWCODE.md 项目规则文件,按任务类型分段注入,永远不忘?有没有证据证明?你跑过几轮测试? 每个点都可以都可以吹,没有数据和理论支撑就是空话。 AI 最擅长吹牛。 |
52
maix27 3h 25m ago
@KaiWuBOSS 到处都是圈子,是你自己封闭了自己。国内的圈子也就凑凑热闹(看 V2EX 的水平你也知道了),国外的圈子才能提供人脉和资金,可惜你英语不好也不愿意学,进不去。
|
53
maix27 3h 19m ago
我再说最基本的一个点,这个做出来的产品,你用吗?你用来自举它这个项目吗?你现在用来写代码的代理是什么?请你告诉我。你都不用,你为什么要其他人来维护它?
|
56
ahdw 2h 16m ago
你试试 Qwen3.5-9B ,很惊喜。
我在闲置的 16GB RAM M1 Pro MBP 上面,用 oMLX (已经支持 TurboQuant 给 KV Cache 量化了,我用的 4bit )跑混合量化的 Qwen3.5-9B-MLX-OptiQ-4Bit 版本,能坚持到 45K context 才 OOM ,使用的时候确保 context 不超 32K ,留出 10K 给它 thinking 和 reply ,还能有 2-3K 的 buffer 。 速度的话,我也跑了 benchmark: 1k -> PP 136.6 · TG 28.4 tok/s 4k -> PP 140.1 · TG 27.4 tok/s 8k -> PP 139.3 · TG 26.2 tok/s 16k -> PP 136.7 · TG 23.9 tok/s 32k -> PP 131.1 · TG 20.1 tok/s 你的设备应该不会比我这台机器更古早了,性能应该更好。 智力的话,我也做了一些测试: 1. 农夫过桥问题不需要思考模式就能秒答对 2. 洗车问题需要思考大约 200-300s ,但是每次都能答对 3. 猎人打鸟问题短暂思考就能答对 4. 给飞机跑道装跑步机问飞机能不能起飞,思考后能答对 5. 9.11 和 9.9 哪个大,短暂思考后答对 还有很多此类问题,没有翻车的。就是思考时间比较长。 我也 benchmark 了单一量化版的,Qwen3.5-9B-MLX-4Bit, 速度能稍微快一点: 1k -> PP 136.3 · TG 30.3 tok/s 4k -> PP 140.0 · TG 29.1 tok/s 8k -> PP 139.3 · TG 27.9 tok/s 16k -> PP 136.7 · TG 25.3 tok/s 32k -> PP 131.1 · TG 21.2 tok/s 想了一下,觉得混合精度可能在长上下文的时候,某些 edge case 表现更稳,这一点速度损失可以承受。 我也尝试了用 llama.cpp ,打开 metal 优化编译,再配合 TurboQuant+,结果完全不如 oMLX ,跑不赢一点。Context Window 可以大一些,但是速度太慢了,16K 以上就掉到 10 tok/s 以下了。 |
57
c0xt30a 2h 7m ago
> 不管你在北京还是新加坡,在上海还是旧金山,只要你是华人开发者,都欢迎参与。
OP 的这玩意还是发在贴吧比较好 |