Strands harness: производительность передовых моделей и затраты на токены на 28% ниже
Идея, знакомая многим разработчикам: локально агент на базе Claude Code или Codex работает почти безупречно, а при переносе в облако внезапно начинается ручная сборка — инструменты, контекст, память, сессии, развёртывание. По отдельности всё несложно. Вместе это уже совсем другая история.
Команда Strands представила Strands harness — готовую агентную обвязку (harness) для запуска современных AI-агентов локально или у выбранного облачного провайдера. Это не узкоспециализированный coding-агент, а универсальная основа: модель подключается одной строкой на Python или TypeScript, а базовые механизмы работы агента уже собраны в одном месте. Проект распространяется по лицензии Apache 2.0.
По данным Strands, harness снижает стоимость токенов в среднем на 28% при использовании одинаковых моделей Claude или GPT на шести бенчмарках, не уступая конкурентам по точности, а в ряде тестов — превосходя их. Сравнение проводилось с Claude Code, Codex и другими популярными решениями в распределённой среде на EC2 с Harbor.
На Fable 5 Strands harness, как сообщает команда, обошёлся на 77% дешевле Claude Code и при этом показал более высокий результат в Terminal Bench 2.1. DeepSeek Harness оказался самым экономным по числу токенов, однако чаще демонстрировал более низкую точность. Как обычно бывает с агентными системами, одна цифра здесь мало что говорит: важен баланс стоимости, качества и устойчивости выполнения задач.
Strands harness построен поверх Strands Harness SDK. В него уже заложены настройки кэширования промптов и управления контекстом: результаты вызовов инструментов объёмом свыше примерно 1 500 токенов сокращаются, сжатие контекста запускается при заполнении окна более чем на 85%, а при переполнении агент восстанавливает нужный контекст прямо в рабочем цикле.
Именно управление контекстом во многом определяет реальную экономику AI-агента. Для корпоративных проектов это обычно часть более широкой архитектуры AI-агентов: модель, инструменты, права доступа, память и наблюдаемость должны работать как единая система, а не как набор случайно склеенных скриптов.
Быстрый старт
Strands harness поддерживает актуальные модели Amazon Bedrock, Anthropic, OpenAI, Google, Ollama и LiteLLM. Можно указать модель по имени или подключить локальную модель через Ollama.
Python
from strands_harness import create_harness
agent = create_harness(
model="bedrock/global.anthropic.claude-opus-5"
)
agent(
"Изучи три ведущие векторные базы данных, сравни цены и ограничения "
"и подготовь сравнение в comparison.md"
)
TypeScript
import { createHarness } from "@strands-agents/harness";
const agent = await createHarness({
model: "bedrock/global.anthropic.claude-opus-5"
});
await agent(
"Изучи три ведущие векторные базы данных, сравни цены и ограничения " +
"и подготовь сравнение в comparison.md"
);
Для Anthropic, OpenAI, Google и LiteLLM достаточно заменить идентификатор модели. Например: anthropic/claude-opus-5, openai/gpt-5.6-sol, google/gemini-3.5-flash или litellm/openai/gpt-5.6-sol.
Локальную модель Ollama можно подключить так:
from strands_harness import create_harness
from strands.models.ollama import OllamaModel
model = OllamaModel(
host="http://localhost:11434",
model_id="llama3.1"
)
agent = create_harness(model=model)
Что получает разработчик сразу после установки
Вызов create_harness() возвращает агента с готовыми базовыми возможностями. Без долгой возни с каркасом — это, пожалуй, главное.
- Поддержка reasoning-моделей из Amazon Bedrock, Anthropic, OpenAI, Google, Ollama и LiteLLM.
- Встроенные инструменты shell, а также файловые операции
read,writeиedit; доступны и веб-инструменты. Подход опирается на небольшое число понятных примитивов, с которыми модель уже умеет работать. - Автоматическое управление окном контекста: крупные результаты инструментов сохраняются в файлы, а повторно используемые части запросов кэшируются.
- Долгосрочная память между запусками и возможность продолжить предыдущий диалог по идентификатору сессии.
- Делегирование открытых подзадач встроенному вспомогательному агенту и контроль многошаговой работы через чек-лист.
- Загрузка навыков, если они доступны в окружении.
Память и контекст особенно важны там, где агент работает не с одним коротким запросом, а с документами, базами знаний и цепочками действий. Такой сценарий обычно требует продуманной агентной памяти и RAG, иначе полезные сведения быстро тонут в длинной истории диалога.
Strands harness можно развёртывать у любого провайдера, который поддерживает Linux-контейнеры: в частности, на Modal, Cloudflare Containers, Azure Container Apps, Google Cloud Run, Amazon ECS и Amazon Bedrock AgentCore.
От прототипа к рабочему агенту
У Strands есть и Strands CLI — инструмент для прототипирования агента на естественном языке. Сначала подключается поставщик моделей, затем можно постепенно добавлять промпты и инструменты, наблюдая за поведением агента. Когда эксперимент начинает походить на продукт, команда предлагает выполнить команду /export: она формирует исходный код на TypeScript или Python для дальнейшей доработки.
Например, через CLI можно попросить агента добавить Playwright MCP, проверить задержку загрузки видео на странице, а затем экспортировать получившуюся конфигурацию. Playwright MCP попадёт в заготовку проекта — дальше её можно развивать с помощью coding-агента или дополнить настройками деплоя. Никакой магии, просто меньше однообразной ручной работы.
Для компаний такой путь удобен при разработке AI-агентов и автоматизации: сначала проверяется ценность сценария, затем прототип обрастает интеграциями, ограничениями доступа и рабочими процессами. Если задача разрастается, её можно разделить между несколькими специализированными исполнителями — это уже территория мультиагентных систем.
Гибкая настройка без привязки к шаблону
Strands CLI сам построен поверх Strands harness. Команда Strands отмечает, что благодаря быстрому прототипированию на этой базе уже появлялись самые разные агенты — в том числе в виде десктопного приложения инженера Гаутама Сирдешмукха, которое удалённо запускает Strands harness.
Когда стандартных настроек недостаточно, harness можно менять глубоко: переопределять параметры по умолчанию, подключать другие модели и инструменты, а при необходимости постепенно заменять компоненты вплоть до уровня Strands Harness SDK. Исходный код остаётся у разработчика. Это важное отличие от закрытых конструкторов, где красивый демо-сценарий иногда превращается в клетку с позолоченной дверцей.
Как попробовать Strands harness
Для Python установите пакет командой pip install strands-harness. Для TypeScript используйте npm install @strands-agents/harness. Если нужна интерактивная работа через командную строку, установите Strands CLI: npm install -g @strands-agents/cli.
Документация доступна на странице Strands harness, а вопросы можно задать в сообществе Discord. Готовая агентная обвязка не отменяет инженерных решений, конечно. Зато она убирает из старта немало рутины — и даёт команде больше времени на то, ради чего агент вообще создавался.
Если вы выбираете, на чём собирать собственного агента, — Strands harness, Claude Code, Codex или другой фреймворк, — результаты бенчмарков стоит проверить на своих задачах. Мы сравним агентные фреймворки на ваших сценариях и поможем выбрать подходящий.
Источник: strandsagents.com
