第 1 课

安装 SDK 并跑首个 Agent:选 provider + python -u

按官方 Python Quickstart 安装 strands-agents,选 Bedrock / Anthropic / OpenAI / Gemini / Ollama 之一写 agent.py,用 python -u agent.py 完成首调。

图文22 分钟

课程目录第 1 / 2 课

学习位置仅保存在当前浏览器,有效期 180 天。

01 / 图文教材

图文讲义

来源:Strands Agents · Python Quickstart。本讲义为中文跟做整理,命令、包名与模型 ID 以官方当前文档为准;密钥只用环境变量占位,勿把真实 Key 写入代码或仓库。

你将得到什么

  • 本机可用的 Strands Harness SDK(pip install strands-agents)
  • 一份可运行的 agent.py,用 Bedrock 默认或 Anthropic / OpenAI / Gemini / Ollama 之一完成首调
  • 清楚「模型是一个对象交给 Agent,其余代码与 provider 无关」这一官方设计

开始前准备

  1. Python 3.10+,并已激活虚拟环境(官方要求)。不确定时可先核对:
python3 --version

对照结果:版本号应 ≥ 3.10。若更低,请先升级或改用符合要求的解释器。

  1. 选定一个模型提供商(本课主路径五选一;官方默认是 Amazon Bedrock)。
  2. 按所选 provider 准备凭证(下一节表格);不要把密钥写进 agent.py。

核心事实(先记住)

项官方值
安装pip install strands-agents
默认 providerAmazon Bedrock(Claude Sonnet 4.6,us-west-2)
运行方式python -u agent.py(-u 便于流式输出到终端)
其他 provider 额外包strands-agents[anthropic] / [openai] / [gemini] / [ollama]

步骤 1:建虚拟环境并安装 SDK

官方安装命令:

python3 -m venv .venv
source .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install strands-agents

对照结果:pip show strands-agents 应能打印出包名与版本;终端无报错即安装成功。

需要虚拟环境说明时,可参考 Python 官方 venv 文档(官方 Quickstart 亦指向该页)。

步骤 2:配置所选 provider 的凭证

按你实际能用的通道选一行;命令里的 YOUR_…_HERE 只是占位,请换成自己控制台里签发的值,且优先写进 shell 环境或本地未入库的 .env(本课不演示密钥管理工具)。

A. Amazon Bedrock(默认,无需额外 pip 包)

官方给出三种本地/云上凭证方式之一即可:

# 方式 1:Bedrock API key(官方称本地开发最快)
export AWS_BEARER_TOKEN_BEDROCK=YOUR_BEDROCK_API_KEY_HERE

# 方式 2:AWS 访问密钥(也可用 aws configure)
export AWS_ACCESS_KEY_ID=YOUR_AWS_ACCESS_KEY_ID_HERE
export AWS_SECRET_ACCESS_KEY=YOUR_AWS_SECRET_ACCESS_KEY_HERE
# 可选:
# export AWS_SESSION_TOKEN=YOUR_SESSION_TOKEN_HERE

对照结果:环境变量已 echo 可见(勿截图外传);并在 Amazon Bedrock 控制台 为所用模型开通访问(官方要求)。

B. Anthropic

pip install 'strands-agents[anthropic]'
export ANTHROPIC_API_KEY=YOUR_ANTHROPIC_API_KEY_HERE

C. OpenAI

pip install 'strands-agents[openai]'
export OPENAI_API_KEY=YOUR_OPENAI_API_KEY_HERE

D. Google Gemini

pip install 'strands-agents[gemini]'
export GEMINI_API_KEY=YOUR_GEMINI_API_KEY_HERE

E. Ollama(本机,无需云账号)

pip install 'strands-agents[ollama]'
ollama serve
ollama pull llama3.1

对照结果:ollama list 中可见 llama3.1;http://localhost:11434 可访问。

步骤 3:写 `agent.py`(按 provider 复制对应片段)

在项目目录新建 agent.py。以下片段与 Python Quickstart · Run your first agent 各 Tab 一致。

Bedrock(默认,最简)

from strands import Agent

# Bedrock is the default, so no model object is needed.
agent = Agent()

agent("What is an agent harness, in one sentence?")

Anthropic

from strands import Agent
from strands.models.anthropic import AnthropicModel

# Reads ANTHROPIC_API_KEY from the environment.
model = AnthropicModel(model_id="claude-sonnet-5", max_tokens=4096)
agent = Agent(model=model)

agent("What is an agent harness, in one sentence?")

OpenAI

from strands import Agent
from strands.models.openai import OpenAIModel

# Reads OPENAI_API_KEY from the environment.
model = OpenAIModel(model_id="gpt-5.4")
agent = Agent(model=model)

agent("What is an agent harness, in one sentence?")

Gemini

from strands import Agent
from strands.models.gemini import GeminiModel

# Reads GEMINI_API_KEY from the environment.
model = GeminiModel(model_id="gemini-2.5-flash")
agent = Agent(model=model)

agent("What is an agent harness, in one sentence?")

Ollama

from strands import Agent
from strands.models.ollama import OllamaModel

model = OllamaModel(host="http://localhost:11434", model_id="llama3.1")
agent = Agent(model=model)

agent("What is an agent harness, in one sentence?")

步骤 4:运行并对照结果

官方运行命令:

python -u agent.py

对照结果(成功时):

  1. 终端开始流式打印模型回复(一句解释什么是 agent harness)。
  2. 进程正常退出,无 AuthenticationError / AccessDenied / 连接超时。
  3. 若失败:先核对步骤 2 的环境变量名是否与官方一致,再确认 Bedrock 模型访问已开通,或 Ollama 是否在监听 11434。

官方说明:看不到你的 provider 时,Strands 还支持 LiteLLM、Mistral、SageMaker、Llama API、llama.cpp、Writer、OpenAI 兼容端点与自定义 provider——详见官方 Model Providers 文档(本课不展开)。

本课检查清单

  • pip show strands-agents 成功
  • 所选 provider 的环境变量或 Ollama 已就绪(无真实 Key 进仓库)
  • python -u agent.py 打出一句自然语言回答
  • 理解:换 provider 时主要改 model 对象与安装额外包,Agent(...) / agent(...) 调用形态不变

下一课:在同一 agent.py 上加 @tool、挂载官方 file_editor,并把 Strands MCP 接到 Cursor / Claude Code。