Skip to main content

Omium SDK for Python - Fault-tolerant agent operating system

Project description

Omium Python SDK

Python SDK for integrating Omium checkpoint and recovery capabilities into your agent workflows.

Installation

From PyPI (recommended)

python -m pip install --upgrade pip
python -m pip install omium

The package is signed and published via PyPI’s Trusted Publisher workflow so that no API tokens are stored in the repository. Enable pip’s hash-checking mode or use pipx if you need additional supply-chain guarantees.

From source (development)

cd omium-platform/sdk/python
python -m pip install -e ".[dev]"

Quick Start

1. Setup Client

from omium import OmiumClient

client = OmiumClient(checkpoint_manager_url="localhost:7001")
await client.connect()
client.set_execution_context(execution_id="exec_123", agent_id="agent_1")

2. Using @checkpoint Decorator

from omium import checkpoint

@checkpoint("validate_data", preconditions=["data is not None"])
async def validate_data(data: dict) -> dict:
    assert data is not None
    assert "value" in data
    return {"validated": True, "data": data}

# Use the function
result = await validate_data({"value": 42})

3. Using Checkpoint Context Manager

from omium import Checkpoint

async with Checkpoint("important_state", client=client) as cp:
    # Critical code here
    result = await do_critical_thing()
    cp.update_state(step="complete")
    # Checkpoint saved automatically on exit

4. Manual Checkpoint Creation

checkpoint_id = await client.create_checkpoint(
    checkpoint_name="manual_checkpoint",
    state={"data": "important"},
    preconditions=["data exists"],
    postconditions=["data is valid"],
)

5. Rollback to Checkpoint

rollback_result = await client.rollback_to_checkpoint(
    checkpoint_id="cp_123",
    trigger_reason="manual rollback",
)

Features

  • @checkpoint Decorator - Automatic checkpoint creation before/after function execution
  • Checkpoint Context Manager - Manual checkpoint control with context manager
  • Async gRPC Client - High-performance async communication with checkpoint-manager
  • State Serialization - Automatic serialization of function arguments and results
  • Pre/Post Conditions - Validation support for checkpoint creation
  • Rollback Support - Rollback execution to any checkpoint

Examples

See examples/basic_checkpoint.py for complete examples.

Testing

# Install dev dependencies
pip install -e ".[dev]"

# Run tests
pytest tests/

# Run with coverage
pytest tests/ --cov=omium --cov-report=html

API Reference

OmiumClient

Main client for checkpoint operations.

Methods

  • connect() - Connect to checkpoint-manager service
  • close() - Close connection
  • set_execution_context(execution_id, agent_id) - Set execution context
  • create_checkpoint(...) - Create a checkpoint
  • get_checkpoint(checkpoint_id) - Get checkpoint details
  • list_checkpoints(execution_id) - List checkpoints for execution
  • rollback_to_checkpoint(checkpoint_id) - Rollback to checkpoint
  • verify_checkpoint(checkpoint_id) - Verify checkpoint integrity

@checkpoint Decorator

@checkpoint(
    name: str,
    preconditions: Optional[List[str]] = None,
    postconditions: Optional[List[str]] = None,
    client: Optional[OmiumClient] = None,
    execution_id: Optional[str] = None,
    agent_id: Optional[str] = None,
)

Checkpoint Context Manager

Checkpoint(
    name: str,
    client: Optional[OmiumClient] = None,
    execution_id: Optional[str] = None,
    agent_id: Optional[str] = None,
    preconditions: Optional[List[str]] = None,
    postconditions: Optional[List[str]] = None,
)

Configuration (Remote API / Cloudflare tunnel)

The default API URL used by the SDK and CLI is the current production Cloudflare tunnel (e.g. https://taylor-louis-agents-guides.trycloudflare.com). You can override it with the OMIUM_API_URL environment variable or omium configure --api-url <url> for a different endpoint (e.g. self-hosted or a different tunnel). Do not add /api/v1 to the base URL. See CLOUDFLARE_TUNNEL_API.md in the platform repo for the single source of truth and all client config.

Requirements

  • Python >= 3.11
  • grpcio >= 1.60.0
  • protobuf >= 4.25.0

Development

Generating Proto Code

# From sdk/python directory
python -m grpc_tools.protoc \
    --python_out=omium/proto \
    --grpc_python_out=omium/proto \
    --proto_path=../../shared/proto \
    ../../shared/proto/checkpoint/checkpoint.proto

Or use the script:

.\scripts\generate-proto.ps1  # Windows
./scripts/generate-proto.sh   # Linux/Mac

License

Proprietary - Omium Platform

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

omium-0.3.5.tar.gz (101.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

omium-0.3.5-py3-none-any.whl (115.0 kB view details)

Uploaded Python 3

File details

Details for the file omium-0.3.5.tar.gz.

File metadata

  • Download URL: omium-0.3.5.tar.gz
  • Upload date:
  • Size: 101.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for omium-0.3.5.tar.gz
Algorithm Hash digest
SHA256 d981a6f9a70c01c61e93a3e96e2cde5373513cc5f07c984e642c8f4d6b198eaf
MD5 81d0b0f042d6e012eac86ab7d3f28032
BLAKE2b-256 ec73e8c54f6fe2407f30ae142f4f86e7439016446366805fb47b551f268cb96c

See more details on using hashes here.

Provenance

The following attestation bundles were made for omium-0.3.5.tar.gz:

Publisher: sdk-publish.yml on Omium-ai/Omium-platform

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file omium-0.3.5-py3-none-any.whl.

File metadata

  • Download URL: omium-0.3.5-py3-none-any.whl
  • Upload date:
  • Size: 115.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for omium-0.3.5-py3-none-any.whl
Algorithm Hash digest
SHA256 aa095dab991cb8d72af1e22d3f76cc120c4db4b9afa8a0431fd5538e1cf09bef
MD5 2fc85b6d9b53ba17b6e786af35b00daf
BLAKE2b-256 fba9733a330ecfd3dcd82510f34a499cee6e14f7519b897617f9e46bfe29e665

See more details on using hashes here.

Provenance

The following attestation bundles were made for omium-0.3.5-py3-none-any.whl:

Publisher: sdk-publish.yml on Omium-ai/Omium-platform

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page