Skip to main content

sigmodx-integrations

Agent framework integrations for Sigmodx — audit infrastructure for AI agents making consequential decisions.

Installation

pip install sigmodx-integrations

LangChain (Live)

Register one callback. Every agent tool call is automatically logged to Sigmodx with cryptographic attestation.

from sigmodx import SigmodxClient
from sigmodx_integrations import SigmodxCallbackHandler, ANOMALY_DETECTION_CONFIG

client = SigmodxClient(
    api_key="your-api-key",
    agent_id="your-agent-uuid",
)

handler = SigmodxCallbackHandler(
    client=client,
    config=ANOMALY_DETECTION_CONFIG,
)

result = agent_executor.invoke(
    {"input": "Check transaction TXN-2026-4421"},
    config={"callbacks": [handler]},
)

The handler:

  • Hashes tool inputs client-side (your data never leaves your environment)
  • Extracts decision type, rationale, and metadata from tool output
  • Submits the decision to Sigmodx's append-only audit trail
  • Never blocks agent execution — errors are logged, not raised

LangGraph (Live)

Two integration patterns — use whichever fits your graph structure.

Pattern 1: Stream event handler (recommended)

Process events from .astream_events() to log all tool calls automatically.

from sigmodx import SigmodxClient
from sigmodx_integrations.langgraph import (
    SigmodxLangGraphCallback,
    LANGGRAPH_ANOMALY_CONFIG
)

client = SigmodxClient(api_key="...", agent_id="...")
handler = SigmodxLangGraphCallback(
    client=client,
    config=LANGGRAPH_ANOMALY_CONFIG
)

# Process stream events
async for event in graph.astream_events(inputs, version="v2"):
    await handler.aprocess_event(event)

# Or process synchronously
for event in graph.stream(inputs):
    handler.process_event(event)

Pattern 2: Node decorator

Wrap specific decision-making nodes directly.

from sigmodx_integrations.langgraph import (
    sigmodx_node,
    LANGGRAPH_ANOMALY_CONFIG
)

@sigmodx_node(client=client, config=LANGGRAPH_ANOMALY_CONFIG)
def analyze_transaction(state: dict) -> dict:
    # your existing node logic
    return {
        "decision": "flag",
        "rationale": "Amount 3x historical average.",
        "anomaly_subtype": "unusual_amount",
        "severity": "high",
        "transaction_amount": state["amount"]
    }

graph.add_node("analyze_transaction", analyze_transaction)

Installation

pip install "sigmodx-integrations[langgraph]"
# or
pip install sigmodx-integrations langgraph

CrewAI (Live)

Two patterns: task-level callback or crew-level step callback.

Task callback (recommended for specific tasks)

from crewai import Task
from sigmodx import SigmodxClient
from sigmodx_integrations.crewai import (
    SigmodxTaskCallback,
    CREWAI_ANOMALY_CONFIG
)

client = SigmodxClient(api_key="...", agent_id="...")
sigmodx_callback = SigmodxTaskCallback(
    client=client,
    config=CREWAI_ANOMALY_CONFIG,
    task_inputs={"txn_ref": "TXN-001", "amount": 5000}
)

task = Task(
    description="Analyze transaction for anomalies",
    agent=analyst_agent,
    expected_output="flag/clear/escalate with rationale",
    callback=sigmodx_callback
)

Step callback (all agent steps)

from crewai import Crew
from sigmodx_integrations.crewai import SigmodxStepCallback

crew = Crew(
    agents=[analyst, compliance],
    tasks=[analysis_task, decision_task],
    step_callback=SigmodxStepCallback(client=client,
                                       config=CREWAI_ANOMALY_CONFIG)
)

Install

pip install "sigmodx-integrations[crewai]"

OpenAI Agents SDK (Live)

Implement RunHooks and pass to Runner.run().

from agents import Agent, Runner
from sigmodx import SigmodxClient
from sigmodx_integrations.openai_agents import (
    SigmodxRunHooks,
    OPENAI_ANOMALY_CONFIG
)

client = SigmodxClient(api_key="...", agent_id="...")
hooks = SigmodxRunHooks(client=client, config=OPENAI_ANOMALY_CONFIG)

agent = Agent(
    name="AnomalyDetector",
    instructions="Detect financial anomalies.",
    tools=[check_transaction, flag_anomaly]
)

result = await Runner.run(agent, "Check TXN-2026-4421", hooks=hooks)

Install

pip install "sigmodx-integrations[openai-agents]"

Custom scenario mapping

from sigmodx_integrations import SigmodxCallbackHandler, ScenarioConfig

config = ScenarioConfig(
    scenario="invoice_approval",
    filter_tools=["approve_invoice", "reject_invoice"],
    decision_type_extractor=lambda output: output.get("decision"),
    rationale_extractor=lambda output: output.get("reason"),
    metadata_extractor=lambda output: {
        "invoice_amount": output.get("amount"),
        "vendor_id": output.get("vendor_id"),
    },
)

handler = SigmodxCallbackHandler(client=client, config=config)

Universal adapter (any framework)

from sigmodx_integrations import SigmodxAdapter

adapter = SigmodxAdapter(client=client, scenario="anomaly_detection")

adapter.log(
    inputs={"txn_ref": "TXN-001", "amount": 5000},
    decision_type="flag",
    rationale="Amount 3x historical average.",
    anomaly_subtype="unusual_amount",
    severity="high",
    transaction_amount=5000,
)

Supported frameworks

Framework Status
LangChain Live
LangGraph Live
CrewAI Live
OpenAI Agents SDK Live
Universal adapter Live
AutoGen / Microsoft Agent Framework Coming soon
Semantic Kernel Coming soon

Request framework prioritization: github.com/Sigmodx/integrations-python/issues

Links

Metadata

Release files for sigmodx-integrations 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sigmodx-integrations 0.4.0
File Size Uploaded
sigmodx_integrations-0.4.0.tar.gz 16.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sigmodx-integrations 0.4.0
File Interpreter ABI Platform
sigmodx_integrations-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 40.0 kB

Release files / sigmodx_integrations-0.4.0.tar.gz

Download URL sigmodx_integrations-0.4.0.tar.gz
Size 16.5 kB
Tags Source
SHA-256 checksum
How to use checksums
3bcf0d6d60bff007b677a119f274449957741e8c30fbe59a8dddc341bfbea778
BLAKE2b-256 checksum
How to use checksums
7616bef11826b0f77abbd07ad65e059d5af6d39965f3bb8897bf944982f2400a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

Release files / sigmodx_integrations-0.4.0-py3-none-any.whl

Download URL sigmodx_integrations-0.4.0-py3-none-any.whl
Size 23.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9407a0d283f40598b01f89933f8d502eaf487327e9e863576050da120e6c89fd
BLAKE2b-256 checksum
How to use checksums
65b5456c681947e58f05e905dfb3981108a0324ae69d369c1aad1193b42d3f90
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page