AI代理调度服务

Hive MCP是一个多AI模型协调服务器,可让AI编码助手调度和管理外部AI命令行工具作为子代理,实现任务并行处理和多样化AI能力整合。

  • by alessai
  • TypeScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 alessai/Hive-MCP

使用说明

蜂巢MCP

当你可以协调所有AI模型时,为什么要依赖一个AI模型呢?

Hive是一个MCP服务器,它允许任何AI编码助手——Claude Code、Cursor、Windsurf或任何MCP主机——作为子代理生成和协调外部AI CLI。将任务委托给Gemini、Claude、Qwen、Kilo Code、OpenCode、Codex、通过OpenCode提供的任何模型或任何自定义CLI工具。每个代理都与 完全工具访问权限 (文件系统、shell、web搜索),结果会直接返回到会话中。

蜂巢 自动检测 您安装了哪些CLI——无需配置。只需安装即可。

把它想象成给你的人工智能助手一个由其他人工智能助手组成的团队,当它需要第二种意见、专业技能或更多的动手能力时,它可以随时调用。

为什么选择Hive?

一个模型并不总是足够的。 不同的模型有不同的优势——Gemini速度快,知识面广,Claude代码精确,Codex运行沙盒。Hive允许您在不离开工作流程的情况下发挥每个模型的优势。

  • 多模型共识 --同时向2位以上模特提出相同的问题,获得不同的观点,抓住盲点
  • 委派并忘记 --在主会话继续工作的同时,将研究、代码审查或分析移交给子代理
  • 14个内置角色 --审阅器、调试器、安全审计员、测试生成器等,每个都有一个经过调优的系统提示
  • 多圈记忆 --代理会记住会话中之前的对话,因此您可以在之前的上下文中进行构建
  • 完全可扩展 --使用简单的JSON配置,在几分钟内将任何CLI工具添加为自定义代理

安装

克劳德代码

claude mcp add hive -- npx @alessai/hive-mcp

Cursor/Windsurf/其他MCP主机

添加到MCP配置中:

{
  "hive": {
    "type": "stdio",
    "command": "npx",
    "args": ["@alessai/hive-mcp"]
  }
}

来源

git clone https://github.com/alessai/Hive-MCP.git
cd Hive-MCP
npm install && npm run build
claude mcp add hive node ./dist/index.js

先决条件

安装您想用作代理的任何CLI:

代理 CLI 安装
双子座 gemini 请参阅 Gemini CLI
克劳德 claude 请参阅 克劳德代码
Qwen qwen 请参阅 Qwen代码
基洛代码 kilocode 请参阅 千码
OpenCode opencode 请参阅 OpenCode
食品法典委员会 codex 请参阅 Codex CLI

你只需要你打算使用的那些。蜂巢 自动检测 哪些CLI在启动时位于您的PATH中,并且只通告它找到的那些。无需配置——安装CLI即可正常工作。

示例

获取对代码的第二意见

“使用hive与Gemini和Claude一起查看此拉取请求”

Hive并行生成这两个模型 reviewer 角色。一次可以得到两个独立的代码审查——不同的模型捕获不同的东西。

多模式辩论

“使用带有挑战者角色的hive来查找此架构提案中的缺陷”

两个代理都独立地在你的设计中戳洞。如果他们同意,你可能会遇到真正的问题。当他们意见相左时,你会得到有趣的观点来考虑。

在你继续编码的同时委托研究

“使用hive和Gemini研究GraphQL API的最佳分页策略”

Gemini开始搜索网络,阅读文档,然后返回一个结构化的答案——而你的主会话则专注于实现。

多角度安全审计

“使用带有secaudit角色的配置单元来审核身份验证模块”

两个模型独立审计您的代码,包括OWASP前10名、注入风险、身份验证绕过等。冗余可以弥补单次传球的失误。

生成测试,然后挑战它们

“使用带有gemini和testgen角色的hive为src/auth.ts生成测试”

“现在使用带有克劳德和挑战者角色的hive来找出这些测试中的差距”

将不同角色的不同代理链接起来。一个产生,另一个批评。结果比单独的任何一个都更彻底。

提交前健全性检查

“使用带有预提交角色的hive来查看我的分阶段更改”

这两个模型都通过预提交清单运行:缺失测试、安全问题、剩余调试代码、破坏API更改。在遇到问题之前抓住它们。

使用新数据查找API

“使用带有gemini和apilookup角色的配置单元,在Vercel AI SDK中找到正确的API用于流式响应”

模型有训练截止点。Gemini CLI内置了web搜索,它可以找到当前的API文档、正确的方法签名和工作示例,而不是让人产生幻觉的过时模式。

深度架构分析

“使用带有分析师角色的hive来分析此项目的依赖关系图”

代理读取您的代码库,绘制架构模式,识别耦合问题,并标记结构问题——具有完全的文件系统访问权限,可以实际查看代码。

多轮调查

“使用带有gemini的hive来解释此代码库中的身份验证流”(continuation_id:“身份验证调查”)

“现在跟踪令牌过期时会发生什么”(continuation_id:“auth investigation”)

相同 continuation_id 意味着代理人记得之前的对话。在不重新解释上下文的情况下,在多个交流中建立理解。

用例概览

场景 工具 角色 为什么有效
代码审查 hive reviewer 两个模型捕获的错误多于一个
查找安全漏洞 hive secaudit 冗余审计,不同的启发式方法
挑战设计 hive challenger 独立魔鬼的拥护者
研究一个主题 hive default 将网络连接的研究委托给一个客户
生成测试 hive testgen 具有完整代码访问权限的集中测试生成
调试一个棘手的问题 hive debugger 系统性根本原因分析
计划实施 hive planner 编码前分解任务
预提交检查 hive precommit 推进前的最后一道防线
查找当前API hive apilookup Web连接代理查找新文档
跟踪代码流 hive tracer 在代码库中遵循执行路径
安全重构 hive refactor 用完整上下文重构代码
生成文档 hive docgen 来自实际代码的文档,而不是猜测

工具

hive

使用相同的提示生成一个或多个CLI代理。传递一个客户端进行单个代理运行,或传递多个客户端进行并行共识式运行。如果 clients 如果省略,Hive会询问要使用哪个模型/客户端。

参数 类型 必填 说明
clients string[] 没有 要查询的CLI客户端。通过一个或多个。省略它以选择一个或多个排名可用的模型/客户端。如果您的MCP主机错误地需要此字段,请通过 ["__select_models__"] 或使用 hivepick.
prompt string yes 任务或问题
role string no 角色提示(请参见 角色)
continuation_id string no 单客户端运行的线程ID;多客户端运行时忽略
cwd string no 工作目录
timeout_seconds number no 每个代理超时覆盖,1–7200秒
background boolean no 立即返回作业ID,而不是等待所有代理
wait_seconds number no 返回后台作业ID前等待的秒数;默认值为45
run_id string no 相关Hive作业共享的可选组ID

长时间运行的呼叫在以下情况下会自动回退到后台作业 wait_seconds 因此MCP主机在审查完成之前不会超时。使用以下命令获取或取消作业 hivejob.Jobs活在当前Hive MCP服务器会话中;重新启动服务器,正在运行/内存中的作业结果将消失。

对于多模型评审,请通过相同的 run_id 对于每一个 hive 调用,然后使用 hivejob({ action: "collect", run_id: "..." })这将返回一个紧凑的进度/结果有效载荷,因此编排代理不会盲目轮询分散的作业ID。

hivepick

缓存或需要的主机的兼容性包装 hive.clients。它的行为与 hive 省略客户端:Hive询问要使用哪个或多个模型/客户端,或返回 MODEL_SELECTION_REQUIRED 如果主人不能问。

参数 类型 必填 说明
prompt string yes 任务或问题
role string no 角色提示(请参见 角色)
cwd string no 工作目录
timeout_seconds number no 每个代理超时覆盖,1–7200秒
background boolean no 立即返回作业ID,而不是等待所有代理
wait_seconds number no 返回后台作业ID前等待的秒数;默认值为45
run_id string no 相关Hive作业共享的可选组ID

hivejob

检查或取消由创建的后台作业 hive.

参数 类型 必填 说明
action get list cancel
job_id string for get / cancel 长时间运行的调用返回的作业ID
run_id string 用于筛选 list /推荐用于 collect 传递给相关作业的组ID
include_result boolean 否 包括已完成的输出 get / collect;默认为true

hivejob collect 返回包含计数、已用秒数、下一个推荐轮询间隔、结构化作业状态和已完成输出的JSON。这是管理长时间运行的多模型评审的首选方法。

OpenCode模型客户端

在MCP启动时,Hive会向OpenCode询问当前auth/config中可用的模型,并将每个模型注册为名为 opencode:<provider/model>。例如,也支持嵌套提供程序路由 opencode:openrouter/anthropic/claude-opus-4.7。如果稍后添加或删除OpenCode提供程序,请重新启动Hive MCP服务器,列表将自动更新。

OpenCode列出的任何模型也可以直接使用,而无需添加Hive配置:

hive(clients: ["opencode:openai/gpt-5.5"], prompt: "Review this module")
hive(clients: ["opencode:openrouter/anthropic/claude-opus-4.7"], prompt: "Review this module")
hive(clients: ["opencode:zai-coding-plan/glm-5.1", "opencode:openai/gpt-5.5"], prompt: "Compare these approaches")

为了与直接的OpenCode模型ID兼容,Hive还接受裸模型路由(例如 openrouter/anthropic/claude-opus-4.7)并通过OpenCode运行它。

列出可用的OpenCode支持的客户端名称,包括:

hive-mcp models

从MCP主机调用 hivemodels 同一列表的工具。例如,您可以按提供商进行筛选 provider: "opencode-go".

如果你忽略了 clients,或传递一个不明确的模型族,例如 glm, kimi,或 deepseekHive会问你是指哪个发现的模型/客户端。选项根据您最近/频繁的使用情况进行排名,并限制在前5位。省略的客户端需要选择一个或多个模型,模糊的条目支持选择多个模型。

一些MCP主机,包括当前的OpenCode MCP主机,没有实现该标准 elicitation/create 请求,即使OpenCode有自己的内置 question LLM对话工具。在这些主机中,Hive返回一个 MODEL_SELECTION_REQUIRED 使用结构化JSON进行响应,列出确切的客户端选择。主代理应在聊天中询问用户,并使用所选的确切信息再次调用Hive opencode:<provider/model> 名字。

角色

每个角色都会注入一个定制的系统提示,以塑造代理如何处理您的任务:

角色 它的作用
default 通用助理
reviewer 代码审查——错误、风格、安全性、可维护性
debugger 系统调试和根本原因分析
planner 将任务分解为有序的实施步骤
thinker 深入探索——在回答之前考虑权衡
analyst 架构模式、依赖性分析、结构问题
refactor 在不改变行为的情况下改进代码结构
testgen 生成全面的测试:快乐路径、边缘情况、错误条件
secaudit 安全审计——OWASP前10名、注入、绕过身份验证、数据暴露
docgen 从代码生成清晰的文档
precommit 预提交检查表:测试、安全、调试代码、破坏性更改
challenger 魔鬼代言人——发现缺陷,挑战假设,识别风险
apilookup 通过方法签名和示例查找正确的API当前用法
tracer 通过函数调用和状态更改跟踪执行流

所有代理都会收到一个功能前导,提醒他们在需要时使用他们的工具(文件系统、shell、web搜索)。

CLI管理

Hive包含用于管理CLI客户端配置的内置命令。无需手动编辑JSON。

查看可用内容

hive-mcp list
  Status  Name            Command         Source
  ─────── ─────────────── ─────────────── ──────────────────────────
  ✓     claude          claude          built-in
  ✓     gemini          gemini          built-in
  ✗     codex           codex           built-in
          └─ Install: npm i -g @openai/codex

  OpenCode model clients: use opencode:<provider/model>
  Example: opencode:openai/gpt-5.5

添加自定义CLI配置

使用额外的参数克隆现有客户端——非常适合模型变体:

# OpenCode with a specific model alias
hive-mcp add gpt55 --from opencode --args "--model openai/gpt-5.5" --timeout 600

# Gemini with Flash model and shorter timeout
hive-mcp add gemini-fast --from gemini --args "-m gemini-2.0-flash" --timeout 60

或者创建一个全新的客户端:

hive-mcp add my-tool --command /usr/local/bin/mytool --runner base --timeout 120

删除自定义配置

hive-mcp remove claude-zai

只能删除用户配置。内置配置受到保护。

所有命令

命令 描述
hive-mcp 启动MCP服务器(默认)
hive-mcp list 显示所有具有可用性状态的客户端
hive-mcp models 将OpenCode模型显示为 opencode:<provider/model> 客户名称
hive-mcp logs [--tail N] 显示最近的Hive MCP日志
hive-mcp add <name> 添加自定义CLI配置
hive-mcp remove <name> 删除用户CLI配置
hive-mcp help 显示帮助

配置

内置客户端

客户端 CLI 型号 超时
gemini gemini 双生2.5秒 5分钟
claude claude 默认值 30分钟
qwen qwen 默认值 5分钟
kilo kilocode 默认值 5分钟
opencode opencode 默认值 5分钟
codex codex 默认值 10分钟

添加您自己的代理

最简单的方法是使用CLI:

hive-mcp add my-agent --from gemini --args "--flag value" --timeout 300

或者将JSON文件放入 ~/.hive/cli_clients/ 手动:

{
  "name": "my-agent",
  "command": "my-cli-tool",
  "runner": "gemini",
  "additional_args": ["--flag", "value"],
  "env": {},
  "timeout_seconds": 300,
  "roles": {}
}

这 runner 字段告诉配置单元如何与CLI通信:

Runner 系统提示 输出格式 用于
gemini -p flag JSON 兼容Gemini的CLI
claude --append-system-prompt flag JSON 兼容Claude的CLI
opencode stdin JSONL OpenCode兼容的CLI
qwen stdin JSON Qwen代码(使用与Claude兼容的输出格式)
kilo stdin jsonl 千克代码CLIS
codex stdin JSONL 与Codex兼容的CLIs
base(默认) stdin 原始文本 任何读取stdin并写入stdout的CLI

用户配置 ~/.hive/cli_clients/ 覆盖具有相同名称的内置配置。

多回合对话

通过a continuation_id 为了在多个调用之间保持上下文:

# First call
hive(clients: ["gemini"], prompt: "Explain this codebase", continuation_id: "session-1")

# Follow-up — the agent remembers the previous exchange
hive(clients: ["gemini"], prompt: "Now focus on the auth module", continuation_id: "session-1")

对话存储在磁盘上(~/.hive/threads/)具有30分钟TTL和100线程LRU驱逐。

日志记录和超时

Hive将MCP安全日志写入stderr和:

~/.hive/logs/hive-mcp.log

有用的命令:

hive-mcp logs              # show recent log lines
hive-mcp logs --tail 200   # show more lines
hive-mcp logs --path       # print the log file path

每个生成的CLI都有一个超时。默认值来自客户端配置,单个工具调用可以用以下命令覆盖它们 timeout_seconds。超时时,Hive发送 SIGTERM,升级为 SIGKILL,返回它捕获的任何部分stdout/stderr,并记录输出大小和退出详细信息。

MCP主机通常有自己较短的请求超时时间。为了避免丢失长篇评论, hive 等待至 wait_seconds (默认为45秒),然后返回 hivejob ID,而代理继续在后台运行。如果MCP调用者在返回作业ID之前取消,Hive现在会中止子进程组,这样过时的代理就不会继续运行。

运作原理

MCP Host (Claude Code, Cursor, etc.)
    ↓ MCP tool call
Hive MCP Server
    ↓ child_process.spawn()
CLI Agent (gemini, claude, codex, custom)
    ↓ stdout/stderr
Parse output → return to host
  1. 您的MCP主机呼叫 hive
  2. Hive解析客户端配置,加载角色提示,构建CLI参数
  3. CLI作为子进程生成,提示符通过stdin或标志管道传输
  4. 等待时,进度通知会流回到主机
  5. 输出被解析(JSON/JSONL/raw)并返回给会话,或存储在后台 hivejob 以便以后检索

每个代理都在自己的进程中运行,可以完全访问底层CLI提供的任何工具——文件系统、shell、web搜索、代码执行。蜂巢只是一座桥。

安全

Hive会生成子进程,因此安全性很重要。它的作用如下:

  • 自动检测 --只有PATH中实际找到的CLIs才被注册;丢失的二进制文件将被自动跳过
  • 无外壳注射 --用途 spawn() 对于参数数组,从不进行shell插值
  • 路径遍历保护 — continuation_id 角色名称根据严格的字母数字模式进行验证
  • 环境过滤 --敏感环境变量(*_SECRET, *_TOKEN, *_PASSWORD, PRIVATE_KEY, DATABASE_URL, GITHUB_TOKEN等)在传递给子进程之前被剥离
  • 并发限制 --最多5个同时进行的子进程,以防止资源耗尽
  • CWD验证 --The cwd 在生成之前,验证参数是否为现有目录
  • 配置验证 --验证用户配置的必填字段、健全的超时界限(1s-2hr)和危险的环境变量(LD_PRELOAD等)被阻塞
  • 超时执行 --每个子进程都有一个SIGTERM超时→ SIGKILL升级

需要注意的事项:

  • 自定义客户端可以运行任何可执行文件。 文件在 ~/.hive/cli_clients/ 定义 command 这就产生了。只添加您信任的配置。
  • 内置Claude/OpenCode配置自动批准权限。 克劳德使用 bypassPermissions;OpenCode使用 --dangerously-skip-permissions这意味着生成的代理可以在没有人类批准的情况下进行读/写/执行。覆盖 ~/.hive/cli_clients/ 如果你想要更严格的默认值。
  • 代理继承了您的大部分环境。 像Gemini和Claude这样的CLI工具需要他们的API密钥从环境中运行。Hive剥离了已知的秘密,但传递了其余的秘密。

发展

npm run dev     # Watch mode
npm run build   # One-time build
npm test        # Run the test suite
npm start       # Run the server

许可证

麻省理工学院