开源本地AI开发代理,让代码不再只是建议
Goose是一个运行在本地机器上的开源AI代理,能够自主完成从代码编写到测试执行的完整开发任务。它不只是提供代码建议,而是真正能够"干活"的开发助手。
说实话,第一次听说Goose的时候,我以为是又一个GitHub Copilot的跟风产品。但深入了解后发现,这东西的定位完全不同。Copilot是在你写代码的时候给你补全,Cursor是在IDE里跟你聊天,而Goose是直接在终端里把活干了——写代码、跑测试、调API、修Bug,一气呵成。
Block(Jack Dorsey的那家公司)把这个项目开源出来,还捐给了Linux Foundation,态度挺诚恳的。27K+的Star数在AI Agent领域已经算是头部选手了。
2025年到2026年,AI编程工具经历了从"玩具"到"生产力工具"的转变。但大部分工具都卡在一个尴尬的位置:它们能生成代码片段,却不能独立完成一个完整的开发任务。
Goose想解决的问题很直接:让AI代理真正能够端到端地完成开发工作。不是给你一段代码让你自己粘贴,而是直接在你的机器上执行命令、读写文件、运行测试,直到任务完成。
所有操作都在本地执行,代码不会离开你的机器(除非你主动调用云API)。对于注重代码隐私的企业来说,这一点很关键。
不绑定任何特定模型,你可以用Claude、GPT、Gemini,甚至本地跑的Ollama模型。不同任务还可以配置不同的模型来平衡成本和效果。
Goose是Model Context Protocol(MCP)的早期采用者和参考实现。这意味着它可以无缝集成各种外部工具,从文件系统到数据库到浏览器自动化。
Goose的核心能力是端到端任务自动化。你给出一个自然语言描述的任务,它会自己规划步骤、执行命令、观察结果、调整策略,直到完成。
# 让Goose创建一个完整的FastAPI项目
$ goose run "创建一个用户管理API,包含注册、登录、JWT认证,
使用PostgreSQL数据库,写单元测试,生成API文档"
# Goose会自动执行:
# 1. 创建项目目录结构
# 2. 编写main.py和models.py
# 3. 创建requirements.txt并安装依赖
# 4. 编写测试文件
# 5. 启动服务并验证
MCP(Model Context Protocol)是Anthropic推出的开放协议,用于标准化AI模型与外部工具的交互。Goose原生支持MCP,可以连接各种服务器来扩展能力。
mcp_servers:
- name: filesystem
command: npx
args: ["-y", "@modelcontextprotocol/server-filesystem", "~/projects"]
- name: github
command: npx
args: ["-y", "@modelcontextprotocol/server-github"]
env:
GITHUB_TOKEN: ${GITHUB_TOKEN}
- name: postgres
command: npx
args: ["-y", "@modelcontextprotocol/server-postgres"]
配方是YAML格式的工作流宏,可以把常用的多步骤任务封装成可复用的模板。适合团队标准化工作流程。
Goose提供桌面应用和CLI两种使用方式。桌面应用适合可视化操作,CLI适合集成到现有工作流。
Goose采用模块化架构,核心由以下几部分组成:
底层引擎使用Rust编写,负责LLM交互、工具调用编排、状态管理。Rust的选择保证了性能和内存安全。
内置MCP协议实现,可以连接任意符合MCP规范的服务器。这是Goose扩展能力的核心。
桌面应用使用Tauri框架(Rust + Web前端),体积小巧,启动快速。
| 提供商 | 支持模型 | 备注 |
|---|---|---|
| OpenAI | GPT-4o, GPT-4-turbo | 需要API Key |
| Anthropic | Claude 3.5 Sonnet, Claude 3 Opus | 推荐用于复杂任务 |
| Ollama | Llama3, Qwen3, 等本地模型 | 完全离线运行 |
| Gemini Pro, Gemini Ultra | 多模态支持 |
# macOS (Homebrew)
$ brew install block/tap/goose
# Python pip
$ pip install goose-ai
# 从源码安装
$ git clone https://github.com/block/goose.git
$ cd goose
$ cargo build --release
# 启动配置向导
$ goose configure
# 或手动编辑配置文件 ~/.config/goose/config.yaml
providers:
- name: anthropic
api_key: ${ANTHROPIC_API_KEY}
models:
- claude-3-5-sonnet
default_model: claude-3-5-sonnet
workspace: ~/projects
# 执行单个任务
$ goose run "优化这个函数的内存使用"
# 启动交互式会话
$ goose chat
# 查看执行历史
$ goose history
# 生成执行报告
$ goose report
| 特性 | Goose | Claude Code | Cursor | GitHub Copilot |
|---|---|---|---|---|
| 价格 | 免费 + API成本 | $20/月 | $20/月 | $10/月起 |
| LLM支持 | 任意模型 | 仅Claude | 多模型 | OpenAI模型 |
| 本地运行 | 完全本地 | 是 | 部分 | 否 |
| 开源 | 是 (Apache 2.0) | 否 | 否 | 否 |
| MCP支持 | 原生支持 | 部分支持 | 有限 | 无 |
| 工作流宏 | 配方系统 | 无 | 任务模板 | 无 |
| IDE集成 | 无(独立运行) | CLI | VS Code/Fork | 多IDE插件 |
强烈推荐:注重代码隐私的企业团队、喜欢折腾的技术爱好者、需要标准化工作流的开发团队、预算有限的个人开发者。
谨慎尝试:追求开箱即用的开发者、不熟悉终端操作的用户、需要深度IDE集成的场景。
不推荐:偶尔使用AI辅助的轻度用户、对配置和调优没有耐心的开发者。
Goose代表了AI开发工具的一个新方向:从"辅助编码"向"自主开发"演进。它通过本地执行、多模型支持和MCP生态集成,为开发者提供了一个强大、灵活且隐私安全的AI代理平台。
这个项目的出现也反映了一个趋势:开发者不再满足于AI只是"帮忙写代码",而是希望AI能够真正理解任务、自主执行、对结果负责。Goose在这个方向上走得很远。
当然,它也不是银弹。配置门槛、学习曲线、对终端操作的依赖,都意味着它更适合有一定技术背景的开发者。但对于目标用户来说,Goose提供的控制力和灵活性是其他工具难以比拟的。
如果你正在寻找一个能够真正"干活"的AI开发助手,同时对数据隐私有较高要求,Goose值得一试。