mcpField
G
GooseTeam

GooseTeam

本地服务
github.com/cliffhallAI 与智能体7466 周前更新

关于 GooseTeam

GooseTeam 是一个 MCP 服务及协议,用于让 Goose Agent 之间协作。它面向希望让多个编码 Agent 分工完成任务的用户,项目目前以 Goose CLI 集成为重点。

主要功能

  1. 01Agent 注册与唯一 ID 分配
  2. 02消息存储与检索
  3. 03任务创建、分配与完成
  4. 04Agent 等待与循环控制
  5. 05通过 MCP Proxy 支持多 Agent 连接

适用场景

  1. 01由协调 Agent 拆分项目并分配任务给其他 Agent
  2. 02让多个 Goose Agent 通过共享服务交换消息

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

GooseTeam

GooseTeam Logo

让 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 协议图表

goose-protocol-chart.png

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

Goose PC Follows Mermaid

Goose Agent

Goose Agents

Inspector - 工具列表

Inspector

Inspector - 添加消息

inspector-add-message.png

Inspector - 任务列表

inspector-list-tasks.png

如何运行

告知 Goose 此扩展
按顺序运行这些 npm 脚本:
  • 首先,将此仓库克隆到本地计算机,并安装依赖项
  • npm run build - 从源代码构建服务。
  • npm run mcp-proxy,启动 SSE 代理,以便与单个 goose-team MCP 服务实例通信,
  • npm run inspector,在浏览器中启动 MCP inspector
    • 在这里,点击 connect,然后点击 list_tools、add_message,接着以 Human 身份发送一条消息,描述团队要处理的任务或项目。
  • npm run agent,启动一个 Agent,它会读取协议和说明,连接到 goose-team 服务,将自己指定为项目协调员,然后开始创建任务。
    • 在 inspector 窗口中,点击 list_tasks,查看它正在添加的任务,
    • 有一些任务后,你可以反复运行 npm run agent,启动由项目协调员分配任务的 Agent。

故障排除

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”。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。