prayagvijay

Voice Agent β€” AI skill for Claude Code

AI community

πŸŽ™οΈ Real-time voice AI agent that books, looks up and cancels reservations by voice.

How to install Voice Agent

This entry records only its repository, not the path inside it, so there is no exact command to give. Open prayagvijay/voice-agent and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Voice Agent does

πŸŽ™οΈ Real-time voice AI agent that books, looks up and cancels reservations by voice. Streaming Claude tool-use loop, sentence-level TTS, barge-in interruption. FastAPI Β· WebSockets Β· Pydantic Β· SQLite Β· Web Speech API.

Alternatives in AI

  • Agent Rules Books β€” AGENTS.md rules / skills for AI coding agents: Codex, Cursor & Claude Code 2.6k β˜…
  • Agency Orchestrator β€” πŸš€ One sentence β†’ multi-AI-role collaboration β†’ complete plan in minutes 453 β˜…
  • Upstream Watch β€” Review pydantic-ai and pydantic-ai-harness releases published since the last watch entry, and record a verdict 361 β˜…

README

πŸŽ™οΈ Aria: Real-Time Voice AI Agent

**A voice receptionist that holds a natural phone-style conversation and takes real actions.** Aria answers calls for a restaurant. It checks table availability, books, looks up and cancels reservations, and answers menu and hours questions. Under the hood it runs a streaming LLM agent loop with validated tool calls against a live database, speaks back sentence by sentence as tokens arrive, and stops talking the moment you interrupt.

Highlights

πŸ—£οΈ Full voice loop Speech-to-text, then the agent, then streamed text-to-speech, all running in the browser over one WebSocket
⚑ Low-latency streaming Replies are spoken sentence by sentence while the LLM is still generating, and time-to-first-token is shown live
βœ‹ Barge-in Interrupt Aria mid-sentence (tap or Space). The server cancels the in-flight asyncio task and rolls the conversation back to a consistent state
πŸ› οΈ Agentic tool use Claude decides when to call 6 tools (availability, book, find, cancel, menu, info) in a multi-step loop
βœ… Validated tools Every tool input is validated with Pydantic before execution. Tool JSON schemas are generated from the same models, so there's one source of truth
πŸ” Observable The transcript shows each tool call with its arguments and result. The reservations board updates live from the database
πŸ›Ÿ Resilient Server-side model fallback, handling of refusals and truncation, and a deterministic local slot-filling agent that speaks the same protocol, so it runs with no API key
πŸ§ͺ Tested pytest suite with unit tests for tools and parsers, plus end-to-end WebSocket conversation tests, including barge-in

Architecture

 Browser                                         FastAPI server (async)
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   WebSocket   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Web Speech API  (STT)         │──user_text──▢│ CallSession (