同样是在 AWS 上跑 Claude,Claude Platform 和 Amazon Bedrock 其实是两套完全不同的东西。
Bedrock 是 AWS 托管的模型 API 市场,限制多、灵活性低;而 Claude Platform on AWS 是 Anthropic 原生能力的直通车------Web 搜索、网页抓取、文件执行、自动缓存,一个都不少。
我直接用代码跑了一遍,把最值得关注的 4 个能力整理在这里。
准备工作:安装依赖
调用 Claude Platform on AWS 推荐使用 Anthropic 官方 SDK,安装时带上 aws 可选依赖:
bash
uv add anthropic[aws]
能力① Web Fetch:主动抓取任意网页
把 URL 丢给它,它自己去读,然后给你摘要。
python
import os
from anthropic import AnthropicAWS
client = AnthropicAWS(workspace_id=os.environ["ANTHROPIC_AWS_WORKSPACE_ID"])
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
tools=[
{"type": "web_fetch_20260209", "name": "web_fetch"},
],
cache_control={"type": "ephemeral"},
messages=[
{
"role": "user",
"content": "帮我总结这个网站的内容。https://aws.amazon.com/jp/blogs/machine-learning/introducing-claude-platform-on-aws-anthropics-native-platform-through-your-aws-account/",
}
],
)
for content in response.content:
print(content.type)
if content.type == "text":
print(content.text)
执行日志里能看到 web_fetch_tool_result 和 code_execution_tool_result 交替出现------Claude 不只是抓页面,它还会自动执行代码对内容做进一步分析。有意思的是,Web Fetch 在这次测试里跑了两轮,看起来它在自我验证结果。
执行结果片段:
server_tool_use
server_tool_use
web_fetch_tool_result
code_execution_tool_result
server_tool_use
server_tool_use
web_fetch_tool_result
code_execution_tool_result
text
以下是文章内容的摘要...
💡 这是 Claude Platform on AWS 相比 Amazon Bedrock 的独特能力之一------Bedrock 不会主动上网,Claude Platform 会。
能力② Web Search:多轮搜索,自动汇总
不只能抓取页面,还能主动检索互联网。更关键的是,它会连续搜多轮,交叉验证后再给你答案。
python
import os
from anthropic import AnthropicAWS
client = AnthropicAWS(workspace_id=os.environ["ANTHROPIC_AWS_WORKSPACE_ID"])
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
tools=[
{"type": "web_search_20260209", "name": "web_search"},
],
cache_control={"type": "ephemeral"},
messages=[
{"role": "user", "content": "帮我查一下 moritalous 在 Qiita.com 最近发布了哪些文章"}
],
)
for content in response.content:
print(content.type)
if content.type == "text":
print(content.text)
执行日志里可以数出 7 次 web_search_tool_result------它没有凑合,它在认真找。
执行结果片段:
server_tool_use
web_search_tool_result
code_execution_tool_result
server_tool_use
web_search_tool_result
...(共 7 轮搜索)
text
以下是 moritalous 最近在 Qiita 上的文章汇总...
🔍 这种"搜索 → 分析 → 再搜索"的循环能力,让它在信息收集类任务上远超普通 LLM 调用。
能力③ 文件上传/下载 + 代码执行
传一个 CSV,让它用 matplotlib 画图,然后把图下载回来------全程不需要离开 API。
文件操作目前是 Beta 功能,使用 client.beta 开头的 API:
python
import os
from anthropic import AnthropicAWS
client = AnthropicAWS(workspace_id=os.environ["ANTHROPIC_AWS_WORKSPACE_ID"])
# 上传文件
file_object = client.beta.files.upload(
file=open("data.csv", "rb"),
)
response = client.beta.messages.create(
model="claude-sonnet-4-6",
betas=["files-api-2025-04-14"],
max_tokens=4096,
tools=[
{"type": "code_execution_20260120", "name": "code_execution"},
],
cache_control={"type": "ephemeral"},
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": "分析 CSV 数据,用 matplotlib 可视化,保存为 output.png。",
},
{"type": "container_upload", "file_id": file_object.id},
],
}
],
)
# 从响应中提取文件 ID
def extract_file_ids(response):
file_ids = []
for item in response.content:
if item.type == "bash_code_execution_tool_result":
content_item = item.content
if content_item.type == "bash_code_execution_result":
for file in content_item.content:
file_ids.append(file.file_id)
return file_ids
# 下载文件
for file_id in extract_file_ids(response):
file_metadata = client.beta.files.retrieve_metadata(file_id)
file_content = client.beta.files.download(file_id)
file_content.write_to_file(file_metadata.filename)
print(f"Downloaded: {file_metadata.filename}")
最终拿到了 output.png,Claude 自动生成了一个 8 图数据仪表盘:
| # | 图表 | 内容 |
|---|---|---|
| ① | 月度销售额堆积面积图 | Hardware / Service / Software 各类别月度趋势 |
| ② | 销售额热力图 | 地区 × 类别交叉统计 |
| ③ | 细分市场销售额 + 毛利率 | Consumer / Enterprise / SMB 复合图 |
| ④ | 销售渠道订单量 | Online / Direct / Partner 水平条形图 |
| ⑤ | 地区月度销售趋势 | 6 城市折线图 |
| ⑥ | 退货率甜甜圈图 | 各细分市场分布 |
| ⑦ | 客户评分分布 | 直方图 + 均值线 |
| ⑧ | 营销费用 vs 销售额散布图 | 按类别展示投入产出比 |
生成的可视化仪表盘(output.png):

能力④ 自动提示词缓存:一行代码,全自动
提示词缓存的演进其实挺辛苦的:
| 版本 | 使用方式 |
|---|---|
| 第一代 | 在想缓存的位置精确标注缓存点,需要反复调试 |
| 第二代 | 统一写在消息末尾,位置固定但还是要手动加 |
| 第三代 | 顶层一行,全部自动搞定 |
如果你之前为了缓存调过一大堆参数,看到这里应该会有点想哭。
python
import os
from anthropic import AnthropicAWS
client = AnthropicAWS(workspace_id=os.environ["ANTHROPIC_AWS_WORKSPACE_ID"])
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
cache_control={"type": "ephemeral"}, # 就这一行,其他什么都不用动
messages=[
{"role": "user", "content": "HELLO!!!"}
],
)
print(response.content[0].text)
🚀 这是目前 Claude Platform on AWS 相比 Amazon Bedrock 最明显的差距之一。 Bedrock 截至目前还不支持自动缓存,期待早日跟进。
总结
| 能力 | Claude Platform on AWS | Amazon Bedrock |
|---|---|---|
| Web Fetch(抓取网页) | ✅ 支持 | ❌ 不支持 |
| Web Search(网页搜索) | ✅ 支持 | ❌ 不支持 |
| 文件上传/下载 + 代码执行 | ✅ 支持(Beta) | ❌ 不支持 |
| 自动提示词缓存 | ✅ 顶层一行搞定 | ❌ 暂无 |
这四个能力,任何一个单拿出来都值得折腾一下。组合起来,就是一套完整的"能上网、能处理文件、能执行代码、还会自动省钱"的 AI 基础设施。
Bedrock 的优势在于与 AWS 生态的深度集成和合规性;Claude Platform on AWS 的优势在于 Anthropic 原生能力的完整释放。两者不是替代关系,但如果你需要这 4 个能力,答案很清楚。