The harder part of agent coordination is deciding when to stop. A timeout can mean the work never started, that it finished but the reply was lost, or that it is still running. Retrying blindly can turn a slow operation into a duplicate side effect.
A mission is a sequence of separately routed steps
Starlight routes each step independently. Later agents can inspect preceding results through intent.context.mission.results. Mission constraints apply throughout the sequence and cannot be overridden by a step. Agents and their verifiers still need to implement the domain meaning of those constraints.
mission definition
-> select agent for step 1
-> execute and verify
-> pass prior results to step 2
-> execute and verify
-> final completed / failed / cancelled reportThe order-report example makes the handoff tangible: a calculation result becomes input to a report-producing step. Read-back verification checks the artifact before the workflow is considered complete.
Retry only when the previous attempt permits it
The high-level platform stops on ambiguous errors and timeouts. Explicit retry or unhandled outcomes can permit another attempt. This conservative rule prevents the coordinator from interpreting missing confirmation as proof that an action had no effect.
Cancellation is cooperative
Agents receive an AbortSignal and should check it around interruptible work. Cancellation cannot forcibly undo a write, stop arbitrary host code, or roll back an external API call. A verifier and an idempotency strategy remain necessary for actions that can outlive their caller.
Capacity belongs to the execution lifecycle
Registration capacity limits how much work an agent can accept. Timed-out remote attempts retain their capacity until settlement or disconnect, and the SDK accounts for outstanding work across reconnects. Shared resources such as a device or file still need a single owner or an external lock; capacity on two separate registrations is not a shared-resource lock.
Use the CLI in CI deliberately
node bin/starlight-platform.js agents --agents examples/data-report/agents.cjs
node bin/starlight-platform.js run examples/data-report/mission.json --agents examples/data-report/agents.cjsThe fixed-output example rejects an existing artifact. Use npm run demo for a fresh demonstration path, or design your own mission outputs around the CI run ID. Do not delete evidence simply to make a rerun pass.
- Validate mission definitions before dispatch; invalid definitions throw.
- Keep reports even when a mission fails.
- Choose timeouts based on the operation and its cancellation behavior.
- Reconcile external state before rerunning side-effecting work.
- Test failed verification and cancellation in addition to the happy path.
Continue the series
- Starlight Part 1: From Browser Automation to a General Agent Platform
- Starlight Part 2: Reading Execution Evidence Instead of Trusting a Green Badge
- Starlight Part 4: Building a Domain Agent with an Explicit Contract
- Starlight Part 5: The Core Protocol and Authenticated Remote Agents
Reviewed implementation and setup

