Arbiter Python SDK
Official Python client for the Arbiter Control Plane. Same governance semantics as
@arbiterhq/sdk (Node): evaluate → allow | hold | deny.
Package: arbiter-sdk==0.1.1
Import: from arbiter import ArbiterRuntime
Install
pip install arbiter-sdk==0.1.1
Authority Connect (arbiter connect --apply) installs the public pin configured in the CLI
(currently arbiter-sdk==0.1.0 or newer compatible pins) into Python projects after confirmation.
When you are developing inside the Arbiter monorepo, Connect may use an on-disk editable
path instead.
Development / contributor only
pip install -e packages/python
# or:
export ARBITER_PYTHON_SDK_PIP_SPEC=/path/to/arbiter_sdk-0.1.1-py3-none-any.whl
Do not use the editable monorepo path as the customer install instruction.
Environment variables
| Variable | Purpose |
|---|---|
ARBITER_API_KEY |
Workspace API key (arb_test_*) or agent credential (arb_agent_*) |
ARBITER_BASE_URL |
Control Plane base URL (default https://api.arbitertrust.com) |
ARBITER_AGENT |
Required for workspace API keys; stable agent external id for Discovery |
You can also pass api_key/credential, base_url, and agent to ArbiterRuntime(...).
Quick start
from arbiter import ArbiterRuntime
runtime = ArbiterRuntime() # reads ARBITER_API_KEY / ARBITER_BASE_URL / ARBITER_AGENT
runtime.connect(framework="custom", runtimeType="python")
result = runtime.evaluate("send_payment", amount=100)
if result.decision == "allow":
...
elif result.decision == "deny":
...
elif result.decision == "hold":
# Approval HOLD includes approval_request_id for Dashboard / Authorizations Approve.
# API keys cannot approve. This package does not expose completeHeldEvaluation;
# Node SDK and Authority Gate can complete held evaluations in-process.
# Discovery HOLD requires a human to Adopt the agent, then retry evaluate.
...
Governance boundaries
Arbiter governs agents. It does not replace human security decisions:
- Discovery observes runtimes. Humans Adopt agents before enforcement begins.
- Approval HOLD pauses side effects. Humans Approve (or deny) in the Dashboard.
- Connect and this SDK never auto-Adopt Discovery resources.
- Connect and this SDK never auto-Approve HOLD decisions.
- API keys cannot approve; approval requires a human session.
Normal lifecycle:
connect / observe → Adopt (human) → evaluate → allow | hold | deny
hold (approval) → Approve (human) → continue
API surface
| Symbol | Purpose |
|---|---|
ArbiterRuntime |
Client: api_key/credential, agent, base_url, connect(), evaluate() |
evaluate(...) |
POST /evaluate → normalized decision models |
AllowEvaluateResult / DenyEvaluateResult / hold variants |
Decision shapes |
ArbiterError / ArbiterTimeoutError / ArbiterConfigError |
Deterministic errors |
normalize_evaluate_result |
Raw JSON → typed result |
Companion packages
| Package | Version |
|---|---|
@arbiterhq/cli |
0.3.0 |
@arbiterhq/sdk |
0.3.5 (docs/version identity; companion CLI 0.3.0) |
@arbiterhq/gate |
0.1.0 |
Metadata
Release files for arbiter-sdk 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| arbiter_sdk-0.1.1.tar.gz | 9.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| arbiter_sdk-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 19.9 kB
Release files / arbiter_sdk-0.1.1.tar.gz
| Download URL | arbiter_sdk-0.1.1.tar.gz |
|---|---|
| Size | 9.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b3134ab31df436a01f0b48f35f2b0590efca415dfccac0a318fa98e057f2d12a
|
|
BLAKE2b-256 checksum How to use checksums |
e0ab485ccefa0f3a01c6fa5a4d1b9fd349ae312ebd73b53b3c86d082a7683b17
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.6
|
Release files / arbiter_sdk-0.1.1-py3-none-any.whl
| Download URL | arbiter_sdk-0.1.1-py3-none-any.whl |
|---|---|
| Size | 10.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4e0789efcee589714d47371148f971cf8e350a14fff15bf9997743e5581d5163
|
|
BLAKE2b-256 checksum How to use checksums |
721909813dab8f2505cf2407ac622aa381cf294aa3e21d7d11655cc72b4f4b6d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.6
|