Inspiration
Settling an estate after a death can take up to 18 months and hundreds of hours of paperwork — arriving exactly when the person has the least capacity to handle it. Existing software makes it worse in two directions: conversational AI replies to four tired words with three paragraphs and two follow-up questions, and admin tools present a 40-item checklist with no concept of 3 AM. Both add load while performing help.
So we inverted the premise: restraint is the feature. An agent that can speak and chooses not to is doing something a silent text box cannot. QuietBridge makes "stay quiet" a first-class routed decision — with an ID, reasons, and an audit trail — rather than an absence of behaviour.
How we built it
A TypeScript monorepo — Fastify + Zod backend, React 19 frontend, 14 REST endpoints — around a hybrid router. Deterministic rules end on a network call: hour of day,crisis keywords, legal risk, admin density.
$$d_{\text{admin}} = \min!\left(100,; 25 n_{\text{demands}} + 8\min(n_{\text{open}}, 5)\right)$$
A bounded LLM pass (temperature = 0, strict JSON schema, 8s timeout) scores only what needs language understanding — fatigue, gerance — each clamped to $[0,100]$before merging. Routing is then a pure function of the signal vector: QUIET fires when $e \le 20\lor q \le 20 \lor (f \ge 60 \land it's night. Every fired clauserenders in the UI, so you see why.
On top sits a 14-day "stretch" engine: day 1 at 3 AM goes quiet and suppresses check-ins for 12 hours; day 4 promotes exactly one ds company or continued silence.
Challenges
The model pathologised ordinary sad" scored energy near 10 and forcedQUIET — refusing to help someone perfectly able to be helped. We redefined energy in the prompt as cognitive capacity, not sentiment, tional intensity and capacity aredifferent axes; conflating them builds an agent that condescends.
Silence is invisible. A judge can't tell deliberate restraint from a broken build. So suppressed check-ins still return a full decislivered_at, delivery_state:SUPPRESSED, and a reason code. The agent shows its work precisely when it does nothing.
Time of day nearly got swallowed by capacity-driven quiet, making 2 PM and 3 AM identical. We suppress capacity-quiet during daytenuinely changes the outcome.
What we learned
Bounded LLM output is the whole gamd merge, timeout, fallback. The model informs the decision; it never makes it. And degradation should make a care system quieter,louder: when confidence drops belowapses to the least intrusive optionavailable. Mostly, empathy turned out to be subtraction — nearly every improvement removed something.
Built With
- emotional-ai
- grief-tech
- mental-health
- restraint-by-design
- typescript
Log in or sign up for Devpost to join the conversation.