Parlant Agents
Log in Create agent

Features

Backup and restore

Create, inspect, download, and restore encrypted backups of your agent.

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.

Start with a managed, recoverable agent.

Create a private managed agent and follow this guide on your own dedicated instance.

Create agent