Introduction
Your agent accumulates conversations, configuration, skills, working files, provider keys, channel credentials, and tool configuration. Parlant Agents creates encrypted backups so that infrastructure maintenance or cancellation does not have to mean losing that state.
Examples
- Before a major configuration change, create a manual backup from the agent dashboard.
- During a managed Hermes upgrade, Parlant Agents verifies a fresh backup before replacing the server.
- When you cancel and destroy an instance through the normal path, the service creates and verifies a final backup before teardown.
In-depth guide
Automatic and manual backups
Automatic backup runs daily at midnight UTC. To request an additional backup, open your agent in the Parlant Agents dashboard, select Backups, and then select Back up now. The status changes while the backup is created, uploaded, and verified.
A backup is ready for recovery only after verification completes. The service independently retains the latest manual backup and latest automatic backup for each instance. Automatic includes scheduled, pre-upgrade, pre-recreation, and pre-destruction backups. Completing a newer backup replaces only the older backup of the same kind.
The dashboard shows each retained backup's completion time, encrypted size, and SHA-256 digest.
Backups include the Hermes home, conversations and databases, profiles, skills, channel configuration, files workspace, API keys entered in Hermes, and user-home state used by Hermes integrations such as SSH, AWS, Claude, Codex, and other tool credentials. Regenerable caches and logs are omitted. Machine identity and Parlant-managed tunnel, dashboard, WebDAV, and backup credentials are regenerated securely during restoration rather than copied from the old server.
Managed upgrades
An upgrade follows a guarded sequence: create and verify a backup, remove the old server, create a server from the current managed image, and restore your data. The hostname, tunnel, credentials, and subscription remain attached to the instance.
Hermes has administrator access to its dedicated server. Using that access marks the instance as customized. Before upgrading a customized instance, the dashboard warns you and requires explicit confirmation. The customization switch defaults on for a customized instance. Turn it off for a clean system boot: scripts remain in $HERMES_HOME/vps-customizations/, but are not run as root and the successfully recreated server is no longer marked as customized. One-off commands are never replayed, and old scripts may conflict with a newer image.
The Recreate tab performs the same backup-first server replacement using the instance's existing managed image version instead of the newest image. A customized instance gets the same replay switch and confirmation there.
Do not begin an upgrade or recreation while important agent work is still running. Wait until the dashboard reports that Hermes is ready before resuming work.
Cancellation and destruction
Manage renewal through the Stripe billing portal. Cancellation takes effect according to the billing period shown there. Instance destruction is a separate, explicit action in the Parlant Agents dashboard.
The normal destruction path creates a final backup first. The emergency Destroy without backup path permanently removes the current volume without making that recovery copy; use it only when data must be removed immediately.
After a subscription expires without renewal, retained backups remain available until seven days after that subscription period ends. During this grace period you can download a backup or start a replacement subscription and restore it. After the grace period, backup objects and metadata are automatically removed. Renewing or replacing the subscription before cleanup keeps backups attached to the active instance.
Restoring an agent
After teardown, open Backups in your account. If you still have an unused active subscription, restoration can use it without purchasing another one. Otherwise, the interface offers a new subscription before restoration. Follow the live provisioning status until the recovered Hermes dashboard is ready.
Downloading and opening a backup
Open Backups, choose the manual or automatic backup, and select Download .tar. Copy the decryption key shown for that instance and store it separately from the downloaded file. Anyone who has both can read the backup.
First compare the downloaded file's digest with the SHA-256 value shown in the control plane:
sha256sum backup.tar
On macOS, use shasum -a 256 backup.tar instead. Do not continue if the digest differs.
On a Linux or macOS system with Bash, OpenSSL, jq, and tar with bzip2 support, extract and verify the encrypted payloads:
mkdir -p backup-work restored
tar -xf backup.tar -C backup-work
cd backup-work
jq -r '["\(.files_sha256) files.tar.bz2.enc", "\(.hermes_sha256) hermes.tar.bz2.enc"]
+ (if .users_sha256 then ["\(.users_sha256) users.tar.bz2.enc"] else [] end)
| .[]' manifest.json > SHA256SUMS
sha256sum -c SHA256SUMS
On macOS, replace the last command with shasum -a 256 -c SHA256SUMS. All listed payloads must report OK. Then enter the key without echoing it or placing it directly in shell history, decrypt, and extract:
read -rsp 'Backup decryption key: ' BACKUP_KEY; printf '\n'
printf '%s' "$BACKUP_KEY" > backup.key
unset BACKUP_KEY
openssl enc -d -aes-256-cbc -pbkdf2 -iter 200000 \
-pass file:backup.key -in files.tar.bz2.enc | \
tar -xjf - -C ../restored
openssl enc -d -aes-256-cbc -pbkdf2 -iter 200000 \
-pass file:backup.key -in hermes.tar.bz2.enc | \
tar -xjf - -C ../restored
if [ -f users.tar.bz2.enc ]; then
mkdir -p ../restored/users
openssl enc -d -aes-256-cbc -pbkdf2 -iter 200000 \
-pass file:backup.key -in users.tar.bz2.enc | \
tar -xjf - -C ../restored/users
fi
rm -f backup.key
Recovered customer files are under restored/webdav. Hermes configuration, conversations, skills, and persistent runtime state are under restored/home. Format 2 backups also place Hermes and administrator user-home state under restored/users. Format 1 backups created before user-home coverage remain restorable and contain the first two payloads only.
Why the download ends in .tar
The outer .tar is only a container for manifest.json and encrypted payloads. Each payload is compressed with bzip2 before AES-256 encryption (files.tar.bz2.enc, hermes.tar.bz2.enc, and, for format 2, users.tar.bz2.enc). Encrypted bytes are effectively incompressible, so compressing the outer archive would add work with almost no size reduction. The current format already gets the useful compression while keeping the manifest and payload boundaries easy to verify.