Skip to main content

plato-core

Plato Engine Block — a sub-400-line room runtime for agent-space interaction.

Foundation types and mesh registry for the PLATO (Protocol for Layered Agent Tile Orchestration) ecosystem. Zero external dependencies — everything else builds on top.

Install

pip install plato-core

Quick Start

from plato_core import TrainingTile, TileType, content_hash, LamportClock

# Create a tile — the atomic unit of work in PLATO
tile = TrainingTile(
    tile_id="chk-001",
    tile_type=TileType.CHECKPOINT,
    name="my-model-v1",
)

# Lamport clock for causal ordering across distributed rooms
clock = LamportClock()
tile.lamport = clock.tick()

# Content-addressable hash (SHA-256)
h = content_hash(b"some weights data")
print(h)  # 64-char hex string

The Mesh Registry

PLATO rooms auto-discover each other through the mesh registry. Any installed package that declares an entry point is found automatically:

from plato_core import MeshRegistry

registry = MeshRegistry()
matchers = registry.get_matchers()      # from plato-matcher
compressors = registry.get_compressors()  # from plato-compress
trainers = registry.get_trainers()       # from plato-training

Registering a Plugin

  1. Add plato-core as a dependency
  2. Declare an entry point in pyproject.toml:
[project.entry-points."superinstance.plugins"]
my-plugin = "my_package._mesh:register"
  1. Implement the register function:
# my_package/_mesh.py
def register(registry):
    registry.register("matchers", "my_matcher", lambda: MyMatcher)

That's it. The mesh finds it automatically.

Key Concepts

Tiles are the atomic unit of work — signed, content-addressed artifacts that flow between rooms. Every tile has a lifecycle (Active → Superseded → Retracted) and a Lamport timestamp for ordering.

Rooms are agents. Each agent is a PLATO room that produces and consumes tiles. Rooms discover each other through the mesh registry.

Lamport clocks provide causal ordering without a central coordinator. When two rooms exchange tiles, they merge clocks — enabling distributed ordering.

What's Provided

  • TrainingTile, TileType — tile data model
  • TileLifecycle — Active / Superseded / Retracted
  • LamportClock — distributed causal ordering
  • TrainingConfig, AdapterConfig, TrainingMetrics — ML config types
  • content_hash() — SHA-256 content addressing
  • MeshRegistry — auto-discovery of ecosystem packages

Architecture

plato-core (this)       ← base types + mesh registry
  ├── plato-types       ← protocol-level type definitions
  ├── plato-training    ← training rooms, micro models
  ├── plato-mcp         ← MCP server (expose rooms as tools)
  ├── plato-matcher     ← semantic matching
  ├── plato-compress    ← compression / quantization
  └── ...               ← any future PLATO package

Documentation

PLATO Engine Block Family

Plato Core is the Python foundation layer of the broader PLATO ecosystem:

Component Language Repo Focus
Python Core ← you are here Python plato-core Foundation types, mesh registry, training tiles
C Reference C99 plato-engine-block-c Embedded, bare-metal, zero heap alloc
Rust (Original) Rust plato-engine-block no_std + alloc, builder pattern, tokio server
Elixir/OTP Elixir plato-engine-block-elixir BEAM supervision trees, fault tolerance, hot reload
Zig Zig plato-engine-block-zig Comptime ternary packing, cross-compile
Runtime Kernel Rust plato-runtime-kernel Spatial model: tensor grid, batons, assertion traps
Server Python plato-server Knowledge tiles, fleet sync via Matrix, HTTP API

Specs & Guides:

Related Repos

Download files

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

Source Distribution

plato_core-0.2.0.tar.gz (11.6 kB view details)

Uploaded Source

Built Distribution

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

plato_core-0.2.0-py3-none-any.whl (8.4 kB view details)

Uploaded Python 3

File details

Details for the file plato_core-0.2.0.tar.gz.

File metadata

  • Download URL: plato_core-0.2.0.tar.gz
  • Upload date:
  • Size: 11.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for plato_core-0.2.0.tar.gz
Algorithm Hash digest
SHA256 b011a4551579d4866e965af463fe5a203b5ec5d8f5ae6bc9799369cbeccc6d9b
MD5 53311a0706fe486c8f392d9ad02bc13e
BLAKE2b-256 44f0dbf53dc6d7e9b37acc677faf4e9d6e8f70700e96c1ccdfd4c1f80560f1ff

See more details on using hashes here.

File details

Details for the file plato_core-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: plato_core-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 8.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for plato_core-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 14a2dcfbf653d0bcabfdb30fb2d34dc8d5d1179b2d6eb03986d1f428ffd1cf53
MD5 6b7c6b7ccd54a99c6e6fc8e701971980
BLAKE2b-256 3d98a4872ba1d12b78e776b3dac833eadc70573193068c5dfccad303d3f7ef1d

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page