Skip to main content

Version-pinned ARIA backend integration for the Microsoft Agent Governance Toolkit

Project description

aria-agentkit

Version-pinned ARIA backend integration for the Microsoft Agent Governance Toolkit.

aria-agentkit is a first-class, contract-tested backend integration for the official AGT governance surfaces. It connects your AGT-governed agents to EmpowerID ARIA — the enterprise governance platform for AI agents — through rigorous adapters for policy evaluation, governance-grade audit export, and MCP remote configuration.

What This Package Does

Integration AGT Extension Point ARIA Service
ARIAToolInterceptor ToolCallInterceptor AuthZEN PDP
ARIAPolicyProvider PolicyProviderInterface AuthZEN PDP
ARIAAuditBackend AuditBackend Receipt Vault
claude_desktop_config MCP Gateway
mcp_session_params MCP Gateway
mcp_session_params_factory MCP Gateway

What This Package Does NOT Do

  • Reimplements AGT governance primitives
  • Proxies LLM traffic (see aria-shield-sdk for that)
  • Provides budget management (deferred until transactional semantics are designed)
  • Provides approval workflows (deferred until persisted workflow model is built)

Version Compatibility

aria-agentkit agent-os-kernel Python
0.1.x 3.0.0 – 3.0.x >= 3.10

The compat module detects the installed AGT version at import time and raises RuntimeError on unsupported versions.

Installation

pip install aria-agentkit

Quick Start

Tool Call Interception via AuthZEN PDP

from agent_os.integrations.base import CompositeInterceptor
from aria_agentkit import ARIAToolInterceptor

interceptor = ARIAToolInterceptor(
    pdp_url="https://pdp.example.com/access/v1/evaluation",
    pdp_application="my-agent-platform",
    token="my-bearer-token",
)

# Register with AGT's composite interceptor
composite = CompositeInterceptor()
composite.add(interceptor)

Governance-Grade Audit Export

from agent_os.audit_logger import GovernanceAuditLogger
from aria_agentkit import ARIAAuditBackend

audit = ARIAAuditBackend(
    receipt_vault_url="https://receipts.example.com",
)

logger = GovernanceAuditLogger()
logger.add_backend(audit)

Policy Provider for Control Plane

from aria_agentkit import ARIAPolicyProvider

provider = ARIAPolicyProvider(
    pdp_base_url="https://pdp.example.com",
    pdp_application="my-agent-platform",
    token="my-bearer-token",
)

policies = provider.get_policies(agent_id="agent-1")

MCP Gateway Configuration

from aria_agentkit.mcp.claude_desktop import claude_desktop_config
from aria_agentkit.mcp.sdk_session import mcp_session_params

# For Claude Desktop
config = claude_desktop_config(
    server_name="aria-gateway",
    gateway_url="https://mcp.example.com/v1/mcp",
    token="my-bearer-token",
)

# For MCP Python SDK
params = mcp_session_params(
    gateway_url="https://mcp.example.com/v1/mcp",
    token="my-bearer-token",
)

Architecture

AGT Runtime                    aria-agentkit                 ARIA Services
┌─────────────────┐     ┌─────────────────────────┐    ┌──────────────────┐
│ PolicyEvaluator  │────>│ ARIAPolicyProvider      │───>│ AuthZEN PDP      │
│ ToolCallInter-   │────>│ ARIAToolInterceptor     │───>│                  │
│   ceptor chain   │     │                         │    │                  │
│ GovernanceAudit- │────>│ ARIAAuditBackend        │───>│ Receipt Vault    │
│   Logger         │     │   (outbox + hash chain) │    │                  │
│                  │     │                         │    │                  │
│                  │     │ MCP config emitters     │───>│ ARIA MCP Gateway │
└─────────────────┘     └─────────────────────────┘    └──────────────────┘

AuthZEN Request Mapping

The interceptor maps AGT ToolCallRequest fields into OpenID AuthZEN 1.0 evaluation requests:

AuthZEN Field Value
action.name "tool.invoke" (constant)
resource.type "mcp_tool"
resource.id "mcp://{server_name}/{tool_name}"
subject.type "agent"
subject.id "auth:agent:agentmesh:{agent_id}"
context.call_id From ToolCallRequest.call_id
context.original_args_hash SHA-256 of canonical arguments
context.pdp_application Constructor parameter

PDP constraints in the response are mapped to ToolCallResult.modified_arguments for parameter clamping.

Audit Pipeline

The audit backend provides governance-grade export, not simple log shipping:

  1. Redaction — Sensitive keys (password, secret, token, api_key, credential) are redacted recursively before persistence
  2. Hash Chaining — Each receipt includes a prev_hash linking to the prior entry, producing a tamper-evident chain
  3. Idempotency — Each receipt gets a unique idempotency key for deduplication
  4. Retry with Backoff — Failed exports are retried with exponential backoff (capped at max_backoff)
  5. Dead Letter — Persistently failing batches are routed to a configurable dead-letter callback

Note: The outbox is in-memory. Unflushed entries are lost on process termination. Call flush() or close() before shutdown.

Development

pip install -e ".[dev]"
pytest tests/ -v
ruff check src/ tests/
mypy src/

License

MIT — 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

aria_agentkit-0.1.1.tar.gz (24.2 kB view details)

Uploaded Source

Built Distribution

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

aria_agentkit-0.1.1-py3-none-any.whl (19.7 kB view details)

Uploaded Python 3

File details

Details for the file aria_agentkit-0.1.1.tar.gz.

File metadata

  • Download URL: aria_agentkit-0.1.1.tar.gz
  • Upload date:
  • Size: 24.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for aria_agentkit-0.1.1.tar.gz
Algorithm Hash digest
SHA256 ca16ddc6568e5cbc33c0027ae644a2996494102e1d840c0479c0dca9c73b8ba8
MD5 e3655eea2d24f057a5c5951a7dc07343
BLAKE2b-256 7d1f83e0eaaed172f50b31be1efa54785826d6566c6a418c1d2f836aa8eed47d

See more details on using hashes here.

File details

Details for the file aria_agentkit-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: aria_agentkit-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 19.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for aria_agentkit-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 bdc95a55959ae23f174796c1634aa1a8e55daf9c130b6990fa807fc2d1358240
MD5 40945ec5a66365691812c0562dc12de0
BLAKE2b-256 a7a72b3aa9de91adfb7b8e1c3c42d48c579835c013df00059b4bd37ba662867d

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