Skip to main content

State Versioning

Automatic version management with rollback capabilities for state persistence.

Overview

State versioning enables tracking changes over time and rolling back to previous versions.

Usage

See State Persistence for detailed versioning configuration.

from recoagent.state import RedisStatePersistence

persistence = RedisStatePersistence(
redis_url="redis://localhost:6379/0",
enable_versioning=True,
max_versions=10
)

# Save version 1
persistence.save_with_metadata(
state={"data": "v1"},
state_id="my_state",
version=1
)

# Save version 2
persistence.save_with_metadata(
state={"data": "v2"},
state_id="my_state",
version=2
)

# List versions
versions = persistence.list_versions("my_state")

# Load specific version
result = persistence.load_with_metadata("my_state", version=1)

Benefits

  • Change Tracking: Track state evolution
  • Rollback: Revert to previous versions
  • Debugging: Investigate state history

Best Practices

  1. Set Max Versions: Limit version history
  2. Use Tags: Tag important versions
  3. Clean Old Versions: Regularly clean up old versions