The Model-Driven Approach

The model-driven approach is not just how Strands works — it's a stance on where intelligence should live in an agent. Put it in the model's reasoning, not in developer-authored control flow. This post unpacks why that stance is increasingly the right one, and where it isn't.

The last post named the model-driven approach as Strands’s defining philosophy. This post goes deep on it, because it’s the concept that everything else in Strands follows from — and it’s a genuinely different way of thinking about agents than the workflow-first frameworks. Understanding why model-driven works (and its limits) is what lets you use Strands well rather than fighting its grain.

The core stance: intelligence in the model, not the code

The model-driven approach makes a claim about where the agent’s intelligence should live: in the model’s reasoning, not in the developer’s control flow. Consider what an agent has to do — understand a goal, plan an approach, decide which tools to use and when, adapt when things don’t go as expected, and know when it’s done. There are two places that intelligence can sit:

Strands bets on the second. The system prompt states the goal, the tools provide capabilities, and the model does the reasoning — deciding at each step what to do next. This is a deliberate philosophical position: the model is now capable enough to be the planner, so let it plan. The developer’s job shifts from authoring the workflow to equipping the model (good prompt, good tools) and observing and bounding the loop.

Why this ages well

The model-driven approach is a bet on a trajectory, and the trajectory is favorable, which is the strongest argument for it:

So the model-driven approach isn’t just simpler today — it’s positioned for a world of increasingly capable models, where trusting the model’s planning becomes more correct over time, not less. This is the deepest argument for Strands’s design: it’s built for where models are going, not just where they are.

What the developer does instead

If the model drives, what’s left for the developer? Plenty — the work shifts rather than disappears:

The shift is from directing the agent to equipping and supervising it — like the difference between micromanaging and delegating to a capable person: you give them the goal, the tools, and the boundaries, then let them work and watch the results. That’s the model-driven developer’s role.

Where model-driven has limits

Honesty requires the limits, because model-driven isn’t universally right — it’s a trade-off (the autonomy-vs-control tension):

The practical framing: model-driven for tasks that benefit from the model’s own planning and tolerate its variability; structured/workflow-first for tasks needing guaranteed flow and predictability. Strands is the former; it’s an excellent fit when you want to trust a capable model, and a poor one when you need to guarantee a process. Many real systems mix both — a structured backbone with model-driven agents inside bounded steps (the composition pattern from the workflow series) — and Strands can be a model-driven component within a larger structure.

The approach in one idea

The model-driven approach is the stance that an agent’s intelligence belongs in the model’s reasoning, not the developer’s control flow — so you equip the model (prompt, tools), let it drive the loop, and observe and bound it rather than pre-scripting it. It ages well because models keep improving at planning, making minimal scaffolding increasingly sufficient and elaborate orchestration increasingly constraining. Its limit is when you need guaranteed structure or the model isn’t capable enough. This philosophy is the soul of Strands, and every subsequent concept — the loop, tools, models, multi-agent — is an expression of it. The next post makes it concrete with the agent loop itself.

Key takeaways

Further reading

Sources & References