Skip to main content

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-ops is 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

arbiter_ops-1.0.5.tar.gz (989.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

arbiter_ops-1.0.5-py3-none-any.whl (521.6 kB view details)

Uploaded Python 3

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

Hashes for arbiter_ops-1.0.5.tar.gz
Algorithm Hash digest
SHA256 a3eff2e4b1bcfb3dbd0d8fe84a5f3153212d1706f9fce987af28abe2c4153795
MD5 8542dbed568d531bdb8d80a999707883
BLAKE2b-256 8a22fe430978e9209e5e6146a400e4a1c706715562a0034ecd8b1cd92cb1eadc

See more details on using hashes here.

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

Hashes for arbiter_ops-1.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 e4d548ea3b182687c947f5e975d7d7dda7b8cbdd3b3db9523a210a91e42fcbc7
MD5 a815b5e228e193ac287ac0af749b6bfb
BLAKE2b-256 2722ddea1d6f141a7406cc07bbd32323743d282b6c00db2565142e46f23a70ba

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page