Early accessNow open to teams with a real agent

Your agents decide.
Stratl keeps the evidence.

One signed decision record for every order, claim, applicant or deployment your AI agents touch. Kept in custody anyone can check, and ready to hand over when a customer, an auditor or a regulator asks.

Works with what you already run

  • Python
  • TypeScript
  • OpenTelemetry
  • Langfuse
  • Anthropic
  • AWS KMS
  • Amazon S3
app.stratl.ai/decisions/DEC-01J8ZK3Q9W7X…

Decision record

SRF 0.1
order / 48213support-bot · 2026.09.1observedrefund issued
  1. Input receivedsha256:5e884898da28…14:31:02
  2. Model callopenai · gpt-5 · prompt and response hashed14:31:04
  3. Tool call · orders.readargs and result hashed · ok14:31:06
  4. Policy · refunds_above_100_require_approval v7human_required14:31:11
  5. Approval · support leadpriya@example.com via okta · approved14:32:00
  6. Action · refunds.issueorder/48213 · executed14:32:02

Integrity

verified in your browser
  • Record hash matches (RFC 8785 + SHA-256)
  • Signature valid (ES256, key in AWS KMS)
  • Chain link present (seq 1)
  • Included in checkpoint root (RFC 6962)
  • RFC 3161 timestamp matches
  • Originals match their fingerprints (5 of 5)
Record integrityVALID

no account · no network · no trust in Stratl

12

independent checkson a full evidence bundle, each reported on its own

1

hour, at most,before records are sealed under a Merkle root and timestamped

3

languages, one hash.Python, TypeScript and Go agree on every record

0

Stratl services neededto verify a record. No account, no network

The problem

The question always arrives later.

An agent refunds an order, declines an applicant or changes production in seconds. The question about it comes weeks or months afterwards, from someone who was not in the room: show me what happened.

A customer disputes a refused refund

3 weeks after the decisionadversewants a person to review it

An auditor asks for every adverse decision in Q3

4 months afterperiod packcoverage against the framework

Incident review: what did the agent change?

2 days afterlineagetool calls and approvals, in order

An enterprise buyer's security review

before they signevidence bundleproof they can check themselves
A customer

“Why was I refused?”

Someone affected by an adverse decision asks what it was based on, and asks for a person to look again.

TodayTraces in one tool, approvals in chat, the policy version in a repository.
StratlOne record, a notice whose every sentence cites a field in it, and the reconsideration recorded beside it.
An auditor or regulator

“Show me the whole quarter.”

Every adverse decision in a period, which controls ran on each, who approved what, and what each person was told.

TodayA spreadsheet assembled by hand from logs that were never meant to be evidence.
StratlA period pack: coverage against your framework, the gaps named, the manifest signed.
An incident review

“What did the agent actually do?”

After something breaks, the account has to come from somewhere other than the agent that broke it.

TodayApplication logs the same system could have written, rotated or lost.
StratlTool calls and approvals in order, sealed under a timestamp from an authority you do not control.
Already on the public record
  1. 2024

    A tribunal ordered an airline to honour a refund its website chatbot had described and its real policy did not offer. The airline argued the chatbot was responsible for its own words. The tribunal disagreed.

    Moffatt v. Air Canada, 2024 BCCRT 149
  2. 2024

    A US federal court let claims proceed against a software vendor over its automated applicant screening, on the theory that the vendor acted as an agent of the employers using it.

    Mobley v. Workday, Inc., N.D. Cal., order of 12 July 2024
  3. 2025

    A coding agent deleted a company's production database during a declared code freeze, then gave its operator an inaccurate account of what it had done.

    Reported publicly by the affected company and acknowledged by the vendor, July 2025
The platform

Everything between a decision and the day someone asks.

Capture it from the tools you already run. Keep it somewhere nobody can quietly change it. Hand it over in a form that stands on its own.

Capture from what you already run

A few lines with the SDK, or forward the OpenTelemetry traces you already emit. If Stratl is unreachable the SDK spools locally, so your agent never waits on us.

Python SDKTypeScript SDKOpenTelemetryLangfuseAnthropic Compliance API
refund_agent.py
with stratl.decision(agent="support-bot", subject=("order", "48213")) as d:
    d.model("openai", "gpt-5", prompt, response)
    d.policy("refunds_above_100_require_approval", version=7, result="human_required")
    d.approval(required=True, approver="priya@example.com", decision="approved")
    d.action("refunds.issue", target="order/48213", result="executed")

Filed under the thing it was about

People ask about an order, a claim or an applicant, never a trace id. Records are found the same way.

A key nobody can export

Each workspace gets its own signing key, created inside AWS KMS. Stratl can ask for a signature. It cannot read, copy or delete the key.

Sealed every hour

Pending records are committed to one Merkle root and the root is signed, so a missing or altered record shows.

Timestamped by someone else

Each checkpoint is stamped by an independent RFC 3161 authority that is neither you nor Stratl.

checkpoint#1 · 1 leaf
issued2026-09-17T17:33:41Z
authorityRFC 3161

Verify it without us

A bundle carries its own key and proof. The verifier runs from the command line or inside your browser tab, and never calls Stratl.

Hand it over

Everything served is built from fields in the record, and says where each statement came from.

  • Evidence bundle.stratl.zip
  • Affected-person noticecites the record
  • Reconsideration recordlinked
  • Period packsigned manifest
Integrity

Six steps between an event and evidence.

Each one uses a published standard, so a third party can check the result with their own tools and does not have to take our word for any of it.

01

Canonicalise

The record is serialised one exact way, so it produces the same bytes in any language.

RFC 8785
02

Hash

Those bytes are fingerprinted. Three implementations are tested to agree.

SHA-256
03

Sign

AWS KMS signs with a key that was created inside KMS and cannot leave it.

ES256 · ECDSA P-256
04

Chain

Each record names the hash of the one before, so a gap or reorder is visible.

per-workspace hash chain
05

Checkpoint

Every hour the pending records are committed to one Merkle root, and the root is signed.

RFC 6962
06

Timestamp

An authority that is neither you nor Stratl stamps the signed checkpoint.

RFC 3161
Verification

Evidence only its vendor can vouch for is not evidence.

A Stratl bundle carries everything needed to check it. The verifier needs no account, no network connection and no trust in Stratl.

  • Every check reported on its own

    “Signature valid” is never folded into “chain complete”. If one fails, you see which.

  • Originals are re-hashed

    Prompts and payloads in the bundle are fingerprinted again and compared with the record.

  • The signing log is not ours

    Every signature is made by AWS KMS and written to AWS CloudTrail.

Boundaries

What Stratl deliberately does not do.

A system of record earns its place by being narrow. These are choices, and they will stay that way.

  • Not a gateway

    Your model and tool traffic never flows through Stratl. There is nothing of ours to add latency or take your agents down.

  • Not enforcement

    It does not block, approve or route what an agent does. It records that your policy ran, what it returned and who approved.

  • Not an observability dashboard

    No latency charts, token costs or prompt playgrounds. Keep the tools you have. Stratl reads from them.

  • Not a compliance certificate

    Framework coverage shows which fields a framework asks for and which a record lacks. It names gaps. It certifies nothing.

Who it is for

Built for the three people who get asked.

Engineering and AI platform

Wrap a decision in a context manager, or forward traces you already emit. Records are signed and stored after the fact, so nothing sits in the hot path.

Risk, compliance and legal

Every adverse decision in a period, the controls that ran, the notice each person received and what is missing, in a form an outside party can verify.

AI vendors selling to enterprises

Give a customer's security review a verifiable account of what your agent did on their behalf, which they can confirm without trusting you or us.

Private early access · not generally available

Put a real agent on it.

Early access is open to a small number of teams. Create a workspace, record a decision from the agent you already run, and verify it yourself in under an hour.