DevCoach
Inspiration
The hackathon's Loop Engineering Challenge asked for agents that plan, act, observe, and self-correct across a complete build cycle.
We wanted to apply that concept literally-not as a metaphor-to a real-world feedback loop: sports coaching.
Golfers typically receive coaching in isolated fragments: a tip here, a drill there. What they don't get is a coach that remembers what happened last time, measures whether the advice was followed, and adapts future coaching accordingly.
DevCoach is an AI golf coach built around that continuous learning loop.
What It Does
A player starts a round and can tap a microphone button after any shot to quickly log hands-free voice notes such as:
"Sliced my drive on hole 7 again."
During the round:
- 🎤 Voice capture only
- ⚡ No AI inference
- ⛳ No interruptions to gameplay
When the player ends the round, the agent begins its full reasoning loop.
The AI Agent
The agent:
- Diagnoses what happened during the round.
- Grounds its reasoning using a coaching knowledge base.
- Decides autonomously whether additional live web search is required.
- Generates an updated personalized coaching plan.
The Key Differentiator
The next time the player finishes a round, DevCoach doesn't start from scratch.
Instead, it:
- Reads the previous coaching plan
- Checks whether assigned drills were actually followed
- Measures improvement over time
- Updates coaching based on real outcomes
Inside the app, this appears as a round-by-round coaching timeline with visual green/red indicators showing whether previous recommendations were completed.
Additional capabilities include:
- 📍 Finding nearby golf courses using live geolocation
- 🎥 Converting coaching focus areas into relevant YouTube lesson searches
How We Built It
Backend
Built using:
- FastAPI
- PostgreSQL
- pgvector
The orchestration follows a classic agent loop:
Plan → Act → Observe → Correct
The entire system is built around a GameProfile interface.
This means:
- The orchestration layer contains zero sport-specific logic
- Golf is currently implemented
- The architecture is already designed to support additional sports
We also built a Provider Port abstraction around every LLM call, allowing us to swap AI providers with a single-line configuration change.
Sponsor Integrations
All sponsor tools are genuine production integrations and are load-bearing, not demos.
Akash
- Executes every reasoning step of the coaching loop
- Used through their inference API
Zero.xyz
Used whenever the agent determines that additional external knowledge is required. We integrated the real SDK through a lightweight Node.js sidecar because the SDK is currently TypeScript-only.
Nexla
Originally evaluated through their data platform.
Instead, we discovered and integrated their MCP gateway, which now powers:
- Live golf course discovery
- Real location-based recommendations
Frontend
Built with:
- Vanilla JavaScript
- HTML
- CSS
Communication uses plain fetch() calls.
There is no mock data anywhere in the application.
Speech-to-text is intentionally handled entirely on the client using the Web Speech API, minimizing backend latency and improving responsiveness.
Challenges We Ran Into
Sponsor Tool Pivot
Two of the three sponsor integrations turned out to be different from what we originally expected.
Nexla
Initially appeared to be the right solution for lightweight data normalization.
After deeper exploration, we realized the core platform is a much larger enterprise data integration product.
Instead, we discovered their MCP gateway, which became the foundation of our live golf course discovery feature.
Zero.xyz
Originally planned as an identity and long-term memory layer.
After understanding the platform better, we shifted its responsibility toward autonomous web search, where it fit our architecture much more naturally.
Web Speech API Bug
We encountered a subtle issue where the recognition results array is cumulative.
Our original implementation repeatedly appended already-finalized transcripts, producing duplicated and garbled speech recognition output.
Fixing this required correctly handling incremental recognition events.
Demo Networking
Making the backend reachable from a real mobile phone during the demo introduced several practical deployment challenges, including:
- Firewall configuration
- Local network accessibility
- Venue Wi-Fi client isolation
Accomplishments That We're Proud Of
- All three sponsor integrations are genuine production integrations.
- Akash and Zero.xyz sit directly in the critical execution path of every coaching analysis.
- The coaching loop genuinely closes across sessions.
- During testing, the second round successfully detected that drills assigned after the first round had actually been completed.
- There is zero mock data in the product.
- Every diagnosis, coaching plan, drill recommendation, and screenshot comes from real model execution and real user input.
What We Learned
One of our biggest takeaways was to integrate with sponsor APIs as early as possible.
Two of the three tools behaved differently from what their initial descriptions suggested. Discovering this on the first day allowed us to redesign our architecture before it became expensive to change.
We also learned that modern LLM tool calling turns autonomous decision-making into something tangible and observable.
When the agent decides it needs additional information, that decision is made dynamically, executed through real tools, and is fully visible rather than being hardcoded.
What's Next for DevCoach
Our roadmap includes:
🏌️ Add additional GameProfiles such as:
- Chess
- Tennis
- Other coaching-heavy sports
☁️ Deploy publicly beyond local demo hosting
🔄 Revisit the memory pipeline as lighter-weight identity and persistence solutions mature
🔊 Add voice responses so the AI coach can speak directly to players
📅 Integrate tee-time booking and golf lesson scheduling as additional partner and sponsor integrations become available
Built With
- akash
- javascript
- langgraph
- llm
- nexla
- python
- zero
Log in or sign up for Devpost to join the conversation.