Skip to main content

up-kairos

CI PyPI Python versions License: Apache-2.0

Kairos, a temporal and numeric PDDL planner, as an engine of the Unified Planning Framework (UPF).

Kairos plans in the same process (no files, no subprocess), anytime, and proves when no plan exists. Every plan is validated before it is returned.

pip install up-kairos
import up_kairos
from unified_planning.shortcuts import OneshotPlanner

up_kairos.register()  # until UPF lists Kairos among its engines ("kairos", "kairos-val")

with OneshotPlanner(name="kairos") as planner:
    result = planner.solve(problem, timeout=10)
    print(result.status, result.plan)

Operation modes

UPF Kairos
OneshotPlanner a plan; with a quality metric and a timeout, the best within it
AnytimePlanner each better plan as it comes (increasing quality), then the best
PlanValidator kairos-val, Kairos' validator: numeric, temporal, PDDL3 (not PDDL+)
Replanner through UPF's meta engine: Replanner(problem, name="replanner[kairos]")

Results:

  • SOLVED_OPTIMALLY when Kairos proves the plan optimal for the problem's metric.
  • UNSOLVABLE_PROVEN when it proves there is no plan: the search space runs out, the timed literals take what the goal needs too soon, or there is no plan even without durations.
  • UNSOLVABLE_INCOMPLETELY when the engines that apply ran out of states without being complete for the task.
  • TIMEOUT, MEMOUT, UNSUPPORTED_PROBLEM.

Kairos' diagnostics, including why there is no plan, are in result.log_messages. Its statistics are in result.metrics: expanded nodes, states, plans and peak memory.

Problems

Kairos plans with:

  • Classical planning, with negative, disjunctive, existential and universal conditions and conditional effects.
  • Numeric planning, linear or not, with bounded numeric fluents and undefined values.
  • Object fluents.
  • Temporal planning, with required concurrency, timed effects (timed initial literals and fluents), duration inequalities and durations that read fluents.
  • Continuous effects, processes and events (PDDL+).
  • Trajectory constraints and state invariants.
  • Quality metrics: action costs, plan length, makespan, final value, and oversubscription.

It plans 52 of the 66 example problems of UPF 1.3. The rest are hierarchical, scheduling, integer or boolean parameters, intermediate conditions, timed goals and undefined booleans. It passes UPF's engine tests (up_test_cases/report.py kairos kairos-val: oneshot, anytime and validation).

Notes:

  • Writing for Kairos. Some things go beyond what UPF's PDDL writer writes, so this engine writes them itself:
    • object fluents, as PDDL 3.1;
    • oversubscription, as goal preferences and a metric of the gain lost;
    • bounded fluents, as state invariants.
  • One instance at a time. A durative action does not overlap itself, as in POPF: SELF_OVERLAPPING is not declared.
  • Simultaneous happenings. Kairos plans with epsilon between happenings that interfere (problem.epsilon, 0.001 by default), as PDDL 2.1 and VAL. kairos-val validates with the problem's epsilon, or, without one, as UPF: a happening may read what another at the same instant writes, but writes that disagree are invalid.
  • PDDL+ plans and their end. A PDDL+ plan ends when the goal is checked, after letting processes and events act. UPF's plans have no end time, so it comes in result.metrics["kairos_plan_end"], and kairos-val does not take PDDL+ problems.

Options

OneshotPlanner(name="kairos", params={...}):

  • anytime
  • timeout: the default when the call gives none.
  • threads
  • memory_limit_mb
  • engine: "auto", "m1", "m2" or "m3".
  • search
  • seed
  • stop_after_no_improvement
  • target_cost

License

Apache-2.0.

Metadata

Release files for up-kairos 0.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 up-kairos 0.2.0
File Size Uploaded
up_kairos-0.2.0.tar.gz 21.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for up-kairos 0.2.0
File Interpreter ABI Platform
up_kairos-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 38.5 kB

Release files / up_kairos-0.2.0.tar.gz

Download URL up_kairos-0.2.0.tar.gz
Size 21.0 kB
Tags Source
SHA-256 checksum
How to use checksums
1737461d936a137e212f8bfa4212f8c5bbaec5b186fb56e3cb47438fe3ac8c78
BLAKE2b-256 checksum
How to use checksums
838042d9366e85298aa0d481f0e61c3ae5f8d22f92a416c2db540c944920efd1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log

Release files / up_kairos-0.2.0-py3-none-any.whl

Download URL up_kairos-0.2.0-py3-none-any.whl
Size 17.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
45d2d2162ded57435311559ac28cb3493819caa525945b3184422ecfbf2333a6
BLAKE2b-256 checksum
How to use checksums
a944c931b994d96ef6241d83d6c7969195e1d2dda81ffd729e8e0ad7d470c525
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 18, 2026.

Transparency log

Release history Release notifications | RSS feed

0.2.1

2 release files

This release

0.2.0 This release

2 release files

0.1.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