Strands Harness logo

Strands Harness

Visit

AWS's batteries-included agent harness: one import gives you a tuned general-purpose agent that the team says runs 28 percent cheaper than Claude Code.

Share:
View alternatives

Strands Harness

Strands Harness is a fully assembled agent harness from the Strands Agents project, announced 2026-09-21 and published to PyPI by AWS. The pitch is captured in one sentence from the team: builders kept wishing their own agents felt like Claude Code or Codex, and the moment they wrote their own loop they were on their own. Strands Harness is the answer to that gap, shipped as a general-purpose agent rather than a coding agent.

It is open source under Apache 2.0, it is a package rather than a hosted product, and it runs on the model of your choice.

What Ships in the Box

Import the package with no arguments and you get an agent with defaults the team benchmarked and tuned:

  • A tuned system prompt. Explore first, act second, confirm before anything irreversible, verify before finishing.
  • Real tools. A shell plus file tools (read, write, edit) and web access.
  • Context management. Bulky tool results are set aside as a task grows, and the reused parts of each request are cached to cut latency and cost.
  • Memory and sessions. Long-term memory survives runs, and an earlier conversation can be resumed by session id.
  • Delegation. Open-ended subtasks go to a built-in helper agent, and multi-step work is tracked with a checklist.
  • Skills and code execution. Agent Skills load when present, and the model can orchestrate its own tools in code.

Everything above can be narrowed, swapped, or turned off, and you get back a standard Strands Agent with no wrapper. If you would rather build the harness yourself, the same configuration is available through the underlying Strands Harness SDK.

Cost and Accuracy Claims

The launch post reports that Strands Harness cost 28 percent less than Claude Code, Codex, and other popular harnesses across six benchmarks using the same Claude or GPT models, with nearly equal scores. With Fable 5 the team reports 77 percent lower cost than Claude Code on Terminal Bench 2.1 while scoring higher. In the same write-up, DeepSeek Harness was credited as the most token-efficient harness overall but with the lowest accuracy of the group.

The mechanism the team credits is not a clever prompt. It is context management: tool results over roughly 1,500 tokens are truncated, compaction triggers once the context window passes 85 percent, and context recovery runs inside the loop when an overflow happens anyway. Benchmarking was run distributed on EC2 with Harbor, and a follow-up paper on the methodology is promised.

Treat every number above as vendor-reported. A harness is measured against other harnesses, so the numbers say how much scaffolding costs, not how good the underlying model is.

Where It Fits

Strands Harness targets the middle of the stack. Coding agents like Claude Code and Codex CLI are products you adopt; agent frameworks such as LangGraph or the OpenAI Agents SDK are libraries you assemble. Strands Harness sits between them: opinionated defaults without giving up the ability to override every one of them.

Pricing

Free and open source under Apache 2.0. You pay only for model usage, and the default provider is Amazon Bedrock, so an AWS account is the path of least resistance. Anthropic, OpenAI, Google, Ollama, and LiteLLM are supported for everything else.

Getting Started

Python:

# pip install strands-harness
from strands_harness import create_harness

agent = create_harness(model="anthropic/claude-opus-5")
agent("Research the top three vector databases, compare pricing and limits, and write it up in comparison.md")

TypeScript:

// npm install @strands-agents/harness
import { createHarness } from "@strands-agents/harness";

const agent = await createHarness({ model: "openai/gpt-6-luna" });
await agent.invoke("Summarize this repository and open a pull request with fixes.");

Then keep only the defaults that fit your workload. There is no configuration to write before the first run, which is the point.

Limitations

  • Vendor-run benchmarks. The 28 percent and 77 percent figures come from the team that built the harness, on six benchmarks of its choosing. Nothing here has been independently replicated yet.
  • Early version numbers. The Python package is at 0.1.x as of 2026-09-24, so expect API churn before 1.0.
  • Not a coding agent. It is deliberately general purpose. If your job is software engineering all day, the harnesses it benchmarks against are still the more specialized tools.
  • Context management is aggressive by default. Truncating tool results over 1,500 tokens saves money and can drop detail your workload actually needed, so tune it on real traffic instead of trusting the default.

FAQ

Is Strands Harness the same as the Strands Agents SDK?

No. The SDK is the framework for building agents. Strands Harness is a pre-assembled agent built on that SDK, and it lives in the same repository as harness-py and harness-ts packages.

Which models can it run?

Amazon Bedrock, Anthropic, OpenAI, Google, Ollama locally, and anything reachable through LiteLLM. Amazon Bedrock is the default.

Can I deploy it instead of running it locally?

Yes. It is a library, so it runs where your process runs, including inside your own service or on serverless compute.

Does it replace my existing agent?

Only if you are writing your own loop today. If you are happy with a coding agent product, Strands Harness is a way to get that experience for non-coding work.

Alternatives

  • DeepSeek Harness: the most token-efficient harness in the Strands comparison, at lower reported accuracy.
  • OpenAI Agents SDK: a vendor SDK for building the loop yourself.
  • LangGraph: graph-based orchestration when your workflow needs explicit state machines.

Conclusion

Strands Harness makes the reasonable bet that most agent projects do not need a novel loop, they need a good default one. One import, an Apache 2.0 license, and context-management settings that the team can defend with numbers is a strong starting position. Start there, measure it on your own traffic, and override what does not fit.

Comments

No comments yet. Be the first to comment!