What you will be able to do
- Tell the two boundary placement failures apart by their symptoms: handoff compression overhead, and context window growth inside one agent
- Explain why boundaries drawn through a cohesive task cause handoff overhead, and why boundaries that hold several unrelated sub-domains together cause context growth
- Use per-agent trace data to find which agent or handoff is the problem, then reason about which way the boundary should move
Key concept
Boundary placement trade-off — Each agent boundary is a place where context gets compressed into a handoff, and each merged responsibility is context one agent has to carry. Draw boundaries too finely and the system spends its effort on handoffs. Draw them too coarsely and a single agent's context window grows past what it can manage.
1.Two symptoms, two opposite boundary errors
In this objective, someone has already decided where the agent boundaries go, and the system is now misbehaving. You won't be asked to design the system from scratch. You'll be asked to read the symptom and name the placement error behind it. There are two symptoms to recognise, and they point in opposite directions. In the first, the system spends too much of its effort on handoffs: agents keep summarising work for each other, details get lost along the way, and the next agent has to ask again or redo the work. In the second, one agent's context window keeps growing until it is hard to manage, and that agent's decisions get worse as it grows.
Databricks describes agent design as a continuum that runs from deterministic chains, through single-agent systems, to multi-agent architectures, and its advice is to start simple and add agentic complexity only when you truly need it. That advice is also the diagnostic tool. A boundary is worth its cost when the work on each side needs a genuinely different context. Where that isn't true, the boundary just adds a handoff. Where it is true and no boundary was drawn, one agent ends up holding everything. A coordinating layer such as Supervisor Agent manages delegation and then combines what comes back. That combining step is where handoffs are compressed, so every additional subagent adds another place where compression happens.
Checkpoint 1 of 7· Check yourself
According to the Databricks design-pattern guidance, when should you introduce more complex agentic behaviour such as additional agents?
Databricks advises starting simple and adding agentic complexity only when it is truly needed, because each added layer carries cost. That is why a boundary that does not separate genuinely different context is just another handoff.
“Introduce more complex agentic behaviors when you truly need them for better flexibility or model-driven decisions.”Source: docs.databricks.com
2.Under-split: one agent carrying several domains' context
Start with context growth. If one agent owns a large or cross-functional scope, everything that scope needs lands in its context window: tool definitions for every domain, instructions for every domain, and every tool result from every domain. The Databricks design-patterns page names this limit of the single-agent pattern directly. When an application spans radically different sub-domains, such as finance, devops and marketing, a single agent can become unwieldy or overloaded with functionality requirements. The Databricks blog on supervisor architecture describes the same failure from experience in production. An agent with too many tools makes poor decisions about which one to call next, and its context grows too complex for a single agent to keep track of.
So the diagnostic signature of an under-split boundary looks like this: one agent's prompt grows with unrelated tools and instructions; its transcript fills with results from domains that have nothing to do with each other; and its tool choices degrade as its scope widens. The other agents may be fine. The failure sits inside one boundary that encloses too much. The fix moves in one direction, toward a split along the line where the context changes, so that each resulting agent holds the context of one coherent area.
Checkpoint 2 of 7· Check yourself
A single 'operations assistant' agent handles finance reconciliation, devops incident triage and marketing analytics. Its context fills with unrelated tool output, and it increasingly calls the wrong tool. Which boundary failure is this?
One agent spanning unrelated domains is the case where Databricks says a single agent becomes unwieldy. The symptom is growth inside one agent, not overhead between agents.
“a single agent can become unwieldy or overloaded with functionality requirements”Source: docs.databricks.com
Checkpoint 3 of 7· Exam question
A team building a customer-support multi-agent system splits the workflow into six narrow sub-agents: one to parse the ticket, one to classify sentiment, one to look up account details, one to check entitlement, one to draft a reply, and one to format the final message. Each sub-agent passes a summarized handoff to the next. During testing, the team notices that specific numeric details (such as exact renewal dates) captured early in the pipeline are frequently missing or altered by the time the final agent drafts a reply, and end-to-end latency has grown substantially due to the number of hops. Which boundary placement failure is occurring?
Correct answer: A — Excessive handoff compression overhead from splitting the task into too many narrow sub-agents
- A. Correct. Six sequential sub-agents each performing a single fine-grained step means the request passes through many summarization hops. Each summarization step risks dropping or distorting detail, and the sheer number of round trips inflates latency — the signature pattern of over-decomposing a task into too many agent boundaries.
- B. Incorrect. Context window growth within a single agent happens when one agent accumulates too much responsibility and history, causing its own context to balloon. Here the opposite is happening: the task is split across many separate agents, not concentrated in one.
- C. Incorrect. Nothing in the scenario points to a retrieval component or hallucination; the described symptom is detail loss and latency tied directly to the number of sequential handoffs, not to how account data is looked up.
- D. Incorrect. A missing system prompt would typically cause erratic or off-task behavior from the start, not a gradual loss of specific details correlated with the number of pipeline hops and rising latency.
3.Over-split: handoffs cut through a cohesive task
Now the opposite failure. In the Databricks Apps orchestrator pattern, the orchestrator treats each subagent as a tool and routes requests to it. Whatever the subagent learned while working stays on its side of the boundary, and only its result comes back. That is exactly what you want when the subagent's working context is irrelevant to everyone else. It becomes a problem when the boundary falls between steps that depend on the same details. The downstream agent then gets a compressed summary of information it actually needed in full. It has to ask again, guess, or redo the work, and the system spends its token and latency budget writing and re-expanding handoffs.
Two clues from the Databricks material help you spot this. First, the single-agent pattern is presented as the right fit when queries vary but stay within a cohesive domain or product area. Variety on its own does not justify a split. Second, the concepts page separates tools from agents. Tools perform one well-defined operation and are generally stateless, while agents keep state as they work through open-ended tasks. A 'subagent' that only ever does one well-defined operation is really a tool behind an agent boundary. It adds a reasoning loop and a handoff and gives nothing back for them.
Checkpoint 4 of 7· Check yourself
A team built separate subagents for 'look up order', 'check return window' and 'generate shipping label' in a single returns workflow. Each handoff re-summarises the order details, and latency is high. What does this indicate?
Each 'subagent' does one well-defined operation inside the same domain. That is what tools are for. Putting agent boundaries between them adds handoffs that keep compressing the same order details.
“Tools perform a single, well-defined operation. Agents can perform more open-ended tasks.”Source: docs.databricks.com
Checkpoint 5 of 7· Exam question
A single "operations agent" is responsible for handling finance approvals, DevOps incident triage, and marketing campaign requests, all within one agent that has access to over 60 tools and a conversation history that accumulates tool outputs from all three domains in every session. The team observes the agent's context usage climbing close to the model's context window limit within a handful of turns, and the agent increasingly selects the wrong tool for user requests. Which boundary placement failure is this?
Correct answer: A — Unmanageable context window growth because the boundary was drawn too coarse across domains
- A. Correct. One agent is covering three unrelated domains, accumulating a huge tool schema and mixed-domain history in a single context. That is a boundary drawn too coarse: the fix is splitting by domain expertise, which is exactly the scenario described as unmanageable context window growth.
- B. Incorrect. There is only one agent in this design, so there are no inter-agent handoffs at all. Handoff compression overhead is a symptom of over-decomposition into many agents, which is the opposite problem from what is described here.
- C. Incorrect. The scenario describes context and tool-selection problems tied to combining three domains in one agent, not a description of retrieval results being outdated or an index needing a refresh.
- D. Incorrect. A single missing or malformed docstring on one tool would not explain context usage climbing toward the window limit across an entire multi-domain session.
4.Finding the faulty boundary in a trace
You don't have to diagnose from symptoms alone. MLflow Tracing on Databricks records multi-agent runs with per-agent detail. For frameworks such as AG2 it captures the messages passed between agents, along with each agent's LLM and tool calls, organised by agent and by turn. MLflow 3.2.0+ also records token usage per call on spans. Together these let you find where the tokens are going. Note that the trace only shows you where. It doesn't name the failure. Deciding which way the boundary should move is the reasoning you do after reading it.
for span in trace.data.spans:
usage = span.get_attribute("mlflow.chat.tokenUsage")
if usage:
print(span.name, usage)Read the numbers in two directions. If one agent's input tokens climb turn after turn, and its tool calls cover unrelated domains, the boundary around it is too wide. If the agents stay small but much of the total goes into messages passed between them, with the same facts restated across several handoffs, the boundaries are too narrow.
| Symptom | Boundary failure | What the trace tends to show | Direction of fix |
|---|---|---|---|
| Excessive handoff compression overhead | Over-split: boundaries cut through a cohesive domain, or wrap single well-defined operations as agents | Small agents; many inter-agent messages restating the same details; latency from orchestration | Merge into fewer agents; turn single-operation subagents into tools |
| Unmanageable context growth in one agent | Under-split: one boundary encloses radically different sub-domains | One agent with growing input tokens and tool calls across unrelated domains | Split along the line where the needed context changes |
Checkpoint 6 of 7· Check yourself
You want to confirm which agent in a multi-agent run is carrying the growing context. Which trace information localises it most directly?
Per-agent, per-turn calls with span-level token usage show which agent's context grows over time. The final output and the configuration don't show where the tokens accumulate.
“LLM and tool calls made by each agent, organized per an agent and a turn”Source: docs.databricks.com
Checkpoint 7 of 7· Exam question
An agent's token usage per turn keeps climbing because it must keep an ever-growing tool catalog and full conversation history in context to answer questions spanning three unrelated business domains. The team wants to fix the boundary placement rather than just trimming context. What is the most appropriate structural change?
Correct answer: A — Split the agent into domain-specific sub-agents that each own a smaller subset of tools
- A. Correct. When one agent's context grows unmanageably because it spans multiple unrelated domains, the structural fix is to redraw the boundary: give each domain its own sub-agent, each with a smaller, focused tool set and history, rather than trimming the shared context after the fact.
- B. Incorrect. Adding more domains to the same agent would make the context window growth worse, not better, since it increases the combined tool catalog and history the single agent must retain.
- C. Incorrect. Adding more handoffs addresses a different failure mode (excessive handoff compression overhead from over-decomposition) and does not reduce a single overloaded agent's context footprint.
- D. Incorrect. Wrapping all tools into one generic tool does not reduce the underlying context burden of spanning three domains and removes the specificity needed for reliable tool selection.
Sources6
Exam traps
Each one states something that sounds right. Open it to see what is actually true.
1.Adding more specialised agents always reduces context and handoff problems.Why is that wrong?
Every added agent brings orchestration cost and another handoff. When handoff overhead is the symptom, more agents make it worse.
Covered in Two symptoms, two opposite boundary errors
2.Every distinct operation in a workflow deserves its own subagent.Why is that wrong?
Single well-defined operations are tools. Agents earn their boundary by handling open-ended, stateful work, and a single-operation subagent only adds a handoff.
3.A wide variety of user queries means the system needs many agents.Why is that wrong?
Varied queries within one cohesive domain are the single-agent sweet spot. The case for splitting is radically different sub-domains, not variety.
Sources
Every claim above is drawn from one of these pages, quoted as it was written on the date shown.
- 1.
“When building any AI-powered application, start simple.”
↩︎ Two symptoms, two opposite boundary errors“a single agent can become unwieldy or overloaded with functionality requirements”
↩︎ Under-split: one agent carrying several domains' context“You expect varied user queries but still within a cohesive domain or product area.”
↩︎ Over-split: handoffs cut through a cohesive task“Introduce more complex agentic behaviors when you truly need them for better flexibility or model-driven decisions.”
↩︎ Key concept“More agentic approaches offer greater flexibility and potential, but they come with the cost of extra complexity and potential latency.”
↩︎ Exam trap 1“You expect varied user queries but still within a cohesive domain or product area.”
↩︎ Exam trap 3“More agentic approaches offer greater flexibility and potential, but they come with the cost of extra complexity and potential latency.”
↩︎ Prediction“Introduce more complex agentic behaviors when you truly need them for better flexibility or model-driven decisions.”
↩︎ Checkpoint - 2.
“Supervisor Agent uses advanced AI orchestration patterns to manage agent interactions, task delegation, and result synthesis to deliver comprehensive solutions.”
↩︎ Two symptoms, two opposite boundary errors - 3.https://www.databricks.com/blog/multi-agent-supervisor-architecture-orchestrating-enterprise-ai-scaleSecondary source
“also the context grows too complex for a single agent to keep track of”
↩︎ Under-split: one agent carrying several domains' context - 4.
“The orchestrator treats each subagent as a tool and uses its instructions to route requests to the right one.”
↩︎ Over-split: handoffs cut through a cohesive task - 5.https://docs.databricks.com/aws/en/agents/conceptsOfficial docs
“Tools are generally stateless and do not maintain ongoing context beyond each invocation. Agents maintain state as they iteratively solve tasks.”
↩︎ Over-split: handoffs cut through a cohesive task“Tools perform a single, well-defined operation. Agents can perform more open-ended tasks.”
↩︎ Exam trap 2“Tools perform a single, well-defined operation. Agents can perform more open-ended tasks.”
↩︎ Checkpoint - 6.
“Messages passed between agents”
↩︎ Finding the faulty boundary in a trace“LLM and tool calls made by each agent, organized per an agent and a turn”
↩︎ Finding the faulty boundary in a trace