From 0605025113422bbd99946589f501bb757fe31fa0 Mon Sep 17 00:00:00 2001 From: tocmo0nlord Date: Fri, 26 Jun 2026 02:33:08 +0000 Subject: [PATCH] Set AGENT_NAME_SPOKEN=Eva (example) and document name/phone behaviour - .env.example: add AGENT_NAME_SPOKEN=Eva. - CLAUDE.md: note the agent-name respelling (AVA -> Eva, "EE-vuh"), that the caller-ID is injected pre-spelled (model mangles raw digits), and that the phone is confirmed near the END of the call, not led with. (.env itself is gitignored; AGENT_NAME_SPOKEN=Eva set there and live.) Co-Authored-By: Claude Opus 4.8 --- .env.example | 2 ++ CLAUDE.md | 14 +++++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/.env.example b/.env.example index 14a818e..7e78eac 100644 --- a/.env.example +++ b/.env.example @@ -55,5 +55,7 @@ KOKORO_MODEL_DIR=/home/tocmo0nlord/pipecat-run/models # ── Call behaviour ─────────────────────────────────────────────────────────── AGENT_NAME=AVA +# How the name is SPOKEN (TTS only; logs/Odoo keep AGENT_NAME). "Eva" -> "EE-vuh". +AGENT_NAME_SPOKEN=Eva # Grace pause after the goodbye before the carrier leg is dropped (seconds). HANGUP_DELAY_SECS=4.0 diff --git a/CLAUDE.md b/CLAUDE.md index 92a491c..e68d9eb 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -66,8 +66,15 @@ raw digit strings as cardinals with symbols spoken aloud ("983-4969" → "nine h eighty-three dash forty-nine sixty-nine"). This subclass normalizes the text in `run_tts` (which receives the full sentence) so US phone numbers and 4–5 digit runs (street numbers, zips) are spoken one digit at a time — country code dropped, no "dash"/parens; dates and -times left natural ("Monday the fifth", "three thirty"). Deterministic, so it's robust to -whatever the model emits. Keep it. `tts_normalize()` holds the rules. +times left natural ("Monday the fifth", "three thirty"). It also respells the all-caps agent +name to `AGENT_NAME_SPOKEN` (Kokoro reads "AVA" as "A-V-A"; set to "Eva" so it says +"EE-vuh"). Deterministic, so it's robust to whatever the model emits. Keep it. +`tts_normalize()` holds the rules. + +> Note: don't rely on the model to read raw digits — it mangles them (it emitted +> "197-three five seven three…" once). The caller-ID is injected into the prompt **already +> spelled out** so AVA just repeats clean words; `tts_normalize` is the backstop for any +> other numbers. --- @@ -215,6 +222,7 @@ STREAM_TOKEN= # Call behaviour AGENT_NAME=AVA +AGENT_NAME_SPOKEN=Eva # how the name is pronounced in TTS (logs/Odoo keep AGENT_NAME) HANGUP_DELAY_SECS=4.0 # grace pause after the goodbye before dropping the carrier leg ENABLE_TOOLS= VAD_CONFIDENCE=0.5 @@ -244,7 +252,7 @@ Replies are kept to one short sentence. | Field | In-call behavior | Logged as | |-------|------------------|-----------| | Full name | Asks for last name if only a first is given | `patient_name` / lead `contact_name` | -| Phone | Reads back the caller-ID number; if the caller declines, uses the number they give | `callback_number` (+ `phone_confirmed`) | +| Phone | Confirmed **near the end** (not led with); reads back the caller-ID — injected pre-spelled so it's said digit-by-digit — and if the caller declines, uses the number they give | `callback_number` (+ `phone_confirmed`) | | Office / city | Asks city/area; when the caller names a place that matches an office, **confirms that office and moves on** — never offers/compares other offices or asks them to choose; names the nearest only if nothing matches | folded into `reason` prefix | | Reason | Captured from the conversation | `reason` | | Insurance | **Log only** — asks the plan, never promises/confirms/denies coverage or treatment (even a listed plan); staff verify on callback | `insurance` (note: "log only — staff to verify") |