Solution Design & Architecture·Task 1.4·Bloom: evaluate·Difficulty 4/5·10 min read·Updated 2026-07-14

Assigning Work by Deterministic Guarantee, Not Convenience (CCAR-P)

Design multi-agent systems and orchestration strategies

SUBy Solomon UdohReviewed by Solomon UdohAI-assisted · human-reviewed
In short
Subagents provide weaker deterministic guarantees than server-side code because their reasoning can vary run to run. The highest-consequence step in a multi-agent system, such as a compliance check or financial approval, should not be assigned the weakest guarantee. Assigning it to a subagent because an agent was already spawning subagents is a convenience-driven decision, not a risk-driven one; the fix is to move the check to deterministic code the orchestrator calls.

Match the guarantee to the consequence

The most senior multi-agent judgement is that the strength of the guarantee a step runs on should match the consequence of getting it wrong. The Claude Certified Architect - Professional (CCAR-P) exam treats this as an evaluate-level skill because it is where a system that decomposes and synthesises correctly can still be indefensibly designed: the highest-consequence step is quietly assigned the weakest guarantee. Subagents reason probabilistically and can vary run to run, so they offer a weaker deterministic guarantee than server-side code, which returns the same result for the same input every time. Assigning a compliance check or a financial approval to a subagent inverts the pattern that should hold.

The principle is simple to state and easy to violate: the step whose failure costs the most should run on the strongest guarantee available, not the weakest. When the highest-consequence check in a system is the one thing running on a subagent's variable reasoning, the design has assigned risk backwards.

The course states the same idea as a blunt contrast: a rule that must be right every time has been handed to a system that is right most of the time. A model, or a subagent, handles the clean cases correctly, which is exactly what a demo shows, and the gap between "most of the time" and "every time" is where the misroutes live. Those failures rarely announce themselves. The logging that would flag a broken deterministic check does not record the choices a model makes inside a single request, so a drifted rule stays invisible until an audit or an angry user surfaces it, often months later. That is why a rule the business is counting on must be tested, watched, and owned in deterministic code, not assumed to be handled because the model got the easy inputs right.

Assigning work by deterministic guarantee
A design principle that the highest-consequence step in a multi-agent system, such as a compliance check or financial approval, should run on the strongest available guarantee, deterministic server-side code, not on a subagent whose reasoning varies run to run. Assigning it to a subagent for convenience, because subagents were already being spawned, is a risk-management error.

The convenience trap

The reason this error is common is that it feels natural. If a system is already spawning subagents for other work, adding one more to handle the compliance check looks like consistency, not risk. But that is a convenience-driven decision, not a risk-driven one: the check was assigned to a subagent because subagents were on hand, not because a subagent was the right place for a high-consequence guarantee. The question a risk-driven design asks is not "what is easy to add here?" but "what guarantee does this step require, and where do I get it?" For a compliance check, the answer is deterministic code, regardless of what the rest of the system happens to be built from.

Stacking subagents does not create determinism

When a first compliance subagent proves unreliable, the tempting fix is to add a second subagent to double-check it. This does not work, and understanding why is the crux. Two probabilistic checkers still produce a probabilistic guarantee; layering variable reasoning on top of variable reasoning does not sum to certainty. The unreliability is a property of running the check on a subagent at all, not of having only one of them. The correct fix moves the check out of the probabilistic layer entirely, into deterministic server-side code the orchestrator calls, where the guarantee is explicit and repeatable. More oversight of the wrong kind is not a substitute for the right kind of guarantee.

Moving the high-consequence check to a deterministic guarantee
Loading diagram...
The highest-consequence step belongs on the strongest guarantee. Stacking subagents keeps the guarantee probabilistic; moving to deterministic code fixes it.

Not everything belongs in a subagent

The broader lesson is that an existing multi-agent system is not a reason to add every new requirement as another subagent. When a new high-consequence requirement arrives, compliance, financial approval, a safety gate, the assignment decision starts from the guarantee it needs, and often the answer is deterministic code the orchestrator invokes, not a new subagent. The presence of a subagent architecture is a fact about the system, not a mandate to route all future work through subagents. Risk-driven assignment keeps the strongest guarantees on the highest-consequence steps, wherever in the system those steps land.

deterministic code
same result every time, the strongest guarantee
subagent
variable run-to-run reasoning, weaker guarantee
risk-driven
assign by consequence, not by what is convenient

What the CCAR-P exam trips candidates on

The exam tests two traps. The first is adding a second compliance-checking subagent to double-check a first subagent's compliance verdict, instead of moving the check to deterministic code. A scenario will present stacking subagents as the fix for unreliability, and the credited answer recognises that two probabilistic checkers still give a probabilistic guarantee and moves the check into deterministic code.

The second is assuming that because a multi-agent system already exists, every new requirement, including compliance, should be added as another subagent. A scenario will treat the subagent architecture as a reason to route a high-consequence check through a subagent, and the reliable reading starts from the guarantee the check requires and assigns it to deterministic code the orchestrator calls.

Worked example

A multi-agent loan-processing system already uses subagents for document extraction and summarisation. A new requirement adds a regulatory compliance check that must pass before a loan is approved. The team's first compliance subagent gives inconsistent verdicts, so they propose adding a second compliance subagent to cross-check it. Evaluate the design.

Name the consequence and the guarantee it needs. A regulatory compliance check that gates loan approval is among the highest-consequence steps in the system: a wrong pass has legal and financial exposure that a wrong extraction does not. Such a step needs the strongest available guarantee, a deterministic result that is the same for the same input every time. A subagent cannot supply that, because its reasoning varies run to run, which is exactly why the first compliance subagent gives inconsistent verdicts.

The proposed fix, a second compliance subagent to cross-check the first, does not address the root problem. Two probabilistic checkers still produce a probabilistic guarantee; stacking variable reasoning on variable reasoning does not create determinism. The inconsistency is a property of running a high-consequence check on a subagent at all, not of having only one subagent. Adding oversight of the same weak kind is the convenience trap, reaching for another subagent because subagents were already there, rather than asking what guarantee the step requires.

The correct design moves the compliance check into deterministic server-side code that the orchestrator calls, where the regulatory rules are expressed explicitly and the result is repeatable and auditable. The extraction and summarisation subagents can remain, because their consequence is lower and their variance is tolerable. The principle is to assign the highest-consequence step to the strongest guarantee, deterministic code, regardless of the fact that the surrounding system is built from subagents.

Common misreadings to avoid

Misconception

If a compliance subagent is unreliable, adding a second one to check it will make the result trustworthy.

What's actually true

Two probabilistic checkers still yield a probabilistic guarantee; stacking subagents does not create determinism. The unreliability comes from running the check on a subagent at all. The fix is to move the check to deterministic server-side code, not to add more subagent oversight.

Misconception

Since the system already uses subagents, new requirements like compliance should be added as subagents too.

What's actually true

An existing subagent architecture is not a mandate to route every new requirement through a subagent. Assignment starts from the guarantee the step needs. High-consequence checks belong in deterministic code the orchestrator calls, wherever the rest of the system is built from subagents.

How this shows up on the exam

Domain 1 questions on this knowledge point present a multi-agent system with a high-consequence step and ask where that step should run or how to fix its unreliability. The reliable reading assigns the highest-consequence step to the strongest guarantee, deterministic server-side code, rejects stacking subagents as a substitute for determinism, and refuses the assumption that an existing subagent architecture should absorb every new requirement.

This principle builds on failure-boundary design in orchestration and shares its instinct with recognising work that does not belong with Claude, which moves deterministic work out of the model. The human-gate and error-cost reasoning connects to automation vs augmentation.

Check your understanding

A multi-agent trading-support system spawns subagents for research and summarisation. A new rule requires that no trade above a threshold executes without passing a fixed regulatory eligibility check. Where should the eligibility check run, and why?

People also ask

Why should compliance checks run in code, not a subagent?
A compliance check is high-consequence and must be reliable every time. Subagents give weaker guarantees because their reasoning varies run to run, so the highest-consequence step should run in deterministic server-side code where the guarantee is explicit.
What guarantee does a subagent provide versus server-side code?
Deterministic code returns the same result for the same input every time. A subagent reasons probabilistically and can vary between runs, a weaker guarantee unsuitable for steps requiring certainty.
Why is adding a second compliance subagent the wrong fix?
Two probabilistic checkers still give a probabilistic guarantee; stacking subagents does not create determinism. The fix is to move the check to deterministic code, not to add more subagent oversight.

Watch and learn

Official Anthropic Academy lessons first, then hand-picked walkthroughs. Videos load only when you press play.

No videos curated for this concept yet

We are still curating the best official and community videos for this topic.

Official prep for this domain

Anthropic's own free prep module for this part of the syllabus, on the official prep course. Free with an Anthropic Academy sign-in.

References & primary sources

Adaptive study

Master this concept with Archie

Practice it inside an adaptive study session. Archie, your Socratic AI tutor, tracks your mastery with Bayesian Knowledge Tracing and schedules the perfect next review.

Start studying