Goose:本地运行的开源 AI Agent
仓库地址:https://github.com/block/goose版本:v1.18.0(2025年12月) 许可证:Apache 2.0 主要语言:Rust (59.4%) + TypeScript (33.2%)
本章概览
本章将介绍 Goose 的背景、核心价值和基本概念,帮助你理解:
- Goose 解决什么问题
- 为什么选择 Rust + MCP 的技术方案
- 项目的核心特性和优势
1. 什么是 Goose?
1.1 一句话定义
Goose 是一个本地运行的、可扩展的开源 AI Agent,能够自主完成软件开发任务。
通俗比喻:
想象你有一个超级助手,它不仅能回答编程问题,还能直接帮你写代码、运行测试、调试错误、甚至调用外部 API 完成复杂任务——而且这一切都在你的电脑上本地运行,数据不会离开你的机器。
1.2 与传统 AI 编程助手的区别
| 特性 | 传统 AI 助手(如 ChatGPT) | Goose |
|---|---|---|
| 运行位置 | 云端 | 本地 |
| 代码执行 | 只能给建议 | 可以直接执行 |
| 工具调用 | 有限 | 通过 MCP 无限扩展 |
| 自主性 | 需要逐步指导 | 可自主完成复杂任务 |
| 隐私 | 代码上传到云端 | 完全本地,数据不外传 |
1.3 核心能力
你说:"帮我创建一个井字棋游戏"
Goose 会:
1. 📋 分析需求,制定计划
2. 📝 编写 HTML、CSS、JavaScript 代码
3. 💾 创建并保存文件
4. 🧪 运行代码检查是否有错误
5. 🐛 如果有 bug,自动调试修复
6. 🌐 打开浏览器展示结果2. 项目背景
2.1 Block 公司
Goose 由 Block(前身为 Square)开发和维护。Block 是一家知名的金融科技公司,旗下产品包括:
- Square:移动支付系统
- Cash App:P2P 转账应用
- Spiral:比特币开发团队
2.2 为什么开发 Goose?
2024-2025 年,AI 编程助手百花齐放,但大多存在以下问题:
| 现有方案 | 局限性 |
|---|---|
| ChatGPT / Claude | 只能给建议,无法直接执行代码 |
| GitHub Copilot | 只做代码补全,无法完成复杂任务 |
| Cursor | 闭源,依赖特定 IDE |
| Claude Code | 依赖 Anthropic 账户 |
Goose 的解决思路:
- 完全开源:代码透明,社区驱动
- 本地运行:隐私优先,无需担心代码泄露
- LLM 无关:支持任何模型(OpenAI、Anthropic、Ollama 等)
- 可扩展:通过 MCP 协议无限扩展能力
3. 核心特性
3.1 自主任务执行
Goose 不仅仅是代码建议工具,它可以:
- ✅ 创建完整项目
- ✅ 编写并执行代码
- ✅ 调试和修复错误
- ✅ 调用外部 API
- ✅ 管理文件系统
3.2 多 LLM 支持
Goose 采用 Provider(提供者) 抽象,支持多种 LLM:
┌─────────────────────────────────────────┐
│ Goose Agent │
└────────────────────┬────────────────────┘
│
┌───────────────┼───────────────┐
▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌─────────┐
│ OpenAI │ │Anthropic│ │ Ollama │
└─────────┘ └─────────┘ └─────────┘
▲ ▲ ▲
│ │ │
云端 API 云端 API 本地运行支持的 Provider 列表:
- OpenAI(GPT-4、GPT-4o)
- Anthropic(Claude 3.5、Claude 3)
- Azure OpenAI
- AWS Bedrock
- Google Vertex AI
- Ollama(本地模型)
- LiteLLM(代理多个模型)
- OpenRouter
- 更多...
3.3 MCP 扩展系统
MCP(Model Context Protocol) 是 Anthropic 提出的开放标准,让 AI Agent 能够与外部工具交互。
┌──────────────┐
│ Goose │
│ (Agent) │
└──────┬───────┘
│ MCP 协议
▼
┌──────────────────────────────────────────────────┐
│ Extensions │
├──────────┬──────────┬──────────┬────────────────┤
│Developer │Computer │ Memory │ Google Drive │
│Tools │Controller│ │ │
└──────────┴──────────┴──────────┴────────────────┘内置扩展:
| 扩展名 | 功能 |
|---|---|
| Developer | 文件操作、命令执行、代码搜索 |
| Computer Controller | 浏览器控制、截图、自动化 |
| Memory | 跨会话记忆 |
| JetBrains | IDE 集成 |
3.4 双界面支持
Goose 提供两种使用方式:
| 界面 | 适用场景 |
|---|---|
| Desktop App | 图形界面,适合新手 |
| CLI | 命令行,适合开发者 |
4. 技术栈概览
4.1 整体架构
┌─────────────────────────────────────────────────────────────┐
│ UI Layer │
│ ┌─────────────────────┐ ┌─────────────────────────────┐ │
│ │ Desktop (Electron)│ │ CLI (Rust) │ │
│ │ TypeScript + React│ │ │ │
│ └─────────────────────┘ └─────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Core Layer (Rust) │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────────────┐│
│ │ Agent │ │ Provider │ │Extension │ │ Session ││
│ │ Engine │ │ System │ │ Manager │ │ Management ││
│ └──────────┘ └──────────┘ └──────────┘ └──────────────────┘│
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Extension Layer (MCP) │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────────────┐│
│ │Developer │ │ Computer │ │ Memory │ │ Custom MCP ││
│ │ Tools │ │Controller│ │ │ │ Servers ││
│ └──────────┘ └──────────┘ └──────────┘ └──────────────────┘│
└─────────────────────────────────────────────────────────────┘4.2 技术选型
| 类别 | 技术选型 | 说明 |
|---|---|---|
| 核心语言 | Rust | 高性能、内存安全 |
| 前端框架 | Electron + React | 跨平台桌面应用 |
| 构建工具 | Cargo、npm | Rust 和 Node.js 生态 |
| 通信协议 | MCP | AI Agent 扩展标准 |
| 异步运行时 | Tokio | Rust 异步框架 |
| CLI 框架 | Clap | Rust 命令行解析 |
4.3 Crate(模块)结构
crates/
├── goose/ # 核心库:Agent、Provider、Session
├── goose-cli/ # 命令行界面
├── goose-server/ # HTTP API 服务器
├── goose-mcp/ # MCP 扩展实现
├── goose-bench/ # 性能基准测试
└── goose-test/ # 测试工具5. 社区生态
5.1 项目数据
| 指标 | 数值(2025年12月) |
|---|---|
| ⭐ Stars | 25,200+ |
| 🍴 Forks | 2,300+ |
| 👥 Contributors | 349 |
| 📦 Releases | 98 |
| 🐛 Open Issues | 172 |
5.2 社区渠道
- Discord:https://discord.gg/goose-oss
- YouTube:@goose-oss
- Twitter/X:@goose_oss
- LinkedIn:goose-oss
5.3 版本历程
| 版本 | 时间 | 重要特性 |
|---|---|---|
| v1.0 | 2024 Q3 | 首个稳定版本 |
| v1.10 | 2024 Q4 | 多 Provider 支持 |
| v1.15 | 2025 Q1 | Desktop App 发布 |
| v1.18 | 2025 Q4 | 增强 MCP 支持 |
6. 阅读指南
为了更好地理解 Goose 项目,建议按以下顺序阅读:
| 顺序 | 章节 | 内容 |
|---|---|---|
| 1 | architecture.md | 整体架构设计 |
| 2 | core-concepts.md | 核心概念(Agent、Provider、Extension) |
| 3 | implementation.md | 关键实现细节 |
| 4 | usage.md | 安装和使用指南 |
| 5 | conclusion.md | 总结与展望 |
7. 快速体验
想要立即体验 Goose?只需三步:
macOS / Linux
bash
# 1. 安装
curl -fsSL https://github.com/block/goose/releases/download/stable/download_cli.sh | bash
# 2. 配置 LLM Provider
goose configure
# 3. 开始使用
goose session第一个任务
> create a simple todo app with html and javascriptGoose 会自动创建一个完整的待办事项应用!
下一章:架构设计