Search documentation

Browse Awaken Agents docs
Docs/Awaken Agentsv1.0.0-dev/Internal mechanisms/UnderstandChoose an execution backend and Sandbox boundary
Note·You're reading pre-release documentation (v1.0.0-dev). Interfaces and behavior may change before a stable release.

Internal mechanisms · Understand

Choose an execution backend and Sandbox boundary

What this page covers

Choose Native, ACP, or A2A execution independently from the Sandbox isolation used for local work.

Make two decisions for each published Agent: who owns its reasoning loop, and where any local files, commands, or tools may run. These decisions are independent.

Work to runExecution backendSandbox decision
Call a configured model through Awaken’s loopNativeAdd a local Environment only when tools or Resources need one
Use a supported coding-agent CLIExact ACP runtime such as acp:codexChoose namespace, docker, podman, or k8s from the required isolation boundary
Delegate the whole Agent to another systemPublished a2a:<absolute-endpoint>Do not attach local-only Resources that the remote Agent cannot receive

Choosing ACP does not provide isolation. Choosing a Sandbox tier does not change the published backend.

Static structure

flowchart LR
  P[Published ModelBinding.backend_ref] --> B{Exact backend selection}
  B -->|provider ref| N[Native loop]
  B -->|acp:id| A[Registered ACP runtime]
  B -->|a2a:https://...| R[Remote A2A Agent]
  P --> Q[Worker placement requirements]
  Q --> S{Sandbox tier for local work}
  S --> L[local]
  S --> NS[namespace]
  S --> C[Docker or Podman]
  S --> K[Kubernetes Pod]
  N --> E[Optional Session Environment]
  A --> E
  R --> X[Remote execution boundary]

The immutable publication owns backend_ref. AttemptExecutorRegistry owns one Native executor and exact ACP or A2A registrations. The deployment owns the available Sandbox implementations. The Session Environment owns its workspace, process lifecycle, mounts, credentials, and at most one Hand.

Backend boundary

BackendPublished referenceExecution ownerSelection rule
NativeAny provider reference that is not ACP or A2AAwaken’s in-process model and tool loopResolve one configured provider route
ACPExact acp:<catalog-id>Supervised external CLIMatch a registered runtime exactly
A2AExact a2a:<absolute-endpoint>Remote AgentPin the endpoint and Agent Card contract

The ACP runtime matrix owns runtime versions, credentials, model delivery, and persistence differences. The model and ACP selector guide owns the exact API syntax.

Sandbox boundary

sandbox_tierIsolation boundaryRequired before use
localUnsandboxed host subprocessExplicit opt-in and trusted code
namespace (default)Linux user namespace or macOS SeatbeltWorking host support such as bwrap on Linux
dockerDocker containerEnabled backend, daemon, and immutable image
podmanPodman containerEnabled backend, runtime, and immutable image
k8sKubernetes PodEnabled backend, cluster access, and immutable image

Awaken does not silently lower an unenforceable requirement to local unless the deployment explicitly opts into local fallback. Configure and verify a tier with Configure Sandbox tiers.

Dynamic behavior

sequenceDiagram
  participant C as Coordinator
  participant W as Worker
  participant R as Executor registry
  participant E as Selected executor
  participant F as Commit authority

  C->>W: Dispatch frozen publication, requirements, and claim epoch
  W->>R: Resolve exact backend_ref
  W->>W: Check Worker and Sandbox capabilities
  alt exact backend and placement are available
    R-->>W: Native, ACP, or A2A executor
    W->>E: Execute claimed attempt
    E->>F: Commit fenced partials and terminal outcome
  else published requirement cannot be met
    W->>F: Commit explicit placement or resolution failure
  end

Model candidates may fail over only before a partial for the current step is committed and only when policy permits it. Candidate failover never changes the backend. A missing acp:codex registration cannot become Native execution.

What the system handles, and when to act

Observed conditionSystem behaviorExternal action
A dispatch waits briefly for an eligible WorkerThe durable dispatch remains available for an eligible claimNone while the required Worker is expected to register
A Worker crashes or its lease expiresClaim and epoch fencing reject the old owner; another eligible Worker can reclaim the attempt and recover persisted resourcesNone unless the Environment remains without any eligible Worker
A model candidate fails cleanly before a partial commitThe runtime tries the next allowed candidateNone
The exact backend is not registered, or the Sandbox minimum cannot be enforcedThe attempt fails closed with an explicit placement or resolution resultProvide the required Worker capability or correct the publication; do not enable a weaker fallback to hide the mismatch
Execution fails after a partial commitThe runtime keeps the committed facts and does not replay the step through another providerInspect the terminal outcome before deciding whether a new Run is safe

Verify the published backend_ref, effective Sandbox tier, Worker capability, resolved model candidate, and committed Session outcome. These values describe the actual execution choice; the client protocol does not.