Haystack
用可组合管线与工作流构建可控的生产级 LLM 应用。
这个 Agent 能做什么,适合哪些场景?
Haystack 是一个用于在 Python 中构建生产级 LLM 应用的开源 AI 编排框架。其核心接口包括可同步或异步运行并支持逐 token 流式输出的 Pipeline,以及可并发调用工具的 Agent。开发者可以把检索、排序、过滤、记忆、工具调用、路由和生成组织为带循环、分支与条件逻辑的工作流。项目提供检索、索引、工具调用、记忆和评估组件,并允许按一致接口扩展自定义组件。它面向 RAG、语义搜索、问答、多模态应用和自主代理;若要将管线或代理作为 REST API 或 MCP 服务发布,README 指向配套项目 Hayhooks。
应用通过 Pipeline 连接内置或自定义组件,在模型调用前检索、排序、过滤、组合、结构化并路由上下文,然后执行生成或工具调用。Pipeline 可同步或异步执行,并逐 token 流式输出;Agent 可并发运行工具调用。Agent 生命周期可接入 before_llm、before_tool、on_exit 等钩子,并记录 step_count、token_usage 和工具调用。SkillToolset 可按需将技能描述放入上下文;Agent Pack 提供 deep research agent 和 advanced RAG agent 等预制代理。
- Python 团队需要把文档检索、排序和生成拆成可检查步骤,构建带明确上下文控制的 RAG 问答系统。
- 企业搜索团队需要组合索引、检索与过滤组件,为内部知识库提供语义搜索。
- 需要流式响应的应用团队想用同一个 Pipeline 在同步和异步执行模式之间切换。
- 正在开发可调用外部工具的代理团队,需要并发工具调用、生命周期钩子及 token_usage 记录。
- 需要把文本以外输入纳入工作流的产品团队,构建多模态应用。
- 已有 Haystack 管线的服务团队需要通过 Hayhooks 将其包装为 HTTP REST API 或 MCP 服务。
这个 Agent 有哪些优点和局限?
- Pipeline 支持同步、异步和逐 token 流式执行,适合同时覆盖交互式与服务端执行模式。
- 工作流可表达循环、分支和条件逻辑,并让检索、记忆、工具和生成过程保持可追踪。
- Agent 提供 before_llm、before_tool、on_exit 等生命周期钩子,并原生记录 step_count、token_usage 与工具调用。
- 框架声明可在多家模型和基础设施提供商之间替换组件,而无需重写整个系统。
- README 没有给出最小可运行代码、凭据配置或完整首个调用,落地前需要查找额外文档。
- 将 Pipeline 或 Agent 发布为 REST API 或 MCP 服务不是该仓库 README 中的内置命令,而是依赖配套的 Hayhooks 项目。
- 使用云模型或云基础设施时仍需为所选提供商完成各自的集成与凭据配置;README 未说明统一认证方式。
- 匿名遥测会在管线组件初始化时发送事件;需要退出时必须按文档另行配置。
如何安装或部署这个 Agent?
运行:pip install haystack-ai
README 还提供预发布版本安装命令:pip install --pre haystack-ai。运行时需要 Python 与 pip。
如何使用这个 Agent?
README 未提供可复制的首个 Pipeline 或 Agent 代码示例,也未说明模型提供商凭据、环境变量、配置格式或最小工作调用。已明确的使用边界是:在 Python 中用 Pipeline 组装组件并同步或异步运行,或使用 Agent 编排工具调用;模型与基础设施可接入 OpenAI、Mistral、Anthropic、Cohere、Hugging Face、Google、Azure OpenAI、AWS Bedrock、本地模型等。部署为 REST API 或 MCP 服务需使用 README 指向的 Hayhooks。