Inspiration
Teacher absences are a common school operations problem, but finding a suitable substitute is often still handled manually. Administrators must check schedule conflicts, subject match, school stage, workload, and availability before making a decision.
SchoolFlow was inspired by the idea of turning this repetitive process into a safe AI-assisted workflow while keeping the final decision with a human administrator.
What it does
SchoolFlow is a voice-first AI agent for teacher absence and substitute management.
An administrator reports a teacher absence through Alexa. The request is processed by AWS Lambda and passed into the SchoolFlow workflow.
SchoolFlow evaluates eligible teachers using deterministic safety rules, including:
- Schedule conflicts
- Subject match
- School stage
- Teacher workload
Candidates are ranked and the safest recommendation is presented to the administrator.
The AI never assigns a substitute automatically.
A human administrator must explicitly approve or reject the recommendation.
If a candidate is rejected, SchoolFlow preserves that decision in the active workflow, excludes the rejected teacher, re-ranks the remaining candidates, and recommends the next best option.
Only after explicit human approval does SchoolFlow update the prototype schedule state and prepare the substitute notification.
How we built it
SchoolFlow combines:
- Alexa Skills Kit for voice interaction
- AWS Lambda as the serverless backend
- Amazon Bedrock as the AI model layer
- Strands Agents SDK for agent tools and orchestration
- Python for candidate ranking, validation, workflow state, and execution logic
The verified end-to-end workflow is:
Alexa → AWS Lambda → SchoolFlow Agent → Candidate Validation → Recommendation → Human Decision → Prototype Schedule Update → Notification Preparation
The voice workflow was successfully tested through the Alexa Simulator.
We also created a browser-based Simulated Alexa+ Experience to demonstrate the same agentic, human-in-the-loop workflow in an interactive interface.
The simulated Alexa+ experience allows a user to:
- Report Nora absent on Sunday during period 2.
- Receive Sara as the recommended substitute with a score of 7.
- Reject Sara.
- Preserve the rejection in the active workflow.
- Re-rank the remaining eligible candidates.
- Receive Huda as the next recommendation with a score of 5.
- Approve Huda.
- Complete the prototype schedule update and notification preparation flow.
The simulation is included in the public GitHub repository and deployed through GitHub Pages.
Simulated Alexa+ Experience:
https://zahraishag.github.io/SchoolFlow-Alexa-Agent/alexa_plus_simulator.html
Safety Architecture
SchoolFlow intentionally separates AI-assisted interaction from safety-critical decision rules.
Deterministic Python logic is responsible for validating constraints such as:
- Schedule conflicts
- Workload limits
- Subject match
- School stage
- Rejected candidates
The AI supports the recommendation and interaction workflow, while the human administrator remains responsible for the final decision.
The core safety principle is:
AI recommends → Deterministic rules validate → Human approves → System executes safely.
Challenges
Building the complete workflow required several rounds of testing and refinement.
Key challenges included:
- Amazon Bedrock credentials and model access
- Alexa approve/reject intent handling
- Maintaining rejected-candidate state
- Connecting Alexa, AWS Lambda, and the SchoolFlow agent
- Packaging Strands Agents SDK dependencies for Lambda
- Python runtime compatibility
- Configuring IAM permissions for Amazon Bedrock
- Adjusting Lambda timeout for agent execution
- Creating a clear Alexa+ simulation while preserving the working Alexa voice workflow
We documented these development challenges, fixes, workarounds, and improvement suggestions in our public GitHub Friction Log.
What we learned
SchoolFlow demonstrated that useful AI agents are not just about generating answers.
Reliable agentic systems need:
- Deterministic safety rules
- Tools
- Workflow state
- Human approval gates
- Clear execution boundaries
- Transparent handling of rejected actions
- Operational metrics that can be measured and validated
The project also reinforced an important design lesson: AI should not replace every rule-based decision.
Deterministic checks are better suited for hard constraints such as schedule conflicts and workload limits, while AI can support interaction, reasoning, orchestration, and recommendation.
Human approval remains essential before any action is executed.
Current Prototype Status
The current SchoolFlow prototype has been successfully tested end-to-end through Alexa and demonstrated through a browser-based simulated Alexa+ experience.
It currently supports:
- Reporting a teacher absence through Alexa
- Voice-based interaction
- Candidate evaluation and ranking
- Schedule conflict validation
- Workload validation
- Subject and school-stage matching
- Human approval and rejection
- Rejected-candidate memory within the active workflow
- Re-ranking after rejection
- Prototype schedule-state updates
- Notification preparation
- Interactive simulated Alexa+ workflow
The next stage is to connect SchoolFlow to persistent school scheduling data and real notification services.
Future evaluation will focus on operational metrics such as:
- Substitute assignment time
- Conflict-free recommendation rate
- Workload fairness
- Administrator approval rate
- Escalation frequency
SchoolFlow is designed around one principle:
AI recommends → Deterministic rules validate → Human approves → System executes safely.
Built With
- alexa-skills-kit
- amazon-bedrock
- aws-lambda
- python
- strands-agents-sdk

Log in or sign up for Devpost to join the conversation.