第 2 章 StrandsModel ProviderBedrock
第 2 章:切换模型提供商
第 2 章:切换模型提供商
关于本课
本课程的视频是某个时间点的快照。Strands 一直在活跃开发,所以本页的代码反映的是最新的写法,但视频里讲的概念依然成立。有疑问时,以代码为准。
本课代码:samples/02-model-providers
选模型是个架构决策
不同 Model 的强项、成本、延迟表现和 Tool Calling 行为都不一样。Strands 把各家 Provider 抽象在同一套接口后面,所以底层换哪个 Model,你的 Agent 代码都不用动。换 Model 时,你的 Tool、system prompt 和编排逻辑都不用改。
配置 Provider
所有 Provider 都是同一个套路:实例化一个 model 类,把它传给 Agent。
from strands import Agent
from strands.models import BedrockModel
from strands.models.anthropic import AnthropicModel
from strands.models.ollama import OllamaModel
from strands.models.openai import OpenAIModel
import os
# Amazon Bedrock (default if no model specified)
bedrock_model = BedrockModel(
model_id="us.anthropic.claude-opus-5"
)
# Anthropic direct API
anthropic_model = AnthropicModel(
client_args={"api_key": os.environ["ANTHROPIC_API_KEY"]},
model_id="claude-sonnet-5",
max_tokens=1024,
params={"temperature": 0.7},
)
# OpenAI
openai_model = OpenAIModel(
client_args={"api_key": os.environ["OPENAI_API_KEY"]},
model_id="gpt-4o",
params={"max_tokens": 1000, "temperature": 0.7},
)
# Local with Ollama (no cloud APIs needed)
ollama_model = OllamaModel(
host="http://localhost:11434",
model_id="gemma4:latest",
)
# Use any provider. Agent code stays identical.
agent = Agent(model=ollama_model)
agent("Explain the agent loop in one paragraph.")
| Provider | Install | Auth |
|---|---|---|
| Bedrock (default) | pip install strands-agents |
AWS credentials configured |
| Anthropic | pip install "strands-agents[anthropic]" |
ANTHROPIC_API_KEY |
| OpenAI | pip install "strands-agents[openai]" |
OPENAI_API_KEY |
| Ollama (local) | pip install "strands-agents[ollama]" |
None, runs on your machine |
多模型架构
在复杂的系统里,不同的 Agent 会用不同的 Model:
- 用快而便宜的 Model 做轻量分类
- 用推理强的 Model 做编排
- 用专门调过的 Model 做代码生成
- 做评测/校验时干脆换一家 Provider(避开同 Model 带来的偏好)
Ollama 安装
Ollama 让你把 Model 完全跑在自己机器上,适合开发、离线使用,或者纯粹想省 API 费用。
brew install ollama
ollama serve
ollama pull gemma4:latest