Greeting discloses AVA is automated (HIPAA item); never claim to be human
CLAUDE.md compliance section requires AVA to identify as automated at call start. Greeting now says "this is AVA, an automated assistant", and a prompt guardrail makes her answer honestly if a caller asks whether she's an AI. Replay harness greeting kept in sync. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
9
bot.py
9
bot.py
@@ -202,6 +202,10 @@ SYSTEM_PROMPT = (
|
|||||||
"example, after noting insurance, in the SAME turn go straight on to ask the preferred day "
|
"example, after noting insurance, in the SAME turn go straight on to ask the preferred day "
|
||||||
"and time. A dead-end statement leaves the caller unsure whose turn it is and causes silence.\n\n"
|
"and time. A dead-end statement leaves the caller unsure whose turn it is and causes silence.\n\n"
|
||||||
"Stay truthful and within your limits:\n"
|
"Stay truthful and within your limits:\n"
|
||||||
|
"- You are an automated assistant and you say so in the greeting. If a caller asks whether "
|
||||||
|
"they're talking to a real person or an AI, answer honestly and briefly ('I'm an automated "
|
||||||
|
"assistant, but I can take your request and staff will follow up'), then carry on — never "
|
||||||
|
"claim to be human.\n"
|
||||||
"- Use ONLY the facts below for addresses, phone numbers, insurance, and services. Never "
|
"- Use ONLY the facts below for addresses, phone numbers, insurance, and services. Never "
|
||||||
"make any of these up.\n"
|
"make any of these up.\n"
|
||||||
"- OFFICE SELECTION: ask what city or area is most convenient. When the caller names a place "
|
"- OFFICE SELECTION: ask what city or area is most convenient. When the caller names a place "
|
||||||
@@ -752,10 +756,11 @@ async def run_agent(transport, caller_number=None, call_sid=None, do_capture=Tru
|
|||||||
logger.info("Client connected -- greeting")
|
logger.info("Client connected -- greeting")
|
||||||
if audiobuffer:
|
if audiobuffer:
|
||||||
await audiobuffer.start_recording()
|
await audiobuffer.start_recording()
|
||||||
|
# HIPAA/compliance: AVA identifies as automated at call start — no exceptions.
|
||||||
await task.queue_frames(
|
await task.queue_frames(
|
||||||
[TTSSpeakFrame(
|
[TTSSpeakFrame(
|
||||||
f"Thank you for calling Advanced Vision Care, this is {AGENT_NAME}. "
|
f"Thank you for calling Advanced Vision Care, this is {AGENT_NAME}, "
|
||||||
"How can I help you today?"
|
"an automated assistant. How can I help you today?"
|
||||||
)]
|
)]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -34,7 +34,8 @@ CALLER_LINE = (
|
|||||||
"do NOT ask a yes/no question or wait for a 'yes'. Only change it if they give a different "
|
"do NOT ask a yes/no question or wait for a 'yes'. Only change it if they give a different "
|
||||||
"number. Do not say it any earlier in the call."
|
"number. Do not say it any earlier in the call."
|
||||||
)
|
)
|
||||||
GREETING = "Thank you for calling Advanced Vision Care, this is AVA. How can I help you today?"
|
GREETING = ("Thank you for calling Advanced Vision Care, this is AVA, an automated assistant. "
|
||||||
|
"How can I help you today?")
|
||||||
|
|
||||||
# Failure-mode detectors: (label, regex counted across assistant turns, max allowed count)
|
# Failure-mode detectors: (label, regex counted across assistant turns, max allowed count)
|
||||||
ASK_REASON = re.compile(r"what brings you|reason for|reason you|what would you like to be seen|what.s the visit for|what seems to be", re.I)
|
ASK_REASON = re.compile(r"what brings you|reason for|reason you|what would you like to be seen|what.s the visit for|what seems to be", re.I)
|
||||||
|
|||||||
Reference in New Issue
Block a user