Repository navigation
Generic starter agent, with a skill per model setting - #1
Merged
Merged
Conversation
The README now walks through installing, talking to the agent and changing the voice, with AssemblyAI TTS up front. The reasoning behind each setting moves to src/README.md, and tests/README.md explains the tests. skills/ adds instructions for coding agents, linked from .claude/skills so Claude Code loads them. AGENTS.md lists the skills and corrects which models the EU LLM Gateway serves. uv.lock is committed, since the Dockerfile installs from it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The clinic receptionist becomes a general assistant with one example tool, so the template shows off the models rather than one use case. Every model setting sits at the top of src/agent.py and names its skill, and the optional ones (voice focus, prompt, languages, Medical Mode) are listed in the STT call. The skills are now one building block each: voice, languages, turn detection, interruptions and VAD, voice focus, key terms and prompt, Medical Mode, LLM model, data residency and tools. AGENTS.md lists the questions a coding agent should ask about the agent it's building, which skill each answer points to, and starting settings for common kinds of agent. The Sync second pass and turn-silence skills are gone: Universal-3.6 Pro's entity-aware endpointing covers most of what they did, and the turn-detection skill covers the rest. tzdata is a dependency for get_current_time, since slim container images leave it out. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
dan-ince-aai
marked this pull request as ready for review
October 26, 2026 13:00
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Draft. Turns the clinic receptionist into a generic starter that shows off AssemblyAI's models, especially TTS, with each model setting as a building block that coding agents pick from.
What changes
The agent: a general assistant with one example tool (
get_current_time, so there's no external API to break) and hang-up. Every model setting sits at the top ofsrc/agent.pyand names its skill. The STT call lists the optional ones (voice focus, prompt, languages, Medical Mode), commented out. The clinic and its tests are removed.Skills, one per building block:
tts-voicelanguagesturn-detectionmodepresets,min/max_turn_silenceinterruptions-and-vadvad_thresholdwith Silero, barge-invoice-focuskeyterms-and-promptmedical-modellm-modeldata-residencyadd-a-toolClaude Code loads them through
.claude/skills.AGENTS.md: tells a coding agent what to ask the user (what the agent is for, where users are, what they'll say, languages, voice). It maps each answer to a skill, and gives starting settings for common kinds of agent (phone line, kiosk, healthcare intake, bilingual line and so on).
README: a short getting-started page: install, talk to it, hear other voices, call it, then build your own with the building-block table.
Dropped: the Sync second-pass and turn-silence skills from the first commit. Universal-3.6 Pro's entity-aware endpointing covers most of what they did, and
turn-detectioncovers the rest.Dependencies:
tzdatais added forget_current_time, because slim container images leave it out.uv.lockis committed, since the Dockerfile installs from it.Testing
uv run pytestagainst the live API, 4 of 4 several times. They check that the agent uses the tool, doesn't make up a time, keeps replies speakable and hangs up on goodbye.ruff format --checkandruff checkpass.voice_focus,voice_focus_threshold,language_codes,keyterms_prompt,prompt,domain, plusupdate_optionsformax_turn_silenceandkeyterms_promptmid-stream.curlcommands in the README andtts-voicework against the API.The Pipecat version is at https://github.com/AssemblyAI-Solutions/assemblyai-pipecat-reference-voice-agent and matches this structure: the same starter agent, skills and AGENTS.md, plus an AssemblyAI TTS service for Pipecat.
🤖 Generated with Claude Code