news 2026/9/9 19:39:38

goose 扩展实战:将 prompts.chat MCP Server 接入 AI Agent,让提示词库触手可及

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
goose 扩展实战:将 prompts.chat MCP Server 接入 AI Agent,让提示词库触手可及

goose 扩展实战:将 prompts.chat MCP Server 接入 AI Agent,让提示词库触手可及

【免费下载链接】goosean open source, extensible AI agent that goes beyond code suggestions - install, execute, edit, and test with any LLM项目地址: https://gitcode.com/GitHub_Trending/goose3/goose

将 prompts.chat MCP Server 注册为 goose 的扩展(Extension),即可在对话中直接检索并复用平台上收录的成千上万条 AI 提示词(Prompt)。本指南以 goose 官方 MCP 教程文档 prompts-chat-mcp.md 为骨架,结合仓库内扩展配置的源码实现与官方配置文档,完整覆盖从快速安装、交互式配置、环境变量注入,到实际提示词搜索与调用的全过程。读完本文,你将掌握在 goose Desktop 与 goose CLI 两种界面下接入任意stdio型 MCP Server 的通用方法,并理解扩展配置在底层的落盘格式与运行机制。

扩展机制与 prompts.chat 的定位

goose 的扩展(Extensions)本质上是一套基于 Model Context Protocol(MCP)的即插即用能力:外部 MCP Server 通过标准输入输出(stdio)或 Streamable HTTP 与 goose 通信,把自身的工具(tools)暴露给 AI Agent 调用。官方在 使用扩展指南 中明确说明:扩展可用于接入你工作流中正在使用的应用与数据源;goose 自带的 Developer、Computer Controller、Memory 等内置扩展本身也是 MCP Server,而任意第三方 MCP Server 都可以被安装为扩展。

prompts.chat 提供的就是这样一个"提示词供给型" MCP Server:它暴露了一个可检索的提示词库,goose 可以像调用普通工具一样在其中搜索、取回提示词,再把取回的提示词框架应用到当前任务上——例如代码审查、Pull Request 评审、安全审计等成熟提示词模板。这对那些"知道要什么但缺少高质量提示词表达"的任务尤其有价值:无需自己从头设计 Prompt,直接复用社区沉淀的已验证模式。

安装前置条件

接入该扩展前,需要先确认两点:

  1. Node.js 运行环境:安装命令基于npx执行,系统需预装 Node.js。官方在配置小节以:::info块明确提醒了这一点(见 prompts-chat-mcp.md 的 Configuration 部分)。
  2. (可选)prompts.chat API Key:仅当你想保存并列出私有提示词时才需要。PROMPTS_API_KEY环境变量在本扩展中是可选配置。

由于扩展是以本地命令进程方式拉起并常驻的,官方还提醒过 goose 会在激活外部扩展前做已知恶意软件检查(见 使用扩展指南),被识别的恶意包会直接拦截报错——这意味着安装来源应保持为官方 npm 渠道。

快速安装:一行命令与一键链接

原文档在"Quick Install"提示框中同时给出了两种最快捷的接入路径,可直接照搬。

方式一:goose Desktop 一键安装器

在 goose Desktop 中,直接点击下方协议链接,会拉起内置安装向导(id=prompts-chat-mcp,显示名prompts.chat):

goose://extension?cmd=npx&arg=-y&arg=@fkadev/prompts.chat-mcp@latest&id=prompts-chat-mcp&name=prompts.chat&description=Access%20thousands%20of%20AI%20prompts%20directly%20in%20your%20AI%20assistant&env=PROMPTS_API_KEY%3DAPI%20Key%20to%20save%20and%20list%20private%20prompts

这段链接的生成逻辑对应仓库里的 GooseDesktopInstaller 组件:协议以goose://extension开头,cmd为启动命令、arg可重复传递多个参数(每个参数单独一个arg=),再拼接idnamedescription,最后用env=声明需要注入的环境变量(格式为变量名=变量说明)。需要说明的是,链接中的所有参数都要求 URL 编码,例如空格写作%20@写作%40

方式二:goose CLI 直接运行

命令行下无需任何安装交互,直接执行:

npx -y @fkadev/prompts.chat-mcp@latest

这条命令即扩展的完整启动命令:-y表示自动确认下载 npm 包,@latest拉取最新发布版本。若需要配置PROMPTS_API_KEY(可选),作为环境变量随进程注入即可:

PROMPTS_API_KEY: <YOUR_API_KEY>

标准配置流程:Desktop 与 CLI 双界面

若希望通过官方向导完成完整注册(包括命名、超时与密钥配置),可按界面选择以下流程。两种流程产出的配置等价,区别仅在操作载体。

goose Desktop:图形化注册

  1. 点击上文中"一键安装器"的Launch the installer链接;
  2. 在弹出的确认框中点击Yes
  3. 获取你的 prompts.chat API Key(可选,仅私有提示词功能需要)并粘贴填入;
  4. 点击Add Extension完成添加;
  5. 点击左上角侧边栏按钮打开侧栏,进入聊天界面即可看到新扩展。

goose CLI:goose configure交互向导

goose configure的每一步交互渲染由 CLIExtensionInstructions 组件 定义,全部过程如下:

  1. 运行配置命令:
goose configure
  1. What would you like to configure?中选择Add Extension,然后在类型选择中选中Command-line Extension(运行本地命令或脚本的扩展类型),界面呈现:
┌ goose-configure │ ◇ What would you like to configure? │ Add Extension │ ◆ What type of extension would you like to add? │ ○ Built-in Extension │ ● Command-line Extension (Run a local command or script) │ ○ Remote Extension (Streamable HTTP) └
  1. 为扩展命名(此处对应显示名prompts.chat,即What would you like to call this extension?);
  2. 输入要运行的命令(What command should be run?),即:
npx -y @fkadev/prompts.chat-mcp@latest
  1. 设置超时时间(秒)。向导默认值是300 秒,即 goose 等待该扩展完成一次工具调用所允许的最长时间;
  2. 填写扩展描述(此处为 "Access thousands of AI prompts directly in your AI assistant");
  3. 询问Would you like to add environment variables?
    • 若希望支持保存/列出私有提示词,选择Yes,依次输入变量名PROMPTS_API_KEY与从 prompts.chat 获取的 API Key 值;
    • 不需要则选No,向导直接以Added prompts.chat extension结束。

其中"默认 300 秒"并非文案巧合,而是源码中的常量事实:扩展的超时默认值定义在 crates/goose/src/config/extensions.rs,即DEFAULT_EXTENSION_TIMEOUT: u64 = 300。任何通过向导注册的扩展,超时字段不填时都会落为 300 秒。

会话内使用:goose session

配置完成后,CLI 用户可在终端启动一个新的 goose 会话:

goose session

Desktop 用户则打开一个新会话即可,扩展会随会话自动加载。

高级玩法:直接在 config.yaml 中落盘配置

goose configure的一切交互最终都会写入 YAML 配置文件。配置文件位置依平台而异(见 配置文件指南):

  • macOS / Linux:~/.config/goose/config.yaml
  • Windows:%APPDATA%\Block\goose\config\config.yaml

高级用户可直接编辑该文件以精确控制扩展属性。上述 prompts.chat 注册动作等价于在extensions键下新增一个stdio类型条目:

extensions: prompts-chat-mcp: name: prompts-chat-mcp display_name: prompts.chat description: Access thousands of AI prompts directly in your AI assistant type: stdio cmd: npx args: ["-y", "@fkadev/prompts.chat-mcp@latest"] envs: PROMPTS_API_KEY: "<YOUR_API_KEY>" env_keys: [] enabled: true timeout: 300

各字段含义与来源可以直接对照源码验证:

  • type: stdio:扩展以本地子进程方式运行。在 crates/goose/src/agents/extension.rs 中,ExtensionConfig枚举明确声明了Stdio变体及其反序列化字段:cmd(启动命令)、args(参数数组)、envs(环境变量映射)、env_keys(从密钥库/环境解析的密钥名列表)、timeout(可选的超时秒数)、cwdbundled以及available_tools(工具白名单)。
  • envs的 YAML 解析同时接受env别名(源码中#[serde(default, alias = "env")]),即老配置里写作env:也能被兼容读取。
  • name键在缺失时会被自动注入:解析器inject_name_if_missing会将扩展条目所在的键名补为name(见 crates/goose/src/config/extensions.rs)。
  • extensions段的读取走配置的get_param("extensions")路径(见 extensions.rs),单个条目解析失败只会被跳过并打日志,不会拖垮整份配置。

提示:编辑config.yaml后,通常需要重启 goose 才能对已有会话生效;可用goose info -v查看当前实际生效的完整配置。密钥类敏感信息不建议明文写入envs,官方更推荐通过goose configure的系统密钥环存储,或使用env_keys引用密钥库中的条目。

实战用法:在会话中检索并调用提示词

扩展注册完成后,它带来的工具(prompts.chat 的搜索/取回类工具)就会进入 goose 的工具集。原文档给出了一套完整的对话式交互范式,可直接套用。

场景一:搜索提示词

向 goose 直接下达自然语言搜索指令:

goose Prompt
Search for prompts about code review
goose Output
I found several prompts related to code review: 1. **Code Review Assistant** - A comprehensive prompt for reviewing code quality, security, and best practices 2. **Pull Request Reviewer** - Helps analyze pull requests and suggest improvements 3. **Security Code Audit** - Focuses on identifying security vulnerabilities Would you like me to retrieve any of these prompts?

可以看到 goose 会调用扩展的搜索工具,把结果按提示词名称与适用场景整理成结构化列表,并主动询问是否进一步取回全文。这背后正是 MCP 工具调用的标准链路:goose 判定当前请求需要外部工具 → 把请求编码为工具调用发给 prompts.chat 进程 → 取回结构化结果 → 汇入模型上下文生成回答。

场景二:取回并应用提示词

检索到目标后,无需复制粘贴,直接让 goose 取回该提示词并立即应用:

goose Prompt
Get the Code Review Assistant prompt and use it to review my current file
goose Output
I've retrieved the Code Review Assistant prompt. Let me apply it to analyze your code... [Applying prompt guidelines to review your code] Here's my review based on the prompt's framework: ✅ Code structure and organization ✅ Naming conventions ⚠️ Consider adding error handling for edge cases ⚠️ Documentation could be improved for public methods Would you like me to help address any of these findings?

注意这一范式的高价值点:提示词不再只是贴在浏览器书签里的文本,而是变成了 Agent 可直接消费的"方法论组件"。goose 取回模板后,会把其中要求的审查维度(代码质量、安全、最佳实践、命名、错误处理、文档等)作为执行框架,叠加在你当前工作区的真实文件上产出评审意见——提示词库与文件系统工具链在此完成了闭环协作。

延伸:排查与验证

  • 扩展未生效:检查goose configureToggle Extensions中该扩展是否处于启用态(实心为启用),或在 Desktop 侧栏 Extensions 面板查看开关;
  • 确认配置落盘:查看上文所述config.yaml中的extensions.prompts-chat-mcp条目;也可用goose info -v核对加载结果;
  • 私有提示词功能不可用:确认PROMPTS_API_KEY已通过向导环境变量步骤或envs/env_keys注入,并确认密钥值来自 prompts.chat 账户后台。

小结

接入 prompts.chat 扩展本身只需一条npx命令,但把它放到 goose 的扩展生态中理解会更有收获:无论是 Desktop 的一键协议链接、CLI 的goose configure交互向导,还是直接编辑 config.yaml 中extensions段的stdio条目,最终都收敛到同一个由 ExtensionConfig 枚举 驱动的落盘结构,并由 extensions.rs 完成解析与默认值注入(含默认 300 秒超时)。掌握这套机制后,把任意 MCP Server 接进 goose、为它配好密钥与环境变量,就只是一项可复制的例行操作了。想要继续探索更多扩展,可参考 MCP 扩展系列文档 下的其它教程。

【免费下载链接】goosean open source, extensible AI agent that goes beyond code suggestions - install, execute, edit, and test with any LLM项目地址: https://gitcode.com/GitHub_Trending/goose3/goose

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/9 19:39:16

网络协议分层模型与四层协议详解:从HTTP到TCP/IP的完整地图

很多开发者学习网络协议的方式&#xff0c;是用碎片化信息不断充实收藏夹。今天看到一个面试题讲三次握手&#xff0c;明天收藏一篇 HTTP 状态码总结&#xff0c;后天刷到一条视频演示 ping 的原理。知识点都“见过”&#xff0c;但真被问到“从输入一个网址到页面显示&#xf…

作者头像 李华
网站建设 2026/9/9 19:38:16

Android第三方库选型与集成:从Gradle配置到依赖冲突排查全指南

简介&#xff1a;面向Android开发者的第三方库合集&#xff0c;系统梳理了Butter Knife、Gson、Retrofit、OkHttp、Glide、Dagger 2、EventBus、RxJava、Room等十余个主流库的用途与使用要点&#xff0c;帮助开发者快速选型并减少基础功能重复开发&#xff0c;适合初中级Androi…

作者头像 李华
网站建设 2026/9/9 19:37:44

一张图看懂计算机网络协议:从分层模型到排查实战

很多朋友在学网络知识时&#xff0c;最头疼的不是某一个协议有多难&#xff0c;而是协议数量太多&#xff0c;不知道它们各自属于哪一层&#xff0c;也不知道报文格式长什么样&#xff0c;更不清楚出了问题该用什么命令去排查。本文整理了一张相对完整的“计算机网络协议地图”…

作者头像 李华