## Inspiration
If you run a small clinic, you know how much time gets lost to routine admin work. Front desks spend hours every day texting patients, shuffling reschedules, and chasing down patients for appointments. It's frustrating, repetitive, and most importantly, it takes critical focus away from actual patient care. We were inspired to build something different: an agent that acts like an invisible extra set of hands. We wanted to build an AI that doesn't just generate text, but actually takes operational actions to manage schedules, while strictly leaving all medical and clinical decisions to human professionals.
What it does
CareForMe is an autonomous, safety-bounded clinic operations agent. It handles the administrative work that keeps small clinics running:
• Autonomous Scheduling: It creates and reschedules appointments dynamically based on patient SMS replies.
• Proactive Follow-ups: It detects when appointments have passed unattended and autonomously initiates no-show follow-ups.
• Safety Boundaries: CareForMe is explicitly an administrative agent. If a patient replies with a medical symptom or asks for clinical advice, the agent instantly halts automation and creates a REQUIRES_HUMAN_REVIEW escalation task in the clinic dashboard.
How we built it
We built CareForMe with a modern, event-driven architecture heavily leveraging AWS and the Strands Agents SDK:
• The Agent Brain: We used the Strands Agents SDK connected to Amazon Bedrock (using the Nova Lite v1 model). We provided the agent with explicit read/write tools, allowing it to reason about a task and then directly query or update our database.
• Backend & State: The API is built with Python (FastAPI) and uses Amazon DynamoDB as the core database to store clinic records, appointments, and a complete audit log of every action the agent takes.
• Security & Auth: We implemented Amazon Cognito to ensure that only authorized clinic staff can access the dashboard.
• Frontend: A responsive Next.js dashboard where clinic staff can view schedules and escalations.
• Communications: We integrated Twilio(we are currently using the free version of Twilio) to send appointment confirmations and handle inbound SMS/WhatsApp replies from patients. The agent operates in three ways: Event-driven (via SMS webhooks), Conversational (staff chatting in the dashboard), and Autonomous Background Maintenance (a scheduled worker that wakes the agent up to check for no-shows).
Challenges we ran into
One of the biggest challenges was enforcing the Safety Boundary. LLMs naturally want to be helpful and answer questions. We had to heavily refine our system instructions and tool definitions within the Strands SDK to ensure the Nova Lite model would never attempt to diagnose a patient or offer medical advice, and would reliably trigger the escalate_to_staff tool instead. Additionally, shifting from a traditional imperative programming mindset (writing if/else statements for scheduling) to an agentic mindset (writing a natural language prompt like "Check past appointments and follow up with no-shows") required a lot of testing to ensure the agent called the DynamoDB tools correctly and consistently.
Accomplishments that we're proud of
We are incredibly proud of the Autonomous Background Maintenance loop. Unlike a standard chatbot that only reacts when spoken to, CareForMe actually wakes up on a schedule, looks at the DynamoDB schedule, reasons that a patient missed an appointment, texts them via Twilio, and updates their status to NO_SHOW—all entirely on its own, while leaving a perfect audit trail.
## What we learned
We learned a massive amount about agent orchestration. Building with the Strands Agents SDK taught us how to effectively bridge the gap between unstructured LLM reasoning (Amazon Bedrock) and strict, structured backend data mutations (DynamoDB). We also learned best practices for building robust safety guardrails in healthcare tech.
## What's next for CareForMe
Right now, the agent relies on a batch cron worker to check for past appointments. The next major step is migrating to Amazon EventBridge Scheduler. This will allow the system to dynamically spin up precise, one-time schedules the second an appointment is booked, triggering the Strands agent exactly when a 24-hour reminder or a post-appointment follow-up is due.
Log in or sign up for Devpost to join the conversation.