AgentCore Harness + Strands 1.0: What Actually Ships in August 2026
Quick summary: Harness GA Jun 17, 2026 plus Strands 1.0 primitives — and why AWS Context is still Coming soon. Reuse the ~180→95 ms Gateway canary; ship Managed KB today.
Key Takeaways
- Harness GA Jun 17, 2026 plus Strands 1
- 0 primitives — and why AWS Context is still Coming soon
- Reuse the ~180→95 ms Gateway canary; ship Managed KB today
- AWS lifecycle notice (June 30, 2026) — Amazon Bedrock Agents Classic is in maintenance for new customers after July 30, 2026
- Net-new agent builds should use Bedrock AgentCore

Table of Contents
AWS lifecycle notice (June 30, 2026) — Amazon Bedrock Agents Classic is in maintenance for new customers after July 30, 2026. Net-new agent builds should use Bedrock AgentCore. Full matrix: lifecycle roundup.
On June 17, 2026, AgentCore Harness reached general availability — create an agent with configuration, invoke it with a streaming API, and stop hand-rolling session stores and tool routers for the default path (What’s New, Harness get started). The same Summit week shipped Managed Knowledge Base GA and Web Search on Gateway. Strands Agents 1.0 already gave AWS-endorsed multi-agent primitives (Agents-as-Tools, Graph, Swarm, Workflow) plus A2A.
This post is the August 2026 ship map: what is GA, what is still Coming soon, when to stay on Harness, when to export to Strands, and which comparison tables to use on Monday. It is not a rewrite of Summit marketing posts that blur AWS Context into “available today.”
First-party signals we reuse (not new client outcomes) — Gateway server-side tools cut median tool round-trip ~180 ms → ~95 ms on a B2B CRM assistant (12 tools, ~8k turns/day) — Gateway post. Platform TCO silhouette: support-style AgentCore at 50K sessions/mo ~$791/mo platform + model (decision guide). Model your mix on the AgentCore pricing calculator.
Reproduce this — Clone the artifacts under
examples/architecture-blog-2026/agentcore-harness-strands-1-0/.python3 -m py_compile create_harness_stub.py strands_agents_as_tools_stub.pysyntax-checks the stubs. Ship gates live inmonday-checklist.md.
The three layers (stop confusing the names)
| Layer | What it is | You own | AWS owns |
|---|---|---|---|
| Bedrock Converse | Managed model API | Prompts, tool schemas you pass in | Models, IAM/KMS/CloudTrail on the API |
| AgentCore Runtime | Firecracker microVM host for custom agent code | Container/CodeZip, loop (Strands, LangGraph, …) | Isolation, session lifecycle, platform telemetry hooks |
| AgentCore Harness | Config-driven managed loop on Runtime | Model, instructions, tools, memory config | Orchestration loop, streaming, default memory, export scaffold |
Opinionated take: treat Harness as the paved road for the first production agent. Treat Runtime + Strands as the paved road once topology, hop caps, or A2A show up. Treat DIY LangGraph on ECS as a keep-existing-investment path — not the greenfield default in August 2026.
Two API calls: CreateHarness + InvokeHarness
Assumes Python 3.12+, boto3 ≥ 1.38.0, an IAM execution role, and a supported region. Default model when omitted: Anthropic Claude Sonnet 4.6 on Bedrock (per AWS get-started docs — pin what your account allows).
# CLI path (Node 20+)
npm install -g @aws/agentcore
agentcore create --name ops-assistant --model-provider bedrock
agentcore deploy
agentcore invoke --harness ops-assistant --session-id "$(uuidgen)" \
"How do we handle an ECS service stuck in DRAINING?"# Control plane + data plane sketch — see create_harness_stub.py in the artifact folder
# boto3 >= 1.38.0; runtimeSessionId must be at least 33 characters
import boto3, uuid
control = boto3.client("bedrock-agentcore-control", region_name="us-west-2")
created = control.create_harness(
harnessName="ops-assistant",
executionRoleArn="arn:aws:iam::123456789012:role/HarnessExecutionRole",
)
# Poll get_harness until status == READY, then:
client = boto3.client("bedrock-agentcore", region_name="us-west-2")
response = client.invoke_harness(
harnessArn=created["arn"], # use the ARN from get_harness
runtimeSessionId=str(uuid.uuid4()),
messages=[{"role": "user", "content": [{"text": "Summarize the DRAINING runbook."}]}],
)
for event in response["stream"]:
if "contentBlockDelta" in event:
delta = event["contentBlockDelta"].get("delta", {})
if "text" in delta:
print(delta["text"], end="")Stream events follow the Converse-shaped sequence (messageStart → contentBlock* → messageStop). Spans land under AgentCore / CloudWatch without a custom APM shim — still build dashboards before you need them in an incident.
Mid-session provider switching (when enabled for your harness/providers) preserves conversation state by rebuilding history into the target provider’s message format. Use it for cost or capability shifts mid-thread — not as an excuse to skip evals when the model family changes.
Harness vs Runtime vs DIY — pick deliberately
Full matrix: harness-vs-runtime-vs-strands.md.
| Dimension | Harness | Runtime + Strands | DIY LangGraph / CrewAI |
|---|---|---|---|
| Ownership | Config | Your code + AWS host | Your loop + usually your host packing |
| Multi-agent | Export when needed | Native primitives + A2A | Bring your own supervisor |
| First agent | Minutes | Hours–days | Days–weeks |
| When NOT to | Hard DAG / multi-team A2A | Thin FAQ Harness covers | Greenfield with no existing graph |
What broke — Week of a support-bot pilot (pre-Harness-export discipline). Team enabled Browser on the default tool set “for research.” Conversational turns that only needed CRM Gateway tools still spun Browser sessions. Platform compute tracked roughly 3× the prior Runtime-shaped baseline until Browser was gated per intent. Detection: CloudWatch tool mix + AgentCore cost lines; fix: default Browser off, Policy on write tools, golden evals that fail if Browser fires on status-only intents.
Graduate with export — do not rebuild the platform
When configuration cannot express the topology, export Harness to Strands-based Python and host on AgentCore Runtime (or elsewhere). AWS positions this as config-to-code translation: same Memory, Gateway, Identity, and observability primitives — not a second architecture. Claude Agent SDK export is on the roadmap; Strands is the supported target today (export docs).
Opinionated take: export early if you already know you need Graph edges or Agents-as-Tools hop caps. Stay on Harness if you are still discovering tools and prompts — exporting every day is thrash.
Strands 1.0 primitives — comparison table
Names below match Strands multi-agent docs (Agents-as-Tools, Graph, Swarm, Workflow). Third-party posts sometimes invent PipelineAgent class names — prefer the SDK names in code reviews.
| Primitive | Shape | Determinism | Best for | When NOT to |
|---|---|---|---|---|
| Agents-as-Tools | Orchestrator calls specialists as tools | Medium | Hierarchical supervisors; expensive planner + cheap specialists | Fixed audit step order |
| Graph | DAG/cyclic nodes via GraphBuilder | High | Compliance, review, nested Swarm-in-Graph | Open-ended brainstorming |
| Swarm | Peer handoffs + shared memory | Low–medium | Exploration, peer review | Unbounded handoffs; ungated writes |
| Workflow | Code-defined sequential/parallel tasks | Highest | Validation chains, batch transforms | Free-form chat routing |
# strands-agents >= 1.x — Agents-as-Tools (see strands_agents_as_tools_stub.py)
from strands import Agent
runbook_agent = Agent(system_prompt="Answer only from ops runbook context.")
triage_agent = Agent(system_prompt="Classify severity; do not invent metrics.")
orchestrator = Agent(
system_prompt="Route runbook questions to runbook_agent; severity to triage_agent.",
tools=[
runbook_agent.as_tool(name="runbook_agent", description="Ops procedures."),
triage_agent.as_tool(name="triage_agent", description="Incident triage."),
],
)For a commerce-shaped supervisor with Gateway Policy on refunds, use the longer sample in eCommerce AgentCore agents — same primitives, product-specific tools.
A2A covers cross-team or cross-cloud specialists with signed identity and scoped tools. Prefer in-process Agents-as-Tools when one team owns the Runtime; prefer A2A when ownership is split.
Grounding that ships today (AWS Context is not GA)
Summit messaging bundled AWS Context (org knowledge graph) with Harness. Status check as of August 2026: AWS still describes Context as Coming soon (Context intelligence blog). Do not write production code against APIs that are not public.
What does ship for grounding:
| Option | Status | Use now? |
|---|---|---|
| Managed Knowledge Base (AgentCore) | GA Jun 17, 2026 | Yes — connectors + agentic retriever via Gateway |
| Classic Bedrock Knowledge Bases | GA | Yes if already invested; dual-run carefully |
| AgentCore Memory | GA | Yes — conversation/user state, not docs |
| AgentCore Web Search | GA | Yes — live public facts inside your boundary |
| AWS Context | Coming soon | No — roadmap seam only |
Full matrix: grounding-status-matrix.md.
The agentic retriever on Managed KB decomposes multi-hop questions (runbooks + postmortems + escalation paths) instead of a single vector hit. That is the production substitute for “wait for Context” on unstructured estates.
Observability and A/B — ship with a baseline
Harness and Runtime emit OpenTelemetry-compatible spans into CloudWatch. A/B testing is GA and can split traffic across agent versions even outside AgentCore Runtime (release notes).
Do not A/B prompt tweaks until you have a golden suite. Statistical winners on a vague task_completion_rate are how teams ship polite hallucinations.
Reference architecture
User / IdP JWT
→ AgentCore Identity
→ Harness OR Runtime (Strands orchestrator)
├─ Agents-as-Tools / Graph / Swarm (Runtime path)
├─ AgentCore Memory (session + long-term)
└─ AgentCore Gateway
├─ MCP / OpenAPI / Lambda tools (+ Policy)
├─ Managed Knowledge Base (GA)
└─ Web Search (optional)
→ Observability (OTEL → CloudWatch) + Evaluations / A/BAWS Context (coming soon) would sit beside Managed KB as an org graph — design the MCP/tool seam; do not block the diagram on it.
What to Do This Week
- Stand up one Harness in non-prod (
agentcore createor CreateHarness); confirm spans. - Attach one real Gateway tool (read-only first); Identity brokers secrets.
- Connect Managed Knowledge Base to an S3 prefix of runbooks — not AWS Context.
- Write 10–20 golden tasks; fail the suite if Browser fires on status-only intents.
- If you need multi-agent topology, export to Strands and cap specialist hops — see
monday-checklist.md. - Model platform + tokens on the AgentCore pricing calculator, then book a Bedrock agent architecture review.
What This Post Doesn’t Cover
- Full AgentCore pricing line items — 12-components pricing post and the calculator.
- Classic supervisor + Lambda patterns — historical only; supervisor post with lifecycle notice.
- Hands-on AWS Context APIs — not GA as of this publish date; re-check docs before you assume launch.
- Region-by-region SKU matrices — verify AgentCore regions in your account.
- HIPAA/PCI control mapping for agents — separate compliance engagement; do not treat Gateway Policy alone as a BAA story.
Need a Harness → Strands graduation plan for an existing demo agent? Start with Generative AI on AWS or contact us.
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.




