Skip to main content

AI & assistant-friendly summary

This section provides structured content for AI assistants and search engines. You can cite or summarize it when referencing this page.

Summary

On September 21, 2026 the Strands Agents team reported 28% lower token cost across six benchmarks, and 77% less than Claude Code with Fable 5 on Terminal-Bench. That figure is not an AgentCore bill.

Key Facts

  • •On September 21, 2026 the Strands Agents team reported 28% lower token cost across six benchmarks, and 77% less than Claude Code with Fable 5 on Terminal-Bench
  • •On September 21, 2026, the Strands Agents team released Strands harness, an Apache-licensed agent you start with one import, run locally, or deploy anywhere you already run a Linux container
  • •Their Harbor run on EC2, same Claude or GPT models, came out 28% lower token cost across six benchmarks at nearly equal accuracy
  • •With Fable 5 on Terminal-Bench, they report 77% less cost than Claude Code and a higher score
  • •The bench name in their write-up is Terminal-Bench 2 point 1

Entity Definitions

Amazon Bedrock
Amazon Bedrock is an AWS service discussed in this article.
Bedrock
Bedrock is an AWS service discussed in this article.
EC2
EC2 is an AWS service discussed in this article.
IAM
IAM is an AWS service discussed in this article.
ECS
ECS is an AWS service discussed in this article.
Amazon ECS
Amazon ECS is an AWS service discussed in this article.

Strands Harness, September 21, 2026: 28% Lower Token Cost, and the Line It Does Not Cross

AI AgentsPalaniappan P11 min read

Quick summary: On September 21, 2026 the Strands Agents team reported 28% lower token cost across six benchmarks, and 77% less than Claude Code with Fable 5 on Terminal-Bench. That figure is not an AgentCore bill.

Key Takeaways

  • On September 21, 2026 the Strands Agents team reported 28% lower token cost across six benchmarks, and 77% less than Claude Code with Fable 5 on Terminal-Bench
  • On September 21, 2026, the Strands Agents team released Strands harness, an Apache-licensed agent you start with one import, run locally, or deploy anywhere you already run a Linux container
  • Their Harbor run on EC2, same Claude or GPT models, came out 28% lower token cost across six benchmarks at nearly equal accuracy
  • With Fable 5 on Terminal-Bench, they report 77% less cost than Claude Code and a higher score
  • The bench name in their write-up is Terminal-Bench 2 point 1
Amber paper loop around a navy cube, branching into a stack of banded modules on a dark navy background
Table of Contents

On September 21, 2026, the Strands Agents team released Strands harness, an Apache-licensed agent you start with one import, run locally, or deploy anywhere you already run a Linux container. Their Harbor run on EC2, same Claude or GPT models, came out 28% lower token cost across six benchmarks at nearly equal accuracy. With Fable 5 on Terminal-Bench, they report 77% less cost than Claude Code and a higher score. The bench name in their write-up is Terminal-Bench 2 point 1.

Those two percentages are the Strands team’s published figures, dated that day. The New Stack the same afternoon quotes AWS on a sharper cut: 45% cheaper than Claude Code and Codex alone, with the 28% applying only after DeepSeek Harness is folded into the wider set. They are not a FactualMinds benchmark, and they are not a line item on an AgentCore invoice. If the only decision you needed was “which open-source loop burns fewer tokens on a coding-agent-shaped bench,” you can stop at their post. If the agent will touch orders, inventory, or money, keep reading — the name collision with AgentCore Harness is how teams pick the wrong host.

Cited published figures (not a FactualMinds run) — Strands Agents team, September 21, 2026: 28% lower token cost versus other harnesses on the same Claude or GPT models across six benchmarks; DeepSeek Harness was more token-efficient and typically less accurate; Fable 5 on Terminal-Bench cost 77% less than Claude Code and scored higher. Setup: distributed Harbor benchmarking on EC2. A follow-up paper is still forthcoming. Sources: Introducing Strands harness and The New Stack (Paul Sawers, same day), which reports the Claude Code and Codex head-to-head as 45% cheaper before DeepSeek is included.

First-party signals we reuse (not a Strands harness engagement) — Gateway server-side tools cut median tool round-trip ~180 ms to ~95 ms on a B2B CRM assistant (12 tools, ~8k turns/day) — Gateway post. Support-style AgentCore at 50K sessions/mo is ~$791/mo platform plus model — decision guide. Model your mix on the AgentCore pricing calculator. There are still zero published FactualMinds case studies of a production AI agent.

Three products. One word.

Teams already confuse these. The September 21 library adds a fourth spelling of “harness” and makes it worse.

NameWhat you install or callWhat it is good atWhat it does not give you
AgentCore HarnessCreateHarness / InvokeHarness (GA June 17, 2026)First production agent on AWS: managed loop, streaming, default memoryA multi-agent graph, hop caps, or Cedar by itself
Strands Agents SDKstrands-agentsAgents-as-Tools, Graph, Swarm, Workflow after you own the codeMicroVMs, Gateway, Identity, Policy
Strands Harness SDKharness-sdkBuild your own loop when every default is wrongAn opinionated agent on day one
Strands harnesspip install strands-harness or npm install @strands-agents/harnessA general-purpose agent with benchmarked defaults, local or in a containerA commerce approval boundary

Marc Brooker, VP and distinguished engineer at AWS, told The New Stack that AgentCore Harness and Strands harness were built by the same team and live in separate codebases, and that work on one can feed the other. He also called AgentCore an optional hosting layer: the open-source loop, tools, context, sessions, and delegation run on whatever machine is running the agent. The only out-of-the-box default tied to AWS is the model call, which lands on Bedrock until you override it in one line. Same team does not mean same product. A container you host yourself still does not give you Gateway, Identity, or Cedar.

Opinionated take: prototype a general-purpose agent on Strands harness. Ship a commerce agent on AgentCore Harness, and export to Strands on Runtime only when topology, hop caps, or a supervisor shows up. Trade-off: you give up the one-line local loop and the team’s 28% harness-versus-harness delta. You keep Identity, Gateway, and a place to put Cedar. The August 2026 decision matrix still describes that AWS path. It does not describe this new library. Do not paste create_harness() into that matrix and call it the same thing.

Employee-only knowledge work is a third door. If the job is “answer from the company wiki for people who already have seats,” compare Quick Suite versus AgentCore before you install any harness.

What you actually get from one import

Current docs describe a fully assembled agent, not a bag of primitives. Out of the box it:

  • Runs on Amazon Bedrock by default, or on Anthropic, OpenAI, Google, Ollama, or LiteLLM via a provider/name string. The quickstart says the Bedrock default is Claude Opus 4 point 8 in the region your AWS config selects. Pin the id. Do not let “latest” drift under you.
  • Ships shell, file (read, write, edit), and web tools. The team wants primitives the model already knows, rather than a custom tool per task. That is the right default for a research agent. It is the wrong default for a WISMO agent.
  • Offloads bulky tool results and caches reused parts of the request.
  • Truncates tool results past about 1,500 tokens, compacts when context passes 85%, and runs context recovery inside the loop if the window overflows. The team says this context policy, more than a clever prompt, produced both the token cut and the accuracy.
  • Persists sessions (docs: ./.agent/sessions) and long-term memory across runs.
  • Delegates open-ended work to a built-in generalist subagent and tracks steps with a checklist.
  • Loads Agent Skills when it finds them.
  • Follows a system prompt that says explore first, confirm before anything irreversible, and verify before finishing.

The confirm-before-irreversible line is a behavior hint. It is not an approval policy. Prompt text is not an authorization boundary. A refund, a purchase order, or a price change is a proposal a named person approves — the same rule on every field-guide post and on the AI agents hub.

Source for the library lives in the same monorepo as the SDK: harness-py and harness-ts, Apache license. create_harness() returns a normal Strands Agent. You can override any default or drop down to the Harness SDK when the defaults stop fitting. That is the useful part of “fully customizable”: the prototype and the embedded process are the same library, until you need AWS Policy, which this library does not contain.

The Strands CLI (npm install -g @strands-agents/cli, Node 20 or newer) interviews you, then /export writes a Python or TypeScript project with those choices on create_harness(...). The CLI itself is built on Strands harness. Use it to learn the shape of the agent. Do not treat the export zip as a production commerce service.

What the 28% measures, and where it breaks

The comparison set in the team’s write-up is other harnesses — Claude Code, Codex, DeepSeek Harness, and “other popular harnesses” — running the same Claude or GPT models. Cost is token cost of the loop. Accuracy is their benchmark average. Harbor on EC2 is the rig. They also say two other open-source harnesses looked similarly strong against Claude Code on cost and accuracy. They do not claim Strands harness beat AgentCore, Bedrock Converse, or a Gateway-shaped tool path.

The New Stack names the six benchmarks AWS averaged: ALFWorld, ContextBench, GAIA, WebShop, tau-3 bench, and Terminal-Bench. Against Claude Code and Codex only, AWS told them Strands harness was 45% cheaper at broadly comparable accuracy. Include DeepSeek Harness — about 14% cheaper than Strands on matched runs — and the savings figure falls to 28%. On Terminal-Bench with Fable 5, the same piece prints the trial totals: Strands harness at $56.29 across 89 trials with a score of 69.7, Claude Code at $248.05 with 61.8, DeepSeek Harness at $40.30 with 59.5. That is the 77% gap in dollars, not a new result.

What broke in their own chart — DeepSeek Harness was the most token-efficient harness in the run and typically the least accurate. The 45% is the head-to-head against Claude Code and Codex. The 28% is that head-to-head diluted by a cheaper, lower-scoring harness. If a slide in your review deck shows only “28% cheaper,” ask which rivals are inside the average and what the accuracy column did. The team says a follow-up paper is coming. Until that paper is public, this is a vendor benchmark with a date, not a law of physics.

The second break is inside the mechanism that created the savings. Truncation at about 1,500 tokens is why the bill drops. It is also how a long tool result loses the row you needed. Compaction at 85% summarizes the trail. Context recovery keeps the loop alive after an overflow; it does not put the discarded bytes back. For a coding bench, that trade is why the score held. For “where is order 1842,” a summarized tool result is a wrong answer that looks fluent. If you adopt the defaults, log when truncation fires. If you cannot afford to drop the payload, override that one default and pay the tokens.

A third break we have already measured on a different stack, and it rhymes. Support-shaped pilots with Browser left on tracked roughly 3× Runtime-shaped spend — ship map. Strands harness turns shell, file, and web on. Leaving them on for a lookup the order API could have answered is the same class of mistake: the harness did what it was built to do, and the bill followed the tools.

A read-only prototype, pinned

Context: Python 3 point 10 or newer, strands-harness as published with the September 21, 2026 release, Bedrock credentials with permission to invoke the model (AWS_BEARER_TOKEN_BEDROCK, a normal AWS credential chain, or an IAM role). The quickstart’s Bedrock default is Claude Opus 4 point 8. The call below does not enable a write tool and does not pass a shell task.

from strands_harness import create_harness

agent = create_harness(session={"id": "wismo-fields"})
agent(
    "List the three fields a 'where is my order' reply needs from an order API. "
    "Do not call a shell. Do not write a file. Do not change an order."
)

That session id resumes the same conversation later (./.agent/sessions per the quickstart). Resume is convenient. It is also how a prototype transcript ends up on a laptop disk. Do not point this at production customer PII until you know where those files live and who can read them.

TypeScript is the same factory: Node 20 or newer, npm install @strands-agents/harness, createHarness({ session: { id: 'wismo-fields' } }). Model strings follow provider/name (anthropic/…, openai/…, google/…, ollama/llama3, litellm/…). Bedrock stays the default for a team that already has model access and CloudTrail. Direct provider keys are fine for a local spike. They are a second bill and a second data-processing path if you leave them in the service that talks to customers.

The team says you can run the same container on Modal, Cloudflare Containers, Azure Container Apps, Google Cloud Run, Amazon ECS, or Amazon Bedrock AgentCore. “Runs on AgentCore” here means your container on their host, not CreateHarness. Gateway, Identity, and memory strategy are still yours. If the next sentence in the design doc is “and then it issues a refund,” stop and use the autonomy spectrum: week one is lookups plus a human queue.

Where this sits for a business that sells things

Where to start has not changed because a harness got cheaper. The first commerce agent is still the repetitive lookup with a real system of record behind it — order status, inventory, a B2B quote read — scored on the readiness check before anyone picks a loop. Agentic commerce (agents you run, and agents that buy from you) is the offer. Strands harness is a library inside the engineering choice, the way LangGraph on Runtime is a library inside the engineering choice.

Use Strands harness when all of these are true:

  1. The task is general (research, a draft, a repo chore), or you are timing the loop itself.
  2. No tool can move money, change a price, or write to the system of record.
  3. You can name who reviews the output before a customer sees it.
  4. You will either throw the session away or move the process into an account you operate, with model access logged.

Stay on AgentCore Harness when the agent is single-domain, the tool count is still small, and you want AWS to own the loop. Move to Runtime plus Strands — the SDK, not this prebuilt harness — when you need the topologies in the store-agents sample. Keep evals in front of either choice. A Harbor score on Terminal-Bench does not tell you whether your order-status task completed.

Token price still dominates most agent bills, which is why the 28% is interesting. It does not retire the platform math. At the silhouette we already publish, ~$791/mo at 50K sessions is the AgentCore floor to plan against, before Browser and before the model. Put your traffic into the calculator and the 12-component breakdown. If Strands harness on ECS is cheaper after you add auth, logs, a session store you trust, and a human queue, then it is cheaper. Not before.

CTOs who already run Bedrock should treat this as a prototyping tool and a token-budget reference, then keep production on the path in generative AI on AWS. The ROI ranking still decides which workflow is worth an agent. A cheaper loop does not make a bad workflow worth automating.

What to do this week

  1. Write down which “harness” you meant. If the answer is the managed AWS API, use the June–August ship map and ignore pip install strands-harness.
  2. If you are prototyping, install the library and run one read-only task with an explicit session id. Pin the model id from the quickstart, not “whatever the default becomes next month.”
  3. Turn shell and file writes off before the task can see customer data. Confirm-in-the-prompt is not a control.
  4. Ask whoever is holding the 28% slide: same models, which harnesses are in the average, what happened to accuracy, and where is the paper. Keep the Fable 5 / Terminal-Bench comparison (77% less than Claude Code, higher score) separate from the six-benchmark average.
  5. If the workflow is a commerce lookup, stay on AgentCore. Re-check Gateway latency assumptions against the ~180 ms to ~95 ms canary, and re-price 50K sessions on the calculator before you propose a host change.
  6. Do not enable Browser, Code Interpreter, or a web tool “because the harness had it on.” That is how support-shaped pilots landed near 3× the platform spend.

What this post does not cover

We have not re-run Harbor, that Terminal-Bench suite, or the other five benchmarks in that average. We are not publishing a FactualMinds token-cost number for strands-harness. The 28% and the 77% belong to the Strands Agents team until their follow-up paper (which they said is coming) gives anyone else a method to repeat.

We did not deploy Strands harness onto ECS or AgentCore in this post, and we did not wire it to Gateway. Container hosting does not create Cedar, a customer-visible audit log, or a refund approval. Strands Evals and Strands Shell are named in the docs; this post does not review them.

This is not an agent case study. FactualMinds has no published production-agent engagement to hang these numbers on. The standing proof is the 64-part field guide, the calculators, and the Gateway timing already linked above.

PP
Palaniappan P

AWS Cloud Architect & AI Expert

AWS-certified cloud architect and AI expert with deep expertise in cloud migrations, cost optimization, and generative AI on AWS.

AWS ArchitectureCloud MigrationGenAI on AWSCost OptimizationDevOps

Recommended Reading

Explore All Articles »