Update app.py
Browse files
app.py
CHANGED
|
@@ -1,6 +1,11 @@
|
|
| 1 |
import gradio as gr
|
| 2 |
|
| 3 |
SUITE = [
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4 |
(
|
| 5 |
"ReplayProof Agent POV Verified Replay",
|
| 6 |
"https://huggingface.co/spaces/RFTSystems/ReplayProof__Agent_POV__Verified_Replay",
|
|
@@ -37,10 +42,10 @@ WHY = (
|
|
| 37 |
"AI is being shipped into real systems faster than teams can reliably reproduce or explain agent behaviour. "
|
| 38 |
"When an agent fails, too many postmortems still rely on screenshots, partial logs, and opinions — not evidence.\n\n"
|
| 39 |
"The operational risk is not only that an agent does the wrong thing. The deeper risk is that **nobody can prove what happened**: "
|
| 40 |
-
"what the
|
| 41 |
-
"RFTSystems exists to make
|
| 42 |
-
"
|
| 43 |
-
"I can’t promise “AI will never take over.” No one can. What I *can* promise is this: **with chain-of-custody logs and receipts, we can prove what happened and who is responsible.**"
|
| 44 |
)
|
| 45 |
|
| 46 |
WHY_VERIFICATION_DOC = (
|
|
@@ -52,8 +57,6 @@ WHY_VERIFICATION_DOC = (
|
|
| 52 |
"- “We changed a few things and it seems better now.”\n"
|
| 53 |
"- “Trust us.”\n\n"
|
| 54 |
"That is not engineering. That is damage control.\n\n"
|
| 55 |
-
"Recent “nearly-Grok” style incidents are the warning flare: capabilities shipped fast, edge cases exploited, then a scramble to patch. "
|
| 56 |
-
"And once it’s patched, the public can’t prove what was true yesterday. That’s the accountability gap.\n\n"
|
| 57 |
"## What must be provable (every time)\n\n"
|
| 58 |
"If you’re shipping agents that browse, call tools, write files, automate actions, or influence real users, you need to be able to prove:\n\n"
|
| 59 |
"1) **WHEN** it happened (a verifiable timeline)\n"
|
|
@@ -63,10 +66,11 @@ WHY_VERIFICATION_DOC = (
|
|
| 63 |
"If you cannot answer those with evidence, you do not have a safe system — you have a black box.\n\n"
|
| 64 |
"## Why this collection exists\n\n"
|
| 65 |
"This suite exists to end the “unanswered for” failure mode.\n\n"
|
| 66 |
-
"It turns
|
|
|
|
|
|
|
| 67 |
"- deterministic replays (so anyone can reproduce behaviour)\n"
|
| 68 |
"- chain-of-custody logging (so the record can’t be quietly rewritten)\n"
|
| 69 |
-
"- tamper-evident receipts (so integrity can be proven)\n"
|
| 70 |
"- first-divergence diffs (so you can pinpoint exactly where and why two runs split)\n"
|
| 71 |
"- audit views (so governance becomes evidence-led, not opinion-led)\n\n"
|
| 72 |
"### Bottom line\n\n"
|
|
@@ -101,21 +105,21 @@ Verification: Each record is timestamped through the Zenodo/DataCite registry an
|
|
| 101 |
def _build_markdown() -> str:
|
| 102 |
md = []
|
| 103 |
md.append("# RFTSystems — Agent Forensics Suite")
|
| 104 |
-
md.append("**Evidence-first instrumentation for AI agents.**")
|
| 105 |
-
md.append("Audit, prove, replay, and diff
|
| 106 |
md.append("")
|
| 107 |
md.append("## Why I built this")
|
| 108 |
md.append(WHY)
|
| 109 |
md.append("")
|
| 110 |
md.append("## The workflow")
|
| 111 |
-
md.append("**learn → generate proof → record reality → seal it → diff
|
| 112 |
md.append("")
|
| 113 |
md.append("### Quick start (60 seconds)")
|
| 114 |
-
md.append("1. Open **
|
| 115 |
-
md.append("2.
|
| 116 |
-
md.append("3.
|
| 117 |
md.append("")
|
| 118 |
-
md.append("###
|
| 119 |
md.append("1. **Record reality** (Agent Flight Recorder).")
|
| 120 |
md.append("2. **Seal it** into receipts (RFT Memory Receipt Engine).")
|
| 121 |
md.append("3. **Diff** two runs and find first divergence (TimelineDiff).")
|
|
@@ -128,7 +132,7 @@ def _build_markdown() -> str:
|
|
| 128 |
md.append("")
|
| 129 |
md.append("## Design principle")
|
| 130 |
md.append(
|
| 131 |
-
"We don’t ‘
|
| 132 |
"Enforcement remains an operator decision; this suite is the instrumentation layer."
|
| 133 |
)
|
| 134 |
md.append("")
|
|
@@ -156,4 +160,4 @@ with gr.Blocks(title="RFTSystems — Agent Forensics Suite") as demo:
|
|
| 156 |
with gr.Accordion("Licence / Rights Notice (click to expand)", open=False):
|
| 157 |
gr.Markdown(LICENSE_NOTICE)
|
| 158 |
|
| 159 |
-
demo.launch()
|
|
|
|
| 1 |
import gradio as gr
|
| 2 |
|
| 3 |
SUITE = [
|
| 4 |
+
(
|
| 5 |
+
"AuditPlane — LLM Decision Proofs",
|
| 6 |
+
"https://huggingface.co/spaces/RFTSystems/AuditPlane__LLM_Decision_Proofs",
|
| 7 |
+
"Signed verification plane: Ed25519-signed decision receipts + hash-chained runs + replay + drift diffs + Merkle proofs.",
|
| 8 |
+
),
|
| 9 |
(
|
| 10 |
"ReplayProof Agent POV Verified Replay",
|
| 11 |
"https://huggingface.co/spaces/RFTSystems/ReplayProof__Agent_POV__Verified_Replay",
|
|
|
|
| 42 |
"AI is being shipped into real systems faster than teams can reliably reproduce or explain agent behaviour. "
|
| 43 |
"When an agent fails, too many postmortems still rely on screenshots, partial logs, and opinions — not evidence.\n\n"
|
| 44 |
"The operational risk is not only that an agent does the wrong thing. The deeper risk is that **nobody can prove what happened**: "
|
| 45 |
+
"what the system saw, what it decided, what it called, what it wrote, and where the run diverged. When failures are unreproducible, accountability collapses.\n\n"
|
| 46 |
+
"RFTSystems exists to make behaviour **inspectable and independently verifiable**. This suite produces evidence bundles you can share and validate: "
|
| 47 |
+
"Ed25519-signed receipts, hash-chained timelines, deterministic replays, Merkle proofs, and first-divergence diffs. You don’t need to trust the author — you can verify the evidence.\n\n"
|
| 48 |
+
"I can’t promise “AI will never take over.” No one can. What I *can* promise is this: **with chain-of-custody logs and signed receipts, we can prove what happened and who is responsible.**"
|
| 49 |
)
|
| 50 |
|
| 51 |
WHY_VERIFICATION_DOC = (
|
|
|
|
| 57 |
"- “We changed a few things and it seems better now.”\n"
|
| 58 |
"- “Trust us.”\n\n"
|
| 59 |
"That is not engineering. That is damage control.\n\n"
|
|
|
|
|
|
|
| 60 |
"## What must be provable (every time)\n\n"
|
| 61 |
"If you’re shipping agents that browse, call tools, write files, automate actions, or influence real users, you need to be able to prove:\n\n"
|
| 62 |
"1) **WHEN** it happened (a verifiable timeline)\n"
|
|
|
|
| 66 |
"If you cannot answer those with evidence, you do not have a safe system — you have a black box.\n\n"
|
| 67 |
"## Why this collection exists\n\n"
|
| 68 |
"This suite exists to end the “unanswered for” failure mode.\n\n"
|
| 69 |
+
"It turns runs into **evidence you can verify independently**:\n\n"
|
| 70 |
+
"- Ed25519-signed receipts (so outputs are attestations, not vibes)\n"
|
| 71 |
+
"- Merkle proofs (so you can verify inclusion without shipping everything)\n"
|
| 72 |
"- deterministic replays (so anyone can reproduce behaviour)\n"
|
| 73 |
"- chain-of-custody logging (so the record can’t be quietly rewritten)\n"
|
|
|
|
| 74 |
"- first-divergence diffs (so you can pinpoint exactly where and why two runs split)\n"
|
| 75 |
"- audit views (so governance becomes evidence-led, not opinion-led)\n\n"
|
| 76 |
"### Bottom line\n\n"
|
|
|
|
| 105 |
def _build_markdown() -> str:
|
| 106 |
md = []
|
| 107 |
md.append("# RFTSystems — Agent Forensics Suite")
|
| 108 |
+
md.append("**Evidence-first instrumentation for AI agents and safety decisions.**")
|
| 109 |
+
md.append("Audit, prove, replay, and diff runs — turning “trust me” into verification.")
|
| 110 |
md.append("")
|
| 111 |
md.append("## Why I built this")
|
| 112 |
md.append(WHY)
|
| 113 |
md.append("")
|
| 114 |
md.append("## The workflow")
|
| 115 |
+
md.append("**learn → generate proof → record reality → seal it → replay → diff → audit → benchmark**")
|
| 116 |
md.append("")
|
| 117 |
md.append("### Quick start (60 seconds)")
|
| 118 |
+
md.append("1. Open **AuditPlane** and generate a baseline suite.")
|
| 119 |
+
md.append("2. Replay the same suite and confirm drift diffs (should be 0 if unchanged).")
|
| 120 |
+
md.append("3. Export the offline bundle — anyone can verify receipts and Merkle proofs.")
|
| 121 |
md.append("")
|
| 122 |
+
md.append("### Agent pipeline (real systems)")
|
| 123 |
md.append("1. **Record reality** (Agent Flight Recorder).")
|
| 124 |
md.append("2. **Seal it** into receipts (RFT Memory Receipt Engine).")
|
| 125 |
md.append("3. **Diff** two runs and find first divergence (TimelineDiff).")
|
|
|
|
| 132 |
md.append("")
|
| 133 |
md.append("## Design principle")
|
| 134 |
md.append(
|
| 135 |
+
"We don’t ‘hand-wave’ agent safety. We measure drift from declared intent and produce evidence. "
|
| 136 |
"Enforcement remains an operator decision; this suite is the instrumentation layer."
|
| 137 |
)
|
| 138 |
md.append("")
|
|
|
|
| 160 |
with gr.Accordion("Licence / Rights Notice (click to expand)", open=False):
|
| 161 |
gr.Markdown(LICENSE_NOTICE)
|
| 162 |
|
| 163 |
+
demo.launch()
|