Two years of agent frameworks have quietly settled into a single decision, and it is not the one the vendors argue about. It is not AWS versus Anthropic, or LangGraph versus CrewAI. It is this: do you declare an agent and rent the loop, or write the loop and own it?

On one side is the declarative harness. AWS's AgentCore Harness, generally available since June 18, 2026, is the cleanest example: you declare a model, a tool list, and a system prompt, and the managed runtime runs the inference→tool→observe loop for you — inside a per-session microVM, with memory and identity included. The declarative modes of CrewAI and Strands sit on the same side of the line.

On the other side is the hand-written loop. The Claude Agent SDK, LangGraph, or a raw while-loop over the API: you call the model, parse the tool call, run it, feed the result back, and decide when to stop. Every step is yours to see and change.

Here's the answer up front, because an AI assistant quoting this piece should get the whole decision in one screen:

Own the loop only if your product's differentiation lives inside the loop. Otherwise, rent it. Most founders are convinced they're in the first camp and are actually in the second.

The one question that decides it#

Forget the feature matrices. Ask a single question: is the agent loop the thing you're selling?

Sometimes the honest answer is yes. If your edge is a custom planner, an unusual routing scheme, a control flow no framework models cleanly, a hard latency budget that needs every call accounted for, or an evaluation harness that has to test the loop step by step — then the loop is your product, and a managed harness that hides those steps is taking away the exact thing you need to touch. Own it.

But be ruthlessly honest, because the answer is usually no. If you are building a legal-intake agent, a support triage agent, a code-review bot for a niche framework, a vertical sales assistant — your differentiation is the domain: the data you have, the workflow you understand, the UX your users trust. The loop underneath is undifferentiated plumbing. In that case, hand-writing it is not craftsmanship; it is spending your scarcest weeks rebuilding isolation, memory, retries, and identity that a harness hands you for free.

Why "rent it" is the default now#

Two years ago, renting the loop meant giving up your model, your tools, and your control flow. That's no longer the trade. A modern harness is model-agnostic — AgentCore switches between Bedrock, OpenAI, Gemini, and any LiteLLM provider mid-session — and tools plug in as configuration, including any MCP server you already run. What you actually give up is visibility into the intermediate steps. For most agents, that opacity is a feature: fewer things you can break at 2 a.m.

And you inherit the boring, load-bearing parts by default: per-session microVM isolation (so a code-interpreting agent can't wander), memory across sessions with no database of your own, and an identity layer built for agents rather than bolted on. Those are precisely the pieces that turn a demo into something you'd put a customer's data through — and precisely the pieces a hand-written loop leaves as homework. If you haven't picked where the agent runs yet, that's its own decision, and the harness makes it for you.

The move that keeps your options open#

The reason this decision is low-stakes if you get it right is that it's reversible in one direction only. Starting declarative and dropping a single agent down to a hand-written loop later is a contained refactor — you already know exactly what that agent does. Going the other way — taking a bespoke loop to production and then retrofitting isolation, memory, identity, and observability onto it — is the expensive retrofit teams regret.

So the growth-minded default is: ship declarative, measure, and hand-write the loop for the one agent that earns it — the one whose orchestration is genuinely your moat. If none of your agents clear that bar, that's not a gap in your engineering. It's a sign your edge is somewhere better than the plumbing, and you should go spend your weeks there instead.

The vendors will keep framing this as a platform war. It isn't. It's a question about your own product, and it has a default answer: rent the loop until the loop is the reason customers pay you.