What it does
QuietRelay prepares a daily allocation plan for a small community organization. A coordinator brings anonymous requests, expiring stock and volunteer availability, then reviews a plan with the evidence for each allocation or shortage.
Import CSV or pasted spreadsheet tables, or add records in the editor. The console accepts up to 100 requests, 100 stock lots and 30 volunteers, including requests for several items. It validates all three tables before replacing current work. Source IDs remain visible in the allocation evidence and handover.
Ready requests can be approved locally; unresolved requests can be marked for follow-up. Save the workspace, reload, and restore both the inputs and decisions. A portable JSON file supports the same workflow on another device. Prepare handover produces a readable text file containing every request, its resources and its review status. Unreviewed requests stay pending. Nothing is dispatched, messaged or paid.
How it works
The local console runs a Strands agent with a pinned Ollama/Qwen3 model. It calls inspect_conflicts, select_recovery and validate_recovery in order. Its choices are restricted to two allowlisted planning options. The parent process independently recomputes the selected plan, and the console checks the response against the exact submitted input. Model-written prose cannot become allocation data.
The planner uses the earliest-expiring stock first and searches for volunteer reassignments within zone and capacity limits. It commits stock only when a volunteer assignment exists. In the original synthetic sample, recovery increases ready requests from three to four while leaving the rice shortage unresolved.
The public preview runs those deterministic tools in the browser without a model. Each execution mode is labeled. Editing inputs or replanning clears earlier approvals. Restoring a saved plan checks its consistency and explicitly records that no new model ran. An inconsistent file is rejected before replacing current work.
Build and verification
Built with Strands Agents SDK, Python, Ollama/Qwen3, React, TypeScript and Vite, with AI coding assistance. The repository includes the architecture diagram, MIT license and local setup.
The browser planner matched Python in 86 synthetic cases, including maximum supported input counts, 100 split stock lots for one request, multiple needed items, empty resources and expiry boundaries. Browser checks covered import, two real local agent runs, approval, follow-up, save/reload/restore, file download readback and rejection of an inconsistent file. The import and review flows also passed at 375-pixel width.
These checks establish behavior on synthetic inputs. No community organization has tested the prototype, and no field-impact or time-saving result is claimed. The model's role is deliberately constrained; the browser preview exposes how much planning can run deterministically.
Try it
Open the public preview and select Replan. Four requests become ready. Add stock or volunteer capacity, replan, and inspect the changed allocations. Import tables to bring another work queue; the README links a second seven-request example. Approve one allocation, mark a shortage for follow-up, save the workspace, reload, and restore it. Prepare handover includes the remaining pending requests.
For the real agent, follow the repository README and select Run local agent at http://127.0.0.1:4173. The September 10 recording shows the full import-to-handover workflow with two real local Strands runs. It uses synthetic inputs and synthetic narration.
Built With
- python
- strands-agents-sdk
Log in or sign up for Devpost to join the conversation.