Skip to main content

autogen-signatrust

AutoGen tools for Signatrust — cryptographically signed, tamper-evident AI Decision Receipts.

PyPI License: MIT

Give any AutoGen agent the ability to seal its high-stakes decisions into independently verifiable evidence — without exposing prompts, model outputs, or sensitive business data. Only SHA-256 hashes are stored by default.


Why?

When an AI agent makes a regulated or high-stakes decision (loan approval, refund, content moderation, transaction flagging), how do you prove, after the fact, that the decision was made correctly, under the right policies, and with appropriate human oversight?

Signatrust generates a tamper-evident AI Decision Receipt for each decision, capturing which AI system was involved, the action taken, whether a human reviewed it, the policies/permissions in effect, and a cryptographic (Ed25519) signature. Each receipt has a public verify_url that regulators, auditors, or counterparties can check — without accessing your systems or data.


Installation

pip install autogen-signatrust

Authentication

export SIGNATRUST_API_KEY="sk_live_..."
# Optional, for self-hosted Enterprise:
export SIGNATRUST_BASE_URL="https://signatrust.your-company.com/api/v1"

Quick start

from autogen_signatrust import get_signatrust_tools

# Returns three autogen_core.tools.FunctionTool objects
tools = get_signatrust_tools()   # reads SIGNATRUST_API_KEY from env

Use with an AutoGen AssistantAgent (AgentChat)

from autogen_agentchat.agents import AssistantAgent
from autogen_ext.models.openai import OpenAIChatCompletionClient
from autogen_signatrust import get_signatrust_tools

model_client = OpenAIChatCompletionClient(model="gpt-4o")
agent = AssistantAgent(
    name="compliance_agent",
    model_client=model_client,
    tools=get_signatrust_tools(),
    system_message="After any high-stakes decision, generate a signed Signatrust receipt.",
)

Use a single tool directly

import asyncio
from autogen_core import CancellationToken
from autogen_signatrust import get_signatrust_tools

generate_tool = get_signatrust_tools()[0]

async def main():
    result = await generate_tool.run_json(
        {
            "agent_name": "RefundAgent",
            "action": "Approved refund for order #991",
            "decision": "APPROVED under 30-day return policy",
            "risk_level": "medium",
        },
        CancellationToken(),
    )
    print(result)

asyncio.run(main())

Tools provided

Function Tool name Purpose
signatrust_generate_receipt signatrust_generate_receipt Seal an AI decision into a signed receipt
signatrust_verify_receipt signatrust_verify_receipt Verify a receipt's signature/integrity
signatrust_get_receipt signatrust_get_receipt Fetch a receipt's full details by ID

The bare async functions can also be imported directly and wrapped manually with autogen_core.tools.FunctionTool. Use configure(api_key=..., base_url=...) to set credentials for the bare functions, or rely on environment variables.


Privacy-first by design

By default, only the SHA-256 hash of the decision and input_prompt is stored — never the raw text. Pass include_decision_in_metadata=True only if you explicitly want to retain the raw decision.


Development

pip install -e ".[test]"
pytest

© 2026 Signatrust — MIT License

Release files for autogen-signatrust 0.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 autogen-signatrust 0.1.0
File Size Uploaded
autogen_signatrust-0.1.0.tar.gz 8.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for autogen-signatrust 0.1.0
File Interpreter ABI Platform
autogen_signatrust-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 17.0 kB

Release files / autogen_signatrust-0.1.0.tar.gz

Download URL autogen_signatrust-0.1.0.tar.gz
Size 8.3 kB
Tags Source
SHA-256 checksum
How to use checksums
543881995da88fcbc5eee0665e659a11994fcf86f11049b48a7d1f8e6a964526
BLAKE2b-256 checksum
How to use checksums
cf3e08a18c73e91cfde772a15f49d138cae8ca1ce878c4416ef803fa98d3f1ad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / autogen_signatrust-0.1.0-py3-none-any.whl

Download URL autogen_signatrust-0.1.0-py3-none-any.whl
Size 8.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
40f67f4ac8a78feaeb8117735737ec848d0b60acc103afc2ff9836d5cbb1a680
BLAKE2b-256 checksum
How to use checksums
802da5d1e23acdbe8ba899a4c8be09768bbaa039a7c325d6213d9d70ba7cf0d4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.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