高级 12 分钟智能体

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 扩展时的实际局限。

作者: Mohamed Meguedmi·更新于 2026-09-28·已在 Windows、macOS 和 Linux 上测试

#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 run qwen2.5
# dans un second terminal
goose configure

对于在局域网另一台机器上运行的 Ollama,必须在启动配置前显式设置 OLLAMA_HOST=http://{hôte}:{port}。若模型托管在 ollama.com 而非本地,则应选择 Ollama Cloud,而非 Ollama。

i
适合初学者的推荐模型
官方文档以 qwen2.5 为例,说明应在配置 Goose 之前启动模型,并强调该模型必须明确标注支持工具调用,而不能随便选择一个通用聊天模型。

#4096 token 上下文的陷阱

Ollama 的默认上下文窗口为 4096 个 token,超出时会静默截断,而不是返回明确的错误。像 Goose 这样的智能体会加载项目指令(.goosehints)、对话历史和扩展定义,因此很快就会达到这一上限。

!
典型症状
如果 Goose 忽略您的 .goosehints 文件,或在启用扩展时似乎跟不上对话,官方文档指出,首先应考虑默认上下文长度过短的问题:先通过环境变量 OLLAMA_CONTEXT_LENGTH 增大上下文长度,再排查其他原因。
扩展上下文
export OLLAMA_CONTEXT_LENGTH=32768

#工具适配层:修复工具调用

某些模型不原生支持工具调用,或在会话过程中切换为纯文本输出而非结构化调用。Goose的工具适配层能够检测这些文本格式并将其转换为可执行的工具调用。该功能由项目标记为实验性。

启用工具 shim
export GOOSE_TOOLSHIM=true
ollama pull mistral-nemo

工具调用适配层(tool shim)依赖一个独立于主对话模型的解释模型——默认通过 Ollama 使用 mistral-nemo,可通过 GOOSE_TOOLSHIM_OLLAMA_MODEL 更换。文档明确将不支持原生工具调用的本地模型(Ollama、llama.cpp)列为主要使用场景,也提到了将推理标签(“think”)与工具调用混在一起的模型,这种混用经常导致解析失败。

一种替代模式是使用 Goose 内置的本地推理后端,而非独立的 Ollama 实例,通过设置 GOOSE_TOOLSHIM_BACKEND=local 和必填的模型名称(GOOSE_TOOLSHIM_MODEL)实现——否则启动将失败。

#权限模式:默认自主模式

Goose 提供四种权限模式:完全自主(无需确认即可修改和删除文件)、手动审批(每个工具调用均需确认)、智能审批(自动通过低风险操作)以及仅对话模式(不进行任何修改或工具调用)

!
自主模式在安装时即已启用
官方文档明确指出:自主模式(Autonomous Mode)默认启用。在 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 变量重新读取该文件。这项措施专为企业部署而设计,让管理员能够将可安装的扩展限制在预先审核通过的列表中,而不是依赖每个用户或处于自主模式的模型自行判断。

  1. 01
    安装 Goose CLI
    curl -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.
  2. 02
    准备Ollama模型
    验证 Ollama 是否在端口 11434 上运行,并在配置 Goose 之前启动一个明确声明支持工具调用的模型。
  3. 03
    运行 goose configure
    选择Ollama作为服务提供方,确认默认提供的主机地址(localhost:11434),并输入已加载模型的准确名称。
  4. 04
    如有必要,增加上下文长度
    如果智能体忽略扩展或 .goosehints 文件,在重新启动会话前将 OLLAMA_CONTEXT_LENGTH 设置为大于 4096 的值。
  5. 05
    检查权限模式
    如果不希望使用默认的自主模式,应在首次使用敏感扩展开展会话之前,明确切换到手动审批或智能审批模式。

#根据可用内存选择模型

官方文档对一个常被轻描淡写的问题给出了明确结论:Goose 高度依赖工具调用,不支持工具调用的模型只能进行简单对话——此时必须禁用所有 Goose 扩展。因此,选择模型不仅关乎回答质量,还直接决定 MCP 扩展究竟能否运行。

内存需求估算(Q4,仅计权重)及搭配 Goose 的实际可行用途
模型大小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 或允许其接入敏感扩展前的检查清单
检查项需检查的设置
权限模式如果不希望未经确认就删除文件,应从完全自主模式切换到手动审批或智能审批模式
可安装扩展将 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 前需要牢记的结构性限制:一个能很好地回答开放式问题的模型,并不能保证它能连续调用工具而不出现格式错误。先测试一项简单且可验证的任务——读取文件、执行一条无害命令——再把多步骤任务交给智能体,仍然是发现模型不适合这类任务的最快方法。

常见问题
Goose 仍由 Block 开发吗?+
Block 发起了这个项目,但 Goose 如今已成为 Agentic AI Foundation 的一部分,该基金会由 Linux Foundation 托管。仓库在 GitHub 上的所属组织也已变更,路径从 block/goose 改为 aaif-goose/goose——在基于 Goose 构建团队工作流之前,需要了解这一治理变化,尽管 Block 仍参与该项目。
为什么使用 Ollama 时,Goose 会忽略我的扩展或 .goosehints 文件?+
最常见的原因是 Ollama 的默认上下文长度限制为 4096 个 token,超出部分会被静默截断,而不会返回明确的错误。官方文档建议先通过环境变量 OLLAMA_CONTEXT_LENGTH 提高这一上限,例如设为 32768,再排查其他原因。
如果我的本地模型在Goose中未调用工具应如何处理?+
设置 GOOSE_TOOLSHIM=true,启用工具调用适配层(tool shim)。这项实验性功能会检测不原生支持工具调用的模型以纯文本写出的调用,并通过独立的解释模型(默认为 mistral-nemo,可通过 GOOSE_TOOLSHIM_OLLAMA_MODEL 替换)将其转换为可执行调用。如果模型在工具调用中混入推理标记,启用后,适配层也会自动过滤这些标记。
Goose 能否不请求确认就删除文件?+
是的,在默认模式下可以:根据官方文档,完全自主模式从安装完成时就已启用,允许 Goose 无需批准便修改和删除文件。切换到手动或智能审批模式会改变这一行为,应在首次使用敏感扩展进行会话之前完成切换。
本地运行 Goose 是否需要高性能 GPU?+
Goose 本身是一个用 Rust 编写的轻量级客户端;主要负载取决于通过 Ollama 或其他本地提供方选择的模型。tool shim 的解释模型会产生额外的推理负载,与对话模型的负载分开;如果响应变慢,应为这个解释模型选择更小的版本。
一个不支持工具调用的本地模型是否仍能与 Goose 配合使用?+
是的,但仅限于聊天:官方文档明确指出,Goose 高度依赖工具调用,不支持工具调用的模型只能进行简单对话,此时必须禁用所有扩展。在加载模型之前,检查 ollama.com 上的 tools 标签,可以避免这一限制。
如何限制Goose可安装的MCP扩展?+
将变量 GOOSE_ALLOWLIST 设置为指向一个托管的 YAML 文件,其中列出获准使用的扩展标识符和命令;Goose 会在每次重启时重新读取该文件。这项措施面向企业部署,应与非自主权限模式结合使用,而不是单独使用。

这份指南对您有帮助吗?

有反馈、发现了错误,或想补充说明?请告诉我们,让这份指南对每个人都更有帮助。