Update app.py
Browse files
app.py
CHANGED
|
@@ -38,11 +38,43 @@ WHY = (
|
|
| 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 agent saw, what it called, what it wrote, and where the run diverged. When failures are unreproducible, accountability collapses.\n\n"
|
| 41 |
-
"RFTSystems exists to make agent behaviour **inspectable and independently verifiable**. This suite produces
|
| 42 |
"hash-chained timelines, tamper-evident receipts, deterministic replays, and first-divergence diffs. You don’t need to trust the author — you can verify the evidence.\n\n"
|
| 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 |
LICENSE_NOTICE = """All materials contained in or associated with this repository — including but not limited to text, code, algorithms, equations, figures, datasets, and documentation — are original works authored by Liam Grinstead and form part of the Rendered Frame Theory (RFT) research framework.
|
| 47 |
|
| 48 |
These works are protected under the following laws and treaties:
|
|
@@ -104,9 +136,24 @@ def _build_markdown() -> str:
|
|
| 104 |
return "\n".join(md)
|
| 105 |
|
| 106 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 107 |
with gr.Blocks(title="RFTSystems — Agent Forensics Suite") as demo:
|
| 108 |
-
gr.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 109 |
with gr.Accordion("Licence / Rights Notice (click to expand)", open=False):
|
| 110 |
gr.Markdown(LICENSE_NOTICE)
|
| 111 |
|
| 112 |
-
demo.launch()
|
|
|
|
| 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 agent saw, what it called, what it wrote, and where the run diverged. When failures are unreproducible, accountability collapses.\n\n"
|
| 41 |
+
"RFTSystems exists to make agent behaviour **inspectable and independently verifiable**. This suite produces evidence bundles you can share and validate: "
|
| 42 |
"hash-chained timelines, tamper-evident receipts, deterministic replays, and first-divergence diffs. You don’t need to trust the author — you can verify the evidence.\n\n"
|
| 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 = (
|
| 47 |
+
"# Why verification matters (the risks, plainly)\n\n"
|
| 48 |
+
"AI is being built and deployed at a pace that is now outstripping accountability. That mismatch is where harm happens.\n\n"
|
| 49 |
+
"The problem isn’t that agents make mistakes. Mistakes are inevitable. The unacceptable part is what usually follows:\n\n"
|
| 50 |
+
"- “We can’t reproduce it.”\n"
|
| 51 |
+
"- “We’re not sure which prompt/tool/model version caused it.”\n"
|
| 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"
|
| 60 |
+
"2) **WHAT** happened (inputs → decisions → tool calls → outputs)\n"
|
| 61 |
+
"3) **WHY** it happened (the exact chain of state transitions)\n"
|
| 62 |
+
"4) **HOW** to stop it happening again (what changed, and proof that the change works)\n\n"
|
| 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 agent runs into **evidence you can verify independently**:\n\n"
|
| 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"
|
| 73 |
+
"**If you can’t replay it, you don’t understand it. If you can’t prove it, you can’t govern it.**\n\n"
|
| 74 |
+
"Collection:\n"
|
| 75 |
+
"https://huggingface.co/collections/RFTSystems/rftsystems-agent-forensics-suite\n"
|
| 76 |
+
)
|
| 77 |
+
|
| 78 |
LICENSE_NOTICE = """All materials contained in or associated with this repository — including but not limited to text, code, algorithms, equations, figures, datasets, and documentation — are original works authored by Liam Grinstead and form part of the Rendered Frame Theory (RFT) research framework.
|
| 79 |
|
| 80 |
These works are protected under the following laws and treaties:
|
|
|
|
| 136 |
return "\n".join(md)
|
| 137 |
|
| 138 |
|
| 139 |
+
def render_doc(which: str) -> str:
|
| 140 |
+
if which == "Why verification matters":
|
| 141 |
+
return WHY_VERIFICATION_DOC
|
| 142 |
+
return _build_markdown()
|
| 143 |
+
|
| 144 |
+
|
| 145 |
with gr.Blocks(title="RFTSystems — Agent Forensics Suite") as demo:
|
| 146 |
+
doc = gr.Dropdown(
|
| 147 |
+
choices=["Start Here", "Why verification matters"],
|
| 148 |
+
value="Start Here",
|
| 149 |
+
label="Pages",
|
| 150 |
+
)
|
| 151 |
+
|
| 152 |
+
main = gr.Markdown(render_doc("Start Here"))
|
| 153 |
+
|
| 154 |
+
doc.change(fn=render_doc, inputs=doc, outputs=main)
|
| 155 |
+
|
| 156 |
with gr.Accordion("Licence / Rights Notice (click to expand)", open=False):
|
| 157 |
gr.Markdown(LICENSE_NOTICE)
|
| 158 |
|
| 159 |
+
demo.launch()
|