Files
kwcode/README_zh.md
Val-sss 2c4d792baa feat: v1.7.0 KAIJU架构借鉴 — bounded context + sub-task decomposition + DetailedLogger
三个核心改动:
1. Generator bounded context: 只传当前函数代码+相关failing tests,不传完整历史
2. 存根任务sub-task decomposition: 多pass函数逐个独立实现,每个函数独立context
3. DetailedLogger完整流水线日志: 不截断LLM输入输出,记录各节点IO和工程决策

附带修复:
- OpenAI兼容API检测: localhost非标准端口探测/api/tags判断是否Ollama
- LLM Backend on_call钩子: 每次调用自动触发回调记录

513 tests passed.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-07 18:24:56 +08:00

16 KiB
Raw Permalink Blame History

KWCode · 天工开物

中国开发者的本地 Coding Agent

数据不出网 · Windows 打开就能用 · 越用越懂你的项目

License: MIT Python Platform Tests Version


为什么做这个

本地模型跑 Coding Agent有五个核心痛点

痛点一:上下文爆炸

小模型窗口只有 8K-32K。对话几轮后 context 塞满,模型开始胡说。现有工具没有上下文管理,用着用着就废了。

KWCode 解法:纯算法上下文压缩(头尾保留 + 中间关键词提取,<10ms自动在 context 快满时压缩历史对话。你能一直聊下去,不会突然变傻。

痛点二:错误重复回复

小模型修 bug 失败后,用同样的方式再试一遍,三次机会全浪费在同一个错误上。

KWCode 解法:三阶段重试策略——第一次正常描述,第二次从错误信息出发,第三次最小化修改。每次重试前先做 ReflectionLLM 一句话分析上次为什么失败),绝不重复同样的错。失败模式还会记录到 PATTERN.md下次遇到类似任务直接提高风险等级。

痛点三:不能调用工具

大部分本地 agent 框架只能生成代码文本,不能真正执行命令、读写文件、跑测试。生成的代码对不对,全靠人肉验证。

KWCode 解法:内置 5 个确定性工具read_file / write_file / run_bash / list_dir / gitGenerator 生成 patch 后 Verifier 自动执行语法检查 + pytest失败立即重试。不是"建议你跑一下测试",而是真的帮你跑了。

痛点四:数据安全

Claude Code、Cursor 把代码发到海外服务器。公司代码、内网项目走不通。

KWCode 解法:全部本地运行,代码不出你的电脑。模型跑在 Ollama搜索跑在本地 SearXNG统计数据存本地 SQLite。零网络依赖搜索增强可选

痛点五:代码定位靠猜

现有工具把文件列表丢给 LLM 让它猜哪个文件相关。小模型猜错文件,后面全错。

KWCode 解法:BM25 + AST 调用图两阶段定位,毫秒级,不调 LLM。沿调用链追踪隐藏依赖不靠猜。


核心技术原理

原理一:确定性专家流水线

理论来源AgentlessICSE 2025——确定性流水线在 SWE-bench 上同时达到最高通过率和最低成本,优于复杂 agent 架构。

不让 LLM 自主决定下一步,而是走确定性的专家流水线:

用户输入
  └─► Gate          任务分类,毫秒级路由
        └─► Locator     精准定位文件和函数BM25+调用图不调LLM
              └─► Generator  只生成修改部分从文件读originalLLM只写modified
                    └─► Verifier   语法检查 + pytest 自动验证
                          └─► SearchAugmentor  失败时自动搜索补充信息

小模型只需要在极小的 context 里做一件明确的事。失误可以被及时发现和纠正,不会滚雪球。


原理二BM25 + AST 调用图定位(核心差异化)

理论来源

  • CodeCompassarXiv:2602.200482026258 次实验证明隐藏依赖任务G3类图遍历准确率 99.4% vs BM25 76.2%,相差 23.2 个百分点
  • KGCompassarXiv:2503.217102025SWE-bench Lite 成功率 58.3%89.7% 的成功定位来自多跳图遍历

什么是 G3 类任务bug 所在的文件名和函数名,与错误描述没有任何关键词重叠,只能通过调用链追踪发现。这是真实项目里最常见、最难定位的一类 bug。

KWCode 的两阶段检索

用户描述 "修复登录失败的 bug"
  │
  ├─► 阶段1BM25 关键词召回(毫秒级,不调 LLM
  │     从代码库所有函数/类中,按关键词相关性
  │     召回 top-20 候选函数
  │
  └─► 阶段2AST 调用图展开(毫秒级,不调 LLM
        对每个候选函数,沿调用图向上向下各展开 2 跳
        发现那些名字和 bug 毫无关联但实际是根因的隐藏函数

结果:精准的相关函数集合,直接注入 Generator

技术实现:tree-sitter 多语言 AST + rank-bm25 + SQLite 调用图持久化。不需要 Neo4j不需要 Docker不需要 embedding 模型。

支持语言Python已完成· JavaScript/TypeScript/Java/Go/Rust规划中


原理三:专家飞轮(越用越懂你的项目)

理论来源EE-MCPNeurIPS 2025——从任务执行轨迹自动提取经验验证可显著提升后续同类任务成功率。

KWCode 的专家会随使用自动生长:

第1天15 个预置专家开箱即用

使用过程中,飞轮在后台静默积累:
  同类任务成功 ≥5 次 → 触发专家草稿生成
  回测门:新专家成功率 ≥ 原流水线
  AB 测试门10 次真实对比,提升 >10%
  三道门全过 → 专家正式投产,弹出通知

一个月后:你的项目有了专属专家池

专家可以导出分享:

kwcode expert export SpringBootExpert
# → SpringBootExpert-1.0.0.kwx

kwcode expert install path/to/Vue3Expert.kwx

原理四:模型能力自适应

KWCode 是全球唯一针对本地小模型能力差异做自适应的 coding agent。

模型规模 自动策略
<10Bqwen3:8b 强制计划确认 · 任务范围≤2文件 · 第1次失败触发搜索
10-30Bqwen3:14b 可选计划 · 任务范围≤4文件 · 第2次失败触发搜索
>30Bqwen3:72b 宽松策略 · 任务范围≤8文件 · 自动处理复杂任务

切换模型,策略自动切换,无需配置。


功能特性

代码能力

  • BM25 + 调用图两阶段定位G3 隐藏依赖准确率 99.4%(论文验证)
  • Generator 只改必要部分,从文件读 originalLLM 只生成 modified
  • 三阶段重试:正常描述 → 从错误出发 → 最小化修改,不重复同样的错
  • Reflection 机制:第一次失败先分析根因再重试

流程控制

  • /plan 计划模式:显示执行步骤+风险等级High/Medium/Low确认后才动文件
  • Checkpoint 快照:任务开始前自动备份,失败一键还原,降级建议
  • KWCODE.md 项目规则:写项目约定,按任务类型分段注入,永远不忘

知识积累

  • 三层记忆PROJECT.md项目结构/ EXPERT.md专家记录/ PATTERN.md失败模式
  • 非代码文件读取PDF 需求文档 / Word 规范 / MarkdownBM25 匹配相关段落注入
  • 失败模式记录:历史失败积累,/plan 时作为风险评估依据

搜索增强

  • 默认 DuckDuckGo零配置pip install 就能用)
  • 可选 SearXNG 自部署:kwcode setup-search 一键安装,数据完全不出网
  • 四级内容提取trafilatura → newspaper3k → readabilipy → BeautifulSoup
  • 并行搜索 + BM25 重排:结果质量优先
  • 意图感知:代码/论文/包/debug 自动优化搜索词

Office 文档

  • Excelopenpyxl 样式模板,深色表头,斑马纹,公式,冻结首行
  • PPTpython-pptx商务配色三明治结构不用默认白底
  • Wordpython-docx中文首行缩进规范字体表格样式

价值可见

  • kwcode stats:完成任务数、节省时间估算、专属专家数
  • 飞轮通知:专家投产时弹出,显示成功率提升和速度对比
  • 里程碑提醒:完成 50/100/200 个任务时自动汇报

中国本地化

场景 CC / Hermes KWCode
Windows 运行 仅 WSL2 / 云端 cmd/PowerShell 原生
搜索增强 DDG/Brave被墙 SearXNG 自部署 / DDG fallback
推荐模型 GPT / Claude DeepSeek · Qwen3 · GLM
中文交互 英文为主 全中文

与竞品对比

功能 Claude Code Hermes KWCode
数据安全 代码上传云端 本地 本地
Windows 原生 仅 WSL2
小模型专家流水线 独有
模型能力自适应 独有
AST 调用图定位 独有
专家飞轮三道门 独有
/plan 风险评估
Checkpoint 回滚
非代码文件读取 部分
价值量化仪表盘 独有
开源 MIT MIT

快速开始

系统要求

  • Python 3.10+
  • 任意 OpenAI 兼容 API本地 Ollama / DeepSeek / 硅基流动 / Qwen 云端 等)
  • Docker可选用于 SearXNG 搜索增强)
使用方式 说明
本地模型 安装 Ollama,拉取 qwen3:8b 等模型
云端 API /api default https://api.deepseek.com your-key,无需本地显卡

本地模型显存参考:

显存 推荐模型
4GB gemma3:4b
8GB qwen3:8b
16GB qwen3:14b
24GB+ qwen3:30b-a3b

安装

# 安装 KWCode
pip install kwcode

# 国内加速:
pip install kwcode -i https://pypi.tuna.tsinghua.edu.cn/simple

# 启动
kwcode

首次启动会引导你配置模型连接,按提示操作即可。

用云端 API 不需要本地显卡:

/api default https://api.deepseek.com your-api-key

可选:安装搜索增强

kwcode setup-search

需要 Docker Desktop 已安装并运行。会自动拉取 SearXNG 镜像(约 200MB并启动容器。不装也能用默认走 DuckDuckGo 搜索。


使用指南

交互模式(推荐)

kwcode

进入 REPL直接输入任务描述

 > 修复登录验证失败的问题
 > 写一个 FastAPI 登录接口,包含 JWT 认证
 > 把 calculate_price 拆成更小的函数

单次执行

kwcode "修复登录验证失败的问题"
kwcode --plan "重构数据库连接层"

REPL 命令

/plan <任务>          计划模式,显示步骤和风险后再执行
/model qwen3:14b      切换模型
/api                  API 配置(见下方说明)
/experts              查看已注册专家
/memory               查看项目记忆
/init                 初始化项目规则文件
/cd <路径>            切换项目目录
/help                 显示帮助

接入任意 API

KWCode 支持任何 OpenAI 兼容的 API包括 DeepSeek、Qwen 云端、硅基流动、零一万物、Groq 等。

临时切换(当前窗口有效,关掉就恢复):

/api temp https://api.deepseek.com your-api-key
/api temp https://api.siliconflow.cn/v1 your-api-key

永久保存(写入配置文件,下次启动自动使用):

/api default https://api.deepseek.com your-api-key

查看当前配置

/api show

也可以在启动时通过命令行指定:

kwcode --ollama-url https://api.deepseek.com

项目规则文件

在项目根目录创建 KWCODE.md,写入你的项目约定:

## [all] 通用规则
- 测试框架pytest
- 运行测试pytest tests/ -v

## [bugfix] Bug修复规则
- 修复前先理解错误原因
- 不要改测试代码

## [codegen] 代码生成规则
- 变量命名用 snake_case
- 必须写 docstring

KWCode 启动时自动加载,按任务类型注入对应规则。

Office 文档生成

 > 做一个季度销售报表 Excel包含月份、销售额、环比增长
 > 做一个项目汇报 PPT商务风格5页
 > 写一份技术方案 Word包含架构图描述和接口设计

专家管理

kwcode expert list                    # 查看所有专家
kwcode expert info BugFix             # 查看专家详情
kwcode expert export BugFix           # 导出为 .kwx 文件
kwcode expert install path/to/x.kwx   # 安装外部专家
kwcode expert create MyExpert         # 创建自定义专家

价值报告

kwcode stats

显示过去 30 天的任务完成数、节省时间估算、最活跃专家。数据仅存本地。


开发者安装

git clone https://github.com/val1813/kwcode.git
cd kwcode
pip install -e ".[dev]"
python -m pytest kaiwu/tests/ -v --ignore=kaiwu/tests/bench_tasks
# 282 tests should pass

项目结构

kaiwu/
├── cli/main.py              # CLI 入口REPLspinner结果摘要
├── core/
│   ├── gate.py              # LLM 任务分类
│   ├── orchestrator.py      # 确定性流水线编排
│   ├── planner.py           # /plan 计划模式 + 风险评估
│   ├── checkpoint.py        # 文件快照git stash / 文件复制)
│   ├── kwcode_md.py         # KWCODE.md 规则加载
│   └── model_capability.py  # 模型能力自适应
├── experts/
│   ├── locator.py           # BM25 + 调用图定位
│   ├── generator.py         # 代码生成(只改必要部分)
│   ├── verifier.py          # 语法检查 + pytest
│   └── search_augmentor.py  # 搜索增强 + BM25 重排
├── search/
│   ├── duckduckgo.py        # SearXNG + DDG 并行搜索
│   ├── extraction_pipeline.py  # 四级内容提取
│   └── intent_classifier.py # 意图感知分类
├── knowledge/doc_reader.py  # PDF/Word/MD 文档读取
├── flywheel/                # 专家飞轮轨迹→模式→生成→AB测试
├── registry/                # 专家注册表 + .kwx 打包
├── memory/                  # 三层记忆系统
├── ast_engine/              # tree-sitter AST + 调用图
├── notification/            # 飞轮通知
├── stats/                   # 价值量化SQLite
└── llm/                     # Ollama + llama.cpp 双后端

参考文献

  1. AgentlessXia et al. ICSE 2025 — 确定性流水线优于复杂 agent
  2. CodeCompassarXiv:2602.20048, 2026 — 图遍历 G3 任务 99.4% vs BM25 76.2%
  3. KGCompassYang et al. arXiv:2503.21710, 2025 — SWE-bench Lite 58.3%
  4. AgentCoderHuang et al. EMNLP 2023 — 多专家分工验证
  5. EE-MCPNeurIPS 2025 — 任务轨迹经验提取机制
  6. Agent PsychometricsarXiv:2604.00594, 2026 — 任务特征预测 agent 成功率

参与贡献

KWCode 是中国开发者做的,也需要中国开发者一起来完善。

不管你在北京还是新加坡,在上海还是旧金山,只要你是华人开发者,都欢迎参与。

最需要的贡献

新增预置专家(最简单,编辑一个 YAML 文件):

# 急需认领:
Vue3Expert / DjangoExpert / GoGinExpert / RustActixExpert
K8sExpert / DockerExpert / RedisExpert / MySQLExpert
kwcode expert create MyExpert
# 用自己真实项目测试 ≥5 个任务,跑通率 ≥80%
# 提 PR

语言支持扩展PHP · C# · Kotlin · Swift · DartAST 调用图)

B 站视频教程 / 技术博客

贡献流程

git clone https://github.com/val1813/kwcode.git
cd kwcode
pip install -e ".[dev]"
python -m pytest kaiwu/tests/ -v --ignore=kaiwu/tests/bench_tasks
git checkout -b feat/your-feature
# 开发 → 测试 → PR

IssuesBug 报告、功能建议 Discussions:技术讨论、专家设计


License

MIT — 自由使用、修改、分发。


如果 KWCode 对你有帮助,请给一个

这不只是一个工具,是华人开发者社区共同的技术资产。

天工开物 · KWCode