CCAR-F · Agentic Architecture
Coordinator and subagents
In a multi-agent system, a coordinator receives the task, splits it and delegates each part to a subagent. Each subagent works in its own context and returns a result to the coordinator.
Hub-and-spoke
The pattern is hub-and-spoke: everything goes through the coordinator. Subagents don’t talk to each other and don’t see what the others found. That’s why:
- if two subagents bring back conflicting data, the conflict is resolved in the coordinator during aggregation, the only place where both results are visible;
- asking each subagent to “resolve conflicts with the other one” doesn’t work, because it doesn’t have that information.
How to resolve a conflict
The coordinator compares sources and dates: sometimes the difference is only temporal (two measurements from different years) and there is no contradiction. If both sources are credible and the figures clash, it annotates the conflict with the source of each value, without arbitrarily picking one. What you should never do:
- keep one value without saying there was another;
- average them, because that invents a number no source states;
- search again “until it matches”, because that is looking for the answer you already want;
- hide the contradiction.
How it splits the work
The coordinator doesn’t have to send everything through the full pipeline: it analyzes the query and picks which subagents are needed. A simple question may need just one; a broad research task, several with different subtopics or source types so they don’t duplicate work.
The opposite risk is an overly narrow decomposition: if the coordinator splits a broad topic into a few obvious subtopics, coverage ends up incomplete even if each subagent does its part well. That’s why the coordinator reviews the synthesis, looks for gaps and re-delegates with targeted requests until coverage is sufficient.
If a subagent returns the obvious
When a subagent keeps returning the most generic result, the problem is usually what the coordinator passed it. When re-delegating, the request must include what has already been found and which aspect is missing.
In the exam
Ask yourself who has the information to solve the problem. It is almost always the coordinator, not the subagent.
Quick question
A practice exam question on this domain. It counts towards your progress.
An insurance company wants better test coverage on a fifteen-year-old Java claims system before migrating it to a new platform next year. The code has no up-to-date documentation, and nobody on the current team knows the full dependency graph.
The team gave an agent the open-ended task of adding tests and let it use dynamic decomposition: it explores the codebase, decides which modules to test and updates its plan as it learns more. It has read access to the repository and can run the test suite in a sandbox.
After many iterations the agent keeps discovering new modules and dependencies, keeps expanding its plan and never reaches a finished state. The logs show it rewriting its plan almost every turn, with no notion of what "done" would look like.
What is the best fix?