Persisting
Persistent infrastructure for the Agent era.
Persisting connects durable model state—parameters and KV caches—with durable Agent history—trajectories and execution records. The current product is the path from execution to queryable history:
| Governed execution | Durable history |
|---|---|
pvisoris an executor that produces persistable, reviewable facts: staged Effects and execution records from one Agent Run;pchroniclebrowses, queries, exchanges, and serves trajectory Datasets.
Each command works on its own. Connected, they cover pvisor run --stage … →
review/apply → configured capture → a queryable Dataset.
Install
pip install persisting[lance]
pvisor --version
pchronicle --version
The rolling nightly build installs the same commands without a Rust toolchain:
curl -fsSL https://raw.githubusercontent.com/DeepLink-org/Persisting/main/scripts/install-nightly.sh | bash
See the installation guide for platform requirements and executor setup.
Run one Agent and review its changes
pvisor run --stage ./runs/task-001 -- codex
pvisor review last
pvisor apply last --all # or: pvisor drop last
--stage creates a copy-on-write workspace view for review; without it the
Agent may write the real project tree. The exact boundary is
platform-dependent and recorded with the Run—consult the
execution guide
before treating it as a security boundary.
Query Agent trajectory history
pchronicle onboard
pchronicle onboard query
pchronicle agent codex ./trajectory-data --ask "Which tools fail most often?"
The onboarding flow creates a temporary example Dataset—no source checkout
required. pchronicle import accepts ATIF, ACTF, and OpenAI Messages;
pchronicle serve starts a loopback-only, read-only Dataset UI and API.
After capture is configured, selected pVisor Run events can enter a pChronicle Dataset. See the capture guide.
Current maturity
| Capability | Status |
|---|---|
| pVisor host execution, review, checkpoints, and transactional workspace | Implemented |
| pChronicle local/S3 catalog, bounded SQL, analysis, find, import/export | Implemented |
| pChronicle loopback-only read API and embedded Web UI | Implemented |
| Gateway capture and cooperative proxy policy | Implemented |
| Container/libkrun executors and transparent network boundaries | Platform-dependent; see the pVisor and OverlayNet docs |
| Queue and document Search | Separate stable capabilities |
| Tensor Memory / TTAS | Experimental |
Documentation
- Choose a workflow — pick the entry point that matches your task
- Run your first Agent — the run-review-apply loop
- Explore durable history — browse and query a trajectory Dataset
- Project architecture — ownership and delivery boundaries
Criterion.rs microbenchmarks and hyperfine lifecycle scenarios are compared
against main in CI; see the benchmark contract.
Latest nightly pChronicle benchmark: d628946b6ac4 on linux/x86_64 (2026-09-11T11:26:09.379341+00:00).
| Case | Metric | Value |
|---|---|---|
criterion/atif_conversion/parse_corpus |
latency_median_ns |
5.536e+06 ns |
criterion/atif_conversion/roundtrip_corpus |
latency_median_ns |
7.369e+06 ns |
criterion/projection_cpu/events_to_storyline_corpus |
latency_median_ns |
3.408e+05 ns |
system/projection_pipeline/event_append |
initial_append_ms |
71.601 ms |
system/projection_pipeline/projection_build |
build_ms |
5390.446 ms |
system/projection_pipeline/projection_incremental |
sync_ms |
39.511 ms |
system/lance_vs_json/lifecycle |
cold_query_ms |
2933.682 ms |
system/lance_vs_json/lifecycle |
get_storyline_full_ms |
9.724 ms |
system/lance_vs_json/lifecycle |
replace_storyline_ms |
42.659 ms |
system/lance_vs_json/selective |
lance_qps |
347 ops/s |
system/lance_vs_json/group_by |
lance_qps |
447.1 ops/s |
system/lance_vs_json/summary |
lance_over_json |
0.244 ratio |
system/json_streaming_ndjson/json_streaming |
p95_ms |
14.444 ms |
system/json_streaming_ndjson/json_streaming |
rows_s |
2.744e+05 ops/s |
system/json_streaming_ndjson/json_streaming |
process_peak_rss_mib |
45.492 MiB |
hyperfine/projection_pipeline |
wall_median_seconds |
5.577 s |
hyperfine/lance_vs_json |
wall_median_seconds |
39.863 s |
Open the complete benchmark run.
License
Apache License 2.0. See NOTICE for third-party
attributions and separately licensed bundled components.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file persisting-0.3.0-py3-none-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: persisting-0.3.0-py3-none-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 61.0 MB
- Tags: Python 3, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
34da8f6fa78d3b1cd8ec1f3f31339f7198714c166e1c5eafe62147dd881069ca
|
|
| MD5 |
df5e2d350dda45a6d8ce8c1e9dce7f8a
|
|
| BLAKE2b-256 |
12e28611582761eaf504dcd78fb776466434f433e33ce92258e7612c80121bc3
|
Provenance
The following attestation bundles were made for persisting-0.3.0-py3-none-manylinux_2_28_x86_64.whl:
Publisher:
release.yml on DeepLink-org/Persisting
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
persisting-0.3.0-py3-none-manylinux_2_28_x86_64.whl -
Subject digest:
34da8f6fa78d3b1cd8ec1f3f31339f7198714c166e1c5eafe62147dd881069ca - Sigstore transparency entry: 2794799176
- Sigstore integration time:
-
Permalink:
DeepLink-org/Persisting@29e23f083d41c042153cf3e3ab72edf784368ed0 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/DeepLink-org
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@29e23f083d41c042153cf3e3ab72edf784368ed0 -
Trigger Event:
push
-
Statement type:
File details
Details for the file persisting-0.3.0-py3-none-macosx_11_0_arm64.whl.
File metadata
- Download URL: persisting-0.3.0-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 63.7 MB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9bc3c8fdf79e7824de3c91a3143cf195446d23b6fdf79a774d8f3d4e0335e65c
|
|
| MD5 |
c3747755a7d406d4d3fcbc2711ab45b9
|
|
| BLAKE2b-256 |
8d04ba3d90a9fb69c0ac2260134084e50d025948bd9f168bc18ae67f2d963188
|
Provenance
The following attestation bundles were made for persisting-0.3.0-py3-none-macosx_11_0_arm64.whl:
Publisher:
release.yml on DeepLink-org/Persisting
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
persisting-0.3.0-py3-none-macosx_11_0_arm64.whl -
Subject digest:
9bc3c8fdf79e7824de3c91a3143cf195446d23b6fdf79a774d8f3d4e0335e65c - Sigstore transparency entry: 2794799157
- Sigstore integration time:
-
Permalink:
DeepLink-org/Persisting@29e23f083d41c042153cf3e3ab72edf784368ed0 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/DeepLink-org
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@29e23f083d41c042153cf3e3ab72edf784368ed0 -
Trigger Event:
push
-
Statement type: