Skip to main content
An agent should govern itself with the same evidence it produces. algovoi-keystone-agent is the open (Apache-2.0) behaviour layer that sits on top of keystone-connect: connectors bind each write to the decision that authorised it, and behaviours decide, gate and react to those writes. Every firing reduces to one primitive, ref = "sha256:" + SHA-256(RFC 8785 JCS(payload)), so a behaviour’s verdict is itself a verifiable Keystone record with no AlgoVoi software in your trust base.
Like the rest of the Keystone family, algovoi-keystone-agent installs from the Keystone control panel: the integrity path, from the AlgoVoi index that is baked into the installer, so you run the validated build rather than a mutable public artifact. New releases land on the AlgoVoi index first; PyPI mirrors follow for those not using the panel.

Install

CPython 3.10 to 3.13 on Linux (x86_64 / aarch64) or Windows (AMD64). Prerequisites, the AlgoVoi-index integrity path, control-panel setup, and keystone doctor verification are documented once on the Keystone install hub.

Three small pieces

A governing behaviour is a rule (a pure predicate to a verdict), a trigger (when it wakes), and an optional action (what to do). That is the whole model:
A rule returns "ALLOW", "FLAG" or "BLOCK" (or a bool). Engine.dispatch(event) fires every behaviour whose trigger matches and appends a self-describing behaviour_ref record to engine.log; Engine.verdict(event) returns the strongest verdict, ordered BLOCK over FLAG over ALLOW.

Gate a real write

Engine.guard(client) wraps a keystone-connect client so each call is dispatched as an event first. A BLOCK denies the call before it reaches the data plane; reads and non-matching calls pass straight through, because their triggers simply do not match.
The denial is not advisory. The write never runs, and the block is recorded like any other firing, so the audit trail shows the decision that stopped it.

Ready-made behaviours

The library module ships the common policies so a guardrail is one call, not a lambda. Each rule is a pure function of a single event and reads both flat stage records and guarded-connector calls:

Test a behaviour at any stage

You do not need a live gateway or real payments. synth_event(stage) stands in for whatever precedes your behaviour, and the check battery verifies the keystone properties offline.

The conformance battery

Both checks return a Report with an ok roll-up. Between them they assert: A behaviour that ignores its decision_ref, or a rule that is not deterministic, fails report.ok. The harness never crashes on a broken behaviour; it reports the failure.

One primitive

Everything above is one function:
Any party recomputes any behaviour_ref with a stock RFC 8785 implementation and standard SHA-256, with no AlgoVoi software involved. That is what lets an agent be governed by rules whose every decision is independently verifiable. See Build a bolt-on, the connector catalogue and the Keystone chain.