Skip to main content

Common Agent Runtime — Python bindings for deterministic AI agent execution

Project description

car-runtime (Python)

Python bindings for Common Agent Runtime (CAR) — a deterministic execution layer for AI agents. Models propose; the runtime validates and executes.

Pre-built wheels (abi3, Python 3.9+) for:

  • macosx_14_0_arm64, macosx_14_0_x86_64 — macOS 14+ required (MLX Metal shaders)
  • manylinux_2_17_x86_64, manylinux_2_28_aarch64

Building from source on macOS: set MACOSX_DEPLOYMENT_TARGET=14.0 when invoking maturin build — MLX's bundled Metal shaders don't compile against the default 11.0 target.

Install

From a release wheel (until PyPI is wired up):

pip install https://github.com/Parslee-ai/car/releases/download/vX.Y.Z/car_runtime-X.Y.Z-cp39-abi3-macosx_11_0_arm64.whl

Or build from source:

pip install maturin
cd car-rs/crates/car-ffi-pyo3
maturin develop --release

The import name is car_runtime (matching the PyPI package name).

Quickstart

import json
from car_runtime import CarRuntime, verify, execute

rt = CarRuntime()

# Tools + policies.
rt.register_tool("shell")
rt.register_policy(
    "no_rm",
    "deny_tool_param",
    target="shell",
    key="command",
    pattern="rm -rf",
)

# Ground with facts.
rt.add_fact("project_language", "Python", "pattern")

# Verify before executing.
proposal = json.dumps({
    "actions": [{
        "id": "a1",
        "type": "tool_call",
        "tool": "shell",
        "parameters": {"command": "ls"},
        "dependencies": [],
    }],
})

check = json.loads(rt.verify_proposal(proposal))
if not check["valid"]:
    raise RuntimeError(f"invalid proposal: {check['issues']}")

# Execute with a Python-side tool callback.
def tool_fn(tool: str, params_json: str) -> str:
    params = json.loads(params_json)
    # Dispatch to your actual implementation.
    return json.dumps({"stdout": "ok", "stderr": ""})

result_json = rt.execute_proposal(proposal, tool_fn)

Streaming inference

from car_runtime import CarRuntime

rt = CarRuntime()

def on_event(event_json: str) -> None:
    e = json.loads(event_json)
    if e["type"] == "text":
        print(e["data"], end="", flush=True)

rt.infer_stream(
    "Explain CAR in one sentence.",
    on_event,
    max_tokens=256,
)

Multi-agent coordination

import json
from car_runtime import register_agent_runner, run_swarm

def agent_fn(spec_json: str, task: str) -> str:
    spec = json.loads(spec_json)
    # Call your LLM of choice, returning an AgentOutput JSON.
    return json.dumps({"name": spec["name"], "response": "...", "tool_calls": []})

# Option A: register once, then call run_* without passing agent_fn each time.
register_agent_runner(agent_fn)
result = run_swarm(
    "parallel",
    json.dumps([
        {"name": "researcher", "role": "gather facts", "model": "gpt-5"},
        {"name": "writer",     "role": "compose summary", "model": "claude-opus-4-7"},
    ]),
    "summarize the CAR paper",
)

# Option B: pass agent_fn per call.
result = run_swarm("parallel", agents_json, task, agent_fn=agent_fn)

API surface

The runtime (CarRuntime) exposes:

  • State: state_set, state_get, state_exists, state_snapshot, state_keys
  • Memory: add_fact, query_facts, fact_count, build_context, build_context_fast, persist_memory, load_memory, consolidate
  • Skills: ingest_skill, find_skill, report_outcome, distill_skills, ingest_distilled_skills, list_skills, domains_needing_evolution, repair_skill, evolve_skills
  • Tools + policies: register_tool, register_agent_basics, register_policy, set_replan_config
  • Inference: infer, infer_tracked, infer_with_context, infer_with_context_tracked, embed, rerank, classify, prepare_speech_runtime, transcribe, synthesize, infer_stream
  • Models: list_models, pull_model, remove_model, list_models_unified, register_model, route_model, model_stats
  • Execution: event_count, verify_proposal, execute_proposal

Module-level standalone functions:

  • Verification: verify, simulate, optimize, equivalent
  • Stateless execute: execute (creates a fresh Runtime; for long-lived use, prefer CarRuntime.execute_proposal)
  • Multi-agent: register_agent_runner, run_swarm, run_pipeline, run_supervisor, run_map_reduce, run_vote
  • Scheduler: create_task, run_task, run_task_loop, ensure_dream_task
  • Planner: rank_proposals

Structured returns are JSON-encoded strings — json.loads them on the Python side. This keeps the FFI surface stable across binding and protocol changes.

Development

# Install dev deps.
pip install maturin pytest

# Build and install in editable mode.
cd car-rs/crates/car-ffi-pyo3
maturin develop

# Run the smoke tests.
pytest tests/ -v

Architecture

This package is a thin PyO3 wrapper over the Rust car-engine + car-memgine crates. Tool execution uses a callback pattern: the runtime doesn't own tools, you provide a Python function that dispatches them. See the repo README for the bigger picture.

License

Free for any use including commercial; free to redistribute unmodified. Modification, reverse engineering, and derivative works are not permitted. See LICENSE for the full text. Copyright © 2026 Parslee AI.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

car_runtime-0.4.6-cp39-abi3-win_amd64.whl (14.1 MB view details)

Uploaded CPython 3.9+Windows x86-64

car_runtime-0.4.6-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (15.9 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ x86-64

car_runtime-0.4.6-cp39-abi3-macosx_14_0_x86_64.whl (13.5 MB view details)

Uploaded CPython 3.9+macOS 14.0+ x86-64

car_runtime-0.4.6-cp39-abi3-macosx_14_0_arm64.whl (17.1 MB view details)

Uploaded CPython 3.9+macOS 14.0+ ARM64

File details

Details for the file car_runtime-0.4.6-cp39-abi3-win_amd64.whl.

File metadata

  • Download URL: car_runtime-0.4.6-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 14.1 MB
  • Tags: CPython 3.9+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for car_runtime-0.4.6-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 5acc0ca18203700c91dc0ee83c3621cd33c12df99d70c0cafeae7ea26c836520
MD5 08fe243b9a16da81c2e8b537b9615b68
BLAKE2b-256 4fcabd0bb9fca31fcff8f8c37c5e0de13820db043f49528c359c9f8812eb062e

See more details on using hashes here.

Provenance

The following attestation bundles were made for car_runtime-0.4.6-cp39-abi3-win_amd64.whl:

Publisher: build.yml on Parslee-ai/car

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

File details

Details for the file car_runtime-0.4.6-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for car_runtime-0.4.6-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d941b0eceb6a484204cd99f9ae74550da99eaa189ef63a106463abd847e46c3b
MD5 ed97fe9b4a4bf2962754f2ca33d53e95
BLAKE2b-256 de002a0b2c73e91acb2ae802ffbb103b91a7ab7f39718d61b1e1978e7b13760a

See more details on using hashes here.

Provenance

The following attestation bundles were made for car_runtime-0.4.6-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build.yml on Parslee-ai/car

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

File details

Details for the file car_runtime-0.4.6-cp39-abi3-macosx_14_0_x86_64.whl.

File metadata

File hashes

Hashes for car_runtime-0.4.6-cp39-abi3-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 b0042a792235a504aed9a9f79d99e165beea632b1dcd967e6a5bb68612404306
MD5 4a7b67a15fa7f54f493e446fe186226b
BLAKE2b-256 fc8bbaeceaa6a63a2b565d8fd0495f73c4fa32c2c42360ee739c7f531cb88a85

See more details on using hashes here.

Provenance

The following attestation bundles were made for car_runtime-0.4.6-cp39-abi3-macosx_14_0_x86_64.whl:

Publisher: build.yml on Parslee-ai/car

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

File details

Details for the file car_runtime-0.4.6-cp39-abi3-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for car_runtime-0.4.6-cp39-abi3-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 128ca9cc5f9b7af4351d12a110340e1aadb773d0fb11faa1d263a1c23423d59e
MD5 154ac031d418b7ddeb971ed1c5cd2934
BLAKE2b-256 19f045ee0970b680eb86f32617031ed58723ad391fc695e7f36d38754981e392

See more details on using hashes here.

Provenance

The following attestation bundles were made for car_runtime-0.4.6-cp39-abi3-macosx_14_0_arm64.whl:

Publisher: build.yml on Parslee-ai/car

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

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page