Inspiration
We often review large code drops from Claude Code and want an easier way to validate real behavior in a browser, not just read diffs. When judging hackathons, confirming that projects actually run and that APIs are wired to real services was also painful. The same pain exists in day-to-day code review, so we built a solution and used this event to try RL.
As a demo, we built Hackathon Fake Inspector. Watch it! ⇨ (https://www.loom.com/share/67cfcd7d2b9746399614d833d743c437?sid=39a35752-2187-4020-b4b5-8875a85bd2ea)
What it does
Hackathon Fake Inspector is a behavior-driven code review agent that:
- launches a project in an isolated Daytona sandbox and drives it in a real Browserbase browser
- runs executable behavior checks with clear preconditions, actions, and assertions
- verifies real API calls instead of mocks and captures evidence
- logs every step to Weave, computes scores, and shows before vs after runs
- feeds trajectories and rewards to Serverless RL so the underlying Qwen model improves pass rate over time
Key metrics:
behavior check pass rate, time to first valid run, real API hit rate, flakiness rate, cost per successful run.
Ex. trained to give higher scores for low tool_cost & high task_completed.
How we built it
Architecture diagrams are attached in the gallery, would be easier to understand how we built!
- Mastra for agent orchestration and tool creation, easily published as an MCP server.
- Daytona to execute untrusted projects safely.
- Browserbase inside Daytona to run real browsers and validate flows.
- Tavily to fetch fresh context when the agent needs external facts.
- Weave to monitor traces, compute metrics, and produce before/after reports.
- Serverless RL to train the Qwen model used by Mastra, using trajectories and rewards exported from Weave.
We are happy to show the Google Colab training notebook privately if needed. We are not uploading it to Devpost because the current version includes hardcoded API keys.
Challenges we ran into
- Learning what the heck is "Reinforcement Learning". Serverless RL was a true magic!
- Reward design that reflects real user value, not shortcut metrics
- Making browser checks deterministic while keeping them realistic
- Honest verification of “real API vs mock” without leaking secrets
- Tight iteration time for RL training and checkpoint swaps
- Keeping sandboxes fast and reproducible across runs
Accomplishments that we're proud of
Wow, we got a new everyday tool just in 1.5 days!
- We trained Qwen and now it has the same performance score as Gemini 2.5 flash, while reducing the cost by 27%!!!!
- End-to-end behavior-driven review running in a real browser, not just static analysis.
- A working RL loop with Serverless RL that improved our internal smoke-test pass rate during the event
- A minimal, portable spec for behavior checks that others can adopt
What we learned
- Behavior definitions must be executable and small: clear preconditions, actions, assertions.
- Observability first: if it isn’t traced, it didn’t happen.
- Reward shaping and guardrails matter more than model size at this stage. Isolation and environment control are the difference between flaky demos and reliable runs
What's next for Hackathon Fake Inspector
- GitHub PR integration: run behavior checks in a real browser on every pull request and attach a Weave report
- A shared library of behavior templates for common stacks
- One-click CI action and a hosted sandbox so teams can adopt it in minutes
Built With
- ag-ui
- browserbase
- copilotkit
- daytona
- mastra
- serverlessrl
- tavily
- weave
Log in or sign up for Devpost to join the conversation.