Files
kwcode/CHANGELOG.md
Val-sss 01f8dccc06 release: v2.0.0 — Eval驱动架构升级,数据量化验证每个改动
核心成果:Eval 0%→20% (3/15 PASS),总测试通过数 294→377 (+28%)

新增:
- usage_finder: AST确定性调用关系传递
- bug_decomposed: 多bug任务逐TestClass拆解修复
- 新文件创建: _maybe_create_missing_module
- 工程约束注入: _detect_engineering_hints
- 自适应采样: 大文件1次/小文件3次
- bench诊断报告系统: bench_diagnose.py

实验验证(数据说话):
- diff格式对32B弊大于利(超时),已回滚
- 自适应采样解决超时但降低多样性
- usage_finder/bug_decomposed机制有效但受模型能力限制

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-10 15:59:59 +08:00

28 KiB
Raw Permalink Blame History

Changelog

All notable changes to KWCode are documented here.


[2.0.0] - 2026-05-10

Eval驱动架构升级数据说话量化验证每个改动

核心成果Eval通过率 0%→20%3/15 PASS总测试通过数 294→377+83, +28%

Added

  • usage_finder调用关系传递kaiwu/core/usage_finder.pyAST确定性找到所有函数调用点注入prompt让LLM知道修改函数签名时需要同步更新哪些调用方
  • 多bug逐类拆解_run_bug_decomposed()多bug任务按TestClass分组每组独立LLM调用+验证,累积修复不退步。解决"200行14个bug一次全修"的工作记忆溢出问题
  • 新文件创建_maybe_create_missing_module()检测ModuleNotFoundError/ImportError自动创建缺失模块文件并加入locator处理队列
  • 工程约束注入_detect_engineering_hints()检测通用工程模式循环引用保护、递归深度限制、短路求值并注入prompt不是背题而是通用约束
  • 自适应采样:大文件(>150行)只采1次(temp=0.0)避免超时小文件保持3次异构采样(0.0/0.2/0.4)
  • bench诊断报告系统bench_diagnose.py从DetailedLogger日志中提取"脉搏"级诊断——attempt delta、prompt注入检测、机制触发统计、时间分布、LLM输出质量

Changed

  • targeted_fix恢复whole_file模式diff格式实验证明对32B模型弊大于利算行号太慢导致超时回滚为whole_file输出
  • 异构采样自适应根据文件大小动态选择采样策略大文件省时间给retry

Removed

  • 3个过时的search触发测试search机制已在v1.8中移除,测试未同步清理)

Eval实验记录

实验 假设 结果 结论
unified diff格式 减少token提高精度 t21超时t05/t13持平 32B算行号太慢已回滚
自适应采样 大文件降低采样避免超时 t21不超时但41/49(退步) 采样次数↓=尝试多样性↓
usage_finder 调用关系帮助rename t08仍0/26 LLM仍不会全局rename
bug_decomposed 逐类修复提高命中 t15有ctx bug导致退步 bug已修机制本身有效(52/54)

[1.9.0] - 2026-05-09

9项架构优化从"LLM看不懂反馈"到"工程替LLM消化反馈"

核心理念32B模型无法有效整合raw测试输出业界论文已证实kwcode的差异化是工程把反馈解析成LLM最容易理解的形式。

Added

  • 结构化诊断句generate_diagnosis()把pytest raw输出转成"函数X应该返回Y实际返回Z"的精确诊断替代原始2000字输出注入。按错误类型分类AssertionError/AttributeError/TypeError/KeyError等每种给出最直接的描述
  • Execution Feedback内循环_run_execution_feedback()Generator选出最佳候选后立刻跑测试如果还有失败则把结构化诊断给LLM再生成一次。最多1轮额外尝试不消耗外层retry次数
  • Docstring注入_extract_docstrings() + _inject_docstrings()用AST提取目标函数的docstring实现规范注入prompt。LLM读到docstring里的示例和约束后能直接推理出正确实现
  • SKILL.md稳定注入_inject_skill_context()按gap_type过滤SKILL.md中相关章节只注入与当前任务类型匹配的已验证模式
  • LLM生成缺失模块_generate_missing_module_content()ImportError时不再只创建空文件而是用LLM根据测试使用方式生成模块内容
  • 批次拆解循环_run_whole_file_refactor中,当失败测试>3个时分批处理每批生成后立刻验证通过则保留继续下一批退步则回滚
  • Delta反馈_build_retry_hint()中加入"相比上一次新增通过N个测试"或"退步了N个测试"的明确delta信息

Changed

  • 诊断句替代raw输出generator.py中3个注入点targeted fix、whole file refactor、_generate_modified统一优先用诊断句fallback到raw输出
  • orchestrator import熔断增强import_fixer失败后不再直接熔断先尝试用LLM创建缺失的本地模块
  • retry_hint诊断句orchestrator的structured_failures传递改用generate_diagnosis()格式化

Fixed

  • _detect_engineering_hints方法签名丢失编辑过程中方法def行被意外删除已恢复

[1.7.0] - 2026-05-07

KAIJU架构借鉴 + DetailedLogger + Bounded Context

核心理念借鉴KAIJU三个具体机制——bounded context per node、sub-task decomposition、完整流水线日志。

Added

  • DetailedLogger完整流水线日志kaiwu/audit/detailed_logger.py每个任务生成独立JSON日志到logs/目录记录LLM完整prompt/output不截断、各节点输入输出、工程决策重试/熔断/搜索)。环境变量KWCODE_DETAIL_LOG_DIR可配置输出目录
  • LLM Backend on_call钩子每次LLM调用自动触发回调记录完整messages和response到DetailedLogger
  • 存根任务sub-task decomposition_run_stub_decomposed多个pass函数不再一次性让LLM实现而是逐函数独立调用每个函数独立context+独立失败筛选,一个函数失败不影响其他
  • _find_stub_functions精确检测文件中的stub函数pass/.../ return None/raise NotImplementedError
  • _filter_relevant_failures:按函数名/文件名筛选相关测试失败只给LLM看它需要的信息

Changed

  • Generator bounded context_generate_modified不再注入全部8条structured_failures和完整retry_hint而是只传与当前函数相关的失败通过函数名/文件名匹配筛选retry_hint截断到300字符
  • OpenAI兼容API检测修复localhost非标准端口如kaiwu部署器11435现在通过探测/api/tags判断是否Ollama不再错误地走/api/chat导致404
  • Gate LLM调用记录_llm_minimal_classify中增加debug日志记录prompt和raw output

Fixed

  • kaiwu部署器llama.cpp server兼容_detect_openai_compat127.0.0.1:11435正确返回TrueOpenAI兼容不再当作Ollama

[1.6.2] - 2026-05-07

执行反馈深度升级 + 存根任务修复

核心理念不是修retry机制是升级执行反馈的质量。给LLM最精确的失败信息让它知道具体哪里错了。

Added

  • parse_test_failures()结构化解析从pytest输出提取每个失败测试的test_name/expected/actual/error_type/file/line/snippet
  • TraceCoder历史教训累积attempt_history每轮累积不重置retry_hint携带最近3次历史摘要20+20=40效果
  • 完整审计日志llm_calls记录每次LLM调用的prompt/outputnode_io记录各节点输入输出便于快速定位问题出在哪一层
  • WinkMonitor免疫机制tests_no_progress/repetitive_fix pattern检测

Changed

  • Generator首次生成注入structured_failures不只是raw output而是"test_guard_allows: 期望True实际None"这样的精确信息
  • pytest从-q改为-v:获取完整失败详情而非摘要
  • pre_test输出截断从500→2000字符保证assert None==模式不被截掉
  • Reviewer在tests全通过时跳过防止LLM幻觉reject正确结果
  • 存根检测扩展覆盖TypeError/takes no arguments/多个TypeError模式
  • codegen路径文件已存在时走whole_file覆盖不再生成_1.py导致测试跑错文件
  • 逐函数patch全失败时fallback到whole_file保证patches不为0

Fixed

  • hashline \n字面量问题LLM把多行代码塞进一行导致语法错误
  • Gap检测files为空时扫描project_rootpre_test输出只含test文件路径时也能找到源文件存根
  • 回归rollback携带具体信息:不是空白"请只修改必要部分",而是具体哪些测试新失败了

[1.5.1] - 2026-05-06

三飞轮 + 遥测 + 模型自适应 + 前沿算法

理论来源Hashline(oh-my-pi锚点编辑) + AdaptThink(自适应推理) + Thinker(Fast/Slow双过程) + Claude Code(prompt行为工程)

Added

  • 三飞轮系统(全部本地存储):

    • flywheel/strategy_stats.py错误策略有效性统计按error_type×sequence累计成功率min_attempts≥10时自动优化重试顺序
    • flywheel/user_pattern_memory.py跨项目用户错误模式记忆20+任务后自动注入中文提示
    • flywheel/skill_drafter.pySKILL.md自动提炼30+成功轨迹生成草稿
  • 匿名遥测opt-in默认关闭

    • telemetry/client.pyHMAC-SHA256签名 + fire-and-forget上传
    • 只上传error_type, retry_count, success, model绝不上传代码/路径/描述)
    • 服务端:https://llmbbs.com (nginx→FastAPI, 3张SQLite表, IP限流30/min)
    • CLIkwcode telemetry status/enable/disablekwcode skill review/accept/discard
  • Hashline锚点编辑P0

    • tools/hashline.py每行6字符MD5锚点EDIT/DELETE/INSERT_AFTER指令
    • Generator首次尝试hashline1024 tokens失败fallback全函数生成
    • 哈希不匹配→拒绝全部编辑(防止写入脏数据)
  • AdaptThink自适应推理P1

    • core/think_config.py按expert_type×difficulty自动选择think预算
    • easy→off, medium→512, hard→2048-4096, chat/office→always off
  • Fast/Slow双阶段推理P2

    • 第一次fast(think=off)第一次失败升级slow(budget=2048)第二次失败最大budget(4096)
  • 审计日志

    • audit/logger.py持久化任务执行轨迹为JSON最多100条
    • CLIkwcode log / kwcode log show <id> / kwcode log clear
  • kwcode model命令

    • kwcode model:查看当前模型+tier
    • kwcode model set <name>:切换模型
    • kwcode model probe:探测模型详情
  • model_capability全量接入

    • orchestrator检测tier→ctx注入→Generator按tier切prompt约束
    • SMALL严格约束(1函数/≤10行/保持缩进/禁解释/禁工具描述)
    • ctx自适应4层探测(llama.cpp→vLLM→Ollama→离线表)Ollama每次请求主动设num_ctx

Changed

  • Prompt量化改造CC风格

    • "只做任务要求的事" → "每次patch≤2函数≤30行"
    • "缩小修改范围" → "只修改1个函数≤15行"
    • GENERATOR_PROMPT/NEWFILE/TEST正面指令替代负面指令删除工具描述
    • CHAT_SYSTEM删除无用工具描述≤100字/≤3句
    • RETRY_STRATEGIES hints每种错误类型量化行数限制
  • 版本号统一pyproject.toml为唯一真相源其他文件通过importlib.metadata读取

Fixed

  • 缩进对齐bugGenerator._align_indentation()修复class方法缩进丢失LLM返回0空格→原始4空格对齐
  • JSON解析崩溃debug_subagent(×2) + checkpoint(×2) + ast_grep_engine(×1) 加try/except保护
  • 版本号测试test_server.py硬编码"1.5.0"→动态__version__

[1.4.0] - 2026-05-06

多语言 + TUI + IDE兼容3 个模块)

理论来源XRAY MCP Server(ast-grep选型) + OpenCode(client/server分离) + CodeCompass(工具采用率)

Added

  • 多语言 AST 支持模块A

    • ast_engine/language_detector.py7语言检测(Python/JS/TS/Go/Rust/Java/C#),项目标记文件识别(go.mod/Cargo.toml/package.json/pom.xml)
    • ast_engine/ast_grep_engine.py:预定义查询模板(find_function/find_class/find_imports/find_method_call)LLM只填参数不写pattern支持ast-grep-py绑定和CLI两种后端
    • ast_engine/parser.py 扩展TreeSitterParser 支持 JS/TS/Go/Rust/Java可选依赖graceful fallback
    • ast_engine/graph_builder.pySUPPORTED_EXTENSIONS 动态扩展 + rig.json 新增 language_stats 字段
    • experts/verifier.py 多语言:测试运行器(pytest/jest/go test/cargo test/mvn test/dotnet test) + 语法检查(py_compile/go vet/tsc --noEmit/cargo check/javac) + 多语言错误分类
    • 4个新 SKILL.mdbuiltin_experts/golang/typescript/rust/java/
  • FastAPI Server + SSE模块B

    • server/app.pyFastAPI 应用,端口 7355CORS 支持
      • POST /api/task → 提交任务返回 task_id
      • GET /api/task/{id}/events → SSE 事件流
      • GET /api/health / GET /api/status → 健康检查和状态
      • GET /api/files / GET /api/file → 文件树和内容
      • POST /api/rig/refresh → 重建 rig.json
    • server/pipeline_factory.py:共享 pipeline 构建CLI 和 server 复用)
    • server/models.pyPydantic 模型(TaskRequest/TaskResponse/HealthResponse/FileContent等)
    • CLI 新增 kwcode serve 命令
  • Textual TUI模块B

    • tui/app.py:左面板(DirectoryTree + 文件预览) + 右面板(RichLog事件流 + Input任务输入)
    • 自动检测 server 是否运行,未运行则 subprocess 启动
    • CLI 新增 kwcode --tui 选项
  • VSCode 插件模块C

    • extension/src/extension.ts:命令注册、文件保存触发 RIG 刷新、状态栏连接指示
    • extension/src/server-client.tsSSE 客户端,连接 localhost:7355
    • extension/src/panel.tsWebview 面板,事件渲染 + 任务输入
    • 薄客户端架构:不重复实现业务逻辑

Changed

  • pyproject.toml:新增 optional-dependenciesmultilang/server/tuifull 包含所有
  • 版本号 1.3.0 → 1.4.0
  • 测试数量 357 → 424

Architecture Decisions

  • ast-grep pattern 绝对不让 LLM 生成:只用 QUERY_TEMPLATES 预定义模板LLM 只填参数(函数名等)
  • Server 单例 pipeline:每个任务 asyncio.to_thread() 隔离EventBus 事件直接推送到 SSE Queue
  • TUI/VSCode/CLI 共享同一事件流:三种前端都是 EventBus 的消费者
  • 所有新依赖都是 optional:不影响现有 pip install kwcode 安装

[1.3.0] - 2026-05-06

v2 架构升级10 个模块)

理论来源Dive into Claude Code(arXiv:2604.14228) + Wink(arXiv:2602.17037) + ARCS(arXiv:2504.20434) + SpecEyes(arXiv:2603.23483) + OPENDEV(arXiv:2603.05344) + Turn-Control(arXiv:2510.16786)

Added

  • EventBus 统一事件总线append-only 日志 + replay + wildcard 监听
  • ToolGateway 工具权限层:专家权限白名单 + 文件读缓存 + 脏标记
  • 错误策略路由:按 error_type 切换重试序列syntax/assertion/import/patch_apply/runtime/unknown
  • 认知门控 CognitiveGatepatch 行数递减检测边际收益递减
  • 上下文渐进压缩 GraduatedCompactor3层(70%/85%/95%)
  • Plan 自动触发hard 任务自动生成执行计划
  • Worktree 隔离git worktree / tempdir + copytree
  • Speculative PrefetchLocator 完成后后台预读文件
  • SearchRouter 意图感知搜索:零 key 默认可用(arXiv/S2/GitHub/PyPI/Open-Meteo)
  • Wink 自修复监控scope_creep/repetitive_fix/patch_miss/empty_output
  • 搜索层网络保护:全局 try/except + search_enabled 开关

[1.0.7] - 2026-04-30

系统走查:修复 5 个问题qwen3:8b 真实模型验证)

用本地 qwen3:8b 跑 10 个复合场景端到端测试,发现并修复 5 个问题。

Fixed

  • Planner regex 非贪婪 bug\[.*?\] 遇到 depends_on:[] 提前终止auto_decompose 永远返回 None。改为贪婪 \[.*\]
  • TrajectoryCollector.get_by_expert() 缺失ab_tester 投产时调用此方法会 AttributeError。新增方法
  • auto_decompose 未接入 _run_task()hard 任务不会自动拆分。现在 difficulty=hard + subtask_hint 非空时自动走 TaskCompiler
  • 预搜索未接入 _run_task()Gate 判断 needs_search=true 但 pre_search_results 从未传递。现在预搜索触发后注入 orchestrator
  • session_md 未接入 REPL 退出SESSION.md 从未被写入。现在 REPL 退出时自动保存最近任务摘要

验证结果qwen3:8b 真实输出)

Gate分类准确率: 5/5 场景全部正确
  - 复合任务 → hard + subtask_hint ✓
  - 简单bugfix → easy + no search ✓
  - 需要搜索 → needs_search=true ✓

auto_decompose: 修复后正确拆分2子任务依赖关系正确
QueryGenerator site限定: LLM自动输出 site:arxiv.org / site:stackoverflow.com
Token tracking: 3次调用共639 tokens

[1.0.6] - 2026-04-30

搜索优化LLM 自动 site: 限定

理论来源: LLM 已经在生成 query直接让它顺便决定 site: 限定,零新 API零新依赖。

Added

  • QueryGenerator 智能 site 限定:第一条 query LLM 自动判断去哪个站点arxiv/github/stackoverflow/pypi 等),后续 query 不加限定做广度搜索
  • _clean_query() 安全过滤:拦截 prompt injection 尝试ignore previous/[INST] 等)
  • realtime intent:预搜索场景专用意图类型
  • QueryGenerator 兼容纯字符串调用:不强制要求 TaskContext预搜索可直接传 string

[1.0.5] - 2026-04-30

P1+P2自动任务拆分 + 预搜索 + PCED-Lite

理论来源:

  • ExpertRAG (2026)Gate层搜索决策前移避免失败后才搜索的浪费
  • PCED (arXiv:2601.08670, 2026)并行上下文专家解码180倍TTFT加速
  • Task Decomposition Research (2026)后台无感知任务分解是区分功能性agent的关键机制

Added

  • Gate 输出扩展(向后兼容):新增 needs_search(是否需要实时数据)和 subtask_hint(子任务提示)两个字段
  • Planner.auto_decompose():基于 Gate 的 subtask_hint 自动拆分 hard 任务为 DAG
    • 只在 hint 有 2-5 个子任务时触发
    • LLM 一次调用确认依赖关系
    • 失败静默降级为单任务P1-RED-1
  • 预搜索Gate 判断 needs_search=true 时,在 orchestrator.run() 前预加载实时数据
    • orchestrator.run() 新增 pre_search_results 参数
    • 预搜索结果直接注入 ctx.search_results跳过失败触发的搜索
  • PCED-Lite (search/pced_lite.py)
    • 对每个搜索结果独立生成答案ThreadPoolExecutor 并行)
    • 一致性投票选最终答案(字符级重叠率判断)
    • FLEX-2VRAM<6GB 或文档<3 时静默降级到 BM25 拼接

[1.0.4] - 2026-04-30

代码审查:修复 8 个空架子/竞态/数据错误

问题来源: 完整代码审查发现功能存在但实际不运行、功能间矛盾、数据错误。

Fixed

  • DebugSubagent 实例化:之前 debug_subagent=None 从未传入 orchestratorDebug 功能是死代码。现在 main.py 里正确实例化并注入
  • PromptOptimizer 接入投产流程:专家通过三道门投产后自动触发 prompt 优化(需配置 anthropic_api_key
  • Checkpoint 并行竞态/multi 多任务并行时每个子任务都 git stash 导致文件混乱。现在子任务级别 skip_checkpoint=True
  • force_plan_mode 可覆盖:小模型用户之前无法关闭强制计划模式,现在可通过 --no-search 间接控制
  • conversation_history 存真实输出:之前 assistant content 存的是 user_input假数据现在存 LLM 实际生成的 explanation
  • 多语言 AST:确认代码已正确标注为 Python-onlySUPPORTED = {"python": ...}),无虚假多语言声明
  • Cross-Encoder:确认已有优雅降级(_reranker_disabled=True),无需额外修改

[1.0.3] - 2026-04-30

上下文优化 + SSH 持久会话

理论来源:

  • Letta (2026)Active+Archive 分层记忆架构
  • GCC State Passing结构化状态传递不通过对话历史
  • SWE-Pruner代码块保护原则代码内容禁止被压缩
  • Claude Code敏感文件备份而非阻止写入

Added

  • 三层上下文架构 (core/context.py + core/context_pruner.py)

    • Layer 1 (Active)文字摘要Gate/Generator 看到的≤2K tokens可压缩
    • Layer 2 (Structured State)Python 对象subtask_results, code_snippets精确传递不压缩
    • Layer 3 (Archive)持久化文件SESSION.md, PATTERN.mdBM25 按需检索
    • 新增字段:subtask_resultscurrent_task_idupstream_summary
  • 代码块保护 (CTX-RED-1)ContextPruner 压缩时检测 ``` 代码块,保留代码原文不做关键词化

  • 持久 SSH 会话 (tools/ssh_session.py)

    • paramiko 实现connect 一次后多次 exec
    • 集成到 ToolExecutorssh_connect/ssh_exec/ssh_upload/ssh_download/ssh_close
    • Guardrails 同样适用于远程命令

Fixed

  • 敏感文件保护改为备份模式(.bak而非阻止写入与 Claude Code 行为一致

[1.0.2] - 2026-04-29

MoE 框架补全4 个缺失主部件

基于 7 层 Agent 架构审计Perceive→Remember→Think→Plan→Act→Observe→Guardrails补全 Observe 层和 Guardrails 层。

理论来源:

  • Portal26 Agentic Token Controls (2026)token 预算管控防止失控消耗
  • Claude Code 4-Layer Memory (2026)MEMORY.md → Topic Files → Learnings → Patterns
  • Augment Code "Session-End Spec Update" (2026):会话结束时持久化决策和约束
  • CodeDelegator EPSS (arXiv:2601.14914)Ephemeral-Persistent State Separation
  • 9 Failure Modes of Agentic AI (ElixirData 2026)context overflow、function hallucination execution

Added

  • Token 预算管控 (llm/llama_backend.py)

    • 每次 LLM 调用自动计数 input/output tokens
    • token_usage 属性查看当前消耗
    • set_token_budget(n) 设置上限,超出抛 BudgetExceededError
    • OpenAI 兼容 API 使用真实 usage 数据Ollama 用估算4 chars/token
  • Guardrails 护栏 (tools/executor.py)

    • 危险命令拦截rm -rf、git push --force、drop database 等 12 种模式
    • 敏感文件保护:.env、credentials.json、id_rsa 等不可写
    • 文件范围限制write_file 不能写到 project_root 之外
  • 执行可观测性 (core/execution_trace.py)

    • ExecutionTrace 结构化记录每步name、耗时、成功/失败)
    • 任务完成后 .summary() 输出人类可读摘要
    • 记录 LLM 调用次数和 token 消耗
  • 会话连续性 (memory/session_md.py)

    • 会话结束时自动生成 SESSION.md最近任务摘要
    • 下次启动自动加载,注入 Gate 的 memory_context
    • 限制 50 行,最新在前

[1.0.1] - 2026-04-29

Gate/Loop/路由优化

基于前沿研究优化 Gate 和执行循环,进一步减少 LLM 决策负担。

理论来源:

  • Turn-Control Strategies (arXiv:2510.16786):动态预算比固定预算好 12-24%
  • Hidden Architectural Seam (2026):分离 Planner 和 Executor 提升 9-15%
  • CodeDelegator (arXiv:2601.14914)Ephemeral-Persistent State Separation 防止 context 污染
  • Cognition/Devin (2026)hierarchical delegation 有效parallel-writer swarms 失败
  • Compiled Execution (MightyBot 2026)90% agent 工作是路由不是推理,确定性代码优于 LLM 决策
  • ORCH (Frontiers in AI 2026)EMA-guided 确定性路由,无需额外 LLM 调用

Added

  • 动态重试预算:根据 Gate 的 difficulty 判断分配重试次数easy=2, hard=4不再一刀切
  • TaskPlanner 自动任务分解 (core/task_planner.py)
    • 1次 LLM 调用将复合任务拆分为 DAG JSON
    • 只在 difficulty=hard 且输入>30字时触发节省 LLM 调用)
    • 失败降级为单任务(不死循环)
    • 最多拆分5个子任务

Fixed

  • Context 污染:重试时清空 debug_info,防止前轮调试噪音干扰下一轮 Generator
    • 之前debug_info 累积第3次重试时 context 里塞了前2次的调试信息
    • 现在每次重试前清空重新采集Ephemeral State

[1.0.0] - 2026-04-29

Architecture: 元专家体系定稿

KWCode 的专家系统从"按业务领域枚举"升级为"按原子能力分层 + 领域知识注入"。

5 个元专家(原子能力层,固定不变):

元专家 能力 文件
Locator 代码定位BM25+AST调用图 experts/locator.py
Generator 代码生成/编辑 experts/generator.py
Verifier 测试验证pytest experts/verifier.py
Debugger 运行时调试sys.settrace experts/debug_subagent.py
Reviewer 需求对齐审查 experts/reviewer.py

15 个领域知识SKILL.md 注入层,可扩展):

BugFix · FastAPI · TestGen · API · DeepSeekAPI · Docstring · MyBatis · OfficeDocx · OfficePptx · OfficeXlsx · Refactor · SpringBoot · SQLOpt · TypeHint · UniApp

领域知识不改变流水线结构,只注入 Generator 的 system_prompt。

Added

  • Reviewer 元专家 (experts/reviewer.py)Verifier 通过后用 LLM 对比用户意图和实际变更,判断需求是否对齐
  • SKILL.md 渐进式加载:全部 15 个专家从 YAML 升级为 SKILL.md 目录格式
    • Level 1Gatename + keywords~100 token/专家
    • Level 2Generator完整领域知识仅命中专家加载
    • Level 3on-demand确定性脚本不进 LLM context
  • DAG TaskCompiler (core/task_compiler.py):串行+并行多任务调度
  • /multi 命令CLI 多任务模式(分号并行、箭头串行、交互式混合)
  • Debug Subagent (experts/debug_subagent.py)verifier 失败后 sys.settrace 捕获运行时变量
  • Prompt Optimizer (flywheel/prompt_optimizer.py):飞轮优化 SKILL.md 的领域知识内容
  • Cross-Encoder 重排 (search/reranker.py):可选搜索结果精排
  • Reflexion 持久化 (memory/pattern_md.py)REFLECTION.md 结构化记录 + /plan 风险注入
  • OpenAI 兼容 API 自动检测LLMBackend 根据 URL 自动判断用 /api/chatOllama还是 /v1/chat/completionsDeepSeek/硅基流动等)

Changed

  • 专家格式从 flat YAML 升级为 SKILL.md 目录(全量迁移,旧 YAML 已删除)
  • LLMBackend 支持 api_key 参数,云端 API 自动带 Authorization header
  • 版本号从 0.7.0 → 1.0.0
  • 测试数量282 → 311

Removed

  • 15 个旧 .yaml 专家文件(已全部转为 SKILL.md 目录)
  • Python 专家系统ExpertBase、BugFixExpert.py、SelfImprovingOptimizer— 方向错误v0.8.0 加入后 v0.9.0 移除

Fixed

  • LLMBackend 硬编码 /api/chat 导致云端 APIDeepSeek 等404 的问题
  • 初始化配置时验证用 /v1/chat/completions 但实际请求用 /api/chat 的不一致

Architecture Decisions

  • 元专家按原子能力分,不按业务领域分:研究证明 MoE 路由反映隐状态几何结构而非领域专业性arXiv:2604.09780
  • 领域知识是注入层,不是独立流水线:所有任务走同一条 Locator→Generator→Verifier 管线,区别只在 system_prompt
  • 渐进式加载解决噪音问题Gate 只看 metadata~1500 token/15专家不全量加载所有知识
  • Reviewer 非阻塞:审查结果不回滚代码,只提示用户注意 gap
  • 弱模型 + Skill 胜过强模型裸跑tessl.io 880次评测证明 Haiku+Skill(84.3%) > Opus裸跑(80.5%)

[0.9.0] - 2026-04-29

Added

  • DAG TaskCompiler + /multi 命令
  • Debug Subagent基于 Debug2Fix 论文)
  • Prompt Optimizer优化 YAML system_prompt
  • Reflexion 持久化 + Cross-Encoder 重排

Removed

  • Python 专家系统ExpertBase、BugFixExpert.py、SelfImprovingOptimizer
  • Registry Python 专家加载逻辑

[0.7.0] - 2026-04-29

Added

  • UI 全面优化spinner、结果摘要、重影大字 Header
  • 意图感知搜索
  • 搜索模块重构(四级提取管道)
  • P2 三大功能(模型自适应、飞轮通知、价值仪表盘)
  • P1 四大功能KWCODE.md、/plan、Checkpoint、DocReader
  • MVP 核心流水线Gate→Locator→Generator→Verifier→Search

References

论文 对 KWCode 的影响
Agentless (ICSE 2025) 整体确定性流水线架构
CodeCompass (2026) AST 调用图定位
Debug2Fix (ICML 2026) Debug Subagent
LLMCompiler (ICML 2024) DAG 任务调度
Reflexion (NeurIPS 2023) 失败模式持久化
SICA (2025) Prompt 自动优化
GitHub Copilot Atomic Skills (2025) 5 原子能力分层
SWE-Skills-Bench (2026) 80% 泛泛 skill 无效,具体知识才有效
MoE Routing Geometry (2026) 专家不按领域分,按能力分
Agent Skills Progressive Disclosure (Anthropic 2026) 渐进式加载架构