Inspiration
My grandmother is active in every way that matters, except physically. Arthritis and a sedentary lifestyle mean the biggest risk to her health isn't a diagnosis, it's inactivity. I could call my grandmother myself and tell her it's time to work out. But a phone call from me is easy to forget, easy to reschedule, easy to skip on a busy day and it depends entirely on me remembering to make it in the first place. An autonomous agent does what I can't do consistently: show up on a structured schedule, every single day, without fail, without guilt and without the awkwardness of a family member nagging. It also never runs out of patience, never gets frustrated after the fifth "not today," and always shows up with the same warmth on a hard day as it does on a good one.
No to mention, not everyone has a family member who can call. Plenty of seniors, especially those in nursing homes or living far from family, don't have someone checking in daily, motivating them, or noticing when something's wrong. I wanted Vera to be that presence for anyone, not just the people lucky enough to have an attentive family member with the time to call every day.
What it does
Vera places two kinds of calls to seniors: a warm, resident-led Social Check-In where they lead the conversation, and a motivational Activity call that gets them moving. Physical activity isn't just about the body, it spikes neurogenesis, the growth of new brain cells, which plays a real role in protecting cognitive health as we age. That's the real reason the Activity call exists: movement is one of the most direct things a senior can do for their brain, not just their fitness.
Each resident has their own custom weekly exercise routine, built around what's actually appropriate for their physical needs, and Vera delivers a different motivational quote each day to open the call with real energy. Rather than generic health talk, Vera connects today's activity to what genuinely motivates that specific person — an upcoming wedding, a dream trip, a grandchild's game — so the encouragement feels personal, not scripted. Every call ends with real warmth: Vera asks if there's anything on their mind before saying goodbye, something I noticed was missing from early test calls and made a point to fix.
This is exactly the kind of "runs quietly in the background, only surfaces for a real decision" agent behavior Everyday Agents is looking for: Vera doesn't need supervision to place a call, but the moment something in a call crosses from routine into concerning, it stops running quietly and puts a human in the loop immediately.
How we built it
A Strands Agent orchestrates the entire pipeline and is the architectural core of Vera. The agent owns the full decision chain: it pulls a resident's profile and personal context, builds a natural-language call goal (quote of the day, personal motivation, mandatory touchpoints), places the call through CALL-E, receives the structured result, and then makes an autonomous judgment call using Amazon Bedrock, evaluating the outcome against that specific resident's own plain-language emergency criteria rather than a fixed global rule. This is a real agentic decision, not a keyword filter: Bedrock reasons over the resident's actual words and context to decide routine vs. escalation-worthy, the same way a person reviewing the call would.
The rest of the AWS stack exists to let that agent run autonomously and safely:
- AWS Lambda hosts the Strands agent as a deployed function, invoked on-demand or on a schedule, with zero servers to manage.
- Amazon EventBridge Scheduler triggers Lambda on a recurring cadence, one schedule per resident per call type, so calls happen automatically without anyone remembering to start them, the actual "autonomous, in the background" requirement of this track.
- AWS Secrets Manager stores the CALL-E auth token and Resend API key, read at runtime by the Lambda's execution role rather than hardcoded anywhere, with IAM policies scoped narrowly to exactly the resources Vera needs and nothing more.
- AWS IAM enforces least-privilege throughout: a scoped deploy user limited to
vera-*resources, and a separate execution role for the Lambda function itself, so a compromised credential in one place can't reach the other. - Resend delivers the actual output of the agent's judgment: a warm summary for routine calls, an urgent, visually distinct alert the moment Bedrock flags something concerning.
Getting a Node.js CLI dependency (CALL-E's client) and Python's Strands SDK to coexist inside Lambda's 250MB unzipped limit meant building two separate Lambda Layers, one for Node.js plus the CALL-E CLI, one for Strands' Python dependencies and discovering along the way that compiled Python dependencies need Linux-specific wheels, not what a local Windows environment produces by default.
Challenges we ran into
Early test calls felt rushed and impersonal, so I rewrote Vera's closing instructions to genuinely slow down and ask what's on someone's mind before hanging up. I also learned that staying on the line during a physical activity doesn't work well in practice, so I redesigned the Activity call to motivate and position someone to start, then end so they can actually move, with a follow-up nudge to call a family member once they're done.
On the infrastructure side, packaging real dependencies for Lambda surfaced problems that only show up once code actually runs on Linux instead of a local machine, and scoping IAM tightly (rather than reaching for broad permissions to move faster) took more upfront thought but meant a security issue I found in an unrelated part of the stack stayed fully contained instead of becoming a bigger problem.
Accomplishments that we're proud of
Getting Vera to feel like a genuine companion rather than a scripted caller was the real win, the personalized quotes, custom exercise routines and specific motivations tied to each resident's life made a noticeable difference in how natural the calls sounded. I'm also proud of the escalation logic: giving each resident their own custom-defined criteria for what counts as urgent, evaluated by a real agentic reasoning step through Bedrock rather than one blanket rule, means Vera can tell the difference between routine discomfort and something that genuinely needs a caregiver's attention, entirely autonomously.
What we learned
I learned that motivation isn't one-size-fits-all, an early version of Vera backed off the moment someone expressed reluctance and it took real iteration to build in gentle persistence without ever overriding someone's actual pain or discomfort. I also learned a lot about designing for two different audiences at once: a warm update that comforts a family member reads very differently from an operational summary a facility nurse needs to act on quickly. On the AWS side, I learned that least-privilege IAM isn't just a best practice to check off, it's what actually contained real risk when something outside my control went wrong.
What's next for VERA - Wellness Companion
Vera's dual-reporting design already serves two audiences — families and facility staff — and I'm excited to keep building on this agent architecture to bring recurring, fully autonomous scheduling to more call types at scale.
The next chapter is bringing Vera to Alexa+, expanding beyond phone calls into a full voice-and-screen companion. On Echo Show devices, this means cognitive games, guided exercise videos and meditations delivered visually as well as by voice, giving seniors who are screen-comfortable a richer, more engaging experience, while those who prefer audio-only still get the same companion through voice alone. This isn't a separate product, it's the same Strands-orchestrated agent and the same resident-specific personalization, motivations, and escalation logic, extended to a new surface so Vera can be present between the scheduled calls too, not just during them. Longer term, I'd also like to close the loop between Vera's agent and the resident-facing app, letting call outcomes and wellness trends sync back automatically so families and facility staff have persistent, in-app visibility into the same history Vera already tracks.
Built With
- amazon-bedrock
- amazon-web-services
- call-e
- claude
- event-bridge
- lambda
- lovable
- resend
- strands
Log in or sign up for Devpost to join the conversation.