极米投影仪
149.20M · 2026-03-22
最近打开掘金,热榜一半都是 AI Agent 相关的内容——OpenClaw 拆解、MCP 协议、Function Call 实战... 概念已经讲了不少,但真正从零搭过一个完整 Agent 的人可能不多。
今天换个思路:不装环境、不写框架、不管运维,直接用 Amazon Bedrock 的 Agent 功能,5 分钟搭一个能理解用户意图、自动调 API 的 Agent。
本文所有步骤均已实际验证跑通,不是对着文档猜的。
order-assistant(订单助手)帮用户查询和管理订单你是一个订单管理助手。你可以帮用户完成以下操作:
1. 查询订单状态(需要订单号)
2. 查询最近的订单列表(需要用户ID)
3. 取消订单(需要订单号和取消原因)
请用中文和用户交流。如果用户没有提供必要信息,请主动询问。
光有模型和提示词,Agent 只能聊天,不能干活。Action Group 就是告诉 Agent "你能做什么操作"。
OrderActions函数 1:GetOrderStatus
order_id(string,必填,描述:订单编号)函数 2:CancelOrder
order_id(string,必填)、reason(string,必填,描述:取消原因)Agent 状态变成 Prepared 后(通常几秒),右侧出现 Test 对话窗口。
测试 1:完整信息
输入:我想查一下订单 ORD-20260310-001 的状态
Agent 的推理过程(Trace):
[思考] 用户想查询订单状态,我有所需的全部信息可以调用函数。
[调用] GetOrderStatus → ActionGroup: OrderActions
参数: order_id = ORD-20260310-001
[类型] ACTION_GROUP(Return Control,等待应用返回结果)
Agent 准确识别了意图,提取了订单号,调用了正确的函数。
测试 2:不完整信息
输入:我想取消一个订单
Agent 回复:
好的,我来帮您取消订单!为了完成取消操作,我需要了解以下信息:
1. 订单编号是什么?
2. 取消原因是什么?
请提供这两项信息,我将立即为您处理。
Agent 发现缺少必要参数,自动用中文追问,而不是直接报错。
Trace 是调试利器——每一步推理都可视化,不用猜模型在想什么。
如果你希望 Agent 不仅能调 API,还能回答"退货政策是什么"这类基于文档的问题:
import boto3
client = boto3.client('bedrock-agent-runtime', region_name='us-east-1')
response = client.invoke_agent(
agentId='你的AgentID', # 创建时获得
agentAliasId='你的AliasID', # 创建Alias时获得,测试用 TSTALIASID
sessionId='user-session-123', # 用户会话ID,用于多轮对话
inputText='帮我查一下订单 ORD-20260310-001 的状态'
)
# 处理流式响应
for event in response['completion']:
if 'chunk' in event:
print(event['chunk']['bytes'].decode('utf-8'))
Java、JavaScript、Go SDK 写法类似,参考 InvokeAgent API 文档。
实际跑通过程中遇到的几个坑,分享出来:
模型 ID vs Inference Profile ID:直接用 anthropic.claude-sonnet-4-6 调用会报 validationException,需要用 Inference Profile ID(如 us.anthropic.claude-sonnet-4-6)。控制台创建不受影响,API/CLI 创建需注意。
Agent 必须有 Service Role:即使是最简单的 Agent,Prepare 时如果没有绑定 agentResourceRoleArn 会报错。控制台选"Create new role"即可,CLI 需要手动创建 IAM Role。
Prepare 是必须步骤:每次修改 Agent 配置(Instructions、Action Group、模型等)后,必须重新 Prepare 才生效。
| 维度 | 自建(LangChain / AutoGen 等) | Bedrock Agents |
|---|---|---|
| 环境 | 需要 Python 环境 + 依赖管理 | 不需要 |
| 模型 | 自己管 GPU 或调第三方 API | 100+ 模型一键切换 |
| 工具编排 | 自己写编排逻辑 | 平台自动编排 |
| RAG | 搭向量数据库 + 检索链路 | 上传文档即可 |
| 调试 | print / log | Trace 可视化 |
| 扩缩容 | 自己管 | 全托管,按需付费 |
| 灵活性 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
| 上手速度 | ⭐⭐ | ⭐⭐⭐⭐⭐ |
不是说自建不好——如果你需要深度定制编排逻辑、用特殊的工具链,自建框架更灵活。但如果目标是"快速让 Agent 能干活并上线",托管方案能帮你省掉大量基础设施层的工作。
两者也不冲突,完全可以用 Bedrock 做快速原型验证,确认可行后再决定是否迁移到自建方案。
有问题欢迎评论区交流,也欢迎分享你用 Agent 做的项目