A stop button needs an execution contract
An employee cancels an AI research task, but its specialist agents continue searching, reranking documents, and generating drafts. The interface looks idle while the data center is still doing work. If one branch can update a business system, the mismatch becomes more serious: the user may believe the action stopped when only the visible response disappeared.
For an on-premises agent platform, cancellation is an architectural requirement. It connects user intent, orchestration state, service behavior, and resource release. This guide proposes a concrete contract for stopping work across private infrastructure, with separate treatment for computation and actions that may already have taken effect.
Distinguish a deadline from a cancellation request
A deadline specifies when an execution should stop waiting or proceeding. Cancellation communicates that work is no longer wanted. Neither tells you, by itself, whether every downstream component has stopped. The platform must track that distinction instead of returning a generic success message.
The gRPC deadline guidance recommends setting realistic deadlines and validating them under load. It also describes propagating time limits through service calls. This is a useful transport pattern when your services use gRPC; other protocols need equivalent application behavior, not an assumption that a disconnected client automatically stops processing.
Define separate states such as running, cancellation requested, computation stopped, and reconciliation required. Let the interface display the meaningful state. Acknowledging receipt of a cancellation command should not imply that an external write was reversed or that a model worker has already released its allocation.
Give every branch the remaining budget
Set the workflow deadline when admitting the request. Account for time already spent waiting in the queue before starting a model or retrieval call. A child branch should receive the remaining allowed duration, bounded by its own service limit, rather than a fresh full workflow allowance.
For a document review agent, allocate time for retrieval, drafting, validation, and delivery. Reserve enough time to report an incomplete result and store the execution outcome. If each stage consumes the entire remaining budget, the system can finish generation while failing to record or deliver its status.
Use separate lifecycles for interactive execution and human review. A reviewer may legitimately need much longer than an inference call. Persist the approval task, release compute, and resume through an explicit transition if approval remains valid. Do not keep a model session running simply because the business process is waiting for a person.
Propagate the stop signal through the execution tree
Maintain a parent-child relationship for each spawned agent, retrieval operation, and model call. When the root is cancelled, stop scheduling new branches, remove queued work where supported, and signal active descendants. Persist the cancellation state so a restarted worker does not resume an obsolete task.
The gRPC cancellation documentation explains that application handlers must cooperate in stopping local processing; the library generally cannot interrupt arbitrary handler code. Apply that lesson to model-serving adapters: check the cancellation mechanism actually supported by the runtime and verify that the request exits its serving queue or generation loop.
Do not terminate an entire shared inference process to cancel one request. Other tenants or workflows may share it. Prefer a per-request abort interface, and document any runtime that cannot release resources promptly. Where abort is unavailable, prevent further dependent work, discard the late result, and track the residual processing until it finishes.
Handle fan-out without leaving orphan work
Parallel specialists need an explicit stopping rule. If a required branch fails, decide whether its siblings still provide useful output. If the workflow needs only one validated result, cancel unnecessary competitors when that result is accepted. If every branch contributes evidence, retain the dependency until the shared deadline or cancellation event.
Late results must not revive a cancelled execution. Check durable workflow state before accepting a branch result, scheduling a validator, or starting a follow-up tool. This prevents a delayed message from turning an apparently stopped task into new work after the original worker has restarted.
Retries also consume the original budget. Give them an attempt limit and require enough remaining time for a useful outcome. Record a distinct reason when work is skipped because the root was cancelled, rather than counting it as an unexplained model failure. These distinctions make capacity and reliability reports actionable.
Keep cancellation separate from reversing business effects
A tool may have committed an update before the stop request arrives. Mark that branch for reconciliation and consult the destination system’s operation status. The user should see which effects completed, which were prevented, and which remain uncertain.
This article focuses on stopping further execution. For the related write-safety design, use the existing guide to idempotency and compensation for AI agents. A cancellation handler should call the agreed reconciliation process rather than invent an automatic reversal for every tool.
Keep required cleanup authorized and narrowly scoped. A cancelled workflow may still need to release a reservation or record its final state. Give cleanup its own bounded execution path and audit reason; do not let it become a loophole through which the agent continues the original task.
Test the behavior at inconvenient moments
Run cancellation tests while a request is queued, during generation, between two branches, after a tool submission, and during worker recovery. Include a disconnected client and a delayed stop message. The evidence should show that no new ordinary work starts after cancellation is enforced and that remaining effects are reported honestly.
Measure cancellation acknowledgment separately from time until active descendants stop. Track orphaned tasks, late results, residual compute, and unresolved tool outcomes. Set operating targets from the actual runtimes and business risks instead of promising instantaneous cancellation across every dependency.
Limit the contents of cancellation logs. Execution identifiers, component names, timestamps, and reason codes usually provide the operational link; unrestricted prompts and retrieved documents should not be copied simply to prove that a stop signal propagated.
Use the platform review to establish ownership
VDF AI Networks provides the orchestration context for agent workflows. In a private VDF AI Solution deployment, require an end-to-end demonstration of cancellation across the selected model servers, retrieval services, and tool adapters. Verify each integration rather than treating a platform-level stop control as proof of downstream behavior.
Platform engineering should own propagation and recovery; tool owners should define reconciliation; business owners should decide when partial results remain useful. Bring that division of responsibility to a VDF AI architecture discussion. A useful outcome is a tested stopping contract that operators and users can both understand.
- Transaction-safe AI agents: idempotency, compensation, and safe retries
- GPU admission control for on-premises AI workloads
- Service-level objectives for on-premises AI agents
- Agent orchestration: the missing layer
Need a stop control your operators can trust? Book a VDF AI architecture review to define the cancellation contract across your model servers, queues, and tool integrations.