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.2.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.2.0
File Size Uploaded
arkitekt_spec-3.2.0.tar.gz 154.8 kB Details

Built distribution (wheel)

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

Total release size: 344.7 kB

Release files / arkitekt_spec-3.2.0.tar.gz

Download URL arkitekt_spec-3.2.0.tar.gz
Size 154.8 kB
Tags Source
SHA-256 checksum
How to use checksums
1b9859729aa768a697d3fdf11ee5c393af0511d1bdb884e4c7bfa15bc6406101
BLAKE2b-256 checksum
How to use checksums
8316aae84d2902826002a5ef2dfac36d264a7032ed4ce0c82e6362f07f5d6a59
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","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.2.0-py3-none-any.whl

Download URL arkitekt_spec-3.2.0-py3-none-any.whl
Size 189.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ed78f1d5ebc5f5697877340c2524d26b283871a7e3b23ffa724c97270956d8f7
BLAKE2b-256 checksum
How to use checksums
d517bcbabba8df64fb1d6a45ec62b8310c571d3fd04c35f5fdb8131d89a783fc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","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

3.9.0

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

This release

3.2.0 This release

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