Many developers find that an agent idea works inside Claude Code or Codex, then struggles once they rebuild it with their own loop. The Strands Agents team at AWS is targeting that gap with Strands harness, a fully assembled, general-purpose agent harness. It runs locally or deploys to a cloud provider, ships for Python and TypeScript under Apache 2.0, and starts with one line of code. The team reports 28% lower cost than other harnesses running the same Claude or GPT models across 6 benchmarks, with near-equal accuracy.
Is it deployable? Yes. It runs locally, and a bundled skills file helps your coding agent generate deployment config for AWS, GCP, Azure, Cloudflare, and Modal.
What is Strands Harness
A harness is the system around the model: the loop, tools, context handling, memory, and recovery. Strands already exposed those building blocks through the Strands Harness SDK. Strands harness packages them into working defaults. It is built as a general-purpose agent, not a coding agent.
Out of the box, create_harness() returns an agent that:
- Runs on a current reasoning model through Amazon Bedrock, Anthropic, OpenAI, Google, Ollama, or LiteLLM.
- Ships shell, file (read, write, edit), and web tools, instead of a bespoke tool per task.
- Offloads bulky tool results to files and caches reused parts of each request.
- Keeps long-term memory across runs and resumes a conversation from a session ID.
- Delegates open-ended subtasks to a built-in helper agent and tracks multi-step work with a checklist.
- Loads Agent Skills when it finds them.
Benchmark Setup and the 28% Figure
The Strands Agents team ran distributed benchmarking on Amazon EC2 with Harbor, the evaluation framework from the Terminal-Bench creators. The score is the average across 6 benchmarks: ALFWorld, ContextBench, GAIA, WebShop, τ²-bench, and Terminal-Bench 2.1. Cost is the average dollars per task. Rivals on the chart are Claude Code, Codex, oh-my-pi, OpenCode, and DeepSeek Harness.
One important thing to note. DeepSeek Harness was the most token-efficient harness overall, running about 14% cheaper than Strands harness. It also scored lower on every benchmark. The chart footnote states that including it brought the overall savings figure down to 28%. The highest-scoring point on the chart is Claude Opus 5 on Strands harness, near 85%.
Terminal-Bench 2.1: Same Model, 5 Harnesses
The clearest head-to-head uses Claude Fable 5 on Terminal-Bench 2.1, with 89 trials per harness.
| Harness | Run 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 |
Against Claude Code, Strands harness cost 77% less and scored 7.9 points higher. Oh-my-pi matched its 69.7 accuracy at 54% higher cost. DeepSeek Harness was cheaper still, but trailed by 10.2 points. The team also noted that 2 other open-source harnesses performed well on cost and accuracy against Claude Code.
What Drives the Efficiency
Strands harness ships defaults for prompt caching and context management. The team says context management largely drove both token efficiency and accuracy. 3 rules do the work:
- Tool results over about 1,500 tokens get truncated.
- Summarization (compaction) triggers when context usage passes 85%.
- Context recovery runs inside the loop if the window overflows.
This matches recent independent research. The HarnessTax study compared Claude Code, Codex CLI, and Pi across 7 models. It found harness choice barely moved success rates, while the same model reached similar success at up to 5x the cost. The Strands researchers say a follow-up paper on their benchmarks is coming.
Getting Started
Install with pip install strands-harness or npm install @strands-agents/harness. Pick a model by name, or point the harness at a local Ollama model:
from strands_harness import create_harness
agent = create_harness(model="litellm/openai/gpt-5.6-sol")
agent("Research the top three vector databases and compare their pricing")The Strands CLI (npm install @strands-agents/strands-cli) lets you prototype an agent in plain English. In the team’s demo, the agent was asked to add the Playwright MCP server and measure video load latency on a blog post. Running /export then produced the harness code, with the Playwright MCP included, as a Python or TypeScript zip.
The CLI itself is built on Strands harness. Strands engineer Gautam Sirdeshmukh also used it to build a desktop app that starts Strands harness runs remotely.
Customization goes deep. You can override any default, swap models, add tools, or replace components down to the Strands Harness SDK. Because the harness is a library dependency, the agent prototyped on a laptop is the same one embedded in production.
Key Takeaways
- Strands harness packages AWS’s Strands primitives into a general-purpose, Apache 2.0 agent.
- It reports 28% lower cost than rival harnesses across 6 benchmarks at comparable accuracy.
- With Fable 5 on Terminal-Bench 2.1, it cost 77% less than Claude Code and scored higher.
- Context defaults drive the gains: 1,500-token truncation, 85% compaction, in-loop recovery.
- One
create_harness()call targets Bedrock, Anthropic, OpenAI, Google, Ollama, or LiteLLM.
Check out the Technical details, GitHub repo, PyPI package, and Strands Agents docs.
Asif Razzaq is the CEO of Marktechpost AI Media Inc.. As a visionary entrepreneur and engineer, Asif is committed to harnessing the potential of Artificial Intelligence for social good. His most recent endeavor is the launch of an Artificial Intelligence Media Platform, Marktechpost, which stands out for its in-depth coverage of machine learning and deep learning news that is both technically sound and easily understandable by a wide audience. The platform boasts of over 2 million monthly views, illustrating its popularity among audiences.
