<!-- 文档分类: MGMT-RPT-007 | 阶段: 项目管理 | 原路径: docs/报告/cli-基准对比-2026-05-19.md -->
# KHY 对比 5 大主流 CLI 工具：任务能力基准评测

**日期：** 2026-05-19
**范围：** DeepSeek-TUI、Claude Code、LibreChat、Qwen Code、OpenClaw 对比 KHY
**目标：** 识别小型/中型/大型任务的业界最佳实践模式，产出可落地的差距修复方案

---

## 1. 架构总览

| 维度 | DeepSeek-TUI | Claude Code | LibreChat | Qwen Code | OpenClaw | **KHY** |
|-----------|-------------|-------------|-----------|-----------|----------|---------|
| 语言 | Rust | TypeScript/Bun | TypeScript/Node | TypeScript/Node | TypeScript/Node | JavaScript/Node |
| UI 层 | 自研 TUI (crossterm) | React/Ink | Web UI (React) | 终端 + IDE 扩展 | 终端 | readline + ANSI |
| 进程模型 | 引擎 + 通道架构 | REPL + 守护进程 + 桥接 | Express + LangChain | CLI + IDE 扩展 | PI Agent 内核 | Express + REPL |
| 流式 | SSE + 增量事件 | Anthropic SDK 流 | SSE + Job Manager | Gemini 流 + JSONL | 非流式 | SSE + 分块解析 |
| MCP 支持 | Stdio MCP 服务器 | 完整 MCP + 资源 | MCP + OAuth | MCP 工具加载 | ACP 传输 | 部分（规划中） |

---

## 2. 小型任务能力（单文件编辑、快速问答、一次性修复）

| 能力 | DeepSeek-TUI | Claude Code | LibreChat | Qwen Code | OpenClaw | **KHY** | 最佳实践 |
|-----------|:---:|:---:|:---:|:---:|:---:|:---:|---|
| **模糊字符串编辑** | apply_patch（50 行漂移） | FileEdit（模糊匹配） | 无（Web UI） | edit（精确 + 先读） | 全量重写 | Edit（0.80 相似度） | **DeepSeek**：支持多块模糊的统一 diff |
| **强制先读** | 否（信任模型） | 编辑后重读 | 无 | 是（TOCTOU 校验） | 否 | 否 | **Qwen**：防止过期写入 |
| **编辑校验** | LSP 编辑后诊断 | 重读确认 | 无 | mtime/size TOCTOU | 否 | 否 | **DeepSeek**：自动注入编译器诊断 |
| **快速响应时间** | <2s（Rust 冷启动） | ~40ms 快速路径 | Web 延迟 | ~1s | ~2s | ~1.5s | **Claude Code**：零导入快速路径 |
| **自然语言快捷指令** | 否 | 否 | 否 | 否 | 否 | 是（中/英） | **KHY 独有**：`搜索`/`回测` 快捷指令 |
| **内联文件引用** | 否 | @file 选择器 | 否 | @-命令 | 否 | @file（刚加入） | **Claude Code**：交互式选择器 + 内容注入 |
| **思考显示** | 独立思考块 | 扩展思考 | 推理 token | 否 | 否 | 思考文本 | **DeepSeek**：对推理过程做视觉区分 |

### 小型任务差距评分（分越高越好）

| 工具 | 评分 /10 | 理由 |
|------|-----------|-----------|
| DeepSeek-TUI | 9 | LSP 诊断 + 模糊补丁 + 快速冷启动 |
| Claude Code | 9 | 快速路径 + 重读校验 + 流式工具执行 |
| Qwen Code | 8 | TOCTOU + 先读，但无 LSP 集成 |
| **KHY** | 6 | 模糊编辑可用，但无编辑后校验、无 TOCTOU |
| OpenClaw | 4 | 仅支持全量重写，无增量编辑 |
| LibreChat | 3 | Web UI，无直接文件编辑 |

---

## 3. 中型任务能力（多文件重构、新增功能、跨模块缺陷修复）

| 能力 | DeepSeek-TUI | Claude Code | LibreChat | Qwen Code | OpenClaw | **KHY** | 最佳实践 |
|-----------|:---:|:---:|:---:|:---:|:---:|:---:|---|
| **多文件补丁** | apply_patch（原子、多块） | 顺序 FileEdit | 无 | 顺序 edit | 顺序 write | 顺序 Edit | **DeepSeek**：单次工具调用、覆盖所有文件、原子化 |
| **计划模式** | 3 种模式（Plan/Agent/YOLO） | EnterPlan + ExitPlan | 隐式 | PLAN 审批模式 | 否 | 状态机（5 状态） | **KHY**：状态机最完整 |
| **推理强度** | light/medium/high/auto | 快速模式开关 | 无 | 无 | 无 | 否 | **DeepSeek**：按请求控制强度 |
| **LSP 集成** | Rust/Python/Go/C++/TS | 否 | 否 | 否 | 否 | LSP 客户端（部分） | **DeepSeek**：编辑后注入诊断 |
| **构建校验** | task_gate_run | Bash(npm build) | 代码沙箱 | Shell 命令 | Docker 沙箱 | verificationAgent | **KHY**：多语言自动检测 |
| **测试执行** | task_gate_run + verifier agent | Bash(npm test) | 代码沙箱 | Shell 命令 | Docker 沙箱 | RunTests 工具 | **DeepSeek**：专设 verifier 子代理角色 |
| **循环检测** | LoopGuard（重复调用跟踪） | 无显式机制 | 否 | 5 种类型（复读、停滞等） | 否 | toolLoopDetector | **Qwen**：检测最全面 |
| **上下文窗口** | 1M token（V4） | 200K（Opus） | 可配置 | 可配置 | 可配置 | 取决于网关 | **DeepSeek**：原生窗口最大 |
| **Git worktree 隔离** | 否 | EnterWorktree/ExitWorktree | 否 | 为代理提供 worktree | 否 | 否 | **Claude Code + Qwen**：隔离分支工作 |

### 中型任务差距评分

| 工具 | 评分 /10 | 理由 |
|------|-----------|-----------|
| DeepSeek-TUI | 9.5 | 原子多文件、LSP、verifier 代理、强度控制 |
| Claude Code | 8 | 计划模式、worktree、流式并发工具 |
| Qwen Code | 7.5 | 计划模式、TOCTOU、5 类循环检测、worktree |
| **KHY** | 7 | 计划状态机 + 校验代理，但无原子多文件、无 LSP 诊断 |
| OpenClaw | 5 | 子代理组合，但无计划模式、无流式 |
| LibreChat | 4 | 子代理 + 摘要，但无直接文件操作 |

---

## 4. 大型任务能力（代码库迁移、重大功能、多模块重写）

| 能力 | DeepSeek-TUI | Claude Code | LibreChat | Qwen Code | OpenClaw | **KHY** | 最佳实践 |
|-----------|:---:|:---:|:---:|:---:|:---:|:---:|---|
| **子代理派生** | 7 角色，10 能力，持久化 | AgentTool + Coordinator | 层级式（10 层深度） | agent 工具 + 后台 | acp.spawn（沙箱） | workerAgent（3 层深度，3 并发） | **DeepSeek**：角色分类法（explore/plan/implement/verify） |
| **基于角色的代理** | explore/plan/implement/verify/review/custom | 通用代理 | 通用 | 通用 + worktree | 基于能力 | 通用 worker | **DeepSeek**：专用角色配套定制工具 |
| **输出契约** | SUMMARY/CHANGES/EVIDENCE/RISKS/BLOCKERS | 自由文本 | 仅摘要 | 自由文本 | 自由文本 | 自由文本 | **DeepSeek**：结构化交接格式 |
| **上下文派生（forking）** | 前缀缓存感知派生 | 每代理全新上下文 | 全新 | 全新 | 全新 | 上下文继承 | **DeepSeek**：派生时保留 KV 缓存 |
| **后台执行** | 持久任务队列（8 workers） | --bg 标志 + 守护进程 | Redis 任务队列 | run_in_background | 否 | backgroundTaskManager | **Claude Code**：守护进程支持恢复/接入 |
| **检查点/恢复** | 工作区快照 + /restore N | 会话恢复 | 任务持久化 | 转录 JSONL | 会话文件 | 会话持久化 | **DeepSeek**：基于 git 的文件状态快照 |
| **并行实现** | 多个 implementer 代理 | Coordinator 模式 | 子代理并行 | 后台代理 | 否 | 进程隔离 worker | **Claude Code**：专设协调器 |
| **大输出路由** | Workshop 变量存储（V4-Flash 综合） | 工具结果预算 | 无 | 输出截断 | 无 | 智能截断 | **DeepSeek**：子代理综合大型输出 |
| **压缩策略** | 周期检查点重启 | 4 级压缩 | 摘要 | 70% 阈值压缩 | 基于注册表 | 70% 阈值 + 图像剥离 | **Claude Code**：最细粒度（auto/reactive/micro/tool-budget） |
| **跨会话恢复** | --resume/--continue | 会话恢复 + 回顾 | 会话历史 | 会话回顾 | 会话文件 | 自动恢复（180min 窗口） | **KHY 独有**：时段感知的自动恢复 |
| **持久状态** | 会话 + 任务 + 子代理 + 快照 | 会话 + 任务 + cron | MongoDB | JSONL 转录 | 配置文件 | 会话 + 计划 + 任务 | **DeepSeek**：持久化最全面 |
| **基于租约的认领** | 否 | 否 | 否 | 否 | 否 | 是（心跳 + 断路器） | **KHY 独有**：防止竞态条件 |

### 大型任务差距评分

| 工具 | 评分 /10 | 理由 |
|------|-----------|-----------|
| DeepSeek-TUI | 10 | 角色分类法、持久任务、工作区快照、周期重启、RLM、大输出路由 |
| Claude Code | 8.5 | Coordinator 模式、4 级压缩、守护进程、会话恢复 |
| Qwen Code | 6.5 | 后台代理、压缩、worktree 隔离 |
| **KHY** | 6 | 基于租约的编排器、进程隔离、自动恢复；但无角色代理、无快照、无结构化交接 |
| LibreChat | 5 | 层级式子代理、Redis 扩展；但无直接文件操作 |
| OpenClaw | 4 | 沙箱隔离；但非流式、无计划模式 |

---

## 5. 横切能力

| 能力 | DeepSeek-TUI | Claude Code | LibreChat | Qwen Code | OpenClaw | **KHY** | 最佳实践 |
|-----------|:---:|:---:|:---:|:---:|:---:|:---:|---|
| **权限模型** | 3 模式 + 沙箱（Seatbelt/Landlock） | 三层（策略/工具/请求） | ACL（用户/组/角色） | 5 级层级 | 三层（目标/策略/审批） | 对话框 + 危险模式 + hooks | **Claude Code**：企业级策略 + 分类器 |
| **记忆系统** | ~/.deepseek/memory.md | Kairos 自动梦境 | 用户键值存储 | QWEN.md + AGENTS.md | 会话文件 | 会话 + 项目记忆 | **Claude Code**：自动整合的梦境机制 |
| **Cron 调度** | 自动化工具 | CronCreate/List/Delete | 否 | cron_create/list/delete | 否 | cronScheduler | **共有**：KHY + Claude + Qwen 均有 cron |
| **Hook 系统** | 工具前/后 hooks | 采样前/后 hooks | 否 | 工具前/后 + 权限 hooks | 否 | hookRegistry + hookRunner | **KHY**：三阶段 hooks（前/后/失败） |
| **技能系统** | 无显式机制 | Skills 目录 + SkillTool | 技能目录（30 个预载） | skill 工具 | 否 | 内置技能 + 用户技能 | **LibreChat**：自动预载目录 |
| **多模型网关** | 仅 DeepSeek V4 | 仅 Claude 系列 | 10+ 供应商 | Gemini 为主 | 可配置 | 8 适配器 + 回退 + 断路器 | **KHY 独有**：网关最多样 |
| **错误分类** | ErrorCategory 枚举 | withRetry + 回退 | 无显式机制 | ToolErrorType 枚举（13 类型） | 无显式机制 | 13 类分类器 | **KHY + Qwen**：错误分类法最全面 |
| **遥测** | Token 计数 + 成本 + 审计日志 | Statsig 分析 | 无显式机制 | 指标跟踪 | 否 | telemetryService | **Claude Code**：生产级分析 |
| **国际化** | BCP-47 locale + 翻译层 | 仅英文 | 多语言 UI | 英文 + 中文 | 仅英文 | 中/英（自然语言快捷指令） | **DeepSeek**：正式的 i18n 层 |

---

## 6. 综合排名

| 排名 | 工具 | 小型 | 中型 | 大型 | 横切 | 总分 /40 |
|------|------|:-----:|:------:|:-----:|:---------:|:---------:|
| 1 | **DeepSeek-TUI** | 9 | 9.5 | 10 | 9 | **37.5** |
| 2 | **Claude Code** | 9 | 8 | 8.5 | 8.5 | **34** |
| 3 | **KHY** | 6 | 7 | 6 | 8 | **27** |
| 4 | **Qwen Code** | 8 | 7.5 | 6.5 | 7 | **29** |
| 5 | **LibreChat** | 3 | 4 | 5 | 6 | **18** |
| 6 | **OpenClaw** | 4 | 5 | 4 | 5 | **18** |

**KHY 与前 2 名的差距：-7 至 -10.5 分** —— 主要短板在小型任务校验和大型任务代理编排。

---

## 7. 差距分析：KHY 具体短板

### P0 —— 关键（阻碍日常使用的竞争对等）

| # | 差距 | 业界最佳 | KHY 现状 | 影响 | 工作量 |
|---|-----|---------------|-------------|--------|--------|
| G1 | **编辑后校验（LSP 诊断）** | DeepSeek：每次编辑后自动注入编译器错误 | 无校验 | 静默缺陷扩散；用户后期才发现错误 | L —— 集成 LSP 客户端（已有 lspClient.js） |
| G2 | **原子多文件补丁** | DeepSeek：apply_patch（统一 diff、多块、模糊） | 顺序 Edit（每次调用一个文件） | 大型重构需 N 次工具调用；部分失败导致状态不一致 | M —— 增加统一 diff 解析器 + 原子应用 |
| G3 | **基于角色的子代理** | DeepSeek：7 角色（explore/plan/implement/verify/review/custom） | 仅通用 worker | 父代理需重复指令；无专用工具过滤 | M —— 为 workerAgent 增加角色分类法 |
| G4 | **结构化代理输出契约** | DeepSeek：SUMMARY/CHANGES/EVIDENCE/RISKS/BLOCKERS | 自由文本 | 父代理无法可靠解析子代理结果以执行下一步 | S —— 在代理提示中增加输出模板 |
| G5 | **强制先读（TOCTOU）** | Qwen：编辑前校验 mtime/size | 无过期检查 | 编辑可能静默覆盖外部变更 | S —— 增加文件状态缓存 + mtime 检查 |

### P1 —— 重要（显著提升质量/速度）

| # | 差距 | 业界最佳 | KHY 现状 | 影响 | 工作量 |
|---|-----|---------------|-------------|--------|--------|
| G6 | **4 级上下文压缩** | Claude Code：auto/reactive/micro/tool-budget | 单级 70% 阈值 | 上下文塞满；压缩过粗或过激 | M —— 增加工具结果预算 + 微压缩 |
| G7 | **工作区快照** | DeepSeek：每轮前/后 git 快照 + /restore N | 无文件状态备份 | 无法在不手动 git 的情况下撤销多文件变更 | M —— 旁路 git 快照服务 |
| G8 | **Git worktree 隔离** | Claude Code + Qwen：每代理/任务独立分支 | 无 worktree 支持 | 大型重构存在污染主分支的风险 | S —— 封装 git worktree add/remove |
| G9 | **推理强度控制** | DeepSeek：按请求 light/medium/high/auto | 无强度控制 | 简单任务浪费 token，复杂任务思考不足 | S —— 在 API 调用中增加 effort 参数 |
| G10 | **并发工具执行** | Claude Code：StreamingToolExecutor（安全时并行） | 顺序工具调用 | 多工具轮次耗时为 N*延迟，而非 max(延迟) | M —— 带安全分类的并行执行 |
| G11 | **周期检查点重启** | DeepSeek：归档旧轮次，用简报为新上下文播种 | 原地压缩（有损） | 长会话丢失细节；前缀缓存被破坏 | L —— 实现周期管理器 |

### P2 —— 锦上添花（打磨 / 长期竞争力）

| # | 差距 | 业界最佳 | KHY 现状 | 影响 | 工作量 |
|---|-----|---------------|-------------|--------|--------|
| G12 | **记忆自动整合（梦境）** | Claude Code Kairos：24h 自动梦境周期 | 手动会话持久化 | 跨会话知识随时间退化 | M |
| G13 | **守护进程 + 后台会话** | Claude Code：--bg + 守护进程 + 接入/恢复 | backgroundTaskManager（部分） | 无法对长时运行的 AI 会话分离/重连 | L |
| G14 | **企业策略限额** | Claude Code：policy.json（组织管控，速率/成本/模型限额） | 无策略强制 | 不具备企业就绪能力 | M |
| G15 | **沙箱后端** | DeepSeek：Seatbelt/Landlock；OpenClaw：Docker/SSH | 仅 Shell 命令 | 工具执行无操作系统级隔离 | L |
| G16 | **RLM 批量分析** | DeepSeek：用于批量分类的持久 Python REPL | 无等价能力 | 无法高效批量处理大型代码库 | L |
| G17 | **工具搜索 / 延迟加载** | Claude Code + Qwen：嵌入工具描述，按相关性排序 | 所有工具始终加载 | 每轮 50+ 工具定义带来 token 开销 | M |
| G18 | **技能自动预载** | LibreChat：每轮预载 30 个技能（手动 + 自动） | 仅手动调用技能 | 用户须知技能名；无自动建议 | S |

---

## 8. 修复路线图

### 阶段 1：编辑质量 + 校验（P0，约 1-2 周）

```
G5  强制先读 → 为 Edit 工具增加 fileStateCache（mtime + size）
G1  LSP 编辑后诊断 → 将 lspClient.js 接入 toolUseLoop 编辑后 hook
G4  结构化代理输出 → 为 workerAgent 提示增加 SUMMARY/EVIDENCE/RISKS 模板
```

**预期影响：** 小型任务评分 6 → 8（+2），消除静默缺陷扩散

### 阶段 2：多文件 + 代理角色（P0+P1，约 2-3 周）

```
G2  原子多文件补丁 → 新增 applyPatch 工具（统一 diff 解析器 + 原子应用）
G3  基于角色的子代理 → 为 workerAgent 增加 role 参数（explore/plan/implement/verify）
G10 并发工具执行 → 将工具分类为并发安全；并行运行
G8  Git worktree 隔离 → 将 git worktree 封装进 EnterWorktree/ExitWorktree 工具
```

**预期影响：** 中型任务评分 7 → 9（+2），大型任务评分 6 → 7.5（+1.5）

### 阶段 3：上下文 + 会话（P1，约 2-3 周）

```
G6  4 级压缩 → 为 contextCompressor 增加工具结果预算 + 微压缩
G7  工作区快照 → 每轮前/后做旁路 git 快照
G9  推理强度控制 → 在网关请求中增加 effort 参数（light/medium/high/auto）
G11 周期检查点重启 → 用归档 + 简报播种替代有损压缩
```

**预期影响：** 大型任务评分 7.5 → 9（+1.5），长会话变得稳健

### 阶段 4：打磨 + 企业级（P2，持续进行）

```
G12 记忆梦境 → 后台整合会话摘要
G13 守护进程 + 后台会话 → 可分离的 AI 会话
G14 企业策略 → policy.json 强制层
G17 工具搜索 → 基于嵌入的工具相关性排序
G18 技能自动预载 → 上下文感知的技能建议
```

**预期影响：** 横切评分 8 → 9（+1），企业就绪

---

## 9. KHY 独有优势（保留并放大）

以下是 KHY 领先或独有的能力 —— 切勿退化：

| 优势 | 详情 | 竞品缺失情况 |
|----------|---------|------------------|
| **8 适配器网关 + 断路器** | Claude/Cursor/Windsurf/Trae/Kiro/Ollama/Codex/LocalLLM，带自动回退 | 其余所有：最多 1-2 个供应商 |
| **基于租约的任务编排** | 心跳 + 断路器防止竞态条件 | 无竞品具备 |
| **中文自然语言快捷指令** | `搜索`/`读取文件`/`回测` 直接映射 | 仅 DeepSeek 有 i18n |
| **时段感知的自动恢复** | 180min 窗口，按时段分段 | 无竞品具备时段感知恢复 |
| **三阶段 hook 系统** | 前/后/失败 hooks 带遥测 | DeepSeek 最接近但粒度更粗 |
| **量化交易集成** | 回测、策略、行情数据工具 | KHY 独有 |
| **计划模式 5 状态机** | idle→generating→reviewing→executing→complete 带持久化 | 其余最多 2-3 状态 |
| **13 类错误分类器** | 与 Qwen 持平，超越其余所有 | 仅 Qwen 持平 |

---

## 10. 完整修复后的预期评分

| 工具 | 小型 | 中型 | 大型 | 横切 | 总分 /40 |
|------|:-----:|:------:|:-----:|:---------:|:---------:|
| DeepSeek-TUI | 9 | 9.5 | 10 | 9 | **37.5** |
| Claude Code | 9 | 8 | 8.5 | 8.5 | **34** |
| **KHY（阶段 1-3 后）** | **8** | **9** | **9** | **8.5** | **34.5** |
| **KHY（阶段 4 后）** | **8.5** | **9** | **9** | **9** | **35.5** |

阶段 1-3 将差距收窄至 Claude Code 水平。阶段 4 凭借 KHY 独有的多模型网关与交易集成优势，有望反超。

---

## 附录：已分析的源代码

| 代码库 | 规模 | 已审阅关键文件 |
|----------|------|-------------------|
| DeepSeek-TUI | 16 个 Rust crate | engine.rs, turn_loop.rs, apply_patch.rs, subagent/mod.rs, compaction.rs, cycle_manager.rs |
| Claude Code | 1,987 个 TS 文件 | cli.tsx, REPL.tsx, query.ts, StreamingToolExecutor.ts, FileEditTool.ts, coordinatorMode.ts |
| LibreChat | ~500 个 TS 文件 | run.ts, initialize.ts, GenerationJobManager.ts, skills.ts, validation.ts |
| Qwen Code | ~200 个 TS 文件 | nonInteractiveCli.ts, agent-core.ts, edit.ts, chatCompressionService.ts, permissionFlow.ts |
| OpenClaw | ~100 个 TS 文件 | pi-agent-core, acp.spawn, session manager |
| KHY | ~150 个 JS 文件 | repl.js, router.js, toolUseLoop.js, toolCalling.js, aiGateway.js, workerAgent.js, contextCompressor.js |
