Agent-operable reference harness for Retrieval-Induced State Interference research
Project description
RISI
RISI is an agent-operable, human-governed security research harness for studying Retrieval-Induced State Interference and Critical Recall Availability Failure in persistent AI-agent memory.
The project distinguishes:
- RISI: retrieval changes shared or future-relevant adaptive memory state.
- RISI-C: an authorized observer can distinguish hidden retrieval activity through those state changes.
- CRAF: a valid, applicable critical memory is not retrieved or behaviorally applied after a bounded sequence of authorized, truthful, non-instructional interactions.
- Memory eclipsing: truth-preserving suppression of a critical memory without corrupting or directly deleting it.
These are proposed terms and hypotheses, not validated findings. Critical Admission Availability Failure (CAAF) remains a separate exploratory admission-stage phenomenon and is not core CRAF.
Status
The repository implements a guarded deterministic reference path for the synthetic DEP-01 pure-read baseline. It includes:
- strict run, approval, scenario, result, event, state, and evidence contracts;
- a model-independent
local-referencesafety profile; - authorized deterministic retrieval and a transport-neutral, replaceable decision-provider boundary;
- structurally separated target-visible and evaluator-only state;
- full-state snapshots and hash-chained event telemetry;
- atomic evidence bundles, integrity verification, model-free replay, and generated reports;
- stable text and JSON CLI output for human or autonomous operation.
It does not implement an attack, vulnerable adaptive policy, external inference integration, database, consequential action, or external vulnerability finding. The authoritative research charter and research evidence remain outside this repository in the private research vault.
Capability discovery reserves separate local/lab and remote public-HTTPS inference profiles for
future, separately approved work. Both remain non-executable: they grant no networking,
credentials, adapter registration, or model access in the implemented local-reference profile.
Install
Install the released command-line harness from PyPI:
pip install risi==0.1.0
risi --version
risi capabilities --format json
The distribution provides the RISI library and CLI. The bundled DEP-01 scenario and approval files are repository examples, so clone the source tree to run that baseline.
Run the source example
git clone https://github.com/q-uestionable-AI/RISI.git
cd RISI
uv sync --locked --group dev
uv run risi capabilities --format json
uv run risi validate scenarios/examples/dep-01-local-reference.manifest.json --approval scenarios/examples/dep-01-local-reference.approval.json --scenario-root scenarios
uv run risi run scenarios/examples/dep-01-local-reference.manifest.json --approval scenarios/examples/dep-01-local-reference.approval.json --scenario-root scenarios --artifact-root artifacts
uv run risi verify artifacts/dep-01-local-reference
uv run risi replay artifacts/dep-01-local-reference
uv run risi report artifacts/dep-01-local-reference
The manifest binds the exact scenario-file digest, and the example approval binds the exact manifest digest. Approval records provide auditable provenance and change detection, not authentication. Stronger deployments must protect or sign approvals outside an agent's execution context.
Safety boundary
RISI uses synthetic scenarios and lab-controlled or explicitly authorized systems only. Decision outputs are proposals and must never be connected to live medical, financial, deployment, identity, access-control, or other consequential production systems.
All models—including an orchestrating model—are treated as untrusted callers. The safety kernel enforces profile, capability, budget, approval, and path controls below the CLI. The implemented profile denies network access, subprocesses, credentials, dynamic plugins, and memory writes by construction. Host or network isolation remains necessary when future external adapters are used. Any future remote inference profile must bind approval to an exact endpoint, model, non-secret credential alias, generation parameters, network class, and request, token, time, retry, and spend ceilings while retaining redacted request and response evidence.
Development and documentation
RISI uses Python 3.11–3.13, uv, Typer, Ruff, mypy, pytest, Bandit, pip-audit, and Google-style docstrings. See CONTRIBUTING.md, DEVELOPMENT_WORKFLOW.md, and docs/architecture.md.
docs/contains public engineering documentation and decision records.documentation/contains the source deployed at risi.q-uestionable.ai.schemas/contains versioned machine contracts.scenarios/contains reviewed synthetic examples.artifacts/is excluded from Git and contains local evidence bundles.
License
RISI is licensed under the Apache License 2.0.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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 risi-0.1.0.tar.gz.
File metadata
- Download URL: risi-0.1.0.tar.gz
- Upload date:
- Size: 101.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cbbaa6d5d1c53c417c633182cc79bae59da765445fc964063f0a06ce00df20ec
|
|
| MD5 |
06576b9ceb46a61b420a7490214c7af8
|
|
| BLAKE2b-256 |
fdd166116282c61657c9312c6c4f72a97d0fa94631081d6388a78653e8a9c489
|
Provenance
The following attestation bundles were made for risi-0.1.0.tar.gz:
Publisher:
release.yml on q-uestionable-AI/RISI
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
risi-0.1.0.tar.gz -
Subject digest:
cbbaa6d5d1c53c417c633182cc79bae59da765445fc964063f0a06ce00df20ec - Sigstore transparency entry: 2187383601
- Sigstore integration time:
-
Permalink:
q-uestionable-AI/RISI@c2831b7701508062088fc98582b9a26f5f1c8cbb -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/q-uestionable-AI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@c2831b7701508062088fc98582b9a26f5f1c8cbb -
Trigger Event:
push
-
Statement type:
File details
Details for the file risi-0.1.0-py3-none-any.whl.
File metadata
- Download URL: risi-0.1.0-py3-none-any.whl
- Upload date:
- Size: 44.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5c2033bb0ad9d1efe5f5c9c62eddca5ae4750f57df2a7f7c2359d77d0b9a1505
|
|
| MD5 |
26c52cb4c8d78fe1f8b0298b64f9d50f
|
|
| BLAKE2b-256 |
1624f38ea0881be75b707079099f4f5e27a92174ea94c4e74335fd7c96d670d6
|
Provenance
The following attestation bundles were made for risi-0.1.0-py3-none-any.whl:
Publisher:
release.yml on q-uestionable-AI/RISI
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
risi-0.1.0-py3-none-any.whl -
Subject digest:
5c2033bb0ad9d1efe5f5c9c62eddca5ae4750f57df2a7f7c2359d77d0b9a1505 - Sigstore transparency entry: 2187383607
- Sigstore integration time:
-
Permalink:
q-uestionable-AI/RISI@c2831b7701508062088fc98582b9a26f5f1c8cbb -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/q-uestionable-AI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@c2831b7701508062088fc98582b9a26f5f1c8cbb -
Trigger Event:
push
-
Statement type: