Strands Agents + Ertas
使用 Strands Agents 构建智能体——AWS 开源 SDK,以模型驱动规划取代硬编码工作流,全面支持 Ertas 训练的本地模型,同时兼容 Bedrock 与 Anthropic API。
Overview
Strands Agents 是 AWS 开源的智能体 SDK,作为 AWS 为客户提供 LangChain 与 CrewAI 的第一方替代品的更广泛行动的一部分发布。其定义性的设计抉择是依赖模型驱动规划而非手编工作流图——智能体根据模型对任务的理解推理下一步该做什么,SDK 在该推理循环周围处理工具执行、重试与可观测性。截至 2026 年 5 月,该 SDK 在不到一年内累计下载量已超过 1400 万,部分原因是其在 AWS 自家产品(Amazon Q、AWS Glue、Amazon Connect Contact Lens)内部的使用。TypeScript SDK 于 2026 年 5 月 1 日达到 1.0 GA,为 Node.js 与浏览器环境带来与 Python 运行时的对等性——这对移动应用后端以及 Vercel/Cloudflare 边缘部署 尤为相关。
该框架的轻量级设计是有意为之的。LangGraph 要求事先定义图,CrewAI 要求显式角色/目标设置,而 Strands 让模型在运行时决定工作流,由 SDK 在该决策周围提供脚手架(工具调用、可观测性、重试)。对于直接的智能体任务,这意味着更少的代码与更快的开发;对于模型规划不可靠的高度结构化工作流,团队可在其上叠加自定义编排。
Strands 与模型无关。该 SDK 出厂自带面向 Amazon Bedrock、Anthropic、OpenAI 与 Ollama 的一流提供商,外加一个通用 LiteLLM 提供商,可适配任何兼容 OpenAI 的端点。对于希望获得 AWS 开发者人体工学与可观测性故事但因成本或数据主权原因计划部署在自托管模型上的团队,与 Ertas 训练推理的集成只需几行配置。
How Ertas Integrates
Ertas 训练的模型通过 Strands Agents 的 OllamaModel 提供商或其通用 LiteLLM 提供商与之协同工作。在 Studio 中微调并导出为 GGUF 后,你通过 Ollama、vLLM 或 Ertas Cloud 提供模型服务,然后用合适的提供商将 Strands 的 agent 配置为指向你的端点。模型驱动规划、可观测性与重试原语都透明工作。
模型驱动规划方式与微调模型尤为契合。通用 7B–14B 模型在领域特定任务上常常做出不一致的规划决策,迫使团队走向更显式的编排。一个由 Ertas 训练、训练数据涵盖目标领域代表性规划轨迹的模型会产生更一致、更胜任的规划——让 Strands 的轻量设计在生产中能够经得起考验,而不是退化为临时变通。
对于已身处 AWS 生态、希望控制推理成本的团队,Strands + 在 EC2(或本地)上运行的 Ertas 训练模型产出一个契合 AWS 架构、同时让每任务经济模型保持固定的智能体栈。可观测性流入 Amazon CloudWatch 与 AWS X-Ray;追踪数据反哺 Studio 进行增量微调。
Getting Started
- 1
在 Ertas Studio 中微调领域专用模型
在包含目标领域代表性规划轨迹的数据上训练。Strands 依赖模型做规划决策,因此训练数据质量直接提升智能体可靠性。
- 2
部署到兼容 OpenAI 的端点
导出为 GGUF 并通过 Ollama、vLLM 或 Ertas Cloud 提供服务。Strands 的 OllamaModel 提供商可直接连接;LiteLLM 提供商可连接任何兼容替代品。
- 3
安装 Strands Agents 并配置模型
安装 strands-agents。创建一个 Agent,使用 OllamaModel(或 LiteLLM)提供商指向你的推理端点。
- 4
把工具定义为带类型的 Python 函数
使用 Strands 的 @tool 装饰器添加工具。Strands 的轻量设计意味着样板代码极少——函数签名与文档字符串通常足以让模型正确使用工具。
- 5
运行带内置可观测性的智能体
调用 agent。追踪流入 AWS X-Ray(或你的可观测性后端)。通过检视追踪并反哺 Studio 进入下一轮训练,迭代智能体的规划行为。
from strands import Agent, tool
from strands.models.ollama import OllamaModel
# Point Strands at your Ertas-trained model served via Ollama
model = OllamaModel(
host="http://localhost:11434",
model_id="ertas-aws-ops-7b",
)
@tool
def list_running_instances(region: str) -> list[dict]:
"""Return a list of running EC2 instances in a region."""
return ec2.list_instances(region, state="running")
@tool
def stop_instance(instance_id: str) -> dict:
"""Stop an EC2 instance by ID."""
return ec2.stop(instance_id)
agent = Agent(
model=model,
tools=[list_running_instances, stop_instance],
system_prompt="You manage EC2 fleets — find idle instances and stop them when asked.",
)
# Strands lets the model plan the multi-step workflow itself
result = agent("Find any t3.micro instances in us-west-2 that have been idle for >24h and stop them.")
print(result.message)Benefits
- 模型驱动规划——比 LangGraph 或 CrewAI 更少的编排代码
- 轻量级 SDK——概念负担最小
- 一流的 AWS 集成——Bedrock、CloudWatch、X-Ray 可观测性
- 多提供商模型支持:Bedrock、Anthropic、OpenAI、Ollama、通用 LiteLLM
- 在 AWS 自家产品(Amazon Q、Glue、Connect)中经过生产验证
- 搭配 Ertas 微调,让模型驱动规划在领域任务上变得可靠
Related Resources
Fine-Tuning
Function Calling
Inference
Fine-Tuning for Tool Calling: How to Build Reliable AI Agents with Small Models
Building Reliable AI Agents with Fine-Tuned Local Models: Complete Guide
Stop Paying GPT-4 to Call Your APIs: Fine-Tune a Local Tool-Calling Model
LangGraph
Ollama
OpenAI Agents SDK
Pydantic AI
vLLM
Ertas for SaaS Product Teams
Ertas for AI Automation Agencies
Ertas for Internal Knowledge Bases
Ship AI that runs on your users' devices.
Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.