AWS Machine Learning Blog

Get started with OpenAI GPT-5.6 Sol, Terra, and Luna on Amazon Bedrock

8.5内容质量
Get started with OpenAI GPT-5.6 Sol, Terra, and Luna on Amazon Bedrock

TL;DR · AI 摘要

AWS正式推出OpenAI GPT-5.6 Sol、Terra、Luna模型,支持通过Amazon Bedrock的API进行访问,适用于不同场景的AI工作负载。

核心要点

  • GPT-5.6 Sol适用于自主编码和深度推理,Terra平衡性能与成本,Luna优化高吞吐低延迟场景。
  • 通过bedrock-mantle端点访问模型,使用OpenAI Responses API并兼容现有SDK。
  • 模型计费遵循OpenAI原价,且使用量计入AWS现有承诺额度。

结构提纲

按章节快速跳转。

  1. 介绍AWS与OpenAI合作推出GPT-5.6系列模型在Bedrock平台的可用性。

  2. Sol、Terra、Luna三模型分别针对不同工作负载,支持文本/图像输入及多区域部署。

  3. 通过bedrock-mantle端点调用OpenAI Responses API,兼容Python/TypeScript SDK。

  4. 覆盖自主编码、生产工作负载、高吞吐推理等场景,支持缓存优化和配额管理。

思维导图

用一张图看清主题之间的关系。

查看大纲文本(无障碍 / 无 JS 友好)
  • GPT-5.6模型在Bedrock的部署
    • 模型特性
      • Sol: 自主编码/推理
      • Terra: 平衡型生产
      • Luna: 高吞吐优化
    • 访问方式
      • bedrock-mantle端点
      • Responses API
    • 技术规格
      • 272K token上下文
      • 多区域支持

金句 / Highlights

值得收藏与分享的关键句。

#Amazon Bedrock#OpenAI#GPT-5.6#AWS#机器学习
打开原文

在 Amazon Bedrock 上使用 OpenAI GPT-5.6 Sol、Terra 和 Luna 入门 | 人工智能

在 Amazon Bedrock 上使用 OpenAI GPT-5.6 Sol、Terra 和 Luna 入门

本文与 OpenAI 的 Chris Dickens 联合撰写。

开发自主编码、长期推理和高吞吐量推理工作负载的开发者,需要能够通过熟悉 API 调用的前沿模型,而无需维护独立的模型基础设施。OpenAI GPT-5.6 Sol、Terra 和 Luna 现已在 Amazon Bedrock 上正式发布。这三个模型覆盖从自主编码代理和长期推理到高吞吐量、低延迟推理的工作负载,同时具备 AWS 的安全防护、区域化处理和成本控制能力。

您可以通过 bedrock-mantle 端点上的 OpenAI Responses API 访问所有三个模型。Sol 是旗舰推理模型,Terra 在性能和成本之间实现平衡,适用于日常生产工作,Luna 则针对快速、低成本推理进行优化,使您能够根据每个工作负载的特性精确匹配能力与成本。定价与 OpenAI 官方费率一致,使用量将计入您现有的 AWS 承诺额度。

本文将指导您如何选择模型、通过 Responses API 运行首次推理、使用提示缓存降低成本并测量缓存令牌使用量、连接 OpenAI Codex 编码代理,以及规划配额和扩展方案。您的提示和完成内容不会用于训练任何模型,也不会与模型提供方共享。

Amazon Bedrock 上的 GPT-5.6 系列

GPT-5.6 引入了 OpenAI 的命名体系,其中数字标识生成版本,而 Sol、Terra 和 Luna 则标识具有独立演进节奏的持久能力层级。下表总结了 Amazon Bedrock 上每个模型的关键规格。

| 模型 | 模型 ID | 最适合场景 | AWS 区域 | |------|---------|------------|----------| | Sol | openai.gpt-5.6-sol | 自主编码、安全研究、科学分析和深度多步骤推理 | 美国东部(弗吉尼亚北部)、美国东部(俄亥俄) | | Terra | openai.gpt-5.6-terra | 平衡推理、性能和成本的通用生产工作负载 | 美国东部(弗吉尼亚北部)、美国东部(俄亥俄)、美国西部(俄勒冈) | | Luna | openai.gpt-5.6-luna | 分类、摘要和路由等高吞吐量、低延迟敏感工作负载 | 所有三个模型均支持文本和图像输入、文本输出、272K 令牌上下文窗口以及 Responses API。它们还支持 none、low、medium、high、xhigh 和 max 推理努力级别,因此您可以在不更改 API 集成的情况下切换模型。 |

通过 bedrock-mantle 端点访问 GPT-5.6

您可以通过 bedrock-mantle 端点上的 OpenAI Responses API 访问 GPT-5.6 模型。基础 URL 为 https://bedrock-mantle.{region}.api.aws,Responses API 的访问路径为 /openai/v1/responses。将 {region} 替换为支持的 AWS 区域(例如 us-east-1)。此 openai/v1 路径专用于 OpenAI 模型。该端点支持 OpenAI Python 和 TypeScript SDK。要在 Amazon Bedrock 上运行现有的 OpenAI SDK 应用程序,请将 OpenAI 基础 URL 替换为 bedrock-mantle 端点,使用对应的 Amazon Bedrock 模型 ID,并通过 Amazon Bedrock API 密钥或 AWS 凭证进行身份验证。

安全性和数据处理

每个模型调用都在您的 AWS 身份和访问管理 (IAM) 策略下运行,位于您的虚拟私有云 (VPC) 内,并在 AWS CloudTrail 中记录。区域推理可将请求保留在您指定的 AWS 区域内,这有助于团队满足数据驻留要求。

GPT-5.6 Sol、Terra 和 Luna 是 OpenAI 的第三方模型,通过 Amazon Bedrock 提供,并受 OpenAI 条款约束。对于这些 OpenAI 模型,分类器标记的流量最多保留 30 天用于自动化离线滥用检测。保留的输入和输出由 AWS 存储和处理,除非您选择加入,否则不会与模型提供方共享。您通过数据保留模式控制保留配置。

在 Amazon Bedrock 上开始使用 GPT-5.6

按照以下步骤开始在 Amazon Bedrock 上使用 GPT-5.6。

先决条件

要使用 GPT-5.6 模型,您需要具有运行 bedrock-mantle 终端节点推理权限的 AWS 账户。授予这些权限的一种方法是将 AWS 管理策略 AmazonBedrockMantleInferenceAccess 附加到您的 IAM 主体。该策略授予本文示例所需的读取和推理创建访问权限,包括 bedrock-mantle:CreateInference 和 bedrock-mantle:CallWithBearerToken。

安装 OpenAI Python SDK,版本 2.45.0 或更高版本:

code
pip install "openai>=2.45.0"

您使用 API 密钥进行身份验证。为 OpenAI SDK 进行身份验证有两种选项。

  • 自动刷新的短期密钥:OpenAI SDK 本机 BedrockOpenAI 客户端使用一个令牌提供者,该提供者从您的 AWS 凭证生成短期密钥并在每次请求前刷新它。本文的示例使用此客户端。
python
  from aws_bedrock_token_generator import provide_token
  from openai import BedrockOpenAI

  region = "us-east-1"
  client = BedrockOpenAI(
      aws_region=region,
      bedrock_token_provider=lambda: provide_token(region=region),
  )
  • 从环境变量获取的短期密钥:在 AWS_BEARER_TOKEN_BEDROCK 上设置密钥并将其传递给客户端。由于此密钥不会刷新,因此最多 12 小时后过期。生产环境中请使用自动刷新选项或将密钥存储在 AWS Secrets Manager 中。
python
  import os
  from openai import OpenAI

  client = OpenAI(
      base_url="https://bedrock-mantle.us-east-1.api.aws/openai/v1",
      api_key=os.environ["AWS_BEARER_TOKEN_BEDROCK"],
  )

使用 Responses API 运行第一个推理

使用上一步中的 BedrockOpenAI 客户端,通过 Responses API 调用 GPT-5.6 Terra。Responses API 使用单个输入字段,并在 output_text 中返回生成的文本。

python
response = client.responses.create(
    model="openai.gpt-5.6-terra",
    input="Explain the benefits of prompt caching for agentic workloads.",
    max_output_tokens=512,
    store=False,
)

print(response.output_text)

要将现有 OpenAI SDK 应用程序迁移到 Amazon Bedrock 上的 GPT-5.6,请更新基础 URL 和模型 ID。

控制推理努力程度

GPT-5.6 模型可以在回答之前为复杂、多步骤任务消耗额外的推理标记,这会提高结果质量但增加延迟和成本。使用 reasoning 参数设置级别。Sol、Terra 和 Luna 支持 none、low、medium、high、xhigh 和 max。根据任务匹配级别。

code
response = client.responses.create(
    model="openai.gpt-5.6-sol",
    input="一列火车下午3点以60公里/小时的速度出发。另一列火车一小时后从同一车站以90公里/小时的速度出发。第二列火车何时追上第一列?",
    reasoning={"effort": "high"},
)

print(response.output_text)

调用工具

GPT-5.6支持工具调用功能,允许模型请求您定义的工具并使用其结果完成请求。以下示例演示了客户端工具调用,您的应用程序运行工具并返回结果给模型。该示例定义了一个get_weather工具并完成一次往返交互。模型请求工具,您的应用程序运行工具并返回结果,然后模型生成最终答案。

code
import json

tools = [
    {
        "type": "function",
        "name": "get_weather",
        "description": "获取给定位置的当前天气",
        "parameters": {
            "type": "object",
            "properties": {
                "location": {
                    "type": "string",
                    "description": "城市和国家(例如,Seattle, US)",
                },
                "unit": {
                    "type": "string",
                    "enum": ["celsius", "fahrenheit"],
                    "description": "温度单位",
                },
            },
            "required": ["location"],
        },
    }
]

# 步骤1:使用工具定义发送用户请求。
input_list = [{"role": "user", "content": "西雅图的天气如何?"}]

response = client.responses.create(
    model="openai.gpt-5.6-terra",
    input=input_list,
    tools=tools,
)

# 步骤2:将模型的输出(包括任何推理项)带入下一轮对话。
input_list += response.output

# 步骤3:运行每个请求的函数并附加其结果。
for item in response.output:
    if item.type == "function_call":
        args = json.loads(item.arguments)
        result = {
            "location": args["location"],
            "temperature": 64,
            "condition": "部分多云",
        }
        input_list.append(
            {
                "type": "function_call_output",
                "call_id": item.call_id,
                "output": json.dumps(result),
            }
        )

# 步骤4:结合工具结果,向模型请求最终响应。
final_response = client.responses.create(
    model="openai.gpt-5.6-terra",
    input=input_list,
    tools=tools,
)

print(final_response.output_text)

由于GPT-5.6模型在响应前会进行推理,因此请像前面示例中那样,将模型的输出项(可能包含推理内容)作为下一次请求的一部分返回。

对于生产环境部署,使用Amazon Bedrock Guardrails实现针对您的使用场景和负责任的人工智能政策定制的安全保障措施。

在控制台中试用GPT-5.6

GPT-5.6模型运行在下一代推理引擎上,该引擎提供了针对bedrock-mantle端点及其OpenAI兼容和Anthropic兼容API优化的全新Amazon Bedrock控制台体验。

此体验基于项目。您创建项目,分配模型,配置API密钥,并在编写应用程序代码前并排评估模型。按照以下步骤可在不离开控制台的情况下试用GPT-5.6:

  • 在提供模型的区域(如美国东部(弗吉尼亚北部))中打开新的 Amazon Bedrock 控制台。如果您在现有控制台中,请选择 "Try the new Bedrock console"(试用新 Bedrock 控制台)。
  • 创建一个项目,或打开现有项目。
  • 在模型目录中查看可用的 GPT、Claude 和开源模型。您可以同时比较最多三个模型的功能、模态、上下文窗口、定价和区域可用性。
  • 选择一个 GPT-5.6 模型将其添加到项目中。
  • 启动评估,输入提示语,并查看模型的响应。您可以选择最多三个模型来比较对相同提示语的响应。

下图展示了新 Amazon Bedrock 控制台中的模型目录,您可以在其中浏览和比较 GPT-5.6 及其他模型。

使用 GPT-5.6 提示缓存降低成本

智能体和多步骤工作负载在调用之间会重复大部分上下文。系统指令、工具定义和参考文件通常保持不变,只有最新输入会发生变化。GPT-5.6 在 Amazon Bedrock 上支持两种模式的提示缓存。默认启用隐式缓存,因此符合条件的请求会自动缓存,无需代码更改。显式缓存允许您标记缓存断点,以精确控制提示中哪些部分被缓存。在两种模式下,提示缓存都能随着请求数量的增加降低重复处理共享上下文的成本。

通过缓存断点,您可以标记可重复使用提示前缀的结束位置。在后续共享该前缀的请求中,Amazon Bedrock 会重用已处理的上下文,每次调用只需为新工作支付全额费用。与未缓存输入令牌相比,缓存输入的计费享受 90% 的折扣,写入缓存的令牌计费为未缓存输入速率的 1.25 倍。有关当前费率,请参阅 Amazon Bedrock 定价页面。缓存内容至少可保留 30 分钟,足以覆盖单个智能体运行生成的请求高峰。每个断点需要至少 1,024 个令牌的前缀,每请求最多可设置四个缓存检查点。如果前缀短于最小值,请求仍会成功,但不会缓存任何内容,cached_tokens 保持为零。

使用缓存断点的显式缓存

要缓存前缀,请在结束可重复使用部分的内容块中添加 prompt_cache_breakpoint,并将 prompt_cache_options 设置为显式模式。在请求之间设置一致的 prompt_cache_key 可将它们路由到相同的缓存,提高匹配可靠性。在以下示例中,系统指令被缓存,用户的问题位于断点之后,因此可以更改而不会使缓存前缀失效。相同的请求发送两次以展示缓存写入后跟随的缓存读取。

code
# 请替换为您的实际系统指令和参考内容。
# 缓存前缀必须至少为 1,024 个令牌,否则不会缓存。
system_prompt = "您是 Example Corp 的技术支持代理。...(1,024+ 令牌)..."

def ask(question): return client.responses.create( model="openai.gpt-5.6-terra", prompt_cache_key="support-agent:system-prompt-v1", prompt_cache_options={"mode": "explicit"}, input=[ { "type": "message", "role": "developer", "content": [ { "type": "input_text", "text": system_prompt,

缓存到系统指令之前的全部内容

"prompt_cache_breakpoint": {"mode": "explicit"}, } ], }, { "type": "message", "role": "user", "content": [{"type": "input_text", "text": question}], }, ], )

首次调用:将前缀写入缓存

first = ask("如何配置单点登录?") print("写入:", first.usage.input_tokens_details.cache_write_tokens)

第二次调用使用相同前缀和缓存键:从缓存读取前缀

second = ask("如何重置密码?") print("读取: ", second.usage.input_tokens_details.cached_tokens) print(second.output_text)

code

此处的system_prompt是一个简略占位符,需替换为至少1024个token的真实内容。当使用足够大的前缀时,首次调用会显示非零的cache_write_tokens,第二次调用会显示非零的cached_tokens,确认前缀已被复用。显式模式适合需要完全控制缓存内容的智能体循环,尤其适用于大型且稳定的前缀场景。

### 隐式缓存

如果不设置prompt_cache_options,GPT-5.6会使用默认的隐式缓存模式。Amazon Bedrock会在最新消息自动添加缓存断点,并识别你手动设置的显式断点,这样稳定的提示前缀可以在不改变输入结构的情况下跨请求复用。这是最快获得缓存优势的方式。将静态内容(系统指令、工具定义、参考文档)放在提示开头,动态内容放在末尾,为相关请求设置一致的prompt_cache_key,当内容匹配时端点会自动复用已处理的前缀。

以下示例使用隐式缓存。未设置任何prompt_cache_options和断点,复用前一个示例的system_prompt(替换为至少1024个token的真实内容),并使用一致的prompt_cache_key:

response = client.responses.create( model="openai.gpt-5.6-terra", prompt_cache_key="support-agent:kb-v1", input=[ { "type": "message", "role": "developer",

静态内容放在前面以形成稳定可缓存的前缀

"content": [{"type": "input_text", "text": system_prompt}], }, { "type": "message", "role": "user", "content": [{"type": "input_text", "text": "如何配置单点登录?"}], }, ], )

print(response.output_text)

`

权衡点在于控制权。在隐式模式下,你无法精确决定可缓存边界的落点。隐式缓存适用于具有天然稳定前缀的聊天和检索增强生成(Retrieval Augmented Generation,RAG)工作负载,而显式缓存适用于需要固定大型已知前缀并避免不必要的缓存写入的智能体循环。两种模式的计费方式相同。缓存读取可享受90%的折扣,缓存写入按未缓存输入速率的1.25倍计费。当前费率请参见[Amazon Bedrock定价页面](https://aws.amazon.com/bedrock/pricing/)。如需关闭某个请求的缓存功能,可将prompt_cache_options设为显式模式且不添加任何断点。

### 监控并评估缓存命中率

每个响应都会在usage对象中报告缓存活动。input_tokens_details.cached_tokens字段表示从缓存读取的输入令牌数,cache_write_tokens表示写入的令牌数。由于cached_tokens已包含在总input_tokens中,可通过将cached_tokens除以input_tokens计算缓存输入占比:

usage = response.usage details = usage.input_tokens_details

cached = getattr(details, "cached_tokens", 0) or 0 cache_write = getattr(details, "cache_write_tokens", 0) or 0

total_input = usage.input_tokens hit_rate = cached / total_input if total_input else 0.0

print(f"缓存令牌数: {cached}") print(f"写入令牌数: {cache_write}") print(f"总输入令牌数: {total_input}") print(f"缓存命中率: {hit_rate:.1%}")

code

当usage对象中cached_tokens大于0且cache_write_tokens为0时,表示发生缓存命中。单独的cache_write_tokens为0并不能确认命中,因为当未使用缓存时也会出现这种情况。即使前缀完全相同,也无法保证每次请求都会命中缓存,因此应跨多次调用测量cached_tokens值,而非期待单次调用必然命中。

要跟踪大量请求的缓存性能,请在应用程序日志中聚合每个响应的cached_tokens和cache_write_tokens。bedrock-mantle端点会将账户、项目和模型令牌指标发布到Amazon CloudWatch的AWS/BedrockMantle命名空间,但不会发布特定于缓存的指标,因此响应中的usage对象是缓存测量的权威来源。

## 与Codex配合使用GPT-5.6

Codex是OpenAI为开发者提供的代码代理。它能够与本地文件、仓库、终端和开发环境配合,编写功能、修复漏洞、运行测试和打开拉取请求。你可以通过命令行(Codex CLI)、作为Visual Studio Code和JetBrains的IDE扩展,或在ChatGPT桌面应用中运行Codex。这些方式均可将模型推理路由到Amazon Bedrock,使其在你的AWS账户中运行,并使用前述的区域内部处理和访问控制。

要将Codex指向Amazon Bedrock,请在~/.codex/config.toml文件中设置模型和提供商。新的Amazon Bedrock控制台还包含一个"客户端"部分,会为你生成这些连接指令:

model = "openai.gpt-5.6-sol" model_provider = "amazon-bedrock" [model_providers.amazon-bedrock.aws] region = "us-east-1"

code

Codex通过API密钥或AWS SDK凭证进行身份验证。如果设置了AWS_BEARER_TOKEN_BEDROCK,Codex会优先使用该令牌。否则会回退到AWS SDK凭证链。ChatGPT桌面应用和IDE扩展可能不会继承你的shell环境,因此请将所需变量放置在~/.codex/.env中:

AWS_BEARER_TOKEN_BEDROCK=<your-api-key>

code

重启应用或扩展,当你更改 ~/.codex/config.toml 或 ~/.codex/.env 后。如果你运行的是 Codex CLI,可以在 shell 中导出相同变量,而不是使用 .env 文件。Codex 通过支持的商业 AWS 区域中的 bedrock-mantle 端点进行推理。对于编码任务,更高的推理努力更适合复杂的重构和调试,而较低的级别则能保持常规编辑的快速。

下图展示了在 ChatGPT 桌面应用中配置 Codex 运行 Amazon Bedrock 上 GPT-5.6 模型的界面。

ChatGPT 桌面应用中运行 Amazon Bedrock 上 GPT-5.6 的 Codex

你可以在 ChatGPT 桌面应用中更改推理努力程度,为任务选择轻量、中等、高或超高。下图展示了推理努力选择器。

在 ChatGPT 桌面应用中为 Codex 任务选择推理努力程度

## 额度与扩展

调用 GPT-5.6 模型时,请求会使用标准服务层级的按需推理,按 token 计费且无需预留容量。

bedrock-mantle 端点的推理受每个模型、每个区域的两个配额限制:每分钟输入 token 数和每分钟输出 token 数。没有每分钟请求数的配额限制。通过提示缓存读取的缓存输入 token 不计入每分钟输入 token 配额,这是缓存在规模扩展中更有帮助的另一个原因。如果超出每分钟 token 配额,端点将返回 HTTP 429 响应。使用指数退避和有界重试次数处理短暂限流,OpenAI SDK 通过其 max_retries 设置支持该功能。更多信息请参阅 bedrock-mantle 端点的配额文档。

处理短暂限流的一种推荐方式是使用指数退避和有界重试次数。OpenAI SDK 通过其 max_retries 设置支持该方式:

from aws_bedrock_token_generator import provide_token from openai import BedrockOpenAI

region = "us-east-1"

client = BedrockOpenAI( aws_region=region, bedrock_token_provider=lambda: provide_token(region=region), max_retries=6, )

code

为了减少持续高流量下的限流,将大规模工作负载分散到多个分钟内执行,而不是集中爆发,同时逐步增加请求速率,使吞吐量能够匹配区域容量。

## 清理

按需推理仅在调用模型时产生费用,因此无需拆除任何基础设施。为了避免意外费用:

- 如果你生成了短期 API 密钥,它将在 12 小时内自动过期。如需提前撤销,可在新的 Amazon Bedrock 控制台中删除 API 密钥。删除密钥会立即撤销所有使用它的应用程序的访问权限,因此在删除前请确认没有活动应用依赖它。

- 每次模型调用都会产生按 token 计费的费用。当前费率请参阅 Amazon Bedrock 定价。

## 结论

在本文中,我们展示了如何在 Amazon Bedrock 上使用 OpenAI GPT-5.6 Sol、Terra 和 Luna 模型入门。我们介绍了如何选择模型变体,如何通过 bedrock-mantle 端点的 Responses API 运行推理,如何控制推理努力程度和调用工具,如何通过显式提示缓存降低费用并测量缓存命中率,以及如何连接 OpenAI Codex 编码代理。我们还介绍了端点的配额和扩展相关内容。

要开始使用:

- 打开新的 Amazon Bedrock 控制台,创建项目,并使用你的提示评估 GPT-5.6 模型。

- 将本文档中的 Responses API 示例应用于您自己的数据进行测试。

- 在重复的提示前缀中添加显式的缓存断点并测量缓存命中率。

- 在您的工作负载上评估 Sol、Terra 和 Luna,选择符合您成本和延迟需求的版本。

如需更多信息,请参考以下资源:

- Amazon Bedrock 文档

- Amazon Bedrock 上的 OpenAI 模型卡片

- 提示缓存加速模型推理

- bedrock-mantle 端点配额

- Amazon Bedrock API 密钥

- Amazon Bedrock 定价

如需了解 GPT-5.6 在 Amazon Bedrock 上如何支持您的工作负载,请联系 AWS 代表。

## 关于作者

'"`
 /think