---
title: Strands Harness, September 21, 2026: 28% Lower Token Cost, and the Line It Does Not Cross
description: 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.
url: https://www.factualminds.com/blog/strands-harness-lower-token-cost-2026/
datePublished: 2026-09-24T00:00:00.000Z
dateModified: 2026-09-24T00:00:00.000Z
author: palaniappan-p
category: AI Agents
tags: strands, bedrock-agentcore, amazon-bedrock, ai-agents, cost-optimization
---

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

> 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.

**On September 21, 2026**, the Strands Agents team released [Strands harness](https://strandsagents.com/blog/introducing-strands-harness/), an Apache-licensed agent you start with one import, run locally, or deploy anywhere you already run a Linux container. Their [Harbor](https://strandsagents.com/blog/introducing-strands-harness/) 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](https://thenewstack.io/aws-strands-harness-agent/) 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](/blog/production-ai-agents-aws-agentcore-harness-strands-2026/) 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](https://strandsagents.com/blog/introducing-strands-harness/) and [The New Stack](https://thenewstack.io/aws-strands-harness-agent/) (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](/blog/amazon-bedrock-agentcore-gateway-server-side-tool-execution-2026/). Support-style AgentCore at **50K sessions/mo is ~$791/mo** platform plus model — [decision guide](/blog/aws-bedrock-agentcore-vs-amazon-q-enterprise-decision-guide-2026/). Model your mix on the [AgentCore pricing calculator](/tools/amazon-bedrock-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.

| Name | What you install or call | What it is good at | What it does not give you |
| --- | --- | --- | --- |
| **AgentCore Harness** | `CreateHarness` / `InvokeHarness` (GA June 17, 2026) | First production agent on AWS: managed loop, streaming, default memory | A multi-agent graph, hop caps, or Cedar by itself |
| **Strands Agents SDK** | `strands-agents` | Agents-as-Tools, Graph, Swarm, Workflow after you own the code | MicroVMs, Gateway, Identity, Policy |
| **Strands Harness SDK** | [harness-sdk](https://github.com/strands-agents/harness-sdk) | Build your own loop when every default is wrong | An opinionated agent on day one |
| **Strands harness** | `pip install strands-harness` or `npm install @strands-agents/harness` | A general-purpose agent with benchmarked defaults, local or in a container | A commerce approval boundary |

Marc Brooker, VP and distinguished engineer at AWS, told [The New Stack](https://thenewstack.io/aws-strands-harness-agent/) 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](/blog/amazon-bedrock-agentcore-production/), and export to [Strands on Runtime](/blog/multi-agent-ecommerce-architecture-2026/) 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](https://www.factualminds.com/examples/architecture-blog-2026/agentcore-harness-strands-1-0/harness-vs-runtime-vs-strands.md) 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](/blog/agentcore-harness-strands-vs-amazon-quick-chat-agents-flows-2026/) before you install any harness.

## What you actually get from one import

[Current docs](https://strandsagents.com/docs/user-guide/harness/) 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](https://strandsagents.com/docs/user-guide/harness/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](/blog/ai-customer-support-agent-ecommerce-2026/) 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](/blog/aws-agent-toolkit-for-aws-skills-guide/) 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](/blog/ecommerce-ai-agent-autonomy-spectrum-2026/). 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](/resources/ecommerce-ai-agents/) post and on the [AI agents hub](/ai-agents/).

Source for the library lives in the same monorepo as the SDK: [harness-py](https://github.com/strands-agents/harness-sdk/tree/main/harness-py) and [harness-ts](https://github.com/strands-agents/harness-sdk/tree/main/harness-ts), [Apache license](https://github.com/strands-agents/harness-sdk/blob/main/LICENSE.APACHE). `create_harness()` returns a normal Strands `Agent`. You can override any default or drop down to the [Harness SDK](https://github.com/strands-agents/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](https://strandsagents.com/docs/user-guide/harness/quickstart/) (`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](https://thenewstack.io/aws-strands-harness-agent/) 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](/blog/production-ai-agents-aws-agentcore-harness-strands-2026/). Strands harness turns shell, file, and web **on**. Leaving them on for a lookup the [order API](/blog/ai-agent-ecommerce-integration-2026/) 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.

```python
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](/blog/amazon-bedrock-agentcore-production/). 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](/blog/ecommerce-ai-agent-autonomy-spectrum-2026/): week one is lookups plus a human queue.

## Where this sits for a business that sells things

[Where to start](/blog/where-to-start-with-ai-agents-2026/) 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](/blog/how-to-evaluate-ai-agent-opportunities-2026/) before anyone picks a loop. [Agentic commerce](/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](/blog/langgraph-aws-bedrock-agentcore-2026/) 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](/blog/ecommerce-ai-agents-amazon-bedrock-agentcore-2026/). Keep [evals](/blog/bedrock-llm-observability-evals-harness-2026/) 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](/tools/amazon-bedrock-agentcore-pricing-calculator/) and the [12-component breakdown](/blog/amazon-bedrock-agentcore-pricing-12-components/). 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](/for/cto/) 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](/services/generative-ai-on-aws/). The [ROI ranking](/blog/ai-agent-roi-ecommerce-automation-priority-2026/) 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](/blog/production-ai-agents-aws-agentcore-harness-strands-2026/) 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](/blog/amazon-bedrock-agentcore-gateway-server-side-tool-execution-2026/) canary, and re-price 50K sessions on the [calculator](/tools/amazon-bedrock-agentcore-pricing-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](/resources/ecommerce-ai-agents/), the calculators, and the Gateway timing already linked above.

## FAQ

### When should I NOT start a commerce agent on Strands harness?
Skip it when the agent reads live orders, inventory, or customer records, or when any action can move money. Those workflows belong on AgentCore Harness or Runtime with Gateway and a named human approver. Strands harness ships shell, file, and web tools by default. A laptop loop with those tools is a prototype, not a production boundary.

### Is Strands harness the same thing as Amazon Bedrock AgentCore Harness?
No. AgentCore Harness is the managed AWS loop (CreateHarness and InvokeHarness, GA June 17, 2026). Strands harness is an Apache-licensed library, released September 21, 2026, that you install with pip or npm and run locally or in your own container. Same word, different product. Mixing them up sends a refund-shaped workflow onto a general-purpose agent with a shell.

### What could go wrong if we treat the 28% as our AWS bill?
The 28% is the wider average after DeepSeek Harness is included. The New Stack, quoting AWS on September 21, 2026, puts the Claude Code and Codex head-to-head at 45% cheaper. Neither number includes AgentCore Runtime, Gateway, Memory, Browser, or model list price on your account. A team that rips out AgentCore to 'save 28%' or 'save 45%' is comparing a Harbor average to a platform invoice. Model the platform on the AgentCore pricing calculator before you move a workload.

### What could go wrong when tool results over about 1,500 tokens get truncated?
The team says that truncation, plus compaction above 85% of the window, drove both the token savings and the accuracy. It also means a long order payload, policy PDF, or tool dump past that size is cut or summarized inside the loop. Benchmarks can stay level while your WISMO answer drops the line the customer asked about. If the full tool result is the record, do not rely on the default truncation for that call.

### Does 'confirm before anything irreversible' replace a human approver?
No. The default system prompt tells the agent to confirm before irreversible actions. Prompt text is not an authorization boundary. Refunds, purchase orders, and price changes stay proposals a named person approves. Put the tool behind Gateway and Cedar, or do not expose the tool.

### Deepseek Harness was cheaper. Should we use that instead?
The Strands team says Deepseek Harness was the most token-efficient harness in the same run and typically posted the lowest accuracy. Cheapest tokens with a lower score is the failure mode, not the recommendation. Pick the harness whose accuracy you can defend, then cap tools. Do not pick the lowest dollar figure on a vendor chart.

### Can the same Strands harness process run on Bedrock AgentCore later?
The team lists Amazon Bedrock AgentCore among container hosts, next to ECS, Cloud Run, and others. Hosting the process there does not grant Gateway, Identity, or Policy. You still attach those yourself, the same way you do after exporting AgentCore Harness to Strands on Runtime. A container on AgentCore is not CreateHarness.

---

*Source: https://www.factualminds.com/blog/strands-harness-lower-token-cost-2026/*
