hayhooks
一键将 Haystack NLP 管道部署为 REST API 与 MCP 工具的薄部署层
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
一键将 Haystack NLP 管道部署为 REST API 与 MCP 工具的薄部署层
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下这个场景:你在本地精心调好了一个复杂的 Haystack RAG 管道——接入了 PDF 解析器、向量数据库、ReAct Agent——但想把它分享给团队或部署到服务器时,发现得从头写 FastAPI、写请求验证、写 MCP 工具映射,代码量比管道本身还多。
hayhooks 就是来解决这个痛点的。它是 deepset 官方推出的 Haystack 扩展工具,能在几行代码内,把本地调好的管道直接暴露为 REST API 和 MCP 工具,无需额外 Web 层代码,真正做到「本地开发 → 一键上线」。
hayhooks 由 deepset —— Haystack 框架的创始团队 —— 开发和维护。deepset 是一家专注于 NLP 技术的德国公司,Haystack 是其开源的模块化 NLP 框架,被全球数千个团队用于构建问答系统、RAG(检索增强生成)、文档理解等场景。
deepset 在大量企业咨询项目中观察到,开发者普遍遇到一个困境:Haystack 管道的核心逻辑写好了,但想把它变成团队可调用的服务时,还需要花大量时间写 API 路由、处理参数校验、管理部署配置。hayhooks 正是为了消除这个「最后一公里」的工程负担而诞生的。
项目采用 Apache-2.0 开源许可,由 deepset 核心团队持续维护,支持 Haystack v2 和 v3 双版本。
如果把 Haystack 管道 比作一台功能强大的专业设备(如3D打印机),那 hayhooks 就是这台设备的通用电源适配器和遥控面板:设备本身你已经很熟悉了,现在只要插上 hayhooks,就能通过 REST API(遥控器)或 MCP 协议(标准接口)来操控它,无需了解设备内部接线。
它本质上是一个运行时容器,负责:
/chat/completions 接口,无缝对接 Open WebUI 等前端hayhooks 提供零配置的 HTTP 接口。开发者只需定义一个继承 BasePipelineWrapper 的类,实现 setup() 和 run_api_async() 方法,然后用 hayhooks pipeline deploy-files 部署,hayhooks 自动生成以下端点:
POST /<pipeline_name>/run — 标准管道执行接口,参数由 Pydantic 自动校验GET /status — 服务健康状态检查POST /pipelines/list — 列出所有已部署管道DELETE /<pipeline_name>/undeploy — 动态卸载管道每个管道还可以通过 run_chat_completion_async() 方法暴露一个 OpenAI 兼容的聊天补全接口,支持流式输出(Server-Sent Events),可直接被 Open WebUI 等第三方前端使用。
这是 hayhooks 最具差异化的能力。安装 pip install "hayhooks[mcp]" 后,hayhooks 本身作为一个 MCP Server 运行,每个已部署的管道自动暴露为 MCP Tool。

图1:hayhooks 的多协议暴露架构 — REST API、MCP Tool、OpenAI Compatible 三路并行
在 Cursor、Claude Desktop 等 AI 编程工具中,用户可以直接以自然语言调用这些 Tool:例如「用 RAG 管道查询某文档」,AI 工具会通过 MCP 协议找到对应的 hayhooks 管道并执行,开发者无需写任何胶水代码。
A2A(Agent-to-Agent)协议是新兴的 agent 间通信标准,pip install "hayhooks[a2a]" 后,每个管道同时也是一个 A2A Agent,拥有自动生成的 Agent Card(能力描述),其他 A2A Agent 可以发现并委托任务给它,这为构建多 agent 协作系统提供了标准化基础。
安装 pip install "hayhooks[tracing]" 后,hayhooks 自动集成 OpenTelemetry,覆盖管道部署、运行、卸载的完整生命周期,并提供内置追踪仪表盘(hayhooks run --with-tracing-dashboard)。

图2:hayhooks 内置的 OpenTelemetry 追踪仪表盘 — 可视化管道执行链路与耗时
pip install "hayhooks[chainlit]" + hayhooks run --with-chainlit 即可零配置启动一个 Web 聊天界面,支持流式输出、管道选择下拉框和自定义 UI 组件,无需编写任何 Chainlit 代码。
hayhooks 的代码结构清晰,核心在 src/hayhooks/ 目录下:
依赖栈极为简洁:FastAPI(Web 框架)、Haystack(管道运行时)、Typer(CLI)、Uvicorn(ASGI 服务器)、Loguru(日志)。没有引入重型依赖,保持了轻量级定位。
上手难度:低。安装 pip install hayhooks 后,一行命令启动服务,再写一个 pipeline wrapper 类,部署即可。
门槛要点:
适用场景:
hayhooks 的定位是「薄部署层」,而非「重型平台」,这既是优点也是局限:
局限:
需注意:该工具与 Haystack 强绑定,不适用于 LangChain、LlamaIndex 等其他框架的管道。
hayhooks 的出现折射出一个趋势:AI 基础设施正在从「模型即服务」向「管道即服务」演进。随着 RAG 和 Agent 技术成熟,单纯的 LLM 调用已经不够用,能够将完整管道一键部署、可被发现、可被调用的工具链变得至关重要。
deepset 通过 hayhooks 将其 Haystack 生态扩展到了完整的 MLOps 链路:本地开发 → 一键部署 → 多协议暴露 → 可观测追踪,这对于构建企业级 AI 应用具有实质性价值。截至 2026 年中,hayhooks 已获 148 stars、36 forks,在 deepset 官方维护的生态中处于核心工具地位。

配图:deepset 官方 Haystack 生态标识

配图:hayhooks 与 Open WebUI 集成 — 可作为聊天后端直接使用