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.0.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.0.0
File Size Uploaded
arkitekt_spec-3.0.0.tar.gz 153.2 kB Details

Built distribution (wheel)

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

Total release size: 341.3 kB

Release files / arkitekt_spec-3.0.0.tar.gz

Download URL arkitekt_spec-3.0.0.tar.gz
Size 153.2 kB
Tags Source
SHA-256 checksum
How to use checksums
6b1c44ef29209244c42a859100c8acb508d711f167d7dfbb3a4e7a2566ad5176
BLAKE2b-256 checksum
How to use checksums
33c55d5b03194261e33a7c73457992d74ed595e8afb1ed8a8e372c5a97a3e6f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","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.0.0-py3-none-any.whl

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

This release

3.0.0 This release

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