Inspiration
In May 2026, Canvas went down in the middle of exam season. It wasn't a normal outage. Attackers had broken in and taken student names, emails and private messages from schools across the country. Most of us have spent years inside Canvas, so it felt personal.
It also made us ask what happens after the firewall fails and the attacker is already inside. Someone has to decide whether to shut servers down, keep them running to save the evidence, or bring the business back online. A big company has a team for each of those calls. Most organizations have one or two admins and no time to argue it out at 2 AM. That became Sentinel, an immune system for your infrastructure.
What it does
Sentinel is a desktop app that works like an immune system for your infrastructure. Four AI agents work a cyber incident together and argue over the response.
- Containment wants to cut the attacker off now by isolating hosts, blocking traffic and revoking sessions.
- Forensics wants to keep compromised machines running long enough to trace the attacker and preserve evidence.
- Recovery wants systems restored and the business back online.
- Compliance works out which breach notification laws apply, how long the company has to report, and whether a proposed action would destroy evidence the company is legally required to keep.
You pick an incident and the agents propose plans. Then they go through a fixed number of rounds where they object, veto or revise, and new evidence can show up in the middle of the debate. Agreement is not the goal by itself. The council can reach a plan, keep a disagreement on the record, or hand the case to a person. Even a unanimous plan stops at a checkpoint and waits for a written human decision before anything happens. Once a plan is approved, it plays out in a simulated network so you can see whether it actually stopped the attack. Every recommendation points back to the evidence it came from.
All of it runs on one ASUS Ascent GX10 with no cloud calls. Incident evidence, customer data and legal discussion stay inside the building.
How we built it
Each of us owned one agent on our own branch, and we merged them into a shared council at the end.
- The council is plain Python with no outside dependencies. It runs the debate rounds, votes, escalation rules and a single-agent baseline we compare against.
- Containment runs Cisco's Foundation-Sec-8B-Instruct, a security-tuned model, on llama.cpp.imulator that plays out each proposed control to see whether it actually stops the attack.
- Compliance runs Gemma 4 26B through Ollama. The model judges which laws are triggered and has to cite evidence for each call. Python computes every deadline from a rules file that quotes the actual law text, covering GDPR, HIPAA, the SEC's four business day rule, NYDFS, NIS2, California and Visa.
- Recovery proposes restoration plans and can defer a restore until Compliance clears it.
- Forensics has its own investigation loop, typed message contracts, and messaging built on
- Sentinel, the interface, is a Svelte app adapted from the llama.cpp web UI and packaged with Electron as a Linux arm64 desktop app for the GX10. It has a Demo mode that needs no models and a Live mode that calls the real ones.
The incidents are synthetic but grounded in real data. We built them from MITRE ATT&CK techniques and their real procedure descriptions, plus cases modeled on public breaches like MOVEit and Equifax. All hosts and timestamps are made up.
Challenges we ran into
- Models are bad at exact answers. Gemma would give the right reason for blocking a reimage under legal hold and then pick the softer "object" stance anyway. Prompt changes didn't fix it. So code now decides when a veto is required, and the model only gets the choices that are legal for that case. We handled deadlines the same way, so the model never does date math.
- A specialist model is not always the right one. We expected Cisco's security model to be strong at compliance. It passed only 16% of our compliance cases, while the general-purpose Gemma passed nearly all of them.
- Getting the law right. Two compliance mistakes came from the model misremembering the law. a significant incident, and the other was whether an encrypted laptop counts as a HIPAAbreach. Putting the quoted legal text into the input fixed both, and we didn't change any tests to get there.
- One shared box. Four people were running models on the same GX10. The installed Ollama was too old to pull newer models, so we ran a second one on its own port so we wouldn't disrupt anyone's loaded models.
- Getting independently built agents to talk. The agents used different names for the same fields and different action vocabularies. Some live cases deadlocked or timed out on Recovery until we fixed how the council ends a round.
- No overnight hours. The venue closed at 10 PM, so long evaluation runs happened off-site overnight.
Accomplishments that we're proud of
- A full live run of 12 incidents with real models on the GX10. The council agreed on a plan in 8 and sent the other 4 to a human.
- Safety that fails closed. If Compliance goes down, gives a bad answer, or sees an action nthe case escalates to a person. A peer agent can't vote that away.
- A human approval step that rejects stale, duplicate or expired approvals.
- Every legal deadline traces back to a quoted source, and the Compliance agent passed every case in both of its test suites on the final run.
- A packaged desktop app, plus a Demo mode anyone can run in a browser without a GPU.
What we learned
If an answer has to be exact, code should compute it. We moved deadlines, veto eligibility aodel one at a time, and each move made the system more reliable without making it less useful.
A domain-tuned model is not automatically the best fit for a narrow task inside that domain. Testing several local models on our own cases told us more than any model card did.
More agents don't automatically produce better answers. A council is only useful if each agecites its evidence, and is allowed to say "this needs a human."
What's next for Sentinel Security Manager
- Merge the Forensics agent and its AGNTCY messaging into the main build.
- Connect to real telemetry such as SIEM exports and endpoint logs in place of synthetic incidents, starting in read-only mode.
- Test escalation against labels from real security practitioners, and add more regulations and industry rules.
- Grow from one council into a command center, with lightweight agents watching individual servers and calling a response council when something looks wrong. The administrator still makes the final call on anything high-impact.
Log in or sign up for Devpost to join the conversation.