关于 GooseTeam
GooseTeam 是一个 MCP 服务及协议,用于让 Goose Agent 之间协作。它面向希望让多个编码 Agent 分工完成任务的用户,项目目前以 Goose CLI 集成为重点。
主要功能
- 01Agent 注册与唯一 ID 分配
- 02消息存储与检索
- 03任务创建、分配与完成
- 04Agent 等待与循环控制
- 05通过 MCP Proxy 支持多 Agent 连接
适用场景
- 01由协调 Agent 拆分项目并分配任务给其他 Agent
- 02让多个 Goose Agent 通过共享服务交换消息
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
GooseTeam

让 Goose Agent 协作
协议:
Agent 遵循的操作流程,以两种形式呈现:
- 自然语言:精简、易读的说明,介绍如何操作以及如何使用工具。
- Mermaid Markdown:以高效的文本格式描述的简洁流程图,展示预期行为。
扩展:
Goose 扩展(MCP 服务),为 Agent 提供用于执行任务和发送消息的工具。
- **Agent 注册:**为 Agent 分配唯一 ID 并发送消息,协助完成 Agent 注册。
- **消息管理:**存储来自 Agent 的消息,以供检索。
- **任务管理:**项目协调员负责创建任务,并将任务和角色分配给其他 Agent。
- **Agent 等待:**允许已连接的 Agent 等待指定时长,然后再执行其他操作。
- **远程服务:**借助 MCP Proxy,多个 Agent 可以连接到同一个 MCP 服务,这是协作所必需的。
开发中
- 目前的重点是集成 Goose CLI,因此你必须安装它。
- 其他 Agent 平台也可以轻松集成到此项目中。
- 协议和 MCP 服务与 Goose 的耦合度并不高,只有 npm
agent:脚本和协议前言与其相关。
新增:使用 Mermaid markdown 进行行为控制!
-
Agent 协议以 mermaid 图表的形式呈现。
-
使用
agent:chart脚本启动你的 Agent,看看你最喜欢的大模型能否遵循它!
截图
GooseTeam 协议图表

GPT-4o 认可将其用作控制机制

Goose Agent

Inspector - 工具列表

Inspector - 添加消息

Inspector - 任务列表

如何运行
告知 Goose 此扩展
- 运行
goose configure - 选择 Add Extension
- 选择 Remote Extension
- 名称输入
goose-team - SSE 端点 URI 输入 http://localhost:3001/sse
按顺序运行这些 npm 脚本:
- 首先,将此仓库克隆到本地计算机,并安装依赖项
npm run build- 从源代码构建服务。npm run mcp-proxy,启动 SSE 代理,以便与单个 goose-team MCP 服务实例通信,npm run inspector,在浏览器中启动 MCP inspector- 在这里,点击 connect,然后点击
list_tools、add_message,接着以Human身份发送一条消息,描述团队要处理的任务或项目。
- 在这里,点击 connect,然后点击
npm run agent,启动一个 Agent,它会读取协议和说明,连接到goose-team服务,将自己指定为项目协调员,然后开始创建任务。- 在 inspector 窗口中,点击
list_tasks,查看它正在添加的任务, - 有一些任务后,你可以反复运行
npm run agent,启动由项目协调员分配任务的 Agent。
- 在 inspector 窗口中,点击
故障排除
GOOSE TEAM 的运行效果取决于模型!!!
按照以下步骤测试你的模型是否可用。
npm run build- 从源代码构建服务。npm run mcp-proxy,启动 SSE 代理,以便与单个 goose-team MCP 服务实例通信,npm run agent:test此命令会启动一个连接到同一 MCP 的 Agent,但它使用更简单的协议:用另一种语言问好,等待 2 秒,然后再次问好。- 这里有一个视频展示了成功运行
agent:test的示例。
目前,我能让它持续运行的模型只有 google/gemini-2.0-flash-001(通过 openrouter.ai 以避免因速率限制而中断)和 openai/gpt-4o。
其他模型都会中断循环。模型遵循协议并持续运行、检查消息和休眠非常重要,尤其是对项目协调员而言。
我建议运行 build, mcp-proxy 和 agent:test。如果你配置的模型做了一些工作后停止,并出现“message loop ended”错误,那说明这个模型不太擅长使用工具。试试不同的模型,看看哪些可用。如果你发现上述模型之外的其他模型也能持续工作,请告诉我!
MCP 工具
Agent
-
register_agent- 注册一个新 Agent,并提供唯一 ID 和随机分配的颜色。
- 输入: 无
- 返回: 包含唯一
id和分配的color的 JSON Agent。
-
list_agents- 列出所有已注册的 Agent,概览可用的参与者。
- 输入: 无
- 返回: 所有连接到服务的 Agent 的 JSON 列表。
-
agent_leave- 允许 Agent 离开团队。
- 输入: 无。
- 返回: 已离开的 Agent 的 JSON。
-
agent_wait- 允许 Agent 等待指定秒数后再执行其他操作。
- 输入:
seconds:等待的秒数。
- 返回: 已过时间的确认信息。
消息
-
add_message- 允许 Agent 发送一条新消息,并将其存储在服务中。
- 输入:
senderId:发送消息的 Agent 的 ID。content:消息内容。
- 返回: 已添加消息的确认信息。
-
recent_messages- 获取服务中存储的最新消息。
- 输入: 无
- 返回: 包含最新三条消息的 JSON 数组。
-
list_messages- 获取服务中存储的所有消息。
- 输入: 无
- 返回: 包含服务中所有消息的 JSON 数组。
-
clear_messages- 清除服务中存储的所有消息。
- 输入: 无
- 返回: 已清除消息的确认信息。
任务
-
add_task- 向服务端添加任务。
- 输入:
description:任务描述。
- **返回:**新添加的任务及其分配的 ID。
-
list_tasks- 列出服务端的所有任务。
- **输入:**无
- **返回:**服务端所有任务的 JSON 列表。
-
assign_task- 将任务分配给 Agent。
- 输入:
taskId:任务的 ID。agentId:要分配任务的 Agent 的 ID。
- **返回:**确认消息已添加。
-
complete_task- 完成任务。
- 输入:
taskId:任务的 ID。
- **返回:**确认任务已完成。
开发者设置
安装依赖项
cd /path/to/GooseTeam/npm install
构建
npm run build- 在
/dist/index.js构建基于 stdio 的 MCP 服务运行时
STDIO 服务 - 代理模式
npm run stdio:proxy- 在端口
:3001的/sse端点启动基于 SSE 的 MCP 代理 - 此代理与 STDIO 封装的 GooseTeam MCP 服务单实例通信
- 多个客户端可以连接到同一服务,并查看相同的资源
SSE 服务 - 直连模式
npm run sse:direct- 在端口
:3001的/sse端点启动 SSE 封装的 GooseTeam MCP 服务实例 - 多个客户端可以连接到同一服务,并查看相同的资源
- 这与代理模式的 STDIO 方案等效,但使用的是我们的 SSE 版本服务。
StreamableHTTP 服务 - 直连模式
npm run streamableHttp:direct- 在端口
:3001的/mcp端点启动 StreamableHTTP 封装的 GooseTeam MCP 服务实例 - 多个客户端可以连接到同一服务,并查看相同的资源
- 这与代理模式的 STDIO 方案等效,但使用的是我们的 SSE 版本服务。
Inspector
npm run inspector- 运行 Model Context Protocol Inspector
- Inspector UI 可通过以下地址访问:http://localhost:5173
- 在 Inspector UI 中:
- 确保
Transport Type设置为StreamableHttp - 确保
URL设置为 http://localhost:3001/mcp - 点击其 "Connect" 按钮
- 你应该会看到绿色指示灯 🟢和 "Connected" 消息。
- 点击其 List Tools 按钮
- 确保
- 多个客户端实例可以连接到同一服务,并共享相同的资源
Agent - 文本协议
npm run agent:text- 启动一个新的 GooseTeam Agent,其行动指令位于:
instructions/protocol-as-text.md- 此 Agent 的协议指令采用文本 Markdown 格式,以标题、文本和项目符号呈现。
- 注意:这是一个自然语言提示词,但由于它要求等待并持续循环,某些大模型可能会犹豫
- 如果大模型无法持续循环,请使用不同的大模型尝试 Agent Wait Test,以找到合适的模型。
- 第一个 Agent 将担任项目协调员角色
- **注意:**最好在启动第一个 Agent 之前,先使用 Inspector 连接到服务
- 以 "Human" 的身份发送一条消息,告诉它你希望团队完成什么任务
Agent - 图表协议
npm run agent:chart- 启动一个新的 GooseTeam Agent,其行动指令位于:
instructions/protocol-as-chart.md- 此 Agent 的协议指令采用 Mermaid Markdown 格式,这是一种简洁的流程图表达方式。
- 注意:虽然这种方式能高效地表达协议,但某些大模型可能无法理解
- 如果大模型无法理解 Mermaid Markdown,它会说明情况并退出。
- 第一个 Agent 将担任项目协调员角色
- **注意:**最好在启动第一个 Agent 之前,先使用 Inspector 连接到服务
- 以 "Human" 的身份发送一条消息,告诉它你希望团队完成什么任务
Agent 等待测试
npm run agent:wait:test- 启动一个新的 GooseTeam Agent,并按照
instructions/wait-loop-test.md中的指令让它蹒跚前行。 - 这会测试已配置模型保持循环并定期检查消息的能力。
- 如果它以错误“outgoing message queue empty”结束,则说明它不是一个好的工具使用模型,因此不适合与 GooseTeam 配合使用。
- **注意:**请务必先运行 MCP Proxy。
格式化
npm run format- 使用
prettier格式化代码
类型检查
npm run typecheck- 使用带有参数的
tsc检查并报告类型问题
代码检查
npm run lint- 使用
eslint以非破坏性方式检查并报告语法问题
修复代码问题
npm run lint:fix- 使用
eslint检查并修复语法问题
测试
npm run test- 运行单元测试
链接
- **MCP 规范:**完整的 Model Context Protocol 规范请参阅此处。
- **服务端参考:**我们采用了一种简单但模块化的方法,示例来自 GitHub MCP 服务。
- **灵感来源:**基于 Aaron Goldsmith 的 Gist 此处不断迭代。
- 观看 Aaron 关于其初次实验的演讲“Building a team of AI agents”。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。