watsonx OrchestrateTechXchange 2026 · Hands-on lab
Parallel agent execution · Preview lab

One customer issue.
A swarm that resolves it.

Understand the pattern, watch Customer Resolution in action, then set up the sample and embedded chat with one PowerShell script.

Prepared for Suyash Dubey · Updated 27 October 2026 · One coordinator, six specialists, six sample tools

Open the live demo ↗ · Set up your own swarm ↓
01

One checkout issue. Six support specialists.

Acme Retail’s checkout is blocked by HTTP 429 errors. Its customer support swarm uses one coordinator to assign six specialist tasks and turn their results into a single resolution report.

Acme Retail reports blocked checkout. A coordinator assigns CRM, product, knowledge, billing, technical and escalation tasks, then combines their sample results into a reply explaining the quota trigger, remedy and follow-up.
For Acme Retail, the sample results connect a 97.8% quota reading to emergency capacity, a fee waiver, cleared 429 errors, and an updated ticket. The coordinator brings these findings together in one support reply. These are fixed demo results from the Customer Resolution tools.

1. Triage Acme’s issue

The coordinator takes Acme’s customer ID and ticket TICK-2026-99381 and assigns six focused support tasks.

2. Gather the support results

CRM, product, and knowledge provide account and policy context. Billing, technical, and escalation return the sample relief, remediation, and ticket updates.

3. Reply to Acme

The final response explains the quota trigger, the extra capacity and fee waiver, the cleared errors, and the follow-up for Acme’s customer success manager.

When does work need to wait?

If a task needs another task’s output, name that prerequisite in requires. The runtime can schedule dependent work after that result is available. In this downloaded example, all six tasks use requires: []. The page and README call it “multi-wave,” but the actual YAML does not enforce a discovery-before-action sequence.

02

Watch Customer Resolution run

Acme Retail’s checkout is hitting HTTP 429 errors. The swarm checks the account and quota, applies the sample remedy, and prepares the support response.

Open the demo and select 06 Customer Resolution, then choose API Throttling. The GIFs below were captured from actual runs of that prompt on the supplied embedded-chat page.

LIVE PRODUCT CAPTURE

Six specialists, one coordinated run

Six specialists, one coordinated run
Real embedded-chat capture: planning and specialist progress through “6 tasks completed.” The clip is edited and loops; it is not a performance benchmark. Open GIF · View still image ·
LIVE PRODUCT CAPTURE

From task results to a customer-ready reply

From task results to a customer-ready reply
Real response walkthrough from another run of the same Acme Retail sample. Scroll through the customer context, root cause, remedy, and communication draft. Open GIF · View still image ·
97.8%Sample monthly quota utilization
+1MSample emergency API-call burst
$1,500Sample fee waiver
8Sample gateway nodes updated
0.0%Sample post-remediation 429 rate
6 / 6Tasks shown as completed in chat

The Python tools return fixed demo data. No billing ledger, gateway, Slack channel, or support system is changed by these sample functions. The reported “11.4 minutes” is a fixture value, not the measured duration of this run. Dates and generated prose should be checked before reuse.

Use this exact sample prompt

Customer Acme Retail Corp (CUST-ENTERPRISE-8821) is reporting 429 Too Many Requests errors and API throttling blocking their checkout traffic. Investigate customer tier and quota entitlements, apply necessary billing adjustments, execute rate-limiter remediation, and update support ticket TICK-2026-99381.

03

Set up the lab with one PowerShell script

Save the script below → run it in PowerShell → paste a valid API key → wait for the sample to pass → use the chat page that opens.

This is a static guide. All setup instructions, commands and the complete script are on this page. Use normal text selection and copy/paste; no download button, clipboard permission, or interactive wizard is required. Reading this guide does not start the agent or local chat server.
↳

Participant sign-in · Singapore lab

Use the login assigned to your group. Open the Singapore instance, choose IBMid sign-in, and enter the details below.

Download lab materials (Box) ↗ · Open Singapore lab ↗ · Download login handout
GroupIBMid / usernamePassword
Group 1swarm1911c@maxxspace.comSwarm@123456
Group 2swarm2911c@maxxspace.comSwarm@123456
Group 3swarm3911c@maxxspace.comSwarm@123456

These are the participant credentials supplied for this lab. If IBM requests an MFA code, ask the facilitator to complete the verification. This handout contains lab login credentials; share it with the assigned participants.

Rohit’s preloaded Singapore example is Customer Onboarding Coordinator (KYC). To build the Customer Resolution example shown in this guide, continue with the unified script below.

1

Check the prerequisites

You needWhat to check
Windows and PowerShell64-bit Windows 10/11; Windows PowerShell 5.1 or PowerShell 7. The script must be permitted by your organization.
Computer architecturex64, or Windows 11 ARM64 for automatic x64 Python installation. 32-bit Windows/Python is rejected. Native ARM64 Python can be selected explicitly if dependency wheels are available.
PythonStandard 64-bit CPython 3.11–3.13. With -InstallPython, the script installs Python 3.11 through winget only when compatible Python is missing. If winget is unavailable, install Python from python.org first.
Browser and networkA current Edge, Chrome or Firefox; network access to PyPI and the Singapore tenant. A corporate proxy may need IT-provided proxy and CA settings.
Orchestrate accessA current API key for the assigned tenant, with tools/agent import and deployment permissions. An IBMid/password is used for the website; the script asks for an API key.
Facilitator preparationParallel execution enabled; the selected model available; official widget embed security configured for the lab. The launcher does not change tenant security.

No Docker, WSL, Bash, Node, npm, PATH editing or virtual-environment activation is needed. The script includes the sample agents and tools; the original ZIP is optional reference material.

Validation scope, 27 October 2026: PowerShell 7.6.9 on macOS, 19 Python tests, PowerShell architecture/launcher checks, fresh Singapore authentication and six-specialist completion passed. Both chat modes completed the sample in the macOS browser. Windows x64 and ARM64 wheel downloads passed; actual Windows, winget and Windows browser execution remain unverified.

2

Have your API key ready

  1. Open your assigned Orchestrate instance and choose Settings → API details. The service API URL ends in /instances/….
  2. If you need your own key, choose Generate API key, then in the SaaS Console verify the instance and generate a Personal key with an expiration covering the session.
  3. Keep the key value or downloaded key JSON ready. The script will prompt for it after checking the installation.

The launcher already defaults to the Singapore API URL shown below. The website’s /home URL is for browser sign-in.

Settings → API details: copy the Service instance URL.
Settings → API details: copy the Service instance URL. · Click to enlarge.
Select API keys and Generate key for the assigned instance.
Select API keys and Generate key for the assigned instance. · Click to enlarge.
Enter the key name and expiration date before generating your personal key.
Enter the key name and expiration date before generating your personal key. · Click to enlarge.
↳

Singapore lab API access

The launcher defaults to the Singapore instance below. Use a current API key for that same instance. Paste only the key value at the script’s hidden prompt, or provide its downloaded JSON with -ApiKeyFile.

Instance URL

https://api.ap-southeast-1.dl.watson-orchestrate.ibm.com/instances/20261026-1109-2741-3043-5f3ff8fef68a

API key: swarm-lab-replacement · Expires October 27, 2026 · Key used in validation; confirm its expiration covers your session.

azI6OWQzYjczYzktYWM5Zi00YTBhLTgyNjYtYWM5ZmI1MjU5MmIxOk5mMEgzTzhzd0RpaGc3V28xQlRuaUdjY0UxaFh0SjFnTk1XeVlEekZCYzQ9

This personal key inherits the facilitator’s Service administrator access. This document contains the key in plain text; distribute only to authorized lab participants. It is for ADK authentication, not for insertion into the browser embed script.

3

Copy and save the complete script

  1. Open Notepad and create a new file.
  2. Click inside the script box below. Press Ctrl+A to select all text inside the box, then Ctrl+C. On Mac, use Command+A / Command+C.
  3. Paste into Notepad. Choose File → Save As. Set Save as type: All files, Encoding: UTF-8, and file name Setup-Swarm-Lab.ps1.
  4. Save to a local folder you control, such as Downloads. Confirm the name ends with .ps1, not .ps1.txt. In File Explorer, enable View → Show → File name extensions if needed.

Copy the entire box, including the long bundled-payload line. It contains the Python backend, sample tools, YAMLs and both chat pages. No API key or participant password is embedded in this script. Do not edit its payload.

The box is read-only and works without page scripts. Selection and copying use your browser’s standard controls. Copy through the final closing brace. If using the original distributed .ps1 file, its SHA-256 is b1c8adbd1d0bd969d147eaf77061a36a8df95f188e1c17a873cf873474e6fc53. Notepad may change line endings or the UTF-8 BOM, so a manually saved file can have a different file hash; the launcher separately checks its bundled payload.

4

Open PowerShell in that folder and run

  1. In File Explorer, open the folder containing Setup-Swarm-Lab.ps1.
  2. Click the address bar, type powershell, and press Enter. The PowerShell window opens in that folder.
  3. Copy this single command, paste it into PowerShell, and press Enter:
.\Setup-Swarm-Lab.ps1 -InstallPython

If winget needs confirmation to install Python, review its prompt. The script uses a user-scoped installation and does not require you to activate a Python environment.

When asked “Paste API key VALUE”, paste only the key value and press Enter. The prompt hides the characters. Do not paste the full JSON, the IBMid password, or quotation marks.

Alternatively, use a downloaded key JSON:

.\Setup-Swarm-Lab.ps1 -InstallPython -ApiKeyFile "$env:USERPROFILE\Downloads\my-key.json"

Optional check before installation: if a supported Python is already installed, run the command below. It writes a local report but does not install packages, sign in, import agents or deploy them. If Python is missing, use the normal -InstallPython command above.

.\Setup-Swarm-Lab.ps1 -CheckOnly
5

Let setup verify a real run

  1. Machine and network: checks Python architecture/version, local hostname resolution, dependency access and tenant TLS reachability.
  2. ADK and login: installs pinned ADK 2.19.1 and binary dependencies in an isolated folder, creates the Singapore mcsp_v2 environment, validates the supplied key and checks authenticated inventory.
  3. Agents: imports six sample tools, six specialists and one coordinator under unique lab…_ names, then deploys and verifies their Live releases.
  4. Sample: executes the Acme Retail request and requires six successful specialist completions plus a final response.
  5. Chat: generates the local pages with the discovered deployment IDs, starts the server and opens the browser.

Expect installation downloads and model execution to take time. Leave PowerShell open. A success marker for login alone is not the end of setup; wait for:

PASS: all expected specialists completed and a final response arrived.
READY: http://localhost:8765/

Default working files are under %USERPROFILE%\SwarmLab. Generated agent YAMLs are in generated\agents; sample tools are in generated\tools. The launcher selects watsonx-orchestrate/frontier and adds instructions limiting the demonstration to six assigned tasks without extra follow-on delegation. Original source files remain available for comparison.

6

Use your embedded chat

When the browser opens http://localhost:8765/, the official IBM widget appears inside the lab page. Select API Throttling or send the sample prompt in section 02.

Success: specialist progress, six completed tasks, and a combined Acme Retail resolution report. These tools return synthetic demo results; no real billing, gateway, Slack or ticket action is performed.

If the official widget shows Agent fetching failed, select API-backed lab chat in the running lab page, then Run scenario. It reaches the same Live coordinator through the local Python server. Its success confirms that path; it does not prove the official widget is healthy.

Keep PowerShell open. Ctrl+C stops the local server. If the browser does not open automatically, type http://localhost:8765/ into a current browser. Reopen the script to restart chat.

7

Resume or correct a setup error

Correct the reported error, then rerun the same command with the same work folder. Saved import and deployment stages are reused. The launcher still verifies Live releases and runs a fresh sample. To reuse the saved ADK login:

.\Setup-Swarm-Lab.ps1 -Resume
What you seeWhat to do
Downloaded script is blockedAfter reviewing the file, run Unblock-File -LiteralPath .\Setup-Swarm-Lab.ps1. Organization-enforced script restrictions need IT assistance.
Scripts disabled by local policyIf permitted by your organization, use the process-scoped command below. It does not change the persistent policy.
Python not found / winget missingInstall standard 64-bit Python 3.11 from python.org, reopen PowerShell and rerun. Or supply -PythonExe 'C:\Path With Spaces\python.exe'.
No matching dependency wheel / wrong architectureUse compatible 64-bit Python. On Windows 11 ARM, x64 Python is an available emulation route. Use a new work folder when changing Python architecture or version.
Existing virtual environment differs / long or network pathChoose a fresh, short local folder with -WorkDir 'C:\SwarmLab-Team1'. Existing files are preserved.
401 / 403 during loginCheck key expiry, tenant and permissions with the facilitator, then rerun without -Resume to validate the corrected key.
TLS / proxy / VPN failureUse the VPN/proxy configuration supplied by IT. For an IT-provided CA bundle, add -CertificatePath 'C:\Certificates\corporate-ca.pem'. Certificate checks remain enabled.
localhost:8765 busyStop the earlier lab server with Ctrl+C. The script does not kill other applications or choose another port.
Sample incomplete or no final responseInspect state\smoke-events.json and the reported error with the facilitator. Partial progress is not a pass. Agent requests are not automatically replayed.
powershell.exe -NoProfile -ExecutionPolicy RemoteSigned -File .\Setup-Swarm-Lab.ps1 -InstallPython

The script checks both available localhost address families, adds localhost to its process proxy exclusions, and leaves the key with the local ADK/server. It does not place the API key in either browser page.

8

How the embed setup is handled

The launcher discovers your coordinator’s agent ID, Live environment ID and tenant routing metadata. It generates the official widget configuration with woAPI: "v2completions" and the API-backed chat. There is no manual ID substitution or embed-snippet download in this route.

The lab page uses an iframe to mount the chat; the local server provides the page and API-backed execution. The script serves it at the same localhost:8765 address on Windows and Mac. The static guide you are reading contains the setup script, not a running chat server.

The official widget requires the tenant’s configured embed security. If Security is on, the facilitator must provide the corresponding token integration; this launcher does not build that service. The authenticated API-backed lab chat remains a separate local integration.

For a hosted website beyond this local lab, follow IBM’s embedded-chat documentation and provide the required authenticated backend. The local launcher is not a public hosting deployment.

↳

Agent source and generated lab copies

The table links the original source. The launcher imports generated copies with a unique prefix; find your actual YAMLs in generated\agents under your work folder.

Agent YAMLJobTool
crm_context_agent.yamlAccount tier, ARR, health and CSMlookup_customer_crm
product_entitlement_agent.yamlQuota, usage and throttling triggerinspect_product_entitlements
knowledge_solution_agent.yamlRelevant policies and runbooksquery_knowledge_base
billing_action_agent.yamlSample quota burst and fee waiverapply_billing_adjustment
technical_remediation_agent.yamlSample gateway reset and error rateexecute_technical_remediation
escalation_management_agent.yamlSample ticket status and CSM updateupdate_and_escalate_ticket

The coordinator has no business tool of its own. Its YAML names the six collaborators and opts into parallel coordination:

name: customer_resolution_triage_coordinator
kind: native
style: react_intrinsic
coordination: parallel
collaborators:
  - crm_context_agent
  - product_entitlement_agent
  - knowledge_solution_agent
  - billing_action_agent
  - technical_remediation_agent
  - escalation_management_agent
tools: []

Excerpt only. Import the complete downloaded coordinator YAML, including its instructions, description, model, and welcome content.

Are these the same agents as the earlier lab guide?

They use the same parallel-coordinator pattern. The earlier PDF’s main exercises are PR review and vacation planning; this walkthrough uses Customer Resolution from the current hosted demo. The reference YAMLs and tools are original downloads. The unified launcher generates isolated names, selects the configured model, and adds a six-task boundary for reproducible execution.

The import works, but agents run sequentially

Check that the imported coordinator still has coordination: parallel, the SDK is compatible, and the target instance has the preview feature enabled. The public sequential-collaborator documentation does not describe this preview. Use the hosted preview guide for the feature-specific instructions.

The chat says “Agent fetching failed” or “Failed to fetch”

In the local lab page, select API-backed lab chat to test the authenticated local-server route. Confirm the Live deployment and tenant embed-security configuration with the facilitator. Both modes completed the sample on 27 October 2026; the earlier widget failure cause remains unconfirmed. A loaded page is not a completed agent run.

How do I keep the GIFs and links working when sharing?

Use Customer-Care-Swarm-Lab.html for a single file containing the images and GIFs. For the editable package, extract the ZIP and keep index.html, assets/, sources/, and downloads/ together. The hosted execution link opens the shared demo page. No local server is needed to read the guide.

04

Technical FAQ: how the swarm runs

Use these answers for the lab discussion—from what actually overlaps to how tasks share results, retry, and finish.

Checked against the downloaded Customer Resolution YAMLs, the hosted preview guide, and the parallel runtime source on 26 October 2026. Limits below are preview defaults, not a measurement of this tenant’s active configuration.

Execution and scheduling

01 · What exactly runs in parallel in this demo?

The specialist task invocations: CRM context, product entitlements, knowledge policy, billing adjustments, technical remediation, and escalation management. Each specialist has its own instructions and tool. Its model calls and tool execution can overlap with those of other specialists in the same wave.

The coordinator first creates the plan, then the runtime dispatches specialists. After their results are collected, the coordinator writes the final answer. Planning and final synthesis are separate stages around the parallel work.

02 · Do all six specialists start at exactly the same time?

All six are independent in the supplied instructions, but the preview default is five concurrent specialist tasks per run. With that setting, five can run in one wave and the remaining task in a later wave. A tenant with a different limit can group them differently.

The reviewed implementation waits for all branches in the current wave before scheduling the next one. It does not refill a freed slot immediately when the fastest specialist finishes. “Six tasks completed” confirms completion count; it does not establish six simultaneous executions.

03 · How does the runtime execute the plan?
  1. Plan: the coordinator’s model calls submit_plan with task assignments and dependencies.
  2. Dispatch: the scheduler selects ready tasks, up to the concurrency limit.
  3. Execute: the Go state-machine engine starts a concurrent branch for each selected specialist invocation.
  4. Join: a barrier waits for the wave, then applies its state updates sequentially. More ready work causes another dispatch.
  5. Synthesize: collected outputs and task statuses are given to the coordinator’s model to produce one answer.

That is the source-level path plan → dispatch → specialist × N → barrier → dispatch or synthesis. Shared run state is updated at the join, rather than each specialist freely mutating it while peers run.

04 · Is this one model call, or a separate model for every agent?

It is multiple agent invocations and model calls. The coordinator uses its configured model for planning and synthesis. Each native specialist runs with its own agent configuration and may make several model/tool turns.

The original downloaded YAMLs all select groq/openai/gpt-oss-120b; the unified launcher selects watsonx-orchestrate/frontier by default. Sharing a model identifier does not make them one invocation, and distinct models are not required for concurrency. Model availability, provider capacity, and rate limits still affect elapsed time.

05 · How is parallel agent execution different from parallel tools?

Agent parallelism schedules several specialist tasks, each with its own role, instructions, and reasoning/tool loop. Tool parallelism concerns multiple tool calls inside one agent’s execution and is controlled separately.

This sample gives each specialist one business tool. Setting coordination: parallel on the coordinator does not make every tool call inside each specialist simultaneous; the specialist still follows its own execution flow.

Dependencies and shared results

06 · What do produces, requires, and depends_on mean?
Plan fieldMeaningCustomer-support example
producesNames an output artifact.Product task produces entitlement_report.
requiresNames upstream output keys needed as input. The runtime links the producer and injects available matching content into the consumer’s task.Billing requires entitlement_report.
depends_onLists task IDs for ordering. It does not itself select data to inject.Billing waits for task t2.

Use exact matching output keys and put producers before consumers in the submitted plan. These are fields of the runtime plan, not extra top-level agent YAML settings.

07 · Does billing wait for the quota check in the downloaded sample?

The supplied instructions do not enforce that order. They explicitly request requires: [] for all six tasks. The demo’s “multi-wave” label and narrative do not create a dependency. An extra wave may simply be caused by the concurrency limit.

If billing must use the quota result, change the planning instructions to have the product task produce an entitlement artifact and the billing task require it. Then inspect the emitted plan and execution; a prose description alone is not proof that the required ordering happened.

08 · What would a dependent customer-support plan look like?

This illustrative submit_plan payload makes billing consume the entitlement result. It explains the contract; it is not the downloaded sample’s plan and should not be pasted as agent YAML.

{
  "tasks": [
    {
      "id": "t2",
      "agent_id": "product_entitlement_agent",
      "display_text": "Check Acme quota",
      "execution_text": "Inspect entitlements for CUST-ENTERPRISE-8821.",
      "produces": ["entitlement_report"],
      "requires": []
    },
    {
      "id": "t4",
      "agent_id": "billing_action_agent",
      "display_text": "Review Acme relief",
      "execution_text": "Use the entitlement report to determine eligible relief for CUST-ENTERPRISE-8821.",
      "produces": ["billing_result"],
      "requires": ["entitlement_report"],
      "depends_on": ["t2"]
    }
  ]
}

The explicit depends_on repeats the ordering that requires implies here. Other independent tasks can still run alongside the quota check. An ordering dependency does not validate the business result or grant approval for an action; the consuming specialist/tool must check that its required evidence is present and acceptable.

09 · Can specialists read one another’s work while running?

They do not share a live conversation or see peers’ in-progress reasoning. Each branch gets a snapshot of previously collected artifacts when its wave starts. Required outputs are inserted into the specialist’s task message; new outputs are merged at the wave boundary.

The runtime also supplies coordination tools such as check_parallel_results, publish_artifact, and wait_for_artifacts. In the reviewed implementation, wait_for_artifacts reads available snapshot data; it does not suspend a branch until a same-wave peer publishes. Use a dependency and a later wave when fresh peer output is required.

A named artifact is content associated with a key. The runtime can store the specialist’s final text under its declared produces key; that name alone does not turn the result into a validated, typed business object.

10 · Can the plan grow after execution starts?

In the general parallel pattern, a specialist can request follow-on work through post_follow_on_task. The unified launcher’s generated lab instructions explicitly prohibit follow-on tasks to keep this demonstration to the six assigned tasks. Those requests are collected and considered for a later dispatch, subject to admission rules and configured budgets. Posting a task is not proof that it has been admitted or executed.

The current preview does not have a coordinator review-and-replan loop after the specialists finish. The coordinator’s last stage synthesizes their results. This is distinct from a specialist requesting additional work while it runs.

Failures, progress, and limits

11 · What happens if a specialist fails or times out?

In the reviewed runtime, an invocation error can requeue that task for a later wave, with up to two retries after the initial attempt. Exhausted attempts mark the task failed. An engine-level failure can terminate the run; ordinary specialist failures can still lead to synthesis with partial results.

The synthesis prompt includes task status and asks the model to acknowledge gaps. If final synthesis fails or returns no content, the runtime can return a plain-text fallback of available specialist results.

A tool returning a normal response that says “not eligible” or “operation failed” is a business result, not necessarily an invocation error that triggers a scheduler retry. Check both task status and the reported business outcome. Retries do not provide rollback or exactly-once execution for external actions; real integrations need their own idempotency controls.

12 · What are the current preview limits?
SettingPublished preview default
Concurrent specialist tasks5 per run
Tasks in a run20
Planning timeout120 seconds
Specialist task timeout120 seconds
Final synthesis timeout60 seconds

These are stage budgets, not a promise that the whole run finishes in 120 seconds. Waves, retries, model latency, and upstream limits affect the total. The facilitator must confirm tenant-specific settings; changing a YAML or the browser page does not change server concurrency limits.

13 · What do the chat’s progress events mean?

The response stream includes thread.parallel.event envelopes. The parallel_event payload identifies events such as parallel.agent.started, parallel.agent.completed, and parallel.run.state. A started event carries the task and wave; a completion event can include task_state and a short result summary.

Inspect task_state: an invocation finishing may mean success, failure, or a retry being queued. Progress delivery is best-effort. Use thread.message.completed for the final answer, and read its task outcomes rather than treating the existence of a final message as proof that every action succeeded.

For this lab’s embedded chat, point at the Live coordinator and keep woAPI: "v2completions", as in step 8.

14 · Will a swarm always be faster or cheaper?

No. It helps when substantial work is independent. A useful approximation is:

Total time ≈ planning
           + sum of the slowest specialist duration in each wave
           + final synthesis
           + orchestration / network overhead

Dependencies, retries, and provider throttling can reduce the benefit. Multiple specialist calls plus planning and synthesis also consume model usage; shorter wall-clock time does not imply lower token cost. The recorded GIF is a demonstration, not a controlled benchmark.

15 · Can the run pause for a person or resume after a service restart?

The hosted preview guide says an active plan cannot stop to ask for clarification, and an in-progress run is not resumed after a service restart. Give every task the needed customer/ticket identifiers and instruct specialists to report missing information instead of waiting for the user.

The implementation records run, task, and artifact data, but stored data alone is not a crash-resume guarantee. For this fixture-only lab, you can submit the sample again after a failed run. With real external actions, first reconcile what completed before rerunning.

Configuration and adapting the sample

16 · Is adding collaborators enough to turn on parallel execution?

No. The coordinator must retain coordination: parallel, and the target runtime must have the preview enabled. The source gate is ORCHESTRATION_PARALLEL_ENABLED; participants use the facilitator’s enabled instance. A compatible ADK must preserve the field during import.

The general coordinator supports a direct_answer path for simple requests. This demo’s instructions specifically demand submit_plan and six tasks. If it answers immediately without specialist progress, inspect the imported configuration and generated plan. The embed API setting selects the chat API; it does not enable the server feature.

17 · Are the billing, remediation, and ticket actions real?

In the bundled Customer Resolution source, all six Python tools return fixed sample JSON. The +1M API calls, $1,500 waiver, cleared 429 errors, and resolved ticket are fixture results. These functions do not call the billing system, gateway, CRM, or notification service.

To build a real integration, replace those functions with connected tools and define the data dependencies, permissions, business checks, and repeat-call behavior those actions require. Keep independent lookups parallel; make actions that need verified context depend on that context.

18 · Where can I inspect the implementation behind these answers?

The participant-facing source of preview behavior is the hosted preview guide. The original agent YAMLs and tools are linked in What you imported; generated lab copies are in your local generated folder.

For readers with repository access, the source review used agent-runtime@f3e13c0b:

Source inspection explains the reviewed implementation; it does not identify the exact runtime build serving a tenant. The successful six-task recordings in this guide establish the demonstrated happy path, not every failure or recovery case discussed here.

Enlarged guide image