Skip to main content

Truthlocks AI connectors integration

Build structured, hash-addressed evidence from AI connectors metadata for your application's audit workflow.

Package: maip-ai-connectors · Python: 3.9+ · License: Apache-2.0

Developer documentation · Console

Install

python -m pip install maip-ai-connectors

Use a virtual environment and lock compatible framework versions with your application. The local example below needs no hosted credentials and makes no external requests.

Quickstart: create local evidence

from maip_ai_connectors.config import MAIPConfig
from maip_ai_connectors.receipts import build_llm_call_receipt, hash_receipt_payload

receipt = build_llm_call_receipt(
    model="demo-model", provider="example", prompt="Hello", completion="Hello back",
    input_tokens=1, output_tokens=2, latency_ms=10,
    config=MAIPConfig(auto_receipt=False),
)
assert receipt.payload_hash == hash_receipt_payload(receipt)
print(receipt.model_dump_json(indent=2))

Connect real data

Pass the actual request/response content and usage values recorded by your application. No model is called in this example. Install provider-specific extras only for integrations you use, such as maip-ai-connectors[anthropic] or maip-ai-connectors[langchain].

Available interfaces

Receipt builders cover LLM calls, embeddings, agent actions and chains. Integration modules cover OpenAI, Anthropic, Bedrock, LangChain, CrewAI, AutoGen and LlamaIndex. Each wrapper captures its supported methods and callback events; it cannot observe unrelated calls.

Configuration

Setting Meaning
auto_receipt=False Disable automatic hosted submission in integration hooks.
agent_id Registered agent in the authenticated workspace, used for signing.
tenant_id Workspace metadata; does not authorize API access.
api_key, api_url Hosted transport configuration, separate from framework credentials.
timeout HTTP timeout in seconds; default 30.
verify_ssl TLS verification; keep enabled.

Evidence and delivery guarantees

The local result is a Pydantic model with a payload_hash. Save it using model_dump_json() and retain the metadata needed to reproduce it. Recomputing the hash checks consistency of that local representation; it does not validate a server signature, establish a trusted identity, or confirm transparency-log inclusion.

Cost values use a bundled estimate table and may differ from provider invoices. Zero usage can trigger token estimation. A hash binds recorded data but does not prove a provider actually produced it.

Submit and verify hosted evidence (1.1.0+)

Register a machine identity in your workspace before submission. Set MAIP_AGENT_ID to its identifier and MAIP_API_KEY to a workspace API key with access to machine identities and receipts. Provider keys are separate. A tl_test_ key selects the sandbox host unless MAIP_API_URL overrides it; production defaults to https://api.truthlocks.com/v1. Do not use a tenant header as authentication.

This example submits the local receipt created above only when credentials are set:

import asyncio
import os
from maip_ai_connectors.client import MAIPClient
from maip_ai_connectors.config import MAIPConfig

async def submit_and_verify(local_receipt):
    config = MAIPConfig(agent_id=os.environ["MAIP_AGENT_ID"],
                        api_key=os.environ["MAIP_API_KEY"])
    async with MAIPClient(config) as client:
        stored = await client.create_receipt(local_receipt)
        check = await client.verify_receipt(stored.receipt_id)
        if not check.valid or not check.signature_verified:
            raise RuntimeError(check.reason or check.verdict)
        print(stored.receipt_id, check.verdict)

if os.environ.get("MAIP_API_KEY") and os.environ.get("MAIP_AGENT_ID"):
    asyncio.run(submit_and_verify(receipt))

The server stores integration metadata in a signed MAIP action receipt. Its receipt_id differs from the local payload_hash. Verification checks the signature and current lifecycle state; it does not establish transparency-log inclusion. Old receipts whose signing key was lost return UNVERIFIABLE.

For automatic hooks, enable auto_receipt=True. In synchronous code delivery is confirmed before the hook returns. In asynchronous code, call await wrapper.flush() and await wrapper.aclose() before shutdown; inspect get_submitted_receipts() for server responses. These lifecycle methods apply to AI wrappers/callbacks; data clients use their async context manager or create_receipt_sync() instead. Read retries are bounded; writes are never automatically replayed. After a timeout, check the agent's receipts before retrying. Listing returns up to the latest 100 receipts for one agent, with integration filters applied to that page.

Troubleshooting

Problem Next step
Missing optional dependency Install the framework/provider extra in the interpreter running your app.
Validation error Supply the documented fields and types; do not substitute a whole response for one metadata object.
Hash changes Compare serialized fields, including timestamps and identifiers.
Nothing appears in Console Local builders do not submit records; configure a registered agent and await confirmed delivery.

For support, share package and Python versions plus a sanitized example. Do not include keys, customer data or full authentication headers. No automatic compliance certification or fixed processing-latency guarantee is implied.

Metadata

Release files for maip-ai-connectors 1.1.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 maip-ai-connectors 1.1.0
File Size Uploaded
maip_ai_connectors-1.1.0.tar.gz 40.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for maip-ai-connectors 1.1.0
File Interpreter ABI Platform
maip_ai_connectors-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 97.5 kB

Release files / maip_ai_connectors-1.1.0.tar.gz

Download URL maip_ai_connectors-1.1.0.tar.gz
Size 40.6 kB
Tags Source
SHA-256 checksum
How to use checksums
b9b57c1bad6a712ae7d60a0d5b9b61a9c848fe600517b2e685c7c10aaaef084d
BLAKE2b-256 checksum
How to use checksums
7802f40c09dd7dfa737c4f685848e70df14e987df41c6827974d4c5a5eecd30e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release files / maip_ai_connectors-1.1.0-py3-none-any.whl

Download URL maip_ai_connectors-1.1.0-py3-none-any.whl
Size 56.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
87f2b5e458e220c850e1a018c59d2f0e63962b2f3c1b37b3a1162457b3deb821
BLAKE2b-256 checksum
How to use checksums
227ceab5d32f0755a4b9fdc1581e90e9f237453b1a14ef6165c6db9ef6bc89fe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release history Release notifications | RSS feed

This release

1.1.0 This release

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