Skip to content
Merged
8 changes: 4 additions & 4 deletions docs/comparison/claude-code-vs-cursor.md
Original file line number Diff line number Diff line change
Expand Up @@ -212,9 +212,9 @@ Cursor 编辑器界面
```

- **MCP 协议**:标准化工具扩展,支持 GitHub / Jira / 数据库等
- **Prompt Hooks**:PreToolUse / PostToolUse / Stop 钩子,自定义工作流
- **Prompt Hooks(钩子 (Hook))**:PreToolUse / PostToolUse / Stop 钩子 (Hook),自定义工作流
- **自定义斜杠命令**:`.claude/commands/` 目录下定义项目命令
- **13 个官方插件**:GitHub / Linear / Sentry 等
- **13 个官方插件 (Plugin)**:GitHub / Linear / Sentry 等

### Cursor

Expand Down Expand Up @@ -346,9 +346,9 @@ $ claude "创建 PR"
└── 网络:默认允许,可配置限制
```

- **文件系统沙箱**:限制代理访问的目录范围
- **文件系统沙箱 (Sandbox)**:限制代理访问的目录范围
- **命令白名单**:精确控制可执行的 shell 命令
- **Prompt Hooks**:PreToolUse 钩子可拦截危险操作
- **Prompt Hooks(钩子 (Hook))**:PreToolUse 钩子 (Hook) 可拦截危险操作
- **网络控制**:可限制代理的网络访问范围

### Cursor
Expand Down
16 changes: 8 additions & 8 deletions docs/comparison/context-compression-deep-dive.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# 27. 上下文压缩算法深度对比
# 27. 上下文压缩 (Context Compression) 算法深度对比

> 上下文压缩决定了 AI 编程代理在长会话中的信息保留质量。不同 Agent 在触发阈值、摘要结构、验证步骤、失败处理和可定制性上差异明显。
> 上下文压缩 (Context Compression) 决定了 AI 编程代理在长会话中的信息保留质量。不同 Agent 在触发阈值、摘要结构、验证步骤、失败处理和可定制性上差异明显。

> **说明**:本文混合使用 3 类证据——开源源码、二进制/官方文档、以及分叉关系推断。对闭源工具或分叉工具,若实现细节未在本仓库证据页中直接钉住,会显式标注“未公开 / 推断 / 待复核”。

Expand Down Expand Up @@ -40,9 +40,9 @@

> **阅读提示**:下面各节主要比较“压缩本体”;但实际长会话体验往往同样取决于这些外围机制是否足够强。

### 研究背景:为什么上下文压缩仍然必要
### 研究背景:为什么上下文压缩 (Context Compression) 仍然必要

从近两年的论文与工程文章看,上下文压缩之所以仍是 Agent 设计中的核心问题,不是因为模型没有更大的 context window,而是因为**标称窗口大小**、**有效可用上下文**与**长任务稳定性**并不等价。
从近两年的论文与工程文章看,"上下文压缩 (Context Compression)"之所以仍是 Agent 设计中的核心问题,不是因为模型没有更大的 context window,而是因为**标称窗口大小**、**有效可用上下文**与**长任务稳定性**并不等价。

- **长上下文不等于高质量利用**:`Lost in the Middle`(Liu et al., 2023)指出,模型在长上下文里对中间位置的信息利用明显弱于首尾位置;这意味着“尽量保留全部原始历史”不一定优于“保留更高信号的摘要或结构化状态”
- **标称窗口不等于有效工作窗口**:`RULER`(Hsieh et al., 2024)强调,模型宣称支持的长上下文长度与其在复杂任务中的稳定可用上下文并不相同;随着长度和任务复杂度上升,真实可用窗口会缩水
Expand Down Expand Up @@ -107,7 +107,7 @@
- **双 LLM 验证**:Phase 4 用独立 LLM 调用批判性评估摘要完整性
- **膨胀检测**:压缩后 token 数反而更多时拒绝压缩
- **压缩前可介入**:仓库文档可确认 `PreCompress` Hook,说明外部扩展点主要位于压缩前;压缩后的质量回补更多依赖内部 Phase 4 Probe,而不是后置 Hook
- **与 checkpoint / rewind 协同**:Gemini 的长会话连续性不只靠摘要压缩,还靠 checkpoint 和 rewind 维持状态回退能力;`codebase_investigator` 子代理也能在压缩后补偿部分仓库结构感知
- **与 checkpoint / rewind 协同**:Gemini 的长会话连续性不只靠摘要压缩,还靠 checkpoint 和 rewind 维持状态回退能力;`codebase_investigator` 子代理 (Subagent) 也能在压缩后补偿部分仓库结构感知

---

Expand Down Expand Up @@ -426,8 +426,8 @@ Anthropic 工程团队在长任务 harness 开发中发现:**模型在上下
| 技术 | 说明 | 对应工具实现 |
|------|------|-----------|
| **Compaction** | 原地摘要,保留架构决策/未解决 Bug/实现细节,丢弃冗余工具输出 | Claude Code 三层压缩、Gemini CLI 四阶段、Aider 递归分割、Kimi CLI SimpleCompaction、Qwen Code 四阶段(继承) |
| **结构化笔记**(Agentic Memory) | Agent 写外部笔记,需要时拉回。"以最小开销提供持久记忆" | Claude Code auto-memory、Gemini memory_manager |
| **子代理架构** | 委托给专用子代理,返回"浓缩摘要(通常 1,000-2,000 tokens)" | Claude Code Agent 工具、Gemini CLI 5 个子代理 |
| **结构化笔记**(Agentic Memory) | Agent 写外部笔记,需要时拉回。"以最小开销提供持久记忆 (Memory)" | Claude Code auto-memory、Gemini memory_manager |
| **子代理 (Subagent) 架构** | 委托给专用子代理 (Subagent),返回"浓缩摘要(通常 1,000-2,000 tokens)" | Claude Code Agent 工具、Gemini CLI 5 个子代理 (Subagent) |

> **核心洞察**:"Context Anxiety 是模型主动逃避,Context Rot 是被动质量退化——前者可通过模型升级显著缓解(Opus 4.5 'largely removed' 此行为,但非完全消除),后者是 Transformer 架构的固有限制,只能通过上下文工程缓解。"

Expand Down Expand Up @@ -507,7 +507,7 @@ if (message.summarizeMetadata) {

## 十一、工具定义膨胀:134K tokens 的教训(来源:[Anthropic Engineering Blog](https://www.anthropic.com/engineering/advanced-tool-use),2025-11-24)

上下文压缩不仅要处理对话历史——**工具定义本身就是上下文膨胀的主要来源**:
上下文压缩 (Context Compression) 不仅要处理对话历史——**工具定义本身就是上下文膨胀的主要来源**:

> "At Anthropic, we've seen tool definitions consume 134K tokens before optimization."

Expand Down
12 changes: 6 additions & 6 deletions docs/comparison/input-queue-deep-dive.md
Original file line number Diff line number Diff line change
Expand Up @@ -223,18 +223,18 @@ export function popAllEditable(): { popped: QueuedCommand[]; newInput: string }
}
```

### 2.8 Early Input(启动阶段输入捕获)
### 2.8 Early Input(启动阶段输入捕获 (Early Input Capture)

用户输入 `claude` 后立即开始打字——此时 REPL 尚未初始化。Early Input 机制在启动阶段原始模式捕获 stdin,REPL 就绪后注入输入框:
用户输入 `claude` 后立即开始打字——此时 REPL 尚未初始化。Early Input 机制在启动阶段原始模式 (Raw Mode) 捕获 stdin,REPL 就绪后注入输入框:

```typescript
// 源码: utils/earlyInput.ts#L29-L60
export function startCapturingEarlyInput(): void {
process.stdin.setRawMode(true) // 原始模式
process.stdin.setRawMode(true) // 原始模式 (Raw Mode)
readableHandler = () => {
let chunk = process.stdin.read()
while (chunk !== null) {
processChunk(chunk) // 逐字符处理:Ctrl+C 退出、退格删除、转义序列忽略
processChunk(chunk) // 逐字符处理:Ctrl+C 退出、退格删除、转义序列 (Escape Sequence) 忽略
chunk = process.stdin.read()
}
}
Expand Down Expand Up @@ -404,7 +404,7 @@ abort(): void { // 3. 立即终止
| 场景 | Claude Code | Qwen Code |
|------|------------|-----------|
| Agent 执行中输入 | ✅ 输入框始终可用 | ✅ stdin 不阻塞 |
| 输入立即可见 | ✅ 队列在 UI 中渲染 | ❌ 无队列可视化 |
| 输入立即可见 | ✅ 队列在 UI 中渲染 (Rendering) | ❌ 无队列可视化 |
| 可编辑已排队输入 | ✅ Esc 弹出到输入框 | ❌ 入队后不可编辑 |
| 多条排队 | ✅ 按优先级排序 | ✅ FIFO 顺序 |
| 自动执行下一轮 | ✅ useQueueProcessor Hook | ✅ runLoop while 循环 |
Expand Down Expand Up @@ -575,7 +575,7 @@ Round 开始 → [API→工具→API→工具→...→完成] → dequeue → Ro

### 6.1 可视化反馈

Claude Code 的队列在 prompt 下方实时渲染,用户**看得到**自己的输入已被排队。Qwen Code 无队列可视化,用户不确定输入是否生效。
Claude Code 的队列在 prompt 下方实时渲染 (Rendering),用户**看得到**自己的输入已被排队。Qwen Code 无队列可视化,用户不确定输入是否生效。

### 6.2 中断恢复

Expand Down
10 changes: 5 additions & 5 deletions docs/comparison/loop-schedule.md
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,7 @@ codex cloud diff <TASK_ID> # 查看 diff

| 维度 | Claude Code `/schedule` | Goose `goose schedule` |
|------|------------------------|----------------------|
| 执行位置 | Anthropic 云端(CCR) | **本地守护进程** |
| 执行位置 | Anthropic 云端(CCR) | **本地守护进程 (Daemon)** |
| 定时 | cron 表达式 | cron 表达式(6 位,含秒) |
| 任务来源 | 自然语言提示 | **Recipe(YAML 任务模板)** |
| 管理命令 | create/list/update/run | add/list/sessions/run-now/remove |
Expand Down Expand Up @@ -305,7 +305,7 @@ Shift+Tab 切换到 Autopilot 模式
|------|---------|---------|
| **本地循环**(Claude Code `/loop`) | 开发时的实时监控 | 依赖终端保持打开 |
| **远程调度**(Claude Code `/schedule`) | CI/CD、夜间任务 | 需要云端基础设施 |
| **本地 cron 调度**(Goose `schedule`) | 定期本地任务 | 依赖本地守护进程 |
| **本地 cron 调度**(Goose `schedule`) | 定期本地任务 | 依赖本地守护进程 (Daemon) |
| **一次性远程**(Codex `cloud exec`) | 计算密集型任务 | 无持续自动化 |
| **文件监视**(Aider `--watch-files`) | IDE 内 AI 编程 | 需文件内 AI 注释 |
| **持续执行**(Copilot Autopilot) | 复杂单次任务 | 非循环 |
Expand All @@ -324,12 +324,12 @@ Claude Code 通过 `/tasks` 命令管理循环任务,复用了其 Task 工具

实现远程调度需要:
- 云端执行环境(CCR)
- OAuth 令牌管理(in-process,不暴露到 shell)
- MCP Connector 远程桥接
- OAuth 令牌 (Token) 管理(in-process,不暴露到 shell)
- MCP Connector 远程桥接 (Bridge)
- Cron 表达式解析和调度引擎
- API 端点(`/v1/code/triggers/*`)

这需要整个云端基础设施的支持,解释了为什么只有 Anthropic(Claude Code)和 OpenAI(Codex CLI)提供了云端远程执行能力。Goose 采用了不同路径——本地 cron 调度,无需云端基础设施,但依赖本地守护进程运行
这需要整个云端基础设施的支持,解释了为什么只有 Anthropic(Claude Code)和 OpenAI(Codex CLI)提供了云端远程执行能力。Goose 采用了不同路径——本地 cron 调度,无需云端基础设施,但依赖本地守护进程 (Daemon) 运行

---

Expand Down
14 changes: 7 additions & 7 deletions docs/comparison/model-routing.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# 26. 模型路由与自动选择:跨 Agent 深度对比
# 26. 模型路由 (Model Routing) 与自动选择:跨 Agent 深度对比

> 模型路由是 AI 编程代理的核心基础设施——决定每次请求使用哪个模型。从"用户手动切换"到"ML 分类器自动路由",各工具的实现跨度极大。
> 模型路由 (Model Routing) 是 AI 编程代理的核心基础设施——决定每次请求使用哪个模型。从"用户手动切换"到"ML 分类器自动路由",各工具的实现跨度极大。

## 总览

Expand Down Expand Up @@ -188,16 +188,16 @@ claude -p "fix the bug" --fallback-model haiku
```

- **触发条件**:默认模型 API 过载(overloaded)
- **遥测事件**:`tengu_api_opus_fallback_triggered`
- **遥测 (Telemetry) 事件**:`tengu_api_opus_fallback_triggered`
- **限制**:仅 `--print` 模式,交互模式无自动 Fallback
- **锁定生态**:仅 Anthropic 模型,无法切换到 OpenAI/Google

### 内部模型路由
### 内部模型路由 (Model Routing)

Claude Code 的 Skill 系统有隐式模型选择:
- `/review` 插件:Haiku(前置检查)→ Sonnet(变更摘要/合规审计)→ Opus(Bug 扫描/安全分析)
- 子代理(Agent 工具):可指定 `model: "haiku"` 或 `"sonnet"` 或 `"opus"`
- 但这是**插件级别的硬编码**,非通用路由系统
- `/review` 插件 (Plugin):Haiku(前置检查)→ Sonnet(变更摘要/合规审计)→ Opus(Bug 扫描/安全分析)
- 子代理 (Subagent)(Agent 工具):可指定 `model: "haiku"` 或 `"sonnet"` 或 `"opus"`
- 但这是**插件 (Plugin) 级别的硬编码**,非通用路由系统

---

Expand Down
4 changes: 2 additions & 2 deletions docs/comparison/privacy-telemetry.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# 3. 隐私与遥测对比
# 3. 隐私与遥测 (Telemetry) 对比

> 各 CLI Agent 的数据采集、安全监控和隐私控制对比。高频变化的验证日期和证据状态请结合 [`../data/CHANGELOG.md`](../data/CHANGELOG.md) 与 [`../evidence-index.md`](../evidence-index.md) 一起查看。

## 遥测系统对比
## 遥测 (Telemetry) 系统对比

> 本表保留能力边界与采集类型。若默认状态或证据完备度发生变化,请同步更新 `docs/evidence-index.md` 与 `docs/data/CHANGELOG.md`。

Expand Down
Loading