annaconda · vigia-live — system architecture
A fleet of Gemini + ADK agents works forensic cases unattended on Google Cloud. But a deterministic core seals the verdict before any agent speaks — the model puts the sealed result into words, it cannot change it.
live on Cloud Run · us-central1 · Vertex AI · FirestoreAgent layer — orchestration, memory, words
Works a case autonomously across cycles; keeps a hash-chained mission journal; self-schedules the next look, escalates, or stands down.
Triages the case and routes collection to the specialists.
Collect running-state and persistence telemetry — each its own sealed window.
VirusTotal / MISP enrichment; Sigma rule drafts. Read-only context.
bit-for-bit identical.
Deterministic core — stdlib-only, exact arithmetic
Velociraptor VQL (or bundled demo telemetry) → normalized artifacts, frozen into an immutable window and hashed.
window_hash = sha256(canonical)
Scores the window with exact fractions (never floats); maps MITRE ATT&CK; produces score + confidence.
Each verdict seals onto the previous one; reads re-verify end-to-end. Enrichment is sealed beside the evidence, never among it.
entry_hash ← prev_entry_hash
DFIR interoperability — output of the seal, never an input
/cases/{id}/stix
/cases/{id}/cacao
annaconda-verify
detection-engineer
Pub/Sub → Chronicle
feed match, sealed
needs VT_API_KEY
/cases/{id}/exhibit
Runs unattended · Google Cloud
the one invariant
A language model can read the evidence correctly and still reach the wrong conclusion under narrative pressure — and you cannot put "the model felt sure" in front of a court. So the model never touches the decision path. Autonomy where it helps; determinism where it must hold.