Devin (Cognition)
How a Devin session could mount an AIStor Memory Bucket, so its files and memory survive sandbox teardown and any host can resume it.
Each Devin session starts in a fresh sandbox. With AIStor Memory, the session would mount a Memory Bucket that holds its files and the memory it keeps, in your AIStor. The next session, on any host, mounts the same bucket and starts where the last one stopped.
This integration is not self-serve. Devin has no public sandbox-extension
API, so it needs two changes that only Cognition can make: bundling aimem
into the runner image, and adding a storage field to each session. This page
describes that design. To use it, contact your MinIO representative.
Devin keeps workspaces today by snapshotting the whole sandbox VM, which ties the workspace to one host's local disk. With the workspace in a Memory Bucket, any host can resume a session by mounting the bucket, and the VM snapshot becomes an optimization rather than a requirement.
How it would work
- Runner image bundles
aimem, FUSE userspace, anddevin-aimem-workspace. - Control plane exposes one per-session
workspace_storagefield withbucket(a Memory Bucket),endpoint_url, andcredentials_secret_ref. - Runner startup maps that field to environment variables and
runs
devin-aimem-workspace mountbefore the agent starts.
AIStor Memory provides everything else: atomic uploads, agent-memory warmup,
and the aimem skill.
Use a Memory Bucket
aimem mounts only a Memory Bucket. See
Prerequisites.
Runner contract
The session field is small:
{
"workspace_storage": {
"kind": "aimem",
"bucket": "team-foo-devin",
"endpoint_url": "https://aistor.team-foo.example.com",
"credentials_secret_ref": "devin-aimem-team-foo"
}
}The runner resolves credentials_secret_ref to the bucket's signing
credentials and exports them as AIMEM_ACCESS_KEY and AIMEM_SECRET_KEY
(plus AIMEM_SESSION_TOKEN for temporary credentials). It also exports
AIMEM_BUCKET and AIMEM_ENDPOINT_URL, then runs:
devin-aimem-workspace mountTo create credentials limited to one Memory Bucket, run
aimem credentials team-foo-devin. It prints export lines for
AIMEM_ACCESS_KEY, AIMEM_SECRET_KEY, and AIMEM_SESSION_TOKEN that you can
source.
The hook mounts the workspace at /workspace and uses
/var/cache/aimem/devin as AIStor Memory's required local staging directory.
It writes the config to /etc/aimem/devin.yaml, with the required
version: "1.0" key, the endpoint from AIMEM_ENDPOINT_URL, and the staging
directory. The mount is then one --config command with no other flags:
aimem team-foo-devin /workspace --config /etc/aimem/devin.yaml# /etc/aimem/devin.yaml — written by the hook from the runner's env
version: "1.0"
endpoint_url:
- https://aistor.example.com # from $AIMEM_ENDPOINT_URL
local: /var/cache/aimem/devinSigning credentials stay in the environment, never in a flag or the YAML.
The staging directory can also come from the --local /var/cache/aimem/devin
flag or the AIMEM_LOCAL environment variable; at least one of the three is
required.
On pause or teardown, the runner runs:
devin-aimem-workspace unmountGive the agent its secrets
The mount does not give the agent any secrets. To give the agent
credentials, the runner runs aimem secret provision before it starts the
agent:
# Keep the store token in the launcher env, not argv (argv shows up in
# process listings and shell history).
AIMEM_SECRET_STORE_TOKEN="$STORE_TOKEN" \
aimem secret provision \
--store-endpoint "$STORE_URL" \
--grant OPENAI_API_KEY=openai --grant GITHUB_TOKEN=gh-pat \
-- <agent-command>This fetches only the granted secrets from your store and passes them to the
agent as environment variables. aimem removes the store token and the
mount credentials from the agent's environment. --grant VAR=secret-name is
required and can be repeated.
If the secrets are stored in the Memory Bucket (written with
aimem secret put team-foo-devin <name>), use --bucket team-foo-devin
instead of --store-endpoint. Use exactly one of the two. The bucket source
uses the same AIMEM_ENDPOINT_URL, AIMEM_ACCESS_KEY, and AIMEM_SECRET_KEY
as the mount.
What this gives you
- Resume on any host. The bucket holds the session's files and memory, so any host can mount it and continue.
- Cost follows the working set. Only files the agent writes are stored, not the whole VM state.
- Portable memory. The same bucket works in any region or cloud. SaaS and customer-VPC deployments use the same design; only the storage backend differs.
Get in touch
If you run Devin, as SaaS or in your own VPC, and want to try Memory Bucket workspaces for your sessions, contact your MinIO representative.
NVIDIA OpenShell
Mount an AIStor Memory Bucket as the workspace of an OpenShell sandbox, allowed through a static filesystem_policy, so the agent's work survives teardown.
Operations
Run AIStor Memory in production. Mount a Memory Bucket in each sandbox runtime or at boot, collect logs, metrics, and agent telemetry, store secrets in the Vault, and fix common problems.