Test the MAS
By the end of this page you will have driven your system end to end in the builder, and know how to read what it did.
Testing works the same way for all three patterns — the chat preview on the right of the editor. What differs is what you look for, which this page covers pattern by pattern.
Prerequisites
- A system saved at least once, with its members added. See the authoring pages for your pattern: Conversation Router · Planner / Executor · Agent Graph.
- Admin or Developer role.
The preview panel
The right pane is a live chat against your saved configuration, headed Agent Preview. It works identically in both editors. Its controls are:
- Clear chat — starts a fresh session. Use it between test cases so earlier turns don’t influence routing.
- Expand / Minimize — full-screen the conversation.
- Stop — appears while a reply is streaming.
Hide or show the whole pane with the preview toggle in the header.
The preview runs the saved configuration. After changing anything, click Save, then send a new message.
What to look for, by pattern
Send a realistic request, then read the result against what your pattern is supposed to do.
| Pattern | The question to ask yourself | Where to look |
|---|---|---|
| Conversation Router | Did the right specialist answer? | The reply is labelled with the agent that produced it. |
| Planner / Executor | Was the plan sensible — the right agents, in a reasonable order? | The Canvas view draws the plan the turn generated. |
| Agent Graph | Did the flow take the path you expected? | The Live tab shows each step as it runs, so you can see which branches ran and which were skipped. |
Each pattern has its own walkthrough below. Run the one that matches the system you built.
For Planner / Executor and Agent Graph, keep the left panel on Live while a turn runs. It is the only place that shows the order things happened in, including what each agent wrote to shared memory.
Run a test — Conversation Router
Ask something clearly in one specialist’s domain
Start with an easy case — a question only one member could answer. The reply is labelled with the agent that produced it, so you can confirm the routing at a glance.
Now ask about another domain
Ask something that belongs to a different member. This is the interesting case: the conversation should hand off, and — if Show transition message is on — you’ll see the transition line before the new agent answers.
Test a follow-up
If an agent asks you a question, answer it briefly — “yes”, or an order number. The turn should stay with the agent that asked, rather than being re-routed. That’s follow-up affinity at work.
Test the miss
Ask something no member covers. You should get your default action: either your custom message, or an attempt from the fallback agent.
Clear the chat and repeat
Click Clear chat before the next scenario, so each test starts from a clean session.
Run a test — Planner / Executor
The examples below assume a team of research-and-writing agents — Sales Analyst, Market Researcher, Content Writer, Fact Checker and Editorial Reviewer. Substitute your own.
Ask for something one agent could handle
Start small — “what were our Q3 numbers?”. A quick check decides this needs one agent, so you get a direct answer with no plan. That is the pattern working, not skipping a step.
Now ask for something that needs the team
“Pull our Q3 numbers, research the competition, and write a launch email — then give me one summary.”
This is the useful test case: it needs two independent lookups, a hand-off into writing, and a review. One message exercises most of the pattern.
Read the plan on the Canvas
Switch the centre panel to Canvas. The plan the turn generated is drawn as steps, so you can see which agents were chosen, what ran at the same time, and what waited.
Check that Sales Analyst and Market Researcher sit beside each other rather than in a chain — they are independent, so a good plan runs them together.
Watch a revision loop
If Let agents send work back is on, a reviewing agent can return a draft to its writer. The Live tab shows the second attempt with its attempt counter.
Clear the chat and repeat
Click Clear chat before the next scenario, so each test starts from a clean session.
Run a test — Agent Graph
The examples below use the market-analysis graph — Market Researcher → Risk Scorer, branching to either Legal Reviewer or Content Writer → Editorial Reviewer, both paths rejoining at Report Builder.
The point of testing a graph is to drive each branch in turn, and you do that by wording the request, not by changing the graph.
Take the low-risk path
“Research what our competitors announced this quarter and write a short internal note about how we compare.”
Routine internal work scores low or medium risk, so the flow should go to Content Writer, then Editorial Reviewer. Watch the Live tab: Legal Reviewer should be skipped, and Report Builder should still run.
Watch the loop
On the first pass the reviewer should ask for changes, sending the draft back to Content Writer. The second pass should be approved and the flow should move on. The Live tab shows the attempt counter.
If it repeats to the limit every time, the writer is not using the reviewer’s feedback — see the tuning loop below.
Now take the high-risk path
“Research competitor pricing and draft a customer-facing page that guarantees we will save buyers 40% on payment processing.”
Payments plus a guaranteed outcome scores high risk, so the flow should go to Legal Reviewer instead, and Content Writer should be skipped. Same graph, no configuration change.
Check the step where the paths rejoin
Report Builder should run on both tests, because it is set to run when any path reaches it.
If it was skipped, its Incoming paths is still on Wait for all paths — it is waiting for a branch that a conditional flow will never deliver. See Agents on the canvas.
Clear the chat and repeat
Click Clear chat between scenarios.
What else you’ll see
Because each turn is answered by a real agent, everything that agent does shows up in the preview:
- Tool activity — the tools it called while answering.
- Approval requests — if a member’s tool needs human approval, the approval card appears here and you can approve or reject it to let the run continue.
- Streaming replies — text arrives as it’s generated.
Tuning loop — Conversation Router
When a message reaches the wrong specialist, work in this order:
- Fix the skill. Sharpen the winning agent’s skill description, or add the failing phrasing to the right skill’s example queries. This solves most cases — see Connect agents.
- Add a rule. If it’s a priority or tie-break that spans agents, add a line to the Router Prompt.
- Pin the phrasing. Only if it’s still ambiguous, add a few-shot override on the agent that should win it.
Save after each change and re-run the failing message from a cleared chat.
Tuning loop — Planner / Executor
When a plan picks the wrong agents, or produces more steps than the job needs:
- Fix the skills. The planner chooses agents by reading their skills, and nothing else. Sharpen the descriptions on the members involved — see Your team.
- Check the team. Two members with overlapping skills make the choice arbitrary. Merge them, or make their descriptions clearly distinct.
- Then the settings. A stronger Planning model helps when many members have similar skills. See Planning settings.
Tuning loop — Agent Graph
When the flow takes the wrong path:
- Read the Live tab. It tells you which step ran and which was skipped, which usually identifies the connection at fault.
- Check the condition. A key that nothing writes counts as false, so the branch silently never runs — see Connections & conditions.
- Check what the agent actually wrote. A condition can only test what is there. If you are matching a marker the agent was told to emit, confirm it really is on the last line of its reply.
- Check where branches meet. If a whole section never runs, look at Incoming paths on the step the branches lead into — see Agents on the canvas.
When a loop repeats to its limit every time, the problem is usually the agent being looped, not the loop. Its instructions need to tell it to read the feedback in shared context and revise the earlier draft, rather than starting fresh each pass.
Save after each change and re-run from a cleared chat.
Testing roles and data governance
Role impersonation lives in the AI Agent editor, not here. To verify that role-gated skills and row/column governance behave correctly, open the member agent itself and use Test as Role in its preview — see Test the agent.
A system preview always runs with your own roles, so any governance rules that apply to you apply here too.
Common issues
- “Save the router to enable preview.” — The system has never been saved. Click Save.
- Nothing happens when I send a message — The system has no members, or a member that was chosen has only a draft version and so can’t run. Publish the agent, then retry.
- A change had no effect — It wasn’t saved. The preview always runs the saved configuration.
- The reply comes from the wrong agent (Router) — Work the tuning loop above, starting with the skill.
- The conversation won’t move to the other agent (Router) — The current agent’s last reply ended in a question. Clear the chat and ask the second domain first.
- The Canvas is empty (Planner / Executor) — No turn has run yet, or the turn was answered directly without a plan. A greeting does not produce one.
- A branch never runs (Agent Graph) — Its condition is false, or every path into the next step is conditional and that step is set to wait for all of them.
- The step where branches rejoin was skipped (Agent Graph) — It is set to Wait for all paths, so it is waiting for the branch the condition skipped. Set it to run when any path reaches it.
- A loop repeats to its limit on every run (Agent Graph) — The looped agent is not using the feedback it was sent. Fix its instructions, not the loop.