
Suraksha: an agentic companion that stays quiet until it matters
Suraksha is an elder-care companion on Amma’s Galaxy Watch and tablet. She speaks a task in Hindi or Hinglish — a reminder, a privacy rule, a fall alert — and a Bedrock agent turns it into real actions. Memory is facts under consent. Cedar checks every tool call. The family gets a push only when something is wrong: a fall, a missed wake, or feeling unwell. Built on AWS. Most days she says nothing. When it matters, she already knows what Amma allowed.
Suraksha: an agentic companion that stays quiet until it matters
Deployed Link : https://suraksha.d2dqtm6sqego9a.amplifyapp.com/explore
Youtube video: https://youtu.be/XVr34XeXvlE

preview of the world
Elder care usually turns a parent into a live feed. We built the opposite. Suraksha sits with Amma on a watch and a tablet, remembers what she asked for, keeps what she asked to keep private, and reaches the family only when something is actually wrong.
That product is Suraksha. This is how we put it on AWS — and where the platform refused the easy path.
That product is Suraksha. This is how we put it on AWS — and where the platform refused the easy path.
The problem
A son or daughter in another city does not need a minute-by-minute picture of their mother’s day. They need someone present when she falls, when she does not get up, or when she says she feels unwell — without her living under a camera.
Suraksha is care for the family that is not surveillance of the parent. On an ordinary day it almost never talks. That quiet is the design.
Suraksha is care for the family that is not surveillance of the parent. On an ordinary day it almost never talks. That quiet is the design.
What Suraksha is
Amma (72, Bengaluru) wears a Galaxy Watch and speaks to Suraksha on a tablet. Rahul and Priya see a calm family screen. A push arrives only when the system has decided they should hear from it.
She can say a task in Hindi or Hinglish — “remind me thirty minutes after I wake,” “don’t tell Priya about my health,” “if I fall, call my son.” A tool-calling companion on Amazon Bedrock turns that speech into real work: reminders, check-ins, consent rules, health notes. Memory is a DynamoDB single table of facts, not a transcript of every chat. Cedar checks every tool call before it runs. The model does not invent policy. Code does.
The watch reports wake, vitals, and fall. The family side is a command timeline and a one-tap respond page once escalation has started.
She can say a task in Hindi or Hinglish — “remind me thirty minutes after I wake,” “don’t tell Priya about my health,” “if I fall, call my son.” A tool-calling companion on Amazon Bedrock turns that speech into real work: reminders, check-ins, consent rules, health notes. Memory is a DynamoDB single table of facts, not a transcript of every chat. Cedar checks every tool call before it runs. The model does not invent policy. Code does.
The watch reports wake, vitals, and fall. The family side is a command timeline and a one-tap respond page once escalation has started.
Why we built it on AWS
We wanted one region, managed identity, serverless compute that could run a real FastAPI agent, durable orchestration for “ask Rahul, wait, then Priya,” and voice that never left AWS.
| Layer | Services |
|---|---|
| Edge | Wear OS · parent tablet · family web |
| Front door | Amplify · Cognito · API Gateway HTTP API · Secrets Manager |
| Runtime | Lambda containers (API, worker, escalation) |
| Agents | Strands-style tools on Bedrock Nova 2 Lite |
| Voice | Amazon Transcribe (STT) · Amazon Polly (TTS) |
| Memory & trust | DynamoDB · Cedar ConsentGuard · CloudTrail · CloudWatch |
| Care loops | EventBridge (1-minute sweep) · Step Functions · Web Push |
Architecture in one pass

Architecture diagram of Suraksha
Read the diagram from top to bottom:
- Speak a task — audio goes through Transcribe; the companion calls tools on Bedrock; Polly speaks the confirmation back.
- Consent before side effects — ConsentGuard asks Cedar on every tool; the allow or deny, plus an audit row, lands in DynamoDB where Amma can read it.
- Watch events — wake and fall hit the API; every minute the EventBridge worker collects due reminders, missed wake windows, and investigation timeouts.
- When it is wrong — a deterministic gate and a Bedrock judge can start Step Functions: Rahul → timeout → Priya → ask Amma about the neighbour → the neighbour only if Cedar allows → failsafe notify-all. Replies come back as push actions with
waitForTaskToken.
Solid lines are runtime data. Dashed lines are auth, secrets, and observability.
Hard parts we actually hit
New-account Lambda concurrency is 10
The first deploy looked healthy in CDK and failed in the account. A fresh AWS account will not accept reserved or provisioned concurrency while the regional limit is still 10. Voice turns paid for that as cold starts. We shipped without provisioned concurrency, wrote the flag down, and left
-c provisionedConcurrency=1 for after a quota increase. Demo timings had to include a real Lambda wake-up, not a staged pause.Bedrock inference profiles are not “just a model id”
Nova 2 Lite needed an inference-profile ARN in IAM and the model id in env. Miss either one and InvokeModel fails in a way that looks like a broken agent. We made a hard product rule: no silent fallback. If Bedrock is down, the API returns
llm_unavailable and the UI says so. That rule forced a smoke script against every reply schema before we trusted a build.Step Functions waitForTaskToken and the IAM cycle
Family escalation is not a one-shot SNS blast. Each child gets a callback task; a timeout moves the chain forward; an accept stops it. Binding
states:SendTaskSuccess tightly to the state machine ARN created a CloudFormation cycle between the escalation Lambda and the state machine. We had to allow task-token callbacks more widely than we wanted, write down why, and add a failsafe “notify every child” path on States.ALL so a stuck task could not leave Amma alone.Secrets Manager does not seed itself from CDK
VAPID keys, the watch device key, and HMAC reply secrets cannot be created as SecureString values by CloudFormation. The deploy order became: write the
ally/runtime bundle first, then cdk deploy, then seed users. Skip the secrets step once and the stack comes up with an empty runtime — a green deploy and a red product.Cedar means the model does not get to write policy
The shortcut is to let the LLM emit a forbid rule. We did not take it. Consent tools render Cedar from fixed templates; Amma confirms with an explicit yes; a
BeforeToolCall hook runs before any side effect. Family Q&A took longer to ship and became much harder to fake. An answer must cite records returned this turn, or say not sure, or say private.DynamoDB single-table + a one-minute sweep
A reminder is either a clock time or “N minutes after wake.” Due work sits on a GSI (
due_at#parent). EventBridge calls the worker every minute. The design is cheap, plain, and right. We looked at pushing every watch tick into a heavier stream and dropped it. At this scale, elder care is sparse events, not a clickstream.Watch auth vs human auth
Cognito on the watch would have meant a token refresh on a wrist. A public /ally/watch route with a device key in Secrets Manager was the better trade, and it forced an explicit authorizer matrix on API Gateway: health, watch, and escalation reply stay public; everything else is JWT.
What we would do next
Raise the Lambda concurrency quota and turn on one provisioned concurrent execution for the API alias, so the first spoken turn is not the coldest one. Tighten CloudTrail data events on the table so Amma’s audit story is easier to read. And keep the rule that kept the build honest: the model chooses language and judgement; code chooses actions; safety has no off switch.
Closing
Suraksha works when the architecture stays quiet. Memory held under consent, a watch that can interrupt, and a family chain that runs only when the judge says it should — that is the system. Most days, Suraksha says nothing. On the days that matter, she already knows what Amma allowed her to do.
Teammates
- Naomi — Team leader
- Harshendra M
- Shashwath Prabhu
Enjoyed reading this content? Let the author know!
Your likes, comments, shares, and saves help creators reach more builders.
Loading recommendations
Loading article