Two behavioural regressions caught in live testing with a real customer conversation: 1. Ping-pong scenario -> orchestrator -> scenario build_and_wire_agents was calling scenario_agents.register_handoffs( assistant_agent), which exposed handoff_to_jasmine as a tool INSIDE every scenario. Daniela (reservation scenario) kept calling it mid flow, the orchestrator resumed the turn, and customers got messages like "Vou te encaminhar para a Daniela..." after ALREADY being with Daniela. The back-edge is removed. When a customer legitimately changes topic mid-scenario, pick_starting_agent on the next turn already routes back to the orchestrator based on conversation state, so no manual handoff from the scenario side is needed. 2. FAQ_PRICE_PATTERNS was hijacking legitimate routing responses The previous regex matched the bare words "pernoite", "sinal", "diaria" WITHOUT requiring a numeric price nearby. A legitimate handoff response like "Vou transferir para a Daniela para confirmar a Stilo para pernoite" tripped the guardrail, which then substituted the response with raw FAQ content about rates. Narrowed to: R$ values, numbers followed by "reais", and the explicit price-noun variants (preco/preço/valor/preços/valores/custo/custa). Incidental mentions of stay types no longer trigger. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| captain | ||
| cloudflare | ||
| companies | ||
| contacts | ||
| enterprise | ||
| internal | ||
| llm | ||
| messages | ||
| sla | ||
| twilio | ||
| voice | ||
| page_crawler_service.rb | ||