Credential-free learning
Use DeterministicAgentProvider from @aml-jsx/sdk/testing.
It records normalized calls and avoids network or executable setup.
AML providers are adapters around three independent responsibilities. Select one provider for each boundary your workflow uses; a tree that only runs an Agent does not need a Sandbox or Workspace.
<Workspace><Sandbox><Agent /></Sandbox></Workspace>| Layer | Owns | Does not own |
|---|---|---|
| Agent | Model sessions, turns, native tools, ACP launch and protocol translation | Process or filesystem isolation unless a Sandbox is active |
| Sandbox | Ephemeral commands, process lifetime, filesystem access, cancellation and cleanup | Durable revisions or model credentials |
| Workspace | Materialization, durable files, revisions, locking and save policy | Command isolation or Agent behavior |
For a first workflow, begin with DeterministicAgentProvider. Move to one live Agent, then add a Sandbox, and add durable Workspace storage last. Each step introduces a separate credential, failure, and cleanup surface that should earn its place.
Agent providers
Own model sessions, native capabilities, and the Agent Client Protocol lifecycle.Sandbox providers
Own process execution, filesystem isolation, and ephemeral environment cleanup.Workspace providers
Own durable files, revision storage, locking, and materialization into a runtime.All factories above are exported from @aml-jsx/sdk and installed with the SDK.
Credential-free learning
Use DeterministicAgentProvider from @aml-jsx/sdk/testing.
It records normalized calls and avoids network or executable setup.
Trusted local automation
Pair an Agent with localSandbox() and
localWorkspace() only when the workflow and every generated command are
trusted on the host.
Disposable container work
Use Docker with an image that already contains the selected ACP executable. Add your own hardening for network, users, capabilities, resources, and daemon exposure.
Durable remote workflows
Combine Daytona or Modal with filesystemWorkspace() or
s3Workspace() when disposable execution must load and publish revision-backed
state.
Before evaluating a provider-backed workflow, verify:
access, root, and cwd semantics match the provider’s actual enforcement.load, save, locking, retention, and cancellation behavior match your durability requirements.Continue to the Agent, Sandbox, or Workspace comparison, or read Production security before running untrusted work.
Adding an integration instead of selecting a built-in? Start with Provider engineering to choose the extension boundary, then use the exact Provider authoring reference while implementing it.