diff --git a/docs/comparison/qwen-code-improvement-report.md b/docs/comparison/qwen-code-improvement-report.md index 96439159..de643d22 100644 --- a/docs/comparison/qwen-code-improvement-report.md +++ b/docs/comparison/qwen-code-improvement-report.md @@ -37,23 +37,23 @@ | 优先级 | 改进点 | Qwen Code 现状 | 难度 | 进展 | |:------:|--------|----------------|:----:|------| -| **P0** | Mid-Turn Queue Drain(工具批次间注入用户输入) | 推理循环内无队列检查 | 中 | PR [#2854](https://github.com/QwenLM/qwen-code/pull/2854) open | -| **P0** | 多层上下文压缩(4 层 vs 单一 70% 阈值) | 仅 ChatCompressionService | 中 | — | -| **P0** | Fork 子代理(隐式 fork + 上下文继承 + prompt cache 共享) | 仅预定义 subagent_type | 中 | — | -| **P1** | Speculation 默认启用 | v0.15.0 已实现,默认关闭 | 小 | PR [#2525](https://github.com/QwenLM/qwen-code/pull/2525) merged | -| **P1** | 会话记忆(SessionMemory + memdir 跨 session 检索) | 仅简单笔记工具 | 大 | — | +| **P0** | [Mid-Turn Queue Drain](./input-queue-deep-dive.md)(工具批次间注入用户输入) | 推理循环内无队列检查 | 中 | PR [#2854](https://github.com/QwenLM/qwen-code/pull/2854) open | +| **P0** | [多层上下文压缩](./context-compression-deep-dive.md)(4 层 vs 单一 70% 阈值) | 仅 ChatCompressionService | 中 | — | +| **P0** | [Fork 子代理](./fork-subagent-deep-dive.md)(隐式 fork + 上下文继承 + prompt cache 共享) | 仅预定义 subagent_type | 中 | — | +| **P1** | [Speculation](../tools/claude-code/10-prompt-suggestions.md) 默认启用 | v0.15.0 已实现,默认关闭 | 小 | PR [#2525](https://github.com/QwenLM/qwen-code/pull/2525) merged | +| **P1** | [会话记忆](./memory-system-deep-dive.md)(SessionMemory + memdir 跨 session 检索) | 仅简单笔记工具 | 大 | — | | **P1** | Auto Dream(自动记忆整理,24h + 5 session 门控) | 缺失 | 中 | — | | **P1** | 上下文折叠(History Snip,span 级摘要) | 缺失 | 大 | — | | **P1** | 工具动态发现(ToolSearchTool,延迟加载 + 搜索) | 缺失 | 小 | — | -| **P1** | 智能工具并行(Kind-based Batching,默认 10 并发) | Agent 并发 / 其他顺序 | 小 | PR [#2864](https://github.com/QwenLM/qwen-code/pull/2864) open | -| **P1** | 启动优化(API Preconnect + Early Input Capture) | 完全缺失 | 小 | — | -| **P1** | 指令条件规则(frontmatter `paths:` + 惰加载) | 无 frontmatter / 条件加载 | 中 | — | -| **P2** | Shell 安全增强(25+ 检查 vs AST-only 读写分类) | 不覆盖 IFS/Unicode/Zsh | 中 | — | -| **P2** | MDM 企业策略(plist + Registry + 远程 API) | 无 OS 级策略 | 大 | — | -| **P2** | API 实时 Token 计数(vs 静态 82 模式匹配) | 静态模式匹配 | 中 | — | +| **P1** | [智能工具并行](./tool-parallelism-deep-dive.md)(Kind-based Batching,默认 10 并发) | Agent 并发 / 其他顺序 | 小 | PR [#2864](https://github.com/QwenLM/qwen-code/pull/2864) open | +| **P1** | [启动优化](./startup-optimization-deep-dive.md)(API Preconnect + Early Input Capture) | 完全缺失 | 小 | — | +| **P1** | [指令条件规则](./instruction-loading-deep-dive.md)(frontmatter `paths:` + 惰加载) | 无 frontmatter / 条件加载 | 中 | — | +| **P2** | [Shell 安全增强](./shell-security-deep-dive.md)(25+ 检查 vs AST-only 读写分类) | 不覆盖 IFS/Unicode/Zsh | 中 | — | +| **P2** | [MDM 企业策略](./mdm-enterprise-deep-dive.md)(plist + Registry + 远程 API) | 无 OS 级策略 | 大 | — | +| **P2** | [API 实时 Token 计数](./token-estimation-deep-dive.md)(vs 静态 82 模式匹配) | 静态模式匹配 | 中 | — | | **P2** | Plan 模式 Interview Phase | 无 interview 阶段 | 中 | — | | **P2** | BriefTool(异步消息 + 附件) | 缺失 | 中 | — | -| **P2** | SendMessageTool(多代理通信) | 缺失 | 中 | — | +| **P2** | [SendMessageTool](./multi-agent-deep-dive.md)(多代理通信) | 缺失 | 中 | — | | **P2** | FileIndex(fzf 风格模糊搜索) | 依赖 rg/glob | 中 | — | | **P2** | ConfigTool(工具化设置读写) | 仅 /settings 命令 | 小 | — | | **P2** | 自动后台化 Agent(超时转后台) | 需显式指定 | 小 | — | @@ -62,7 +62,7 @@ | **P3** | Advisor 顾问模型 | 缺失 | 中 | — | | **P3** | Vim 完整实现(motions/operators/textObjects) | 基础 vim.ts | 中 | — | | **P3** | 语音模式 | 缺失 | 大 | — | -| **P3** | 插件市场 | 缺失 | 大 | — | +| **P3** | [插件市场](./hook-plugin-extension-deep-dive.md) | 缺失 | 大 | — | > 详细的 Claude Code 实现机制和建议方案见下文 Top 5 详细说明及各 [Deep-Dive 文章](#五相关-deep-dive-文章)。 @@ -87,6 +87,16 @@ - 源码: `packages/core/src/services/chatCompressionService.ts`(369 行),基于固定 token 阈值(70%)的单一压缩策略 - 无 micro-compact、无 memory-aware compact、无 API 原生上下文管理 +**缺失后果**: +- 长会话中工具结果(大文件内容、长命令输出)持续累积,用户必须手动执行 `/compress`,否则上下文溢出报错 +- 压缩时一次性丢弃所有历史,丢失已提取的会话记忆——压缩后模型"失忆",需重新描述上下文 +- 无 `cache_edits` API 支持——每次压缩重建整个 prompt cache,浪费 cache write tokens + +**改进收益**: +- **MicroCompact**:自动在 turn 间裁剪旧工具结果,长会话可无限延续而无需手动干预 +- **Session-Memory Compact**:压缩时保留关键记忆 + 最近 5 个文件重注入——压缩后模型仍能"接着干" +- **多级阈值**:~93% 自动触发(Claude Code 默认)vs 70% 手动触发——用户感知不到压缩发生 + **相关文章**: - [上下文压缩深度对比](./context-compression-deep-dive.md) @@ -116,6 +126,16 @@ - 源码: `packages/core/src/subagents/` — 子代理管理器,但仅支持预定义类型 - 无法 fork 当前会话上下文,无法继承对话历史 +**缺失后果**: +- 子代理无法获得父代理的对话上下文——每次委派任务都需要在 prompt 中重复描述背景,增加 token 消耗和信息丢失风险 +- 每个子代理的 API 请求前缀完全不同——无法共享 prompt cache,5 个子代理 = 5× 完整 prompt 费用(100K context 下约 500K tokens vs fork 模式 ~105K) +- 用户必须显式指定 `subagent_type`——模型无法自然地"分叉去做",降低了自主性 + +**改进收益**: +- **上下文零成本传递**:子代理继承完整对话历史,无需重复描述——任务理解准确率提升 +- **Prompt Cache 共享**:N 个 fork 子代理共享一份缓存,成本从 N× 降为 ~1×——典型场景节省 80%+ token 费用 +- **隐式调用**:省略 `subagent_type` 即 fork——降低模型认知负担,让委派更自然 + **相关文章**: - [Fork 子代理 Deep-Dive](./fork-subagent-deep-dive.md) - [Claude Code 多代理系统](../tools/claude-code/09-multi-agent.md) @@ -149,6 +169,15 @@ - 已实现 `acceptSpeculation()` + `generatePipelinedSuggestion()` + 边界检测 - **当前限制**:`enableSpeculation` 默认关闭,需用户手动开启 +**缺失后果(默认关闭)**: +- 用户每次按 Tab 接受建议后,仍需等待完整的 API 调用 + 工具执行——典型等待 2-10 秒 +- 无法实现"Tab-Tab-Tab"连续操作模式——每次接受后都有延迟中断 + +**改进收益(默认开启后)**: +- **零感知延迟**:建议展示时 speculation 已在后台预执行,Tab 接受后结果立即呈现 +- **Pipelined Suggestion**:speculation 完成后自动预生成下一个建议——用户可连续 Tab 操作 +- 预计首次交互延迟改善 2-5 秒(取决于工具执行时间) + **相关文章**: - [Claude Code 提示建议](../tools/claude-code/10-prompt-suggestions.md) - [启动阶段优化深度对比](./startup-optimization-deep-dive.md) @@ -183,6 +212,16 @@ - 无记忆 (Memory) 提取/检索机制 - 无记忆 (Memory) 生命周期管理 +**缺失后果**: +- 每次新 session 从零开始——用户需反复告知项目背景、编码规范、已踩过的坑 +- 复杂项目中同一问题被多次排查——前次 session 的发现未持久化 +- 与 `/compact` 冲突——压缩后丢失的上下文无法从记忆中恢复 + +**改进收益**: +- **跨 session 连续性**:关键决策、文件结构、技术栈信息自动提取并持久化——新 session 自动注入相关记忆 +- **压缩后恢复**:记忆在 compact 时被保留(session-memory compact),模型不会因压缩而"失忆" +- **项目级知识积累**:多人/多 session 的发现汇聚为项目知识库——团队共享学习曲线 + **相关文章**: - [记忆系统深度对比](./memory-system-deep-dive.md) @@ -215,6 +254,16 @@ **Qwen Code 现状**: - 完全缺失此功能 +**缺失后果**: +- 记忆文件(QWEN.md / MEMORY.md)随使用增长无限膨胀——token 预算被陈旧记忆占满 +- 相互矛盾的记忆(旧决策 vs 新决策)共存——模型收到冲突指令 +- 用户需手动清理过时记忆——违背"AI 代理应自治"原则 + +**改进收益**: +- **自动整合**:后台 agent 定期合并、去重、删除过时记忆——记忆始终精简且一致 +- **门控保护**:仅在 24h + 5 session 门控同时满足时触发——避免频繁整理干扰正常使用 +- **并发安全**:文件锁防止多进程同时整理——适合多终端/CI 场景 + **建议方案**: 1. 实现 DreamConfig:定义时间门控和 session 数量门控参数 2. 实现 DreamScheduler:在 post-sampling hook 中检查门控条件 @@ -247,6 +296,8 @@ ## 五、相关 Deep-Dive 文章 +### 对比分析(Claude Code vs Qwen Code) + | 改进领域 | 文章 | |----------|------| | Mid-Turn Queue Drain | [输入队列与中断机制](./input-queue-deep-dive.md) | @@ -259,5 +310,20 @@ | MDM 企业配置 | [MDM 企业配置管理](./mdm-enterprise-deep-dive.md) | | 遥测架构 | [遥测架构](./telemetry-architecture-deep-dive.md) | | Token 估算 | [Token 估算与 Thinking](./token-estimation-deep-dive.md) | -| Speculation | [Prompt Suggestions](../tools/claude-code/10-prompt-suggestions.md) | | 会话记忆 | [记忆系统](./memory-system-deep-dive.md) | +| 多代理通信 | [多代理系统](./multi-agent-deep-dive.md) | +| 插件/Hook 扩展 | [Hook 与插件扩展](./hook-plugin-extension-deep-dive.md) | +| MCP 集成 | [MCP 集成](./mcp-integration-deep-dive.md) | +| 功能矩阵 | [功能对比矩阵](./features.md) | + +### Claude Code 源码文档 + +| 领域 | 文章 | +|------|------| +| 架构总览 | [技术架构(22 节)](../tools/claude-code/03-architecture.md) | +| 工具系统 | [工具系统](../tools/claude-code/04-tools.md) | +| 多代理 / Swarm | [多代理系统](../tools/claude-code/09-multi-agent.md) | +| Prompt Suggestions | [Prompt Suggestions + Speculation](../tools/claude-code/10-prompt-suggestions.md) | +| 终端渲染 | [终端渲染与防闪烁](../tools/claude-code/11-terminal-rendering.md) | +| 设置与安全 | [设置与安全](../tools/claude-code/06-settings.md) | +| 会话与记忆 | [会话与记忆](../tools/claude-code/07-session.md) |