Skip to main content

arkitekt-spec

The wire format of an Arkitekt app: one definition of what an app is, shared by everything that produces or consumes it.

Model What it is Produced by Consumed by
AppManifest, Requirement who the app is, which services it needs arkitekt (from the App) kabinet
Inspection what the app declares (rekuest's action language, carried as JSON) arkitekt inspect all, inside the image arkitekt's plugin CLI, kabinet
Selector (cpu, ram, cuda, rocm, oneapi, label) where a flavour may run a flavour's config.yaml kabinet, deployers
DeploymentsFile .arkitekt/deployments.yaml, the images a repo publishes arkitekt plugin publish kabinet's repo scan

It also owns the action language (arkitekt_spec.actions: definitions, ports, implementations) and the declaration layer (arkitekt_spec.declare): AppRegistry, the @app.action / @app.workflow / @app.declare machinery, structures, and the Task protocol a runtime implements. SDKs build on it; apps import the same names from arkitekt. It depends on pydantic, pyyaml and three small pure-python helpers, and on no runtime, transport or client.

Workflows and recovery

An implementation carries two claims the server keeps:

Field Values Meaning
execution PLAIN, WORKFLOW Only a WORKFLOW may call other actions; it is resumed when its agent dies, a PLAIN task ends LOST.
effects NONE, REPEATABLE, UNKNOWN, IRREVERSIBLE What running it again would do. Information for whoever decides about a lost task, never a rule.

code_hash pins a resume to the code that started the run. The errors a caller sees (AgentLost, NonDeterministicWorkflow, NotAWorkflowError, StateChanged) live in arkitekt_spec.declare.errors, and the workflow helpers (record, retry, hold, guard) are on the Task protocol.

Compatibility

Every envelope model ignores unknown keys. An inspection is written by the arkitekt inside an image and read by the host CLI, and deployments.yaml is written by the CLI and read by a kabinet server that upgrades on its own schedule. Adding a field is therefore a minor change an older reader survives. A change an older reader must refuse bumps spec_version.

Selectors are the exception: they refuse unknown keys, because they are written by hand and a typo must not silently widen a placement constraint.

from arkitekt_spec import load_deployments, dump_deployments

file = load_deployments(open(".arkitekt/deployments.yaml").read())

python -m arkitekt_spec prints the JSON Schema. The committed snapshot in tests/fixtures/deployments.schema.json makes every format change show up in review.

Metadata

Release files for arkitekt-spec 3.9.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for arkitekt-spec 3.9.0
File Size Uploaded
arkitekt_spec-3.9.0.tar.gz 194.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for arkitekt-spec 3.9.0
File Interpreter ABI Platform
arkitekt_spec-3.9.0-py3-none-any.whl Python 3 none any Details

Total release size: 427.5 kB

Release files / arkitekt_spec-3.9.0.tar.gz

Download URL arkitekt_spec-3.9.0.tar.gz
Size 194.5 kB
Tags Source
SHA-256 checksum
How to use checksums
f22611dffbb267b905bc0565de659b53958d67441a910f928d5b66dce1dd8e45
BLAKE2b-256 checksum
How to use checksums
b414c5e7468a4c7de96f984e168015cacec6f60ed3140463f9e10b8f14f048b8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / arkitekt_spec-3.9.0-py3-none-any.whl

Download URL arkitekt_spec-3.9.0-py3-none-any.whl
Size 233.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
376dd505ef1daea12d79f788440efec5488fc68924aed569fab8be3e713f305e
BLAKE2b-256 checksum
How to use checksums
bb054841bbef9d58bf5e1aaa697abd213ef74ede7a3429f67d191d59005ba476
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

3.12.0

2 release files

3.11.0

2 release files

3.10.0

2 release files

This release

3.9.0 This release

2 release files

3.8.0

2 release files

3.7.0

2 release files

3.6.0

2 release files

3.5.0

2 release files

3.4.0

2 release files

3.3.0

2 release files

3.2.0

2 release files

3.1.0

2 release files

3.0.0

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.0

2 release 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