Trak App Voice AI Integration
Control music playback and search tracks using Agora Voice AI.
Recipe prompt
Paste into Cursor, Claude Code, v0, or your coding agentYou are implementing the "Trak App Voice AI Integration" recipe in this project.
Read the recipe markdown first:
https://raw.githubusercontent.com/Saarthak1234/Trak-VoiceAI-Demo/main/docs/ai/RECIPE.md
Use the source repository for cross-reference:
https://github.com/Saarthak1234/Trak-VoiceAI-Demo
Build this recipe into the user's app using the markdown as the implementation guide. Inspect related source files through the repository links when the recipe points to them. Ask before installing new dependencies.Recipe
Rendered from the configured recipe markdown.
| Field | Value |
|---|---|
recipe_version | 0.1.0 |
recipe_status | stable |
extension_points |
|
invariants |
|
stable_contracts |
|
Quickstart Recipe Profile
This repo is a reusable quickstart sample for building browser voice-agent experiences with Agora Conversational AI Engine.
Recipe Role
- Role:
basequickstart recipe. - Target audience: developers bootstrapping a production-style Next.js voice agent app.
- Reuse model: clone, bind project, run, then customize prompt/pipeline/UI.
Recipe Scope
This base recipe provides a copyable browser voice-agent starter with:
- browser RTC audio and RTM event transport
- server-side token, invite, stop, and optional custom LLM routes
- managed default STT, LLM, and TTS provider configuration with Trak music control tags (
[PLAY],[TOGGLE],[NEXT],[PREV]) - pre-call, in-call, transcript, metrics, connection-status UI, and local Electron app control dispatch
Baseline Implementation Guidance
This repository is the official Agora Next.js quickstart baseline for this recipe, integrated with the Trak music player application (trak/). Agents should use this repo's source and progressive disclosure docs as the starting point, then customize.
Do not recreate Agora ConvoAI integration from memory. Provider schemas, SDK builder fields, token behavior, and RTM event details can drift. For a new baseline implementation, follow L1/L2/from_scratch_bootstrap.md while copying verified patterns from this repo.
Extension Points
api.routes: add browser-facing routes underapp/api, with shared request/response types intypes/conversation.tswhen the client consumes them.prompts.system: editADA_PROMPTandGREETINGinapp/api/invite-agent/route.ts(includes Trak music playback command tags like[PLAY: <query>],[TOGGLE],[NEXT],[PREV]).pipeline.providers: adjust theDeepgramSTT,OpenAI, andMiniMaxTTSbuilder chain, or enable the commented BYOK blocks.ui.conversation: customizeQuickstartPreCallCard,QuickstartConversationLayout,QuickstartTranscriptPanel, andQuickstartPipelineMetrics.app.integrations: handle parsed transcript tags inConversationComponent.tsxto control external local applications (e.g. Trak HTTP control endpoint athttp://127.0.0.1:3011).
Invariants
- Keep
RtcTokenBuilder.buildTokenWithRtmfor RTM-capable tokens. - Treat this repo as the official baseline; customize after preserving a working token, invite, RTC, RTM, and transcript flow.
- Preserve StrictMode
isReadyguard for join/mic initialization. - Preserve UID remap (
uid="0") andINTERRUPTEDmessage-list inclusion. - Preserve transcript control tag matching (
[PLAY],[TOGGLE],[NEXT],[PREV]) for local Trak integration. - Keep documentation synchronized when workflows/contracts change.
Stable Contracts
GET /api/generate-agora-tokenreturns{ token, uid, channel }.POST /api/invite-agentaccepts{ requester_id, channel_name }and returns the agent id/state payload.POST /api/stop-conversationaccepts{ agent_id }and treats already-stopping sessions as success.- Required env vars are
NEXT_PUBLIC_AGORA_APP_IDandNEXT_AGORA_APP_CERTIFICATE. components/LandingPage.tsxowns pre-call bootstrap and RTM client lifecycle.components/ConversationComponent.tsxowns joined-session RTC/toolkit lifecycle and Trak command dispatch.lib/conversation.tsowns transcript normalization helpers.trak/contains the Electron music player app with HTTP control server (http://127.0.0.1:3011).
Internal / Subject to Change
- Visual styling and copy in the quickstart UI.
- The exact reseller defaults for STT, LLM, and TTS models.
- Connection issue display heuristics and metric chip presentation.
Consumer Onboarding Recipe
- Clone or scaffold from template.
- Bind Agora project and write
.env.local. - Run
pnpm run doctorandpnpm run dev. - Validate with
pnpm run verifybefore sharing modifications. - Customize agent behavior and UI using the supported surfaces above.