Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
| Agent | 官方/常见说法 | 源码实际情况 |
|------|-------------|-------------|
| **Goose** | TypeScript | **Rust**(55k 行) |
| **OpenCode** | Go | **Go + TypeScript**(混合 Monorepo) |
| **OpenCode** | Go | **TypeScript**(Bun monorepo,v1.0+ 全面重写,Go→TS 渐进迁移完成) |
| **Kimi CLI** | TypeScript | **Python**(68.8%) |
| **Qwen Code** | 原创 | **Gemini CLI 分叉**(大幅增强) |

Expand Down Expand Up @@ -79,10 +79,10 @@
| [Codex CLI](./docs/tools/codex-cli/) | OpenAI | Apache-2.0 | **68k** | TypeScript | 1 | 三平台 OS 沙箱,Cloud 远程执行 |
| [Cline](./docs/tools/cline.md) | Cline | Apache-2.0 | **59k** | TypeScript | 48+ | VS Code 原生,Git Checkpoint |
| [Aider](./docs/tools/aider/) | Paul Gauthier | GPL-3.0 | **42k** | Python | 100+ | 14 编辑格式,三槽位模型,/undo |
| [Goose](./docs/tools/goose.md) | Block | Apache-2.0 | **34k** | Rust | 58+ | MCP 原生,Recipe + Cron 调度 |
| [Goose](./docs/tools/goose/) | Block | Apache-2.0 | **34k** | Rust | 58+ | MCP 原生,11 Platform Extension,Recipe + Cron 调度 |
| [Continue](./docs/tools/continue.md) | Continue | Apache-2.0 | **32k** | TypeScript | 60+ | PR Checks CI 审查,语义索引 |
| [Warp](./docs/tools/warp.md) | Warp | 专有 | **26k** | Rust | 多种 | GPU 渲染终端,块结构输出 |
| [Qwen Code](./docs/tools/qwen-code.md) | 阿里云 | Apache-2.0 | **21k** | TypeScript | 6+ | 免费 1000 次/天,Arena 多模型竞争 |
| [Qwen Code](./docs/tools/qwen-code/) | 阿里云 | Apache-2.0 | **21k** | TypeScript | 6+ | 免费 1000 次/天,Arena 多模型竞争,41 命令 |
| [SWE-agent](./docs/tools/swe-agent.md) | Princeton | MIT | **19k** | Python | 100+ | SWE-bench 评估,Docker 沙箱 |
| [Copilot CLI](./docs/tools/copilot-cli/) | GitHub | 专有 | **10k** | Shell | 多种 | 67 GitHub 工具,增长 ↑240%/月 |
| [Kimi CLI](./docs/tools/kimi-cli/) | 月之暗面 | Apache-2.0 | **7k** | Python | 6 | Wire 协议,D-Mail 时间回溯 |
Expand Down Expand Up @@ -110,7 +110,7 @@
|------|-------|------|
| **Rust** | Claude Code, Goose, Warp | 50ms 启动,内存最低 |
| **TypeScript** | Gemini CLI, Qwen Code, Codex CLI, Cline, Continue | Ink/React TUI 成熟 |
| **Go + TS** | OpenCode | Go 后端 + SolidJS TUI |
| **Go + TS** | OpenCode | TypeScript(Bun)后端 + SolidJS TUI(v1.0 前 Go,已全面重写) |
| **Python** | Aider, SWE-agent, OpenHands, Kimi CLI | LiteLLM 100+ 模型 |

---
Expand All @@ -127,6 +127,8 @@
- **[Kimi CLI](./docs/tools/kimi-cli/)** — 3 篇(28 命令/Wire 协议)
- **[Aider](./docs/tools/aider/)** — 3 篇(42 命令/PageRank RepoMap)
- **[OpenCode](./docs/tools/opencode/)** — 3 篇(18 工具+7 代理/多客户端)
- **[Qwen Code](./docs/tools/qwen-code/)** — 4 篇(41 命令/16 工具/Arena+扩展系统)
- **[Goose](./docs/tools/goose/)** — 4 篇(MCP 原生架构/11 Platform Extension/Recipe)

</details>

Expand Down
11 changes: 6 additions & 5 deletions docs/comparison/features.md
Original file line number Diff line number Diff line change
Expand Up @@ -186,8 +186,8 @@

| 能力 | Claude Code | Aider | Gemini CLI | Kimi CLI | Qwen Code | Copilot CLI | Codex CLI | Goose | OpenCode |
|------|-------------|-------|-----------|----------|-----------|-------------|-----------|-------|---------|
| **命令总数** | ~79(含 Skill) | ~42 | ~39 | ~28 | 40 | 34 | 28 | 16 | Ctrl+K 面板 |
| **代码审查** | `/review` 插件 | — | `/code-review`(扩展) | — | | `/review` | `@codex review` | — | — |
| **命令总数** | ~79(含 Skill) | ~42 | ~39 | ~28 | 41 | 34 | 28 | 16(斜杠)+ 15(CLI) | 23(TUI) |
| **代码审查** | `/review` 插件 | — | `/code-review`(扩展) | — | `/review`(Skill,4 代理并行) | `/review` | `@codex review` | — | — |
| **模式切换** | — | `/code` `/architect` `/ask` | `/plan` | `/plan` `/yolo` | `/plan` | — | `--ask-for-approval` | — | `--agent` |
| **模型切换** | `/model` | `/model` `/editor-model` `/weak-model` | `/model` | `/model` | `/model` | `/model` | `--model` | `--model` | — |
| **上下文压缩** | `/compact` | `/clear` `/reset` | `/compress` | `/compact` | `/compact` | `/compact` | `/compact` | `/compact` | — |
Expand All @@ -204,15 +204,16 @@
| **LSP 集成** | — | — | — | — | — | `/lsp` | — | — | — |
| **费用查看** | `/cost` | `/tokens` | `/stats` | — | `/stats` | — | — | — | `stats` |
| **反馈报告** | `/bug` | `/report` | `/bug` | `/feedback` | `/bug` | `/feedback` | — | — | — |
| **Vim 模式** | `/vim` | — | `/vim` | — | | — | — | — | — |
| **Vim 模式** | `/vim` | — | `/vim` | — | `/vim` | — | — | — | — |

**关键发现:**
- **Aider** 命令最多(~42),文件/上下文管理和模式切换最细粒度
- **Gemini CLI / Qwen Code / Kimi CLI** 命令体系接近(Gemini CLI 分叉谱系)
- **Gemini CLI / Qwen Code / Kimi CLI** 命令体系接近(Gemini CLI 分叉谱系),Qwen Code 新增 Arena/语言/洞察/扩展 4 个独有命令
- **Claude Code** 独有 `/review`(代码审查)和 `/remote-control`(远程控制)
- **Copilot CLI** 34 命令 + 67 工具 + 3 内置代理,GitHub 生态深度集成
- **Codex CLI** 28 交互命令(官方文档验证)+ 15 CLI 子命令 + Rust 原生沙箱
- **OpenCode** 使用 Ctrl+K 命令面板而非斜杠命令
- **OpenCode** 使用 Ctrl+K 命令面板 + 23 个 TUI 斜杠命令
- **Goose** 16 个交互式斜杠命令 + 15 个 CLI 命令(clap derive),MCP 原生架构
- **Qoder CLI** 19+ 交互命令 + 7 CLI 子命令 + Go 原生 43MB + Quest 模式 + Claude Code 兼容(`--with-claude-config`)

## 使用场景推荐
Expand Down
4 changes: 2 additions & 2 deletions docs/tools/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@
| [Kimi CLI](./kimi-cli/) | 5 文件 | 概述/28 命令(双注册表)/架构+Wire 协议+18 工具 |
| [Aider](./aider/) | 5 文件 | 概述/42 命令/架构+PageRank RepoMap+14 编辑格式 |
| [OpenCode](./opencode/) | 5 文件 | 概述/18 工具+7 代理/多客户端架构+LSP |
| [Qwen Code](./qwen-code/) | 1 文件 | 证据文件(Gemini CLI 分叉 + 阿里云 RUM + Arena 模式) |
| [Goose](./goose/) | 1 文件 | 证据文件(MCP 原生 + PostHog + SecurityManager) |
| [Qwen Code](./qwen-code/) | 6 文件 | 概述/41 命令/架构(Gemini CLI 分叉)+16 工具/Arena+扩展系统 |
| [Goose](./goose/) | 5 文件 | 概述/16 斜杠命令+15 CLI 命令/MCP 原生架构/11 Platform Extension |

## 单文件 Agent(基础分析)

Expand Down
102 changes: 102 additions & 0 deletions docs/tools/goose/01-overview.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
# 1. Goose 概述

**开发者:** Block(原 Square)
**许可证:** Apache-2.0
**仓库:** [github.com/block/goose](https://github.com/block/goose)
**文档:** [block.github.io/goose](https://block.github.io/goose/docs/quickstart/)
**版本:** v1.28.0(源码: `ui/desktop/package.json`,`Cargo.toml` workspace version 1.0.0)
**最后更新:** 2026-03

> **免责声明**: 以下数据基于 2026-03-28 源码分析(commit `0ace570`),可能已过时。
> Goose 已捐赠给 Linux Foundation Agentic AI Foundation (AAIF)。

## 概述

Goose 是 Block(原 Square)开发的开源 AI 代理框架,**完全用 Rust 编写**(核心 ~55k 行)。它支持 58+ LLM 提供商,基于 MCP(模型上下文协议)构建扩展系统,提供 CLI、Web、桌面(Electron)三种客户端。核心设计理念是 **MCP 原生**:所有工具通过 MCP 服务器提供,实现标准化的工具生态。

主要特点:
- **Rust 原生**:高性能单二进制分发,启动快、内存低
- **MCP 原生架构**:所有工具通过 MCP 协议提供,标准化扩展
- **58+ LLM 提供商**:业界最广泛的模型支持
- **11 个 Platform Extension**:内置开发者工具(shell、edit、write、tree 等)
- **4 个 MCP 内置服务器**:autovisualiser、computercontroller、memory、tutorial
- **Recipe 系统**:YAML 定义的可复用任务模板 + 定时调度
- **安全系统**:多层检查器管道(Pattern + ML + LLM 审查 + 重复检测)
- **Smart Approve**:LLM 辅助的智能权限判断

## 核心功能

### 基础能力
- **Rust 原生性能**:单二进制分发,Tokio 异步运行时(源码: `crates/goose/`)
- **MCP 原生扩展**:7 种传输类型(Stdio、StreamableHttp、Builtin、Platform、Frontend、InlinePython、SSE[已废弃])
- **58+ LLM 提供商**:Anthropic、OpenAI、Google、AWS Bedrock、Azure、Ollama 等
- **多客户端**:CLI(`goose-cli`)、HTTP 服务器(`goose-server`,Axum)、Electron 桌面应用
- **Recipe 系统**:YAML/JSON 定义任务模板,支持参数化、子 Recipe、deeplink
- **调度系统**:Cron 定时执行 Recipe(源码: `crates/goose-cli/src/commands/schedule.rs`)
- **ACP 协议**:Agent Client Protocol,桌面/IDE 集成标准

### 独特功能
- **Platform Extension**:进程内直接访问代理上下文,无需 MCP 传输开销
- **AdversaryInspector**:LLM 审查工具调用的对抗性(opt-in,`~/.config/goose/adversary.md`)
- **PermissionJudge**:LLM 自动判断工具调用只读/写入属性
- **Recipe DeepLink**:`goose://` 协议触发 Recipe 执行
- **Gateway**:外部平台集成(pair 命令配对)
- **Term 模式**:终端集成会话(`goose term`)
- **本地推理**:Whisper 语音、llama.cpp 本地模型(candle)

## 安装

```bash
# Homebrew(推荐)
brew install block/tap/goose

# Cargo
cargo install goose-cli

# 或从 GitHub Release 下载
# https://github.com/block/goose/releases

# 启动交互式会话
goose

# 使用特定模型
goose --model claude-opus-4
```

## 四种运行模式

| 模式 | 行为 | 源码 |
|------|------|------|
| **Auto**(默认) | 自动批准所有工具调用 | `crates/goose/src/config/goose_mode.rs` |
| **Approve** | 每个工具调用都需确认 | 同上 |
| **SmartApprove**(推荐) | LLM 判断只读/写入,仅写入操作需确认 | `crates/goose/src/permission/permission_judge.rs` |
| **Chat** | 仅聊天,不执行工具 | 同上 |

## 优势

1. **Rust 性能**:启动快、内存低、单二进制分发
2. **提供商最多**:58+ LLM 提供商支持
3. **MCP 原生**:所有扩展基于标准协议
4. **Recipe 系统**:可复用任务模板 + 定时调度
5. **安全设计**:环境变量白名单 + 对抗性检测 + ML 分类器
6. **Apache-2.0**:企业友好许可(已捐赠 Linux Foundation)
7. **桌面应用**:Electron 跨平台 GUI

## 劣势

1. **Rust 生态**:插件开发门槛高于 TypeScript/Python
2. **无 Git 原生集成**:依赖 shell 工具实现 Git 操作
3. **文档不足**:相比代码能力,文档覆盖有限
4. **复杂性**:功能丰富但学习曲线较陡

## 使用场景

- **最适合**:需要多提供商灵活性、MCP 生态用户、自动化 Recipe
- **适合**:企业部署(Rust 性能 + Apache 许可)
- **不太适合**:想要简单工具的用户、需要深度 Git 集成

## 资源链接

- [快速入门](https://block.github.io/goose/docs/quickstart/)
- [GitHub](https://github.com/block/goose)
- [Recipe 文档](https://block.github.io/goose/docs/recipes/)
113 changes: 113 additions & 0 deletions docs/tools/goose/02-commands.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
# 2. Goose 命令系统

Goose CLI 使用 `clap` derive 宏定义命令。交互式会话中还有额外的斜杠命令。

> 源码: `crates/goose-cli/src/cli.rs`(clap 命令定义)
> 交互式命令: `crates/goose-cli/src/session/input.rs`(`handle_slash_command()`)

## CLI 命令

### 顶层命令

| 命令 | 别名 | 用途 | 源码 |
|------|------|------|------|
| `configure` | — | 配置 goose 设置 | `commands/configure.rs` |
| `info` | — | 显示信息(`--verbose` 详情) | `commands/info.rs` |
| `mcp` | — | 运行内置 MCP 服务器 | — |
| `acp` | — | 以 ACP 代理服务器模式运行(stdio) | — |
| `session` | `s` | 管理会话 | `commands/session.rs` |
| `project` | `p` | 打开最近项目目录 | `commands/project.rs` |
| `projects` | `ps` | 列出最近项目目录 | 同上 |
| `run` | — | 从指令文件或 stdin 执行 | — |
| `recipe` | — | Recipe 工具(validate/deeplink/open/list) | `commands/recipe.rs` |
| `schedule` | `sched` | 管理定时任务 | `commands/schedule.rs` |
| `gateway` | `gw` | 管理外部网关 | `commands/gateway.rs` |
| `update` | — | 更新 CLI 版本(`--canary`) | `commands/update.rs` |
| `term` | — | 终端集成会话 | `commands/term.rs` |
| `local-models` | `lm` | 管理本地推理模型 | — |
| `completion` | — | 生成 Shell 自动补全 | — |

### Session 子命令

| 子命令 | 用途 | 选项 |
|--------|------|------|
| `list` | 列出所有会话 | `--format`, `--ascending`, `--working_dir`, `--limit` |
| `remove` | 删除会话 | `--regex` |
| `export` | 导出会话 | `--output`, `--format`(markdown/json/yaml) |
| `diagnostics` | 生成诊断 zip | — |

### Run 命令选项

| 选项组 | 参数 | 用途 |
|--------|------|------|
| Input | `--instructions`/`-i`, `--text`/`-t`, `--recipe`, `--system`, `--params` | 输入来源 |
| Extension | `--with-extension`, `--with-streamable-http-extension`, `--with-builtin`, `--no-profile` | 扩展控制 |
| Session | `--debug`, `--max-tool-repetitions`, `--max-turns`, `--container` | 会话控制 |
| Output | `--quiet`/`-q`, `--output-format`(text/json/stream-json) | 输出控制 |
| Model | `--provider`, `--model` | 模型选择 |
| Behavior | `--interactive`/`-s`, `--no-session`, `--resume`, `--scheduled-job-id` | 运行行为 |

### Recipe 子命令

| 子命令 | 用途 |
|--------|------|
| `validate` | 验证 Recipe 文件结构 |
| `deeplink` | 生成 deeplink(`goose://`) |
| `open` | 在 Goose Desktop 打开 |
| `list` | 列出可用 Recipe |

### Schedule 子命令

| 子命令 | 用途 |
|--------|------|
| `add` | 添加定时任务 |
| `list` | 列出定时任务 |
| `remove` | 删除定时任务 |
| `sessions` | 查看定时任务会话 |
| `run_now` | 立即运行定时任务 |
| `services_status` | 查看服务状态 |
| `services_stop` | 停止服务 |
| `cron_help` | Cron 表达式帮助 |

### Gateway 子命令

| 子命令 | 用途 |
|--------|------|
| `status` | 查看网关状态 |
| `start` | 启动网关 |
| `stop` | 停止网关 |
| `pair` | 配对外部平台 |

## 交互式斜杠命令(16 个)

> 源码: `crates/goose-cli/src/session/input.rs`(`handle_slash_command()` + `print_help()`)

| 命令 | 用途 |
|------|------|
| `/help`, `/?` | 显示帮助信息 |
| `/exit`, `/quit` | 退出会话 |
| `/t` | 切换主题(Light/Dark/Ansi 循环) |
| `/t <name>` | 设置指定主题(light/dark/ansi) |
| `/r` | 切换完整工具输出(显示未截断的工具参数) |
| `/mode <name>` | 设置模式(Auto/Approve/SmartApprove/Chat) |
| `/plan <message>` | 进入规划模式,创建执行计划 |
| `/endplan` | 退出规划模式 |
| `/compact` | 压缩对话上下文 |
| `/clear` | 清除聊天历史 |
| `/extension <command>` | 添加 stdio 扩展 |
| `/builtin <names>` | 添加内置扩展 |
| `/prompts [--extension <name>]` | 列出可用提示模板 |
| `/prompt <n> [--info] [key=value...]` | 执行或查看提示模板 |
| `/recipe [filepath]` | 从当前对话生成 Recipe |
| `/summarize` | 压缩上下文(已弃用,用 `/compact`) |

## MCP 内置服务器

通过 `goose mcp` 命令可独立运行内置 MCP 服务器:

| 服务器 | 用途 |
|--------|------|
| `AutoVisualiser` | 图表可视化(Chart、Sankey、Radar 等) |
| `ComputerController` | 计算机控制、Web 抓取、文件解析(DOCX/PDF/XLSX) |
| `Memory` | 记忆管理(存储/检索/删除) |
| `Tutorial` | 教程引导 |
Loading