AWS Strands Harness Cuts Token Cost 28% on the Same Model
AWS open-sourced Strands harness under Apache 2.0 on September 21. Running the same Claude and GPT models, it averaged 28% lower token cost across six benchmarks, and the gap comes from defaults like 1,500-token tool truncation and compaction at 85%.
- AWS released its agent harness
Strands harnessunder Apache 2.0. - On the same Fable 5, it billed $56.29 where Claude Code billed $248.05.
- AWS ran the benchmarks itself and pushed the detailed table to a later paper.
The usual assumption about agent costs is that the only lever is switching to a cheaper model. The numbers AWS Strands published on September 21 say otherwise. They held the model fixed, changed only the program wrapped around it, and the cost of one pass through the same benchmark moved by nearly a factor of four.
That wrapping program is the harness. It is the part that hands the model its tools, feeds results back, and trims the conversation when it grows too long. Take what Claude Code or Codex does, subtract the model's reasoning, and everything left over is harness. Until now every company built that layer itself, and anyone writing their own agent reassembled it from scratch each time.
What AWS shipped is that assembly, finished. One line of Python, create_harness(), gives you an agent with shell, file, and web tools. You name the model, and you do not need an AWS account.
Same model, four times the bill
The headline number in the announcement is a 28% reduction in token cost averaged across six benchmarks. The comparison condition is "the same Claude or GPT models." Nothing got cheaper by switching models; the model stayed put and only the harness changed.
The widest gap is on Terminal-Bench 2.1, run 89 times per harness on Claude Fable 5.
| Harness | Cost | Accuracy |
|---|---|---|
| Strands harness | $56.29 | 69.7% |
| Oh-my-pi | $86.83 | 69.7% |
| OpenCode | $73.42 | 66.3% |
| Claude Code | $248.05 | 61.8% |
| DeepSeek Harness | $40.30 | 59.5% |
Claude Code: $248.05 at 61.8%. Strands harness: $56.29 at 69.7%. Both ran Claude Fable 5. The bill dropped to a quarter while the score went up 7.9 points. The announcement phrases this run as "77% less than Claude Code on Fable 5."
The row to read alongside it is DeepSeek Harness, the cheapest at $40.30. It spent less than Strands harness and landed at 59.5%, the lowest accuracy on the list. AWS put that caveat in its own announcement. Spending fewer tokens does not by itself make a harness good, and a large cost gap means nothing until you read the accuracy column next to it.
The rest of the measurement setup: the six benchmarks are ALFWorld, ContextBench, GAIA, WebShop, τ²-bench, and Terminal-Bench 2.1, run distributed on EC2 through Harbor. The dollar figures cover all 89 attempts per harness, not a single task.
The three defaults that made the difference
AWS names the source of the efficiency directly, and it is not the model or the prompt. It is the context management defaults. Three of them.
The first one carries the most weight. When an agent reads a file or runs a command, the whole result lands in the conversation, and that conversation is resent and rebilled on every subsequent request. This is the same mechanism devlery covered in a file read once that keeps getting billed for 470 turns. Cutting at 1,500 tokens stops long outputs from taking up permanent residence. The truncated original is not discarded; it gets written out to a file and read back when it is actually needed.
The second decides when to summarize. Waiting until the context window is full means you have already sent several expensive requests. Compacting at 85% skips that stretch. The third is the fallback when it overflows anyway: the run recovers inside the loop instead of ending in failure. Prompt caching is on by default on top of all three, so the repeated prefix of every request is not recomputed.
These three values transfer to people who never install Strands harness. Copy the three numbers into the loop you already wrote. Cap tool result length, move compaction earlier than a full window, and treat overflow as a recovery path rather than an exception. The fastest thing to production out of this release is not the framework, it is these three defaults.
How far to trust the numbers
AWS ran the benchmarks on its own harness. The announcement carries no detailed table and defers it to "a forthcoming paper from the research team." The per-harness costs and accuracies above were assembled from follow-up coverage and discussion after the launch. Until the paper lands, these are vendor figures rather than reproduced ones.
The pushback on Hacker News (143 points, 96 comments) lands in the same place.
- Terminal-Bench 2.1 may be saturated. When the leading harnesses already cluster at similar scores, winning there does not guarantee a lead on other work.
- Vanilla Pi is missing from the comparison list. Commenters suspected it was dropped because the token-usage margin over it was not meaningful.
- Long-horizon losses. Compaction at 85% and tool truncation pay off on short tasks, but on runs spanning hundreds of turns, information that was cut away can turn out to be needed later.
- Do not line these up against external leaderboards. Artificial Analysis and similar boards use different harness configurations, so the 69.7% here does not sit next to a score from there.
Hands-on reports are still thin. Most of the thread argued about the numbers, and comments naming a different harness outnumbered comments from people who had actually run it: some preferred lightweight vanilla Pi, some stay on OpenCode for its provider coverage, some keep their own harness. One person said they had moved to Mastra for TypeScript agents.
What you can install today
Conditions confirmed against the primary source.
| Item | Detail |
|---|---|
| Who can use it | Anyone. No waitlist, beta signup, or approval step |
| Pricing | The harness is free (Apache 2.0). Model calls bill separately through whichever provider you pick |
| AWS account | Not required. You can point it straight at Anthropic, OpenAI, Google, Ollama, or LiteLLM |
| Regional availability | PyPI and npm packages, so there is no geographic gate on installing. The announcement names no country restrictions and no cloud regions, so if you need a specific one such as ap-southeast-1, check your model provider account rather than the launch post. Running local Ollama removes the outbound call entirely |
| Requirements | Python 3.10+ or Node.js 22+. Deploy anywhere that runs a Linux container |
Install and a minimal run:
pip install strands-harness
# or
npm install @strands-agents/harness
from strands_harness import create_harness
agent = create_harness(model="anthropic/claude-opus-5")
agent("Compare pricing and rate limits for the top three vector databases and write it up in comparison.md")
Strands harness is built as a general-purpose agent, not a coding agent. Shell, file, and web were chosen as "primitive tools the model already knows how to use," with no task-specific tooling layered on. It resumes earlier conversations by session ID, hands open-ended work to subagents, and tracks multi-step jobs with a checklist. For deployment the announcement names Modal, Cloudflare Containers, Azure Container Apps, Google Cloud Run, Amazon ECS, and Amazon Bedrock AgentCore. To try it interactively first, install the Strands CLI with npm install -g @strands-agents/cli and use /export to pull out Python or TypeScript code.
If you already run your own agent loop, moving one number is faster than swapping harnesses. Cap tool results at 1,500 tokens, then compare the summed input tokens in this week's run logs before and after, and half a day tells you what that 28% is worth on your workload. Deciding whether to replace the whole harness can wait until that number comes back meaningful, and AWS's forthcoming paper is then useful for checking the reproduction conditions.