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.11.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.11.0
File Size Uploaded
arkitekt_spec-3.11.0.tar.gz 206.1 kB Details

Built distribution (wheel)

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

Total release size: 451.5 kB

Release files / arkitekt_spec-3.11.0.tar.gz

Download URL arkitekt_spec-3.11.0.tar.gz
Size 206.1 kB
Tags Source
SHA-256 checksum
How to use checksums
dcf6f466d878ff8f73f82a0d20434487ef6e54767e3d6589cdd847da1d142b9f
BLAKE2b-256 checksum
How to use checksums
3a349d79e0f8fd11f6cf42c963982bc2670e14bf3a4b14f77d4cbc97cfb0f946
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","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.11.0-py3-none-any.whl

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

This release

3.11.0 This release

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

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