The Preview Frontier
Harness, Policy, Evaluations, Registry, Payments, Optimization
- Explain what each newer AgentCore module does — Harness, Policy, Evaluations, Registry, Payments, Optimization — and how it fits the original seven
- Invoke a Harness managed agent loop conceptually: model + system prompt + tools inline in a single API call, running in an isolated microVM with shell and filesystem
- Describe how AgentCore Policy uses deterministic Cedar / natural-language rules to intercept every Gateway tool call before execution
- Distinguish AgentCore Evaluations (was it correct/helpful/safe) from Observability (what happened/how fast/what cost), and how Evaluations rides the same OTEL traces
- Recognize Registry (govern + discover agents/MCP servers/tools) and Payments (x402 microtransactions via Coinbase CDP / Stripe-Privy) as preview building blocks
- Apply the preview discipline: teach the concept, link the live status page, and never ship a preview feature as production-ready without re-checking
AgentCore did not stop at the original seven GA services. This lesson surveys the newer modules that AWS keeps adding to the catalog — Harness, Policy (Cedar), Evaluations, Registry, Payments (x402), and Optimization — so the course truly misses nothing. The headline discipline: most of these are preview, their status moves week to week, so you learn the concept and the live status page rather than treating any of it as production-ready.
- 1Beyond the seven: a catalog that keeps growing
- 2Harness: a managed agent loop in one API call
- 3Policy: deterministic Cedar rules that intercept tool calls
- 4Evaluations: was it correct, helpful, and safe?
- 5Registry and Payments: discovering and paying across an agent fleet
- 6Optimization, and the preview discipline that ties it all together
Beyond the seven: a catalog that keeps growing
Almost every July–October 2025 blog you will read describes AgentCore as "seven services": Runtime, Memory, Gateway, Identity, Browser, Code Interpreter, Observability. All seven reached GA (the platform went GA on October 13 2025 — [VOLATILE], confirm on AWS What's New). That list is no longer complete.
Since GA, AWS has been steadily adding modules to the live "Core services" table on the overview page. As of writing, the newer entries are:
| Module | One-liner | Status [VOLATILE] |
|---|---|---|
| AgentCore Harness | A managed agent loop — define and invoke an agent in a single API call (model + system prompt + tools inline) | CLI config-based harness path labeled preview |
| AgentCore Policy | Deterministic guardrails: author rules in natural language or Cedar; intercepts every Gateway tool call | Now in the first-party Core services table; GA-vs-preview status [VOLATILE] — confirm on AWS What's New |
| AgentCore Evaluations | Purpose-built agent evaluation service; results flow into Observability | GA — March 31 2026 (13 built-in evaluators, online + on-demand, 9 launch regions) |
| AgentCore Registry | Centralized catalog to discover and govern agents, MCP servers, tools | In the Core services table; status [VOLATILE] — verify live |
| AgentCore Payments | Microtransaction payments for agents via the x402 protocol | Listed as preview |
| AgentCore Optimization | Recommendations + A/B tests for tuning agents | "Recommendations" free during public preview |
The reason this lesson exists is twofold. First, completeness: a course that stops at seven services is already out of date. Second — and more important — discipline. These modules are at different maturity levels, and several are pure preview. The single source of truth is the live docs table, not this lesson and not any blog. Bookmark it.
Watch out
The "7 services" mental model is stale
If a colleague insists AgentCore is exactly seven services, they learned it in mid-2025. Always reconcile against the live overview page (what-is-bedrock-agentcore.html). Harness, Registry, Payments, and Optimization remain preview and must not be designed into a production architecture without a fresh status check.
Harness: a managed agent loop in one API call
Runtime hosts an agent you wrote and packaged. Harness inverts that: you describe the agent declaratively and let AWS run the loop. In a single API call you specify the model, the system prompt, and the tools inline — Harness then handles orchestration, tool execution, memory, and response generation for you. There is no container to build and no entrypoint to wire.
Think of it as the fastest path from idea to a working agent: the model-as-config idea pushed all the way to its limit. Conceptually the request looks like this:
# Conceptual shape — define model + system prompt + tools inline,
# Harness runs the agent loop. Verify exact API/params on the live docs.
response = client.invoke_harness(
model="<a supported Bedrock model id>", # [VOLATILE] — verify live
system_prompt="You are a research assistant. Cite every source.",
tools=[
{"name": "search_web", "description": "...", "input_schema": {...}},
{"name": "read_url", "description": "...", "input_schema": {...}},
],
input="Summarize the latest AgentCore pricing changes.",
)Crucially, Harness keeps AgentCore's headline isolation guarantee: each session runs in its own isolated microVM with filesystem and shell access, the same security boundary you get in Runtime. So an agent can write a file, run a shell command, and reason over the result — all inside an ephemeral sandbox that is torn down when the session ends.
The trade-off versus Runtime is the usual managed-vs-modular one: Harness gives you speed and zero plumbing, but you give up the control of bringing your own framework and container. The CLI config-based harness path is labeled preview as of writing.
Key insight
Harness vs Runtime: who owns the loop?
In Runtime, your code owns the agent loop — you wrap it with BedrockAgentCoreApp and @app.entrypoint, and AWS just hosts the container. In Harness, AWS owns the loop and you only supply config (model, prompt, tools). Same microVM isolation in both; opposite ends of the control spectrum.
Policy: deterministic Cedar rules that intercept tool calls
LLM guardrails are probabilistic — they reduce bad outputs but cannot guarantee them. AgentCore Policy adds a deterministic control plane on top. You author fine-grained rules — in natural language or in Cedar, AWS's open-source policy language — and Policy integrates with Gateway to intercept every tool call before it executes. A non-deterministic agent proposes an action; a deterministic policy decides whether it is allowed.
This is the same interception model you already know from Gateway: tools are namespaced per target with the triple-underscore prefix (${target_name}___${tool_name}), and the policy engine sits in front of that call. A Cedar rule reads like access-control logic:
// Conceptual Cedar rule — verify exact entity/schema shape on the live docs.
// Permit reads, but forbid any refund tool above a threshold.
permit (
principal,
action == Action::"InvokeTool",
resource
) when {
resource.tool like "orders___get_*"
};
forbid (
principal,
action == Action::"InvokeTool",
resource
) when {
resource.tool == "payments___issue_refund" &&
context.amount > 100
};Because the rule is deterministic and evaluated before execution, you can prove an agent can never call payments___issue_refund for more than $100 — something no system prompt or LLM guardrail can promise.
Status is volatile. Policy now appears in the first-party Core services table on the overview page (verified June 2026), but its exact GA-vs-preview status and GA date are still [VOLATILE] — confirm on the live overview/pricing pages and AWS What's New before relying on it in production. Pricing is billed per authorization request (plus a per-token charge for natural-language authoring) — [VOLATILE], verify the live pricing page.
Note
Policy is also a governance topic
Cedar-based Policy is covered again from the governance angle (alongside Bedrock Guardrails and IAM) in the security module. Here the framing is catalog-completeness; there it is defense-in-depth. Same module, two lenses: probabilistic guardrails reduce bad outputs, deterministic Policy forbids disallowed actions outright.
Evaluations: was it correct, helpful, and safe?
Observability tells you what happened — latency, cost, the trace of tool calls, where it failed. It does not tell you whether the answer was any good. AgentCore Evaluations is the purpose-built service that closes that gap: automated, consistent, data-driven assessment of task execution, edge-case handling, and output reliability.
The key architectural fact: Evaluations rides the same OTEL traces as Observability. Both read OpenTelemetry traces with GenAI semantic conventions (emitted by frameworks like Strands and LangGraph). That means online evaluation can sample a configurable percentage of production traces and score them directly in the Observability dashboard — no code changes to your agent.
It ships with 13 built-in evaluators plus trajectory matchers and custom evaluators:
Session-level: Goal Success Rate
Trace-level: Helpfulness, Correctness, Coherence, Conciseness,
Faithfulness, Harmfulness, Instruction Following,
Response Relevance, Context Relevance, Refusal, Stereotyping
Tool-level: Tool Selection Accuracy, Tool Parameter Accuracy
Trajectory: Exact Order / In-Order / Any Order Match (+ custom)The clean mental split to carry away:
Observability = what happened / how fast / what cost / where it failed. Evaluation = was it correct / helpful / safe.
Evaluations launched in public preview at re:Invent 2025 and reached GA on March 31 2026 — online + on-demand evaluation, 13 built-in evaluators, custom evaluators, Observability integration, and nine launch regions ([VOLATILE], confirm on AWS What's New). Built-in evaluators are billed per input/output token; custom evaluators per 1k evals (verify the live pricing page).
Tip
Online evaluation needs traces flowing first
Evaluations consumes OTEL/OpenInference traces, so the prerequisite is real Observability: your framework must emit GenAI-convention traces (e.g. strands-agents[otel]) and you must have Transaction Search enabled. No traces, nothing to evaluate. Wire up Observability before you reach for Evaluations.
Registry and Payments: discovering and paying across an agent fleet
The last cluster of newer modules addresses what happens once an org has many agents and tools.
AgentCore Registry is a centralized catalog for discovering and governing agents, MCP servers, tools, skills, and custom resources across an organization. It adds a governed publish → review → approve workflow and hybrid semantic + keyword search, so a builder can find an approved, vetted tool instead of re-implementing it — and a platform team can gate what gets published. It pairs naturally with Gateway: Gateway is the runtime tool surface, Registry is the catalog and governance layer in front of it. Registry is listed as preview, with a free allotment of records before per-record pricing kicks in ([VOLATILE]).
AgentCore Payments lets agents make microtransaction payments to access paid APIs, MCP servers, and content, using the x402 protocol (HTTP 402 "Payment Required", repurposed for agent-to-service payments). You get wallet integration, configurable spending limits, and observability over what the agent spent. Wallet providers supported as of writing: Coinbase CDP and Stripe (via Privy).
# Conceptual shape — spending limits are the safety primitive for autonomous spend.
# Verify exact API/params and wallet setup on the live docs.
wallet = payments.create_wallet(
provider="coinbase_cdp", # or "stripe_privy"
spending_limit={"amount": 50, "period": "day"},
)
# Agent hits a paid endpoint; x402 negotiates payment within the limit.Payments incurs no AWS charge — it is pass-through to the wallet provider's rates. It is preview. The discipline note bears repeating here especially: do not put an autonomous agent in front of a real wallet on a preview service without a hard, audited spending limit and a fresh status check.
Watch out
Spending limits are not optional
An autonomous, non-deterministic agent with a wallet is a new class of risk. The configurable spending limit is the primitive that bounds blast radius — set it low, scope it per period, and watch the Payments observability. Combine with deterministic Policy (e.g. forbid payment tools above a threshold) for defense in depth.
Optimization, and the preview discipline that ties it all together
AgentCore Optimization rounds out the list: it provides recommendations for tuning agents plus A/B tests to validate changes against real behavior. As of writing, the recommendations are free during public preview; full GA pricing is TBA. Treat it as a feedback loop on top of Evaluations and Observability — measure, get a recommendation, A/B test it, keep what wins.
That brings us to the real lesson, which is not any one module but a discipline for all of them:
- Teach (and build for) the concept, not the version. Harness is a managed loop; Policy is deterministic interception; Evaluations is trace-based scoring. Those concepts are stable. The status, pricing, and exact API are not.
- Link the live status page, every time. The canonical truth is the "Core services" table on
what-is-bedrock-agentcore.htmland the pricing page — not this lesson, not a blog, not your memory. - Frame every volatile fact as "as of writing — verify the live page." Preview-vs-GA status, pricing numbers, GA dates, region lists, and SDK versions all move. Never assert them as timeless facts.
- Hedge or omit the unverified. A module can appear in the live "Core services" table before a What's New post pins down its exact status, pricing, and regions — flag those as volatile, don't bank on them.
- Never ship a preview feature as production-ready. Preview means: API can change, no SLA, may not be in your region, pricing may shift. Prototype on it freely; gate it behind a status check before it touches production traffic.
Production-ready today (GA): Runtime · Memory · Gateway · Identity ·
Browser · Code Interpreter · Observability ·
Evaluations (GA Mar 31 2026)
Moving target (verify live): Harness · Policy · Registry ·
Payments · OptimizationThe builders who get burned are the ones who read one blog, memorized "seven services," and never went back to the live page. Don't be that builder.
Example
What 'verify the live page' looks like in practice
Before you put any of these modules in a design doc: open what-is-bedrock-agentcore.html and confirm the module is still listed and whether it says preview or GA; open the pricing page and confirm the billing dimension and that it is available; check the regions page that it exists in your region. Screenshot the date. That five-minute ritual is the whole discipline.
Try it: Audit the live catalog and pressure-test the preview discipline
Goal: practice the discipline this lesson is really about — verifying status against the live source instead of trusting a snapshot.
-
Reconcile the catalog. Open the live overview page (
what-is-bedrock-agentcore.html) and list every service in the current 'Core services' table. Compare it against the seven GA services plus the six newer modules from this lesson (Harness, Policy, Evaluations, Registry, Payments, Optimization). Note any module that has appeared or changed status since this lesson was written, and record today's date next to your list. -
Check status, region, and price for one preview module. Pick one of Harness, Registry, or Payments. On the overview page, confirm whether it still says preview or GA. On the pricing page (
/bedrock/agentcore/pricing/), find its billing dimension and any free/preview allotment. On the regions page, confirm whether it is available in the region you'd deploy to. Write a two-line 'as of <date>' summary. -
Verify a volatile claim. This lesson reports that AgentCore Policy reached GA around March 2026 from a third-party source. Try to confirm it on a first-party AWS URL (overview or pricing). If you cannot, write down exactly how you'd phrase this in a design doc so it is clearly hedged rather than asserted.
-
Map Evaluations onto Observability. In one short paragraph, explain why Evaluations needs OTEL traces flowing before it can run online evaluation, and which of the 13 built-in evaluators you'd enable first for a customer-support agent (and why).
-
Design a guardrail in two layers. For a hypothetical agent with a Payments wallet, write (a) a one-line spending limit you'd set and (b) a conceptual Cedar/Policy rule that forbids the payment tool above a threshold. Explain why the deterministic Policy rule adds something the spending limit alone does not.
-
Reflect. Which module surprised you most, and which one would you refuse to put in front of production traffic today — and what single check would change your mind? Three sentences.
Key takeaways
- 1AgentCore is no longer just seven services. The newer modules — Harness, Policy, Evaluations, Registry, Payments, Optimization — keep getting added to the live catalog, and most are still preview.
- 2Harness is a managed agent loop: define model + system prompt + tools inline in a single API call and AWS runs orchestration/tools/memory, still inside an isolated microVM with shell and filesystem. The CLI config path is preview.
- 3Policy adds deterministic control: author rules in natural language or Cedar that intercept every Gateway tool call before execution — a guarantee that probabilistic LLM guardrails cannot give. Its GA status is volatile/unverified.
- 4Evaluations answers 'was it correct/helpful/safe' (vs Observability's 'what happened/how fast/what cost'), rides the same OTEL traces, ships 13 built-in evaluators, and can score production traces with no code changes. GA since March 31 2026.
- 5Registry is a governed catalog (publish/review/approve + semantic+keyword search) for agents, MCP servers, and tools; Payments enables agent microtransactions via the x402 protocol with wallet spending limits (Coinbase CDP / Stripe-Privy). Both preview.
- 6Optimization gives tuning recommendations (free in preview) plus A/B tests, closing the loop on Evaluations and Observability.
- 7The discipline: teach the concept, link the live status page, frame every volatile fact as 'verify the live page,' hedge the unverified, and never ship a preview feature as production-ready.
Quiz
Lock in what you learned
Check your understanding
0 / 4 answered
1.A teammate says "AgentCore is seven services" and designs an architecture around AgentCore Payments as if it were GA. What is the most accurate correction?
2.Your agent must NEVER issue a refund above $100, and you need to prove it — not just reduce the odds. Which AgentCore module gives you that guarantee?
3.What is the relationship between AgentCore Evaluations and AgentCore Observability?
4.You read a blog claiming AgentCore Policy reached GA in March 2026. How should you treat this for a production design doc?
Go deeper
Hand-picked sources to keep learning
The canonical source of truth for which modules exist and whether each is preview or GA. Check this first, every time.
Per-module billing dimensions, free allotments, and preview-free notes (Optimization recommendations, Registry records). All numbers are volatile — verify here.
Deep dive on the 13 built-in evaluators, online evaluation on OTEL traces, and the Observability relationship.
Confirms the Oct 13 2025 GA of the original services; use to anchor the GA-vs-preview line. Dates are volatile — confirm here.
Marketing-level overview plus links to FAQs; quick way to spot newly announced modules.
Reference code for the newer modules as they ship — pull exact API shapes from here rather than trusting a snippet.