用途
Amazon Bedrock Flows 是 Amazon Bedrock 的视觉化工作流构建器,用于端到端编排生成式 AI 应用。它把基础模型、提示词、知识库和 AWS 服务连接起来,目标是让用户不写编排代码也能搭建复杂 AI 流程。
主要能力
资料列出的核心能力包括:
- 视觉化流程构建器:通过拖放界面创建复杂工作流。
- 基础模型集成:连接多个模型与提示词。
- 知识库节点:基于 Bedrock Knowledge Bases 构建 RAG 流程。
- 条件分支:按条件决定执行路径。
- 迭代与循环:处理数组并重复操作。
- Lambda 与内联代码:在不部署的情况下编写自定义逻辑。
- 版本管理:为 A/B 测试与回滚提供流程版本。
- API 部署:通过 boto3 以编程方式调用流程。
资料还列出收益:无需代码、组件可复用、支持并行执行、具备版本控制、以别名提供生产级 API 调用、原生支持 Lambda、S3 与 Knowledge Base。
节点类型
流程控制节点:
- 输入节点(必需):每个流程必须且只能有一个 Input 节点作为入口。
- 输出节点(必需):每个流程至少有一个 Output 节点。
编排节点:
- Prompt 节点:用提示词模板调用基础模型,支持内联提示或引用已保存提示、
{{variable_name}}变量替换、完整推理配置以及多模型支持。 - Agent 节点:调用 Bedrock Agent 进行多轮交互。
数据节点:
- Knowledge Base 节点:执行带 RAG 的知识库查询,可配置
numberOfResults(1–100)与overrideSearchType(HYBRID 语义加关键词,或 SEMANTIC),同时返回生成结果与原始检索结果。 - S3 Retrieval 节点:从 S3 存储桶获取数据。
- S3 Storage 节点:将数据写入 S3 存储桶。
逻辑节点:
- Condition 节点:按条件分支执行,典型用例包括内容路由(情感、类别、语言)、错误处理(重试、回退)、功能开关(A/B 测试)、阈值检查(置信度分数)。
- Iterator 节点:遍历数组元素。
- Collector 节点:收集迭代器结果。Iterator 与 Collector 可组合成“迭代(文档)→ 逐个处理 → 收集(摘要)”的模式。
- DoWhile 循环节点(2025 新增):在条件为真时重复执行,可用于迭代优化、带退避的重试、渐进增强与多步校验。
代码节点:
- Lambda Function 节点:执行外部 Lambda 函数,要求流程执行角色具有
lambda:InvokeFunction权限,Lambda 需接收事件负载并返回 JSON 响应。 - Inline Code 节点(2025 新增,预览):直接执行 Python 代码而无需部署 Lambda,运行 Python 3.x、可访问标准库、采用类似 Lambda 的事件与上下文模式、迭代更快。限制包括:仍处于预览阶段(需查阅 AWS 文档确认可用性)、不支持外部依赖(pip 包)、存在执行时间限制、仅限 Python 3.x。
使用方式
资料给出三步快速入门与对应代码。
第一步,创建流程。用 boto3 的 bedrock-agent 客户端调用 create_flow,提供 name、description、executionRoleArn 以及包含 nodes 与 connections 的 definition。示例构建了一个文档问答流程:FlowInput 输入节点、SearchKB 知识库节点、FlowOutput 输出节点,并用 Data 类型连接串联。
第二步,部署流程。依次调用 prepare_flow(校验配置)、create_flow_version(创建版本)、create_flow_alias(创建别名),别名的 routingConfiguration 指向某个流程版本。
第三步,调用流程。用 bedrock-agent-runtime 客户端的 invoke_flow,传入 flowIdentifier、flowAliasIdentifier 以及 inputs 数组(包含 content、nodeName、nodeOutputName),然后遍历返回的 responseStream,从 flowCompletionEvent 判断完成原因,并从 flowOutputEvent 取得输出内容。
资料中各节点的配置示例展示了通过 inputs 中的 expression 字段在节点之间传递数据,例如 FlowInput.document、SearchKB.generatedResponse、GenerateResponse.modelCompletion 等。
适用场景
资料给出的适用场景包括:多步 AI 工作流(串联多次模型调用)、RAG 应用(从知识库检索并生成回答)、基于条件的动态路由、数据处理管道(转换与丰富数据)、智能体编排以及生产部署(稳定且带版本的 AI 应用)。
限制
资料明确提到的限制集中在 Inline Code 节点:仍处于预览阶段、不支持外部依赖、有执行时间限制、仅限 Python 3.x。Lambda 节点方面要求执行角色具备调用权限、Lambda 需接受事件负载并返回 JSON。其余如配额、价格、区域可用性、流程规模上限等信息暂未提供。