AWS 演示将开源编码 Agent OpenCode 与 Bedrock 上的开源权重模型配对,实现安全、按量付费的编程助手,数据留在自有 AWS 账户。
AI 编程智能体已成为开发者编写、调试和重构软件的核心工具。Amazon Bedrock 上的开源权重模型让这些智能体的私有化部署变得既实用又经济。但大多数方案要求你将专有数据发送给第三方 API,或将你锁定在单一模型提供商,或按坐席收费而非按用量计费。如果你有数据驻留要求、成本敏感型工作负载,或需要模型灵活性,这些约束会带来实实在在的摩擦。
如果能运行一个 AI 编程智能体,让你的数据留在自己的 AWS 账户中、按需切换前沿开源权重模型、只按实际消耗收费,会怎样?
OpenCode 是一个用 Go 编写的开源、终端原生 AI 编程智能体。它可以读取和编辑文件、运行 shell 命令,并通过语言服务器协议(LSP)诊断理解项目结构。它连接了超过 75 家大语言模型(LLM)提供商,包括 Amazon Bedrock。将 OpenCode 与 Bedrock 上的开源权重模型配对,你就能获得一个在本地运行、推理安全发生在 AWS 账户内的编程助手。无需管理基础设施,也无需按坐席收费。
在本文中,我们展示如何在使用 Amazon Bedrock 上的开源权重模型配置 OpenCode,设置多模型工作流来为每项任务匹配合适的模型,并通过 Moonshot AI Kimi K3、OpenAI GPT-OSS 120B 和 NVIDIA Nemotron 3 Super 120B 演示实际的编程示例。我们还会分享 Ethara.AI 如何在生产环境中部署这一架构,通过多智能体编排来大规模驱动 AI 工程和研究工作流。
行业正在向开源权重模型转变。根据麦肯锡《AI 时代的开源技术报告》(2025 年),76% 的组织计划增加开源 AI 的使用,领先的 AI 采用者使用开源权重模型的可能性高出 40%。对于编程工作负载,有五个因素推动这一转变:
性能持平:经过微调的开源权重模型可以在特定领域任务上超越专有替代方案。CrowdStrike 经过微调的 NVIDIA Nemotron 实现了 96% 的有效查询准确率,超越了 GPT-4o(61%)和 Claude Sonnet 4.5(94%)。
成本效益:根据 Gartner 2026 年的分析,智能体工作流使 token 消耗增加 5–30 倍,使得每 token 成本变得至关重要。在规模化场景下(每月数百万次对话的量级),切换到 Bedrock 上的开源权重模型可以降低年度化成本。
定制化和控制:开源权重支持微调、蒸馏和领域适配。较小的模型可以取代昂贵通用模型的同时保持质量。
模型灵活性:使用开源权重,你可以为每项任务采用合适的模型,并在新模型出现时演进。在 Amazon Bedrock 上切换模型只需更改一个 API 参数。
透明度:可检查的模型架构和行为支持有 AI 治理要求的受监管行业。
Amazon Bedrock 提供完全托管的无服务器访问开源权重模型。无需管理 GPU 配置或推理基础设施。对于企业编程工作流,与自托管或直接使用模型提供商相比,Bedrock 提供了几个优势:
数据驻留和合规:代码、提示和响应都保留在你的 AWS 账户中。通过区域内或地理profile访问的模型在该区域或地理位置运行。你可以通过跨区域推理profile调用 Kimi K3。对于没有区域限制的工作负载,我们建议使用全局profile global.moonshotai.kimi-k3,它将每个请求路由到全球任何支持的商业 AWS 区域。全局跨区域推理成本比地理profile低约 10%。美国地理profile us.moonshotai.kimi-k3 将处理保留在美国地理范围内以满足数据驻留要求。Amazon Bedrock 涵盖常见的合规计划,包括 HIPAA、SOC 2、ISO 27001、FedRAMP 和 GDPR。完整列表见 AWS services in scope by compliance program。
企业安全控制:开源权重模型继承与专有模型相同的 AWS Identity and Access Management(IAM)策略、AWS CloudTrail 日志记录、AWS PrivateLink 连接和加密控制。无需单独的安全堆栈。
灵活的定价:三个层级匹配成本与工作负载:Priority 适用于延迟敏感型生产环境,Standard 适用于按需推理(按 token 付费),Flex 成本降低 50% 适用于可容忍延迟变化的工作负载。
不利用你的数据训练模型:Bedrock 不会使用你的输入或输出来训练或改进基础模型(FM)。
高的默认容量:默认限制为每分钟 1 亿 token 和每分钟 1 万请求,有助于在团队扩展时减少吞吐量瓶颈。
并非每项编程任务都需要相同的模型。使用 OpenCode 配合 Bedrock 的关键优势之一是能够根据你所做的事情选择和切换模型。
在哪里评估模型:Artificial Analysis Coding Index 提供了跨真实世界软件工程任务(SWE-Bench、Terminal-Bench、SWE-Atlas)的综合基准。使用它来比较模型性能、每任务成本和延迟。对于针对你自己的提示和数据的评估,可以使用 Amazon Bedrock Evaluations 来运行并排比较,支持自动评分、LLM 评判或人工审核。
推理深度:对于复杂的调试、架构决策或计划生成,推理模型会逐步追踪问题。Kimi K3 在回答前会进行推理。你可以通过 reasoning_config(low、high 或 max)设置深度。在困难问题上你用延迟换取正确性。
生成速度和延迟:对于代码补全、样板代码生成和交互式结对编程,较低延迟比峰值推理能力更重要。NVIDIA 报告称,得益于其 Mixture-of-Experts 架构(每个 token 仅激活 120B 总参数中的 12B),Nemotron 3 Super 120B 实现了高达 7 倍的吞吐量提升。
每 token 成本:对于高容量工作流(批量重构、大型代码库),成本会累积。Bedrock 上的开源权重模型提供比专有替代方案更低的每 token 定价。
上下文窗口:Kimi K3 支持 100 万 token 的上下文,相当于数万行代码。你可以加载整个代码仓库而不是少数几个文件来进行跨文件推理。
区域可用性:检查目标区域有哪些模型可用。这对数据主权和延迟要求很重要。
本文我们重点介绍三款覆盖不同场景的模型:
该架构分为两部分:OpenCode 作为终端用户界面(TUI)在你的本地机器上运行,并通过 Amazon Bedrock Converse API 调用推理。Bedrock 将模型作为完全托管的无服务器端点托管。
图 1:OpenCode 与 Amazon Bedrock 开源权重模型的解决方案架构。开发者在终端中与 OpenCode 交互,后者通过 Bedrock Converse API 向开源权重模型发送请求。AWS IAM 验证每个请求,AWS CloudTrail 记录 API 活动
OpenCode 的智能体架构支持为不同角色分配不同模型:一个用于规划的推理模型和一个用于代码生成的更快模型。这在单个会话中创建了多模型工作流。
在开始之前,请确保你拥有:
本节逐步介绍如何安装 OpenCode CLI 并配置它以与 Amazon Bedrock 进行身份验证。
选择以下方法之一:
# Install script (recommended)
curl -fsSL https://opencode.ai/install | bash
# Or via npm
npm install -g opencode-ai
# Or via Homebrew (macOS/Linux)
brew install sst/tap/opencode
验证安装:
$ opencode --version
1.18.20
OpenCode 的 Bedrock 提供程序使用标准 AWS 凭证链。配置以下选项之一:
aws sso login --profile my-bedrock-profile
export AWS_PROFILE=my-bedrock-profile
export AWS_REGION=us-west-2
export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
export AWS_REGION=us-west-2
请用你自己的凭证替换以上内容。对于生产环境使用,优先使用 IAM Identity Center 或 IAM 角色而非长期访问密钥。
export AWS_BEARER_TOKEN_BEDROCK=your-bedrock-api-key
export AWS_REGION=us-west-2
你也可以将这些变量保存在项目根目录的 .env 文件中,以实现持久化配置。
通过 OpenCode 的智能体系统,你可以为不同角色分配不同的模型。在项目根目录创建或编辑 opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"model": "amazon-bedrock/us.openai.gpt-oss-120b-1:0",
"agent": {
"plan": {
"model": "amazon-bedrock/global.moonshotai.kimi-k3"
},
"build": {
"model": "amazon-bedrock/us.nvidia.nemotron-super-3-120b"
}
}
}
此配置将规划和架构任务(受益于深度推理)路由到 Kimi K3,而代码生成和实现则路由到 Nemotron 3 Super 120B 以获得优化的吞吐量。顶层 model 字段将 GPT-OSS 120B 设置为其他上下文的默认模型。
要交互式浏览可用的 Bedrock 模型,请启动 OpenCode 并输入 /models。
以下示例展示如何将每个模型匹配到最适合的任务类型。
GPT-OSS 120B 是 OpenAI 的 1200 亿参数开源权重模型。它将强推理能力与代码生成相结合,非常适合跨越多个文件的架构复杂实现。通过上一节的多模型配置,你可以内联覆盖默认模型,或使用 /model 显式切换:
$ opencode
> /model us.openai.gpt-oss-120b-1:0
> Build an event-sourced CQRS order service in Python (FastAPI) with:
> - Command side: append-only event store in DynamoDB, idempotent handlers
> - DynamoDB Streams triggering a projection Lambda that builds a read-model
> - Query side: denormalized read-model optimized for "orders by customer"
> and "orders by status" access patterns
> - Event replay CLI to rebuild projections from scratch
> - Snapshotting every 50 events per aggregate to bound replay time
> Include CDK infrastructure.
图 2:OpenCode 使用 GPT-OSS 120B 生成事件溯源 CQRS 订单服务
OpenCode 通过 Bedrock Converse API 和 IAM 认证将请求路由到 GPT-OSS 120B。该模型直接在本地文件系统中生成完整的服务结构,包括处理器、事件存储、投影和 CDK 堆栈。CloudTrail 记录调用,你的提示词和响应始终保留在你的 AWS 账户内。
Kimi K3 擅长需要追踪多个执行路径的推理任务。它在每次交互时都会进行推理,reasoning_config 字段设置推理深度:低用于快速通过,最大用于难题。如果你已将 Kimi K3 配置为计划智能体,它已经是分析任务的默认模型。你也可以使用 /model 显式切换:
> /model amazon-bedrock/global.moonshotai.kimi-k3
> This Step Functions workflow hangs ~2% of the time under load.
> The pattern: Task A does a DynamoDB conditional put that expects
> status="PENDING", Task B (triggered by SQS) sets status="READY"
> but only after Task A's callback confirms receipt. Both tasks
> wait on each other. Trace the deadlock, explain why it only
> manifests under concurrency, and propose a fix that doesn't
> require redesigning the state machine.
> @order_workflow.asl.json @task_a_handler.py @task_b_handler.py
@ 文件引用将你的本地代码注入为上下文,无需手动复制粘贴。Kimi K3 的混合专家架构每个 token 仅激活其 2.8T 总参数中的 104B,以高效的吞吐量提供前沿推理能力。你可以实时观察模型追踪并发路径。因为推理过程是可见的,所以在接受修复方案之前,你可以判断分析是否成立。
你不必拘泥于单一模型。在会话期间输入 /models 进行切换。一个实用的模式是:使用 Nemotron 3 Super 120B 或 GPT-OSS 120B 进行快速代码生成和样板代码编写,然后在遇到复杂调试问题或需要推理架构权衡时切换到 Kimi K3。
使用前面展示的多模型 opencode.json 配置,这种路由是自动完成的。计划智能体使用 Kimi K3 进行推理,而构建智能体使用 Nemotron 进行实现。
某些编码工作是交互式的。跨大型代码库进行批量重构、为现有模块生成测试套件,或从代码生成文档。这些任务可以容忍延迟,可以异步运行。Amazon Bedrock Flex 层级为此类工作负载提供比标准层级低 50% 的成本。
你可以将其与 OpenCode 的 CLI 模式结合使用来编写批量操作脚本:
# Process multiple files through GPT-OSS 120B for test generation
for file in src/**/*.py; do
opencode run -m amazon-bedrock/us.openai.gpt-oss-120b-1:0 \
"Generate comprehensive unit tests for @${file}. Use pytest with fixtures."
done
组合使用各层级:交互式会话使用标准层级,批量处理使用 Flex 层级,延迟敏感的生产使用使用 Priority 层级。
本文展示的 OpenCode + Bedrock 模式是单人开发者工作流。对于团队和生产系统,相同的多模型原则可以扩展到路由架构,其中编排器将每个子任务指向最优模型:
图 3:使用 Amazon Bedrock 上的开源权重模型的多模型路由架构。路由器分析传入请求并将子任务分派到最优模型层级,以帮助降低总拥有成本,而不会像将所有任务通过单一模型路由那样降低质量
意图分类路由到低成本模型(小规模、快速推理)。
代码生成路由到为吞吐量优化的中层开源权重模型。
复杂推理(架构决策、安全分析)路由到高级推理模型。
这种路由可以帮助降低总体总拥有成本(TCO),同时不会像将所有任务通过单一昂贵模型发送那样降低质量。Amazon Bedrock 统一 API 使这成为可能:切换模型只是参数变更,模型共享相同的认证、日志记录和护栏基础设施。
对于准备好超越单人开发者使用的团队,将 OpenCode 的本地智能体路由与服务器端编排层(Amazon Bedrock Agents 或 AWS Step Functions)结合使用,以创建完整的多模型编码管道。
Ethara.AI 是 AWS 客户,在生产环境中部署此架构,使用 OpenCode 作为 AI 工程和研究工作流的基础运行时。Oh-My-OpenAgent 作为与专用 AI 智能体协作的编排层。他们不依赖单一编码助手,而是运营一组针对不同任务优化的智能体舰队,如规划、执行、代码审查、架构分析、知识检索、多模态理解和基准测试。通过 Oh-My-OpenAgent 的基于分类的路由系统,工程师请求一种能力(如深度推理、快速执行、视觉工程或写作辅助),系统将工作委托给最合适的智能体。这种抽象帮助团队专注于成果而非模型管理,同时在不断发展的 AI 框架中保持灵活性。
Amazon Bedrock 和 OpenCode 的 provider无关架构为 Ethara.AI 的模型选择策略提供动力。OpenCode 支持访问广泛的基础模型,而 Amazon Bedrock 提供对前沿模型的安全访问。他们不依赖单一模型,而是根据推理复杂度、延迟要求、成本效率和任务类型等因素动态路由工作负载。Amazon Bedrock、OpenCode 和 Oh-My-OpenAgent 的组合帮助他们将智能体能力与底层模型层分离。这有助于确保每个任务执行最合适的智能体-模型组合,同时保留评估和采用新模型的能力,因为模型格局在不断发展。
展望未来,Ethara.AI 正在投资于自我改进的智能体系统,利用 SkillClaw 等研究成果。他们正在开发机制,帮助技能和智能体行为根据成功和不成功的执行轨迹进行演化,创建一个通过现实世界使用持续改进的智能体基础设施。这一愿景建立在 OpenCode 的可扩展架构、Oh-My-OpenAgent 的委托框架和 Amazon Bedrock 模型目录之上,以创建随时间推移变得更强大、适应力更强和更高效的 AI 系统。
Bedrock 上的开源权重模型继承与专有模型完全相同的企业级管控。权重的来源不会改变你的安全态势。通过遵循最小权限原则的 IAM 策略限制用户可以调用哪些模型:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"bedrock:InvokeModel",
"bedrock:InvokeModelWithResponseStream"
],
"Resource": [
"arn:aws:bedrock:us-west-2::foundation-model/openai.gpt-oss-120b-1:0",
"arn:aws:bedrock:us-west-2::foundation-model/nvidia.nemotron-super-3-120b",
"arn:aws:bedrock:us-west-2:{account-id}:inference-profile/global.moonshotai.kimi-k3",
"arn:aws:bedrock:*::foundation-model/moonshotai.kimi-k3"
]
},
{
"Effect": "Allow",
"Action": ["bedrock:CallWithBearerToken"],
"Resource": ["*"]
}
]
}
你还可以进一步叠加 Amazon Bedrock Guardrails,对调用进行内容过滤和个人身份信息(PII)脱敏。CloudTrail 会记录每一次 InvokeModel 调用以供审计,而 Bedrock 不会使用你的输入或输出来训练模型。
本演练除了启用模型访问外,不会创建任何持久化的 AWS 基础设施。如果你是仅为测试而启用的模型访问,可以在 Amazon Bedrock 控制台的 Model catalog 下将其禁用。无需清理其他资源,不调用 API 时也不会产生任何费用。
我们演示了如何配置 OpenCode 与 Amazon Bedrock 上的开源权重模型,构建一个安全、灵活、按需付费的 AI 编码工作流。你获得的是开源权重模型的成本效率和定制潜力、Bedrock 的企业级安全性和托管基础设施,以及与现有开发者工作流无缝契合的终端原生体验——并且可以自动将不同任务路由到不同的模型。
要开始使用,请安装 OpenCode、配置你的 AWS 凭证,并设置多模型配置。探索完整的 Amazon Bedrock 模型目录,找到适合你工作负载的模型,并使用 Artificial Analysis Coding Index 来比较模型在编码任务上的表现。
有关 Amazon Bedrock 安全与合规的更多信息,请参阅 Amazon Bedrock User Guide。如果你希望讨论 Amazon Bedrock 如何支持你组织中的 AI 辅助开发,请联系 AWS 代表。