Inspiration

Community events strive for inclusivity, but accessibility plans are fragile. If a sign language interpreter or live captioner drops out shortly before a workshop, organizers scramble and the attendee who relies on them can be effectively excluded. OpenDoor Relay removes that single point of failure with an autonomous, policy-bound recovery agent.

What it does

OpenDoor Relay is an autonomous accessibility continuity engine. When an accessibility provider cancels, it:

  1. Triggers a genuine Strands Agents SDK orchestration loop.
  2. Evaluates backup providers against strict policies such as budget ceilings and qualification requirements.
  3. Blocks unsafe or over-budget options before dispatch.
  4. Sends a secure, time-bound offer to the best eligible replacement.
  5. Handles the provider response, updates the accommodation plan, and asks the attendee to confirm the recovery.
  6. Escalates safely to a human if no valid replacement exists.

The work is visible end to end through the event view, provider portal, attendee plan, recovery timeline, and policy audit trail.

How we built it

  • Agent orchestration: Strands Agents SDK with load-bearing tool execution.
  • Safety: deterministic policy hooks outside the model so budget, qualification, consent, idempotency, and duplicate-side-effect rules cannot be overridden by model output.
  • Backend: Python 3.12 + FastAPI.
  • AWS: API Gateway, Lambda, DynamoDB, EventBridge Scheduler, SES, and AWS CDK.
  • Frontend: React + TypeScript + Vite, deployed on Vercel.

For the submitted environment, the genuine Strands framework runs with a deterministic rehearsal model because live Bedrock inference is blocked by the AWS account's daily quota. The system fails closed rather than pretending Bedrock is live.

Challenges

AWS quota limits

The account hit Bedrock and reserved-concurrency limits during the sprint. Instead of bypassing those constraints, we preserved the real Strands orchestration path and introduced a deterministic rehearsal model so the full agent/tool/policy flow remained testable and deployable.

Making autonomy safe

A recovery agent cannot hallucinate permission to overspend, disclose more attendee information, or double-dispatch a provider. We therefore keep policy enforcement and state-transition guards outside the model while still letting Strands decide and execute the recovery sequence through tools.

Accomplishments

  • Genuine Strands agent loop rather than a chatbot wrapper.
  • End-to-end provider-dropout recovery with an observable human-facing workflow.
  • AWS serverless backend with persistent state.
  • Policy audit trail showing blocked and approved actions.
  • 46/46 automated tests passing, including duplicate-token and expired-offer cases.
  • Production live demo deployed on Vercel and connected to the AWS API.

What we learned

Useful human agents need bounded autonomy. The model can choose and execute work, while deterministic controls define what it is allowed to do. That separation made the system both demonstrable and safer.

What's next

  • Restore live Bedrock inference after quota access is available.
  • Add production Twilio/SMS and SES delivery workflows.
  • Extend matching with geolocation, availability, and additional accessibility service types.
  • Add richer operator escalation for cases where no safe provider is available.

Built With

Share this project:

Updates

Submission history