Skip to main content

blackboardx

A group of agents works on one problem. Each writes what it finds into a single shared record, every agent can read all of it, and no agent calls another; the record is the only channel between them. The blackboard literature calls a system skeletal when it supplies this structure with no domain knowledge inside, so that an application system is built on it by adding knowledge and control. blackboardx is skeletal in that sense. It supplies the board and the control component; an application creates a model by supplying its regions, seed, admission rule, termination predicate, and limits, and its agents register themselves into it.

The distribution name is blackboardx; the import name is blackboard. The documentation, including the API reference, is at https://moeinroghani.github.io/blackboardx/.

Install

pip install blackboardx
pip install 'blackboardx[postgres]'    # PostgresBoard
pip install 'blackboardx[mongodb]'     # MongoBoard

The base install has no runtime dependency: the board it ships, SqliteBoard, is backed by SQLite, which comes with Python. A deployment keeps the record in the database it already runs, and the adapter for one needs its driver.

Documentation

Quickstart A run in full, in twenty lines
Concepts What the board, the control component and a run are
Storage Where the record is kept, and what an adapter owes
Guides Writing an agent, admission rules, ending a run, testing
API reference Every exported name

Example

from datetime import timedelta

from blackboard import (
    Agent,
    Level,
    Register,
    RunBudgets,
    Settled,
    SqliteBoard,
    create_model,
)

wakes = []

model = create_model(
    regions=[Level("platform"), Register("window")],
    seed={"window": ["2026-08-16T20:00", "2026-08-16T22:00"]},
    budgets=RunBudgets(wall_clock=timedelta(minutes=10), idle=timedelta(seconds=1)),
    board=SqliteBoard("incident.sqlite3"),
)

model.control.register_agent(Agent(name="ocp", notify=wakes.append))

(wake,) = wakes
window = model.reader.read_register("window").value
model.control.write("ocp", "platform", {"window": window, "findings": ["oom"]})
model.control.ack("ocp", wake.notification_id)

assert model.control.wait_closed(timeout=timedelta(seconds=10)) == Settled()

License

Apache-2.0. The license text is in LICENSE, and every distribution carries it.

Download files

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

Source Distribution

blackboardx-0.4.0.tar.gz (167.1 kB view details)

Uploaded Source

Built Distribution

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

blackboardx-0.4.0-py3-none-any.whl (33.0 kB view details)

Uploaded Python 3

File details

Details for the file blackboardx-0.4.0.tar.gz.

File metadata

  • Download URL: blackboardx-0.4.0.tar.gz
  • Upload date:
  • Size: 167.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for blackboardx-0.4.0.tar.gz
Algorithm Hash digest
SHA256 f965fc27a69a57d9f269a5e38981022dab8157cc6e558ea1a8aaaa0cb51e5aae
MD5 b689cfd25d5bccb9ec979beb0d864d40
BLAKE2b-256 18df422ec3286d61609a56db840c8744df37b2e2f258066d18abc520c1c640f0

See more details on using hashes here.

Provenance

The following attestation bundles were made for blackboardx-0.4.0.tar.gz:

Publisher: publish.yml on MoeinRoghani/blackboardx

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

File details

Details for the file blackboardx-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: blackboardx-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 33.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for blackboardx-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9a0650b147e3e384882ec426888c017f19c0daa0b6303e603944b24976944541
MD5 516aed8506894d377d1682e07b04efce
BLAKE2b-256 58768332a0c1b0d0d9923b5daf21101468e234c76b2237d768fdde99c32ff2ae

See more details on using hashes here.

Provenance

The following attestation bundles were made for blackboardx-0.4.0-py3-none-any.whl:

Publisher: publish.yml on MoeinRoghani/blackboardx

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

Release history Release notifications | RSS feed

0.14.1

2 files

0.14.0

2 files

0.13.0

2 files

0.12.0

2 files

0.11.1

2 files

0.10.1

2 files

0.10.0

2 files

0.8.0

2 files

0.7.0

2 files

0.6.0

2 files

0.5.0

2 files

This release

0.4.0 This release

2 files

0.3.0

2 files

0.2.1

2 files

0.2.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