autogen-signatrust
AutoGen tools for Signatrust — cryptographically signed, tamper-evident AI Decision Receipts.
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
Links
- Website: signatrust.net
- API docs: signatrust.net/docs/api
- Source: github.com/abokenan444/Signatrust
- Contact: partners@signatrust.net
© 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)
| File | Size | Uploaded | |
|---|---|---|---|
| autogen_signatrust-0.1.0.tar.gz | 8.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|