Skip to main content

OpenBox governance and observability SDK for LangChain

Project description

OpenBox LangChain SDK — Python

LangChain-Core adapter for OpenBox governance. Provides callback handlers that emit tool and LLM lifecycle events to OpenBox Core's policy engine, enabling real-time governance, guardrails, HITL approval flows, and base-SDK hook governance (HTTP/DB/File I/O) for LangChain agents.

Installation

pip install openbox-langchain-sdk-python

Quick Start

from langchain.agents import create_agent
from openbox_langchain import create_openbox_langchain_middleware

# 1. Create middleware
middleware = create_openbox_langchain_middleware(
    api_url="https://core.openbox.ai",
    api_key="obx_live_...",
    agent_did="did:aip:...",
    agent_private_key="...",
    agent_name="MyAgent",
)

# 2. Create agent with middleware
agent = create_agent(
    model="openai:gpt-4o",
    tools=[...],
    middleware=[middleware],
)

# 3. Invoke — governance applied automatically
result = agent.invoke({"messages": [("user", "your query")]})

How It Works

Two-layer governance architecture:

Layer Mechanism Governs
1 LangChain-Core Callbacks Tool and LLM lifecycle emission via ActivityBridge
2 Base SDK Hook Governance HTTP requests, DB queries, file I/O at process boundary

Core components:

  • ActivityBridge — Ownership channel for tool and LLM events; prevents duplicate governance evaluation
  • OpenBoxLangChainCoreAsyncCallbackHandler / ...SyncCallbackHandler — LangChain-Core callbacks emitting tool and LLM lifecycle events to OpenBox Core
  • AgentMiddleware (for create_agent) — Wraps model and tool calls with additional governance context

Configuration

middleware = create_openbox_langchain_middleware(
    api_url="https://core.openbox.ai",  # OpenBox Core URL
    api_key="obx_live_...",              # API key (obx_live_* or obx_test_*)
    agent_did="did:aip:...",             # Required by default; can use OPENBOX_AGENT_DID
    agent_private_key="...",             # Required by default; can use OPENBOX_AGENT_PRIVATE_KEY
    agent_name="MyAgent",                # Agent name (from dashboard)
    governance_timeout=30.0,             # HTTP timeout in seconds
    validate=True,                       # Validate API key on startup
    session_id="session-123",            # Optional session tracking
    tool_type_map={                      # Optional tool classification
        "search_web": "http",
        "query_db": "database",
    },
)

Agent Identity and DID Signing

OpenBox issues each registered agent a decentralized identifier (DID) and private key. DID signing is enabled by default for newly registered agents. The OpenBox UI returns both values when the agent is created. Pass them to the middleware so governance events are signed and attributable to that agent.

You can provide them directly:

middleware = create_openbox_langchain_middleware(
    api_url="https://core.openbox.ai",
    api_key="obx_live_...",
    agent_did="did:aip:...",
    agent_private_key="...",
)

Or set them through the environment:

export OPENBOX_AGENT_DID="did:aip:..."
export OPENBOX_AGENT_PRIVATE_KEY="..."

If DID signing is explicitly disabled for the agent in OpenBox, these values can be omitted. Otherwise, provide both values together.

Supported Agent Types

  • create_agent(model, tools, middleware=[...]) — recommended
  • Any LangChain agent builder that accepts middleware

Verdict Enforcement

5-tier verdict system:

  • ALLOW — Request permitted
  • CONSTRAIN — Request constrained (e.g., rate limit)
  • REQUIRE_APPROVAL — Human approval required (HITL polling)
  • BLOCK — Request blocked with error
  • HALT — Entire workflow halted (unrecoverable error)

Requirements

  • Python 3.11+
  • openbox-sdk-python >= 1.0.0
  • langchain-core >= 1.3.3
  • LangChain >= 1.0.0 (required only for [agent] extra, which enables create_agent middleware)

API Reference

LangChain-Core callbacks:

  • OpenBoxLangChainCoreAsyncCallbackHandler — Async callback handler for tool/LLM lifecycle
  • OpenBoxLangChainCoreSyncCallbackHandler — Sync callback handler for tool/LLM lifecycle
  • ActivityBridge — Ownership channel for lifecycle event deduplication

AgentMiddleware (optional):

  • create_openbox_langchain_middleware() — Creates configured middleware for create_agent

See openbox_langchain.__init__.py for full API export list.

License

MIT

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

openbox_langchain_sdk_python-1.0.0.tar.gz (307.3 kB view details)

Uploaded Source

Built Distribution

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

openbox_langchain_sdk_python-1.0.0-py3-none-any.whl (51.0 kB view details)

Uploaded Python 3

File details

Details for the file openbox_langchain_sdk_python-1.0.0.tar.gz.

File metadata

File hashes

Hashes for openbox_langchain_sdk_python-1.0.0.tar.gz
Algorithm Hash digest
SHA256 eb1f6e0c91048512ffade336dbfbc7f720783af3e639a5f96242750284422e2d
MD5 cc102519b2e2014c881370d3f863d6b9
BLAKE2b-256 47991d6d2035187ae070e679deaa7694ebfa06a37aeb3bf0d808778c66a1585e

See more details on using hashes here.

Provenance

The following attestation bundles were made for openbox_langchain_sdk_python-1.0.0.tar.gz:

Publisher: publish.yml on OpenBox-AI/openbox-langchain-sdk-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file openbox_langchain_sdk_python-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for openbox_langchain_sdk_python-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a84add38c86d932295c903574a7352b159a6016ad337922ec3670a7741ba7a6b
MD5 4ad0985014b5e4c2d3a4c872c0bcd6bd
BLAKE2b-256 cc566d86923459c675ec3f8c3bb966342725784d2965d34e8373b891f26b4612

See more details on using hashes here.

Provenance

The following attestation bundles were made for openbox_langchain_sdk_python-1.0.0-py3-none-any.whl:

Publisher: publish.yml on OpenBox-AI/openbox-langchain-sdk-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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