Skip to content

fix: book on a plain yes, never push after a no, and always hang up - #2

Merged
davidtilser merged 2 commits into
mainfrom
agent-behavior-fixes
Sep 19, 2026
Merged

davidtilser merged 2 commits into
mainfrom
agent-behavior-fixes

Conversation

@davidtilser

Copy link
Copy Markdown
Owner

Live testing surfaced four voice agent problems:

  • Double confirmation: the prompt asked for "explicit agreement" before accept_slot, which the agent read as needing a second yes. A clear yes is now explicit agreement; it books immediately and never re-asks.
  • Pushing after a decline: the agent offered alternatives unprompted. A no is now final — decline_slot, one sentence of thanks, end. Other times come up only if the customer asks.
  • Unreliable hangup: end_call was instructed for both outcomes but only enforced on the decline path. The instruction now covers both, and the web client ends the session itself if the agent keeps talking after a booked or declined result.
  • Past times: the demo date was hardcoded to a fixed day, so offered slots were often in the past. It is now tomorrow in the shop's timezone, with the real UTC offset for that date, and a database left from an earlier demo day reseeds onto the new date. The dashboard reads the same DEMO_DATE.

npm run voice:update pushes the new rules to an existing agent; superseded sentences from earlier prompt versions are stripped first so an updated agent never carries contradictory instructions.

yoocas and others added 2 commits September 19, 2026 15:02
Live testing surfaced four voice agent problems:

- Double confirmation: the prompt asked for "explicit agreement" before
  accept_slot, which the agent read as needing a second yes. A clear yes is
  now explicit agreement; it books immediately and never re-asks.
- Pushing after a decline: the agent offered alternatives unprompted. A no is
  now final — decline_slot, one sentence of thanks, end. Other times come up
  only if the customer asks.
- Unreliable hangup: end_call was instructed for both outcomes but only
  enforced on the decline path. The instruction now covers both, and the web
  client ends the session itself if the agent keeps talking after a booked or
  declined result.
- Past times: the demo date was hardcoded to a fixed day, so offered slots
  were often in the past. It is now tomorrow in the shop's timezone, with the
  real UTC offset for that date, and a database left from an earlier demo day
  reseeds onto the new date. The dashboard reads the same DEMO_DATE.

npm run voice:update pushes the new rules to an existing agent; superseded
sentences from earlier prompt versions are stripped first so an updated agent
never carries contradictory instructions.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@davidtilser
davidtilser merged commit 50570c6 into main Sep 19, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants