Goose (Block):您本地的 AI 代理 terminal
可以:运行 goose configure,选择 Ollama,保留默认地址 http://localhost:11434,并指定一个支持工具调用的 Ollama 模型。本地运行时有两个关键设置:将 OLLAMA_CONTEXT_LENGTH 提高到默认的 4096 个 token 以上;如果模型只是用文字描述工具而不调用工具,则启用 tool shim(GOOSE_TOOLSHIM=true)。Goose 现已成为 Agentic AI Foundation 的项目,不再仅属于 Block。
Goose 是一款提供命令行和桌面应用两种形式的 AI 智能体,最初由 Block 发布,后移交至 Agentic AI Foundation。本指南介绍如何将其配置为使用本地 Ollama、用于弥补部分模型缺乏原生工具调用支持的 tool shim、权限模式(默认为自主模式),以及小型本地模型在使用 Goose 的 MCP 扩展时的实际局限。
#Goose 当前是什么?
Goose 将自己定位为一个原生开源 AI 智能体,提供桌面应用、CLI 和 API,用于代码、工作流以及更广泛的场景,并采用 Rust 编写。截至 2026 年 9 月 28 日,其仓库(现为 aaif-goose/goose)拥有近 55,000 颗星,v1.52.0 版本于 2026 年 9 月 23 日发布。
如果您读过较早的介绍,有一点需要纠正:Goose 已不再是 Block 单独管理的项目,如今已加入由 Linux 基金会托管的 Agentic AI Foundation(AAIF)。Block 仍是项目的发起方,但治理方式已经改变——在基于该项目构建工作流之前评估其长期存续能力时,这一点很重要。
Goose 支持超过 15 个模型提供商(Anthropic、OpenAI、Google、Ollama、OpenRouter、Azure、Bedrock 等),并通过开放的 MCP(模型上下文协议)连接超过 70 个扩展。
此外,也可以对接 Ramalama。这个本地引擎以 OCI 制品格式提供模型服务,而不是使用 Ollama 的专有格式。由于 API 兼容,Goose 可以直接通过其 Ollama 提供方接入 Ramalama,无需编写专门的代码——对于已经围绕标准容器化工具(Podman、Docker)而非 Ollama 构建的基础设施,这是一个实用的选择。
#连接 Ollama
在你的机器上执行操作的智能体:具备智能体能力的 Cline、MCP、n8n + Ollama、本地自动化。
- 在线空间,终身可用
- PDF + 文件
- 30 天内退款
配置通过交互式向导goose configure完成,它会先询问服务提供商,再询问主机地址。对于Ollama,如果未填写主机地址,Goose默认使用localhost:11434;如果未指定协议,会自动添加http://前缀。
对于在局域网另一台机器上运行的 Ollama,必须在启动配置前显式设置 OLLAMA_HOST=http://{hôte}:{port}。若模型托管在 ollama.com 而非本地,则应选择 Ollama Cloud,而非 Ollama。
#4096 token 上下文的陷阱
Ollama 的默认上下文窗口为 4096 个 token,超出时会静默截断,而不是返回明确的错误。像 Goose 这样的智能体会加载项目指令(.goosehints)、对话历史和扩展定义,因此很快就会达到这一上限。
#工具适配层:修复工具调用
某些模型不原生支持工具调用,或在会话过程中切换为纯文本输出而非结构化调用。Goose的工具适配层能够检测这些文本格式并将其转换为可执行的工具调用。该功能由项目标记为实验性。
工具调用适配层(tool shim)依赖一个独立于主对话模型的解释模型——默认通过 Ollama 使用 mistral-nemo,可通过 GOOSE_TOOLSHIM_OLLAMA_MODEL 更换。文档明确将不支持原生工具调用的本地模型(Ollama、llama.cpp)列为主要使用场景,也提到了将推理标签(“think”)与工具调用混在一起的模型,这种混用经常导致解析失败。
一种替代模式是使用 Goose 内置的本地推理后端,而非独立的 Ollama 实例,通过设置 GOOSE_TOOLSHIM_BACKEND=local 和必填的模型名称(GOOSE_TOOLSHIM_MODEL)实现——否则启动将失败。
#权限模式:默认自主模式
Goose 提供四种权限模式:完全自主(无需确认即可修改和删除文件)、手动审批(每个工具调用均需确认)、智能审批(自动通过低风险操作)以及仅对话模式(不进行任何修改或工具调用)
模式切换可在任何时候进行,包括会话过程中,通过 CLI 命令 /mode auto、/mode smart_approve、/mode approve 或 /mode chat,或在桌面应用程序底部菜单中完成。
#MCP 扩展与允许列表
Goose 通过 MCP 协议连接扩展,默认会安装所请求的任何 MCP 服务器。针对工作场景,该项目提供了允许列表机制:将一个 YAML 文件托管在某个 URL 上,并通过 GOOSE_ALLOWLIST 变量引用它,只有明确列入其中的标识符和命令所对应的扩展才可安装。
若不启用此白名单,从技术上讲,代理在接收到用户(或自主运行的模型)请求时,仍可安装未经验证的第三方MCP服务器——这一点需与上述权限模式的选择共同考虑。
允许列表通过一个简单的 YAML 文件部署,文件中列出获准使用的标识符/命令配对,并托管在一个 URL 上。Goose 每次重启时都会通过 GOOSE_ALLOWLIST 变量重新读取该文件。这项措施专为企业部署而设计,让管理员能够将可安装的扩展限制在预先审核通过的列表中,而不是依赖每个用户或处于自主模式的模型自行判断。
- 01安装 Goose CLIcurl -fsSL https://github.com/aaif-goose/goose/releases/download/stable/download_cli.sh | bash, ou télécharger l'application de bureau depuis la documentation officielle.
- 02准备Ollama模型验证 Ollama 是否在端口 11434 上运行,并在配置 Goose 之前启动一个明确声明支持工具调用的模型。
- 03运行 goose configure选择Ollama作为服务提供方,确认默认提供的主机地址(localhost:11434),并输入已加载模型的准确名称。
- 04如有必要,增加上下文长度如果智能体忽略扩展或 .goosehints 文件,在重新启动会话前将 OLLAMA_CONTEXT_LENGTH 设置为大于 4096 的值。
- 05检查权限模式如果不希望使用默认的自主模式,应在首次使用敏感扩展开展会话之前,明确切换到手动审批或智能审批模式。
#根据可用内存选择模型
官方文档对一个常被轻描淡写的问题给出了明确结论:Goose 高度依赖工具调用,不支持工具调用的模型只能进行简单对话——此时必须禁用所有 Goose 扩展。因此,选择模型不仅关乎回答质量,还直接决定 MCP 扩展究竟能否运行。
| 模型大小 | VRAM 近似值 | 使用扩展时的实际可用场景 |
|---|---|---|
| 7-8B | ≈ 5 GB | 在需要多个工具连续调用的任务中,工具调用不稳定;在得出模型失败结论前,请先使用GOOSE_TOOLSHIM进行测试 |
| 14B | ≈ 9 GB | 开发工作站的常见使用场景;加载模型前检查 ollama.com 上的 tools 标签 |
| 32B | ≈ 19-20 GB | 在较长的工具调用序列中更可靠,但代价是在消费级 GPU 上生成所需的时间更长 |
| 70B | ≈ 40 GB | 仅适用于拥有大量显存或统一内存的设备(如 Mac Studio、多GPU工作站);日常本地使用中很少适用 |
这些数量级估计不能代替检查模型介绍页上的 tools 标签:未被标明兼容工具调用的变体,无论规模多大,都会在使用扩展时失败;上文引用的官方文档也明确指出了这一点。
#共享部署前的安全检查清单
本指南已分别介绍了三个设置。将它们结合起来,就能为在共享计算机或团队服务器上部署 Goose 打下基础,使部署比默认安装更安全。
| 检查项 | 需检查的设置 |
|---|---|
| 权限模式 | 如果不希望未经确认就删除文件,应从完全自主模式切换到手动审批或智能审批模式 |
| 可安装扩展 | 将 GOOSE_ALLOWLIST 指向一个托管的 YAML 文件,该文件用于限制允许的标识符和命令 |
| 模型的实际能力 | 连接扩展插件前,确认模型在 ollama.com 上带有 tools 标签;若模型不兼容,则必须禁用所有扩展插件。 |
| 足够的上下文 | 将 OLLAMA_CONTEXT_LENGTH 提高到 4096 以上,以避免安全指令本身(.goosehints)被静默截断 |
#本地模型在 Goose 场景下的局限性
| 问题表现 | 已记录的可能原因 |
|---|---|
| 扩展被忽略,未遵循 .goosehints 中的指示 | 默认上下文长度为 4096 个 token,过短:提高 OLLAMA_CONTEXT_LENGTH 的值 |
| 工具调用在会话过程中中断 | 模型切换到文本输出:启用 GOOSE_TOOLSHIM |
| 工具 shim 解释器运行缓慢 | 解释器模型过大:通过 GOOSE_TOOLSHIM_OLLAMA_MODEL 切换到更小的模型 |
| 推理内容混入工具调用 | 多余的“think”标签:启用工具适配层(tool shim)后,它会自动过滤这些标签 |
根据官方文档,原生 DeepSeek-R1 不支持工具调用,文档提供的替代方案是一个适配 Goose 的社区版本。这具体体现了一个模型在对话能力上享有盛誉,与其实际操控工具的能力之间的差距。
推理能力与执行可靠性之间的差距,是在本地安装 Goose 前需要牢记的结构性限制:一个能很好地回答开放式问题的模型,并不能保证它能连续调用工具而不出现格式错误。先测试一项简单且可验证的任务——读取文件、执行一条无害命令——再把多步骤任务交给智能体,仍然是发现模型不适合这类任务的最快方法。
- OpenCode + Ollama:终端中的代码智能体
- Cline + Ollama:VS Code 中的 100% 本地编程智能体
- MCP 是什么?Model Context Protocol 详解
- 使用 Ollama 调用工具:教程
- 来源:Goose项目官方README文档
- 来源:供应商官方文档
- 来源:工具 shim 官方文档
Goose 仍由 Block 开发吗?+
为什么使用 Ollama 时,Goose 会忽略我的扩展或 .goosehints 文件?+
如果我的本地模型在Goose中未调用工具应如何处理?+
Goose 能否不请求确认就删除文件?+
本地运行 Goose 是否需要高性能 GPU?+
一个不支持工具调用的本地模型是否仍能与 Goose 配合使用?+
如何限制Goose可安装的MCP扩展?+
有反馈、发现了错误,或想补充说明?请告诉我们,让这份指南对每个人都更有帮助。