Skip to content

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 的解决思路

  1. 完全开源:代码透明,社区驱动
  2. 本地运行:隐私优先,无需担心代码泄露
  3. LLM 无关:支持任何模型(OpenAI、Anthropic、Ollama 等)
  4. 可扩展:通过 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跨会话记忆
JetBrainsIDE 集成

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、npmRust 和 Node.js 生态
通信协议MCPAI Agent 扩展标准
异步运行时TokioRust 异步框架
CLI 框架ClapRust 命令行解析

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月)
⭐ Stars25,200+
🍴 Forks2,300+
👥 Contributors349
📦 Releases98
🐛 Open Issues172

5.2 社区渠道

5.3 版本历程

版本时间重要特性
v1.02024 Q3首个稳定版本
v1.102024 Q4多 Provider 支持
v1.152025 Q1Desktop App 发布
v1.182025 Q4增强 MCP 支持

6. 阅读指南

为了更好地理解 Goose 项目,建议按以下顺序阅读:

顺序章节内容
1architecture.md整体架构设计
2core-concepts.md核心概念(Agent、Provider、Extension)
3implementation.md关键实现细节
4usage.md安装和使用指南
5conclusion.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 javascript

Goose 会自动创建一个完整的待办事项应用!


下一章:架构设计

基于 MIT 许可证发布。内容版权归作者所有。