AIOps substrate · 9-plane hexagonal decomposition · pluggable adapters · audit-port primitive · alignment patterns for ISO 42001 / NIST AI RMF / EU AI Act / DORA
Project description
arbiter-ops
Agentic AIOps substrate as a standalone package — 9-plane hexagonal decomposition with alignment patterns for ISO 42001, NIST AI RMF, EU AI Act, and DORA implementations (not a certification). Provides the substrate for closed-loop incident response, HIL approval workflows, and self-improvement campaigns on top of a native audit primitive.
Install
pip install arbiter-ops
Optional extras:
pip install arbiter-ops[slack] # Slack channel + triage rooms
pip install arbiter-ops[neo4j] # Neo4j context plane
pip install arbiter-ops[integrations] # PagerDuty + Splunk SOAR + Dynatrace
pip install arbiter-ops[llm] # Anthropic LLM adapter (direct SDK)
pip install arbiter-ops[litellm] # LiteLLM cross-provider abstraction
pip install arbiter-ops[portkey] # Portkey AI Gateway (virtual keys, fallback, semantic cache)
pip install arbiter-ops[mcp] # MCP server (arbiter-ops-mcp · 7 substrate tools)
pip install arbiter-ops[kafka] # Kafka event-stream sensing
pip install arbiter-ops[ml-decision] # XGBoost triage classifier
pip install arbiter-ops[ml-intelligence] # XGBoost cost predictor (3-booster)
pip install arbiter-ops[ml-surrogate] # XGBoost GA surrogate fitness
pip install arbiter-ops[smt] # z3-solver constraint verifier
pip install arbiter-ops[signing] # Ed25519 recipe-pack signing
pip install arbiter-ops[all] # everything
Quick start
# 1. Spin up Postgres + Temporal
docker compose -f docker-compose.yml up -d
# 2. Migrate
arbiter-ops migrate \
--dsn "postgresql://postgres:arbiter-ops@localhost/arbiter_ops"
# 3. Serve the API
arbiter-ops serve --port 8003
# 4. Run the HIL Temporal worker
arbiter-ops-hil-worker --temporal-host localhost:7233 --task-queue hil
# 5. Smoke test
arbiter-ops smoke-test
Architecture
arbiter-ops packages the 9-plane hexagonal AIOps decomposition into
a single distributable. Each plane is a hex container with its own
domain types, ports, and pluggable adapters:
| plane | responsibility |
|---|---|
| sensing | ingest signals from observability sources |
| context | entity + topology resolver |
| feature | feature engineering for downstream reasoners |
| intelligence | LLM + ML reasoners (provider-neutral) |
| reasoning | ensemble + causal classifier |
| decision | policy engine + autonomy levels |
| action | invokers (PagerDuty · Splunk SOAR · Dynatrace · etc.) |
| evidence | facade over the audit record store |
| improvement | offline GA campaign + policy evolution |
Three first-class supporting containers ride alongside the planes: the HITL Gating Service (G-1..G-5 gate types), the Adversarial Verifier, and the Global Circuit Breaker.
Native audit primitive
Every governed decision flows through arbiter_ops.governance.AuditPort
via authorize (consulted before commit) and record (post-hoc
evidence). The default LocalAuditAdapter is a default-permit adapter
that emits JSON-line evidence to stdout (or to the file pointed at by
ARBITER_OPS_AUDIT_PATH). Operators replace it by registering an
alternate AuditPort implementation in the application container.
from arbiter_ops.governance import make_default_audit_port, AuditRequest
port = make_default_audit_port() # LocalAuditAdapter
verdict = port.authorize(AuditRequest.new()) # always APPROVE by default
# ... run the decision ...
# port.record(AuditRecord.from_components(...)) # emit evidence
Documentation
All package-specific docs live under docs/ in the GitHub repo. HTML files are linked through htmlpreview.github.io so they render in-browser without cloning.
Package docs
| Doc | What it covers |
|---|---|
dev_guide.html (source) |
14-section developer guide · install → 5-min smoke → C4 architecture → 9-plane usage with runnable examples → troubleshooting |
FEATURES.md · FEATURES.html |
Full capability catalog · all 9 planes + 11 supporting containers · port + adapter counts · architectural invariants |
DEFERRED.md |
External-blocker items (Cedar engine · top-level CLI · etc.) |
triage_classifier.md |
XGBoost triage classifier (decision plane) deep-dive |
cost_predictor.md |
XGBoost cost predictor + CostAwareRouter (intelligence plane) deep-dive |
fitness_surrogate.md |
XGBoost GA surrogate + HybridFitnessEvaluator (improvement plane) deep-dive |
portkey_integration.md |
Portkey AI Gateway integration · reasoner + invoker · virtual keys · config-driven fallback · semantic cache |
mcp_integration.md |
MCP (Model Context Protocol) integration · MCPToolInvoker (action plane) + arbiter-ops-mcp server (7 substrate tools) |
CHANGELOG.md |
Per-release notes |
Compliance + benchmarks
| Doc | What it covers |
|---|---|
BENCHMARKS.md |
Published Layer 2a performance numbers (1.15M ops/sec band lookup · sub-microsecond hot path · reproducible methodology) |
owasp-agentic-mapping.md |
OWASP Agentic Top 10 coverage map (ASI-01..ASI-10) · 6/10 full · 4/10 partial (operator-supplied adapters for the partials) |
Deployment
Production deployment assets ship under deploy/ in the GitHub repo (not in the Python wheel — clone the repo to use these):
| Path | What it covers |
|---|---|
deploy/helm/arbiter-ops/ |
Helm chart · API + HIL Temporal worker · HPA · PDB · NetworkPolicy · CIS-aligned PodSecurityContext · cert-manager + sub-chart Postgres/Temporal |
deploy/overlays/prod/ |
Production overlay · IRSA-wired ServiceAccount · 4 SealedSecret templates · IRSA Terraform module · ArgoCD Application manifest · operator runbook |
Standards alignment
Not certified.
arbiter-opsis not certified against any of the standards listed below. The substrate provides contracts and primitives that operators may use as evidence in their own certification audits. No claim of compliance is made by the maintainers; standards-body audits, third-party assessments, and regulatory acceptance are the operator's responsibility. The table below describes what the substrate contributes — full alignment depends on operator-supplied adapters (durable audit storage, identity provider, key custody, etc.) and the operator's own audit-and-attestation process.
See docs/compliance/owasp-agentic-mapping.md for an honest substrate-vs-adapter split (informational only, not a security audit).
| Standard | What arbiter-ops contributes |
|---|---|
| ISO/IEC 42001 (AIMS) | AuditPort · approach-band registry · HIL gate types · primitives operators may use as AIMS evidence |
| NIST AI RMF | Govern + Map ports · evidence flow primitives operators may use for Measure + Manage |
| EU AI Act | Per-call authorize/record envelope · adapter chooses retention semantics |
| DORA | ICT-incident-response primitives · event-bus port · evidence emission |
| OWASP Agentic Top 10 | 6/10 full · 4/10 partial (operator adapters close the partials) |
The mapping above is descriptive of what the substrate ships, not a representation that any specific clause or article of any standard is satisfied. Operators map substrate primitives to specific clause/article requirements as part of their own audit and attestation process.
Trademarks
Product names, logos, and brand names referenced in this codebase and its documentation (PagerDuty · Splunk · Dynatrace · Datadog · ServiceNow · Atlassian · Microsoft · Anthropic · OpenAI · Postgres · Temporal · Slack · Neo4j · Kubernetes · and others) are property of their respective owners. Use of these names is for interoperability identification only and does not imply endorsement, affiliation, partnership, or sponsorship. See TRADEMARKS.md for the full list and attribution.
Disclosure: AI-assisted authorship
Portions of this project — code, tests, documentation, and operator runbooks — were authored with AI assistance. The maintainers believe in good faith that all incorporated code is either original or sourced from properly-licensed permissive-license open-source projects with attribution preserved. This statement is a non-binding declaration of intent and does not constitute a warranty (see the No warranty section below and the Apache-2.0 LICENSE for the controlling disclaimer). If you believe any portion of this codebase improperly incorporates third-party material, please file an issue at https://github.com/mjayason/arbiter-ops/issues and the maintainers will investigate and resolve promptly.
No warranty
arbiter-ops is distributed under the Apache License, Version 2.0, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. The maintainers do not warrant that the substrate is fit for any particular purpose, free of defects, free of security vulnerabilities, or suitable for use in regulated environments. Operators are solely responsible for evaluating fitness for their use case, validating security posture against their threat model, and obtaining any certifications, audits, or regulatory acceptance their use requires. Nothing in this README, the accompanying docs, the benchmark numbers, or the compliance mappings constitutes legal, regulatory, security, or compliance advice. See LICENSE for the full warranty disclaimer and limitation of liability.
License
Apache-2.0 · see LICENSE.
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 arbiter_ops-1.0.5.tar.gz.
File metadata
- Download URL: arbiter_ops-1.0.5.tar.gz
- Upload date:
- Size: 989.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a3eff2e4b1bcfb3dbd0d8fe84a5f3153212d1706f9fce987af28abe2c4153795
|
|
| MD5 |
8542dbed568d531bdb8d80a999707883
|
|
| BLAKE2b-256 |
8a22fe430978e9209e5e6146a400e4a1c706715562a0034ecd8b1cd92cb1eadc
|
File details
Details for the file arbiter_ops-1.0.5-py3-none-any.whl.
File metadata
- Download URL: arbiter_ops-1.0.5-py3-none-any.whl
- Upload date:
- Size: 521.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e4d548ea3b182687c947f5e975d7d7dda7b8cbdd3b3db9523a210a91e42fcbc7
|
|
| MD5 |
a815b5e228e193ac287ac0af749b6bfb
|
|
| BLAKE2b-256 |
2722ddea1d6f141a7406cc07bbd32323743d282b6c00db2565142e46f23a70ba
|