voiceops
Deployment discipline for voice agents, as a kit. Safety defaults, a release gate, a verifiable audit ledger, deploy checks and a real-call review loop, so a new voice-agent deployment starts trustworthy instead of becoming trustworthy later.
Extracted from Slotback, a full deployment of an ElevenLabs agent for a fictional public hospital, and proven on a second, different deployment, claims-surge, a fictional insurer's claims line.
uvx voiceops init claims-line --organisation "Example Insurance"
cd claims-line && uv sync
uv run voiceops gate # PASS from scratch
What's in it
| Part | Does | Command |
|---|---|---|
voiceledger |
Hash-chained, Ed25519-signed event ledger; pluggable rules; standalone verifier (one dependency) | voiceledger verify |
voiceops.config |
Agent configs from prompt fragments; seven safety slots that can be reworded, never dropped silently; tool schemas from Pydantic models; drift check; a push that only touches its own tools | voiceops build, push |
voiceops.guard |
Tool secret, per-call tokens bound to one subject, webhook HMAC, rate limits, allow-listed JSON logs; FastAPI dependencies that refuse before reading the body | (library) |
voiceops.evals |
PASS / FAIL / ERRORED gate; tool-level and conversation scenarios on ElevenLabs Tests; a leak detector that must pass its known-answer set first; forbidden phrases checked on every agent turn | voiceops gate |
voiceops.deploy |
Declarative checks against a live deployment | voiceops check |
voiceops.review |
Test calls to one allow-listed number; review sheets with automatic checks, masked numbers and a findings table | voiceops call, fetch, review |
voiceops init |
A new project with all of the above wired in | voiceops init |
Extras: voiceops[fastapi] (guard dependencies), voiceops[postgres] (token store, ledger storage).
Results
Measured against the plan's success criteria (RESULTS.md):
- Parity: Slotback runs on the kit with no change in behaviour: the same verdict on 403 tampered copies of its signed ledger, byte-identical agent configs, identical eval reports, live deploy checks passing.
- Second deployment: claims-surge was live with its conversation gate passing 1 h 17 min after
voiceops init: 302 lines of domain Python on 2,841 lines of kit, none copied. - Field findings: going live with a second deployment, simulated conversations and real calls produced six kit releases (0.1.1 to 0.1.6), each with a test: a push that would have touched another project's tools, a platform constraint, a transfer the platform's judge passed, a check that flagged a correct refusal, a tool error read out as "your details don't match", and a phone number left unmasked on a review sheet.
- Independent verification:
pip install voiceledgeris 4 packages and 12 MB, with no web framework or database driver.
Documentation
- Guide: docs/guide.md
- Decisions: docs/DECISIONS.md
- A generated project: examples/case-line
MIT licence.
Metadata
Release files for voiceops 0.1.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| voiceops-0.1.8.tar.gz | 61.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| voiceops-0.1.8-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 128.2 kB
Release files / voiceops-0.1.8.tar.gz
| Download URL | voiceops-0.1.8.tar.gz |
|---|---|
| Size | 61.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a5f9d776b3cb67410a241769538fc2a270afe88c3f03d339d97495e73a003766
|
|
BLAKE2b-256 checksum How to use checksums |
02c76cef57f86fdd7fbf272f3edd8369bbe78ca72bf3f30e27b6cfa1725d1236
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / voiceops-0.1.8-py3-none-any.whl
| Download URL | voiceops-0.1.8-py3-none-any.whl |
|---|---|
| Size | 67.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
75c2d0798a0a15a3b799b791f07664d4c1cd8f85836ba4e24d4d87de563fdc43
|
|
BLAKE2b-256 checksum How to use checksums |
94235311bbc9ed195fb5ace19e0989d30ed111557b5234abdaea54ba804d7b7a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|