Skip to main content

Lightweight AI failure prevention system

Project description

Arc Runtime

Python 3.8+ License: MIT PyPI version Performance OpenTelemetry

Arc Runtime is a lightweight Python interceptor that prevents AI agent failures in real-time by applying learned fixes before requests reach the LLM. It's the client-side component of the Arc AI reliability system, designed to work with Arc Core.

Key Features

  • Zero-config interception - Just import and it works
  • Ultra-low latency - 0.011ms P99 overhead (99.78% better than 5ms requirement)
  • Thread-safe - Works seamlessly with async and multi-threaded applications
  • Pattern matching - Real-time detection and fixing of known failure patterns
  • OpenTelemetry support - Full agent telemetry capture (reasoning traces, tool calls, tokens)
  • Graceful degradation - Never breaks your application if Arc Core is unreachable
  • Local metrics - Prometheus endpoint at http://localhost:9090/metrics

How It Works

Arc Runtime intercepts outgoing LLM API calls and:

  1. Matches requests against known failure patterns (<1ms)
  2. Applies fixes before the request reaches the LLM
  3. Streams telemetry to Arc Core for continuous learning
  4. Exposes metrics for monitoring

System Architecture

Arc Runtime is the client-side component that sits in your application environment:

graph LR
    subgraph "Your Application Environment"
        App[Your AI Application]
        Arc[Arc Runtime<br/>0.011ms overhead]
        LLM[OpenAI/Anthropic SDK]
        
        App --> Arc
        Arc --> LLM
    end
    
    subgraph "Arc Core (Separate Service)"
        Collector[gRPC Collector]
        Detector[Failure Detector]
        Registry[Pattern Registry]
        
        Arc -.->|Telemetry Stream| Collector
        Registry -.->|Pattern Updates| Arc
    end
    
    LLM --> API[LLM API]
    
    style Arc fill:#4CAF50,stroke:#2E7D32,stroke-width:2px
    style App fill:#2196F3,stroke:#1565C0,stroke-width:2px

Key Integration Points:

  • Telemetry Streaming: Arc Runtime streams all request/response data to Arc Core via gRPC
  • Pattern Updates: Arc Core pushes new failure patterns and fixes to Runtime instances
  • Metrics Export: Local Prometheus endpoint for monitoring Arc Runtime performance

Installation

pip install arc-runtime

For development:

git clone https://github.com/arc-computer/runtime.git
cd runtime
pip install -e .

Quick Start

Zero Configuration

import openai
from runtime import Arc

# Initialize Arc - this automatically patches OpenAI
Arc()

# Use OpenAI as normal - Arc protects your calls
client = openai.OpenAI()  # Uses API key from environment
response = client.chat.completions.create(
    model="gpt-4.1",
    messages=[{"role": "user", "content": "Write a poem about Python"}],
    temperature=0.95  # Arc automatically fixes this to 0.7
)

With Telemetry Endpoint

from runtime import Arc

# Connect to your Arc Core instance
arc = Arc(endpoint="grpc://arc.computer:50051")

# All subsequent OpenAI calls are protected and telemetry is streamed

Configuration

Arc Runtime can be configured via environment variables or constructor args:

from runtime import Arc

# Explicit configuration
arc = Arc(
    endpoint="grpc://arc.computer:50051",
    api_key="arc_key_xxx",
    log_level="DEBUG"
)

Environment variables:

  • ARC_DISABLE=1 - Disable Arc Runtime completely
  • ARC_ENDPOINT - gRPC endpoint for telemetry (default: grpc://localhost:50051)
  • ARC_API_KEY - API key for Arc Core
  • ARC_LOG_LEVEL - Logging level (default: INFO)

Metrics

Arc Runtime exposes Prometheus metrics at http://localhost:9090/metrics:

  • arc_requests_intercepted_total - Total requests intercepted
  • arc_fixes_applied_total - Total fixes applied
  • arc_pattern_matches_total - Total pattern matches
  • arc_interception_latency_ms - Interception overhead histogram

Custom Patterns

Register custom patterns and fixes:

arc = Arc()

# Register a pattern
arc.register_pattern(
    pattern={"model": "gpt-4", "temperature": {">": 0.9}},
    fix={"temperature": 0.7}
)

Manual Wrapping

If auto-patching fails, you can explicitly wrap clients:

import openai
from runtime import Arc

arc = Arc()
client = openai.OpenAI()
protected_client = arc.wrap(client)

Default Pattern Fixes

Arc Runtime ships with a built-in pattern for preventing high-temperature hallucinations:

Pattern Fix Rationale
GPT-4.1 with temperature > 0.9 Set temperature to 0.7 Reduces hallucination risk while maintaining creativity

Testing

# Set your OpenAI API key
export OPENAI_API_KEY="sk-..."

# Run real API tests
python tests/test_real_api.py

Components

  • Interceptors: Provider-specific hooks (OpenAI, Anthropic planned)
  • Pattern Registry: Thread-safe pattern storage and matching
  • Telemetry Client: OpenTelemetry-compatible async streaming
  • Metrics Server: Prometheus-compatible metrics endpoint

Performance

Verified performance characteristics:

  • P99 Interception Overhead: 0.011ms (requirement: <5ms)
  • Pattern Matching: <1ms for dictionary lookup
  • Memory Footprint: <50MB base
  • Thread Safety: Full concurrent request support

Troubleshooting

Arc Runtime is not intercepting calls

  1. Ensure Arc is imported before the LLM library:

    from runtime import Arc  # Import Arc first
    Arc()
    import openai  # Then import OpenAI
    
  2. Check if Arc is disabled:

    echo $ARC_DISABLE  # Should be empty or "0"
    
  3. Enable debug logging:

    export ARC_LOG_LEVEL=DEBUG
    

Telemetry not streaming

  1. Check endpoint connectivity:

    telnet your-arc-endpoint 50051
    
  2. Verify gRPC is installed:

    pip install grpcio
    

License

MIT License - see LICENSE for details.

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

arc_runtime-0.1.0.tar.gz (34.5 kB view details)

Uploaded Source

Built Distribution

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

arc_runtime-0.1.0-py3-none-any.whl (21.3 kB view details)

Uploaded Python 3

File details

Details for the file arc_runtime-0.1.0.tar.gz.

File metadata

  • Download URL: arc_runtime-0.1.0.tar.gz
  • Upload date:
  • Size: 34.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for arc_runtime-0.1.0.tar.gz
Algorithm Hash digest
SHA256 1b9314ddcf515d9df9912a4ec21f5bf93a4d094681d8696a00222230b3aed5ab
MD5 141951ced70d073fefd121d87498d96c
BLAKE2b-256 b0c30cd828d80f3c48db33a014e5926214b6e77d60d93bda359a8d0dee389a73

See more details on using hashes here.

File details

Details for the file arc_runtime-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: arc_runtime-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 21.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for arc_runtime-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9ef3720de7a0c6e91b63c222c1813c1411fc1ccbd1e2399907379a537ac289b6
MD5 9218bc3db50b38f8f8bc79663a77d231
BLAKE2b-256 1f9d99f566784d5aa1b832a6ae64bbfb757f348f6049588861175fe22a8913fe

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