Files
agent_contas/tests/migration/test_framework_agent_gap_fixes.py

36 lines
1.7 KiB
Python

from pathlib import Path
import yaml
ROOT = Path(__file__).resolve().parents[2]
def test_contas_transactional_parameters_have_customer_facing_prompts():
data = yaml.safe_load((ROOT / "config" / "tools.yaml").read_text(encoding="utf-8"))
tools = data["tools"]
expected = {
("cancelar_vas_avulso", "subject"): "Qual serviço você deseja cancelar?",
("tratar_vas_estrategico", "subject"): "Qual serviço ou benefício você deseja tratar?",
("validar_contestacao", "subject"): "Qual cobrança ou item você não reconhece?",
("validar_contestacao", "valor"): "Qual é o valor da cobrança?",
("contestar_cobranca", "subject"): "Qual cobrança ou item você deseja contestar?",
("contestar_cobranca", "valor"): "Qual é o valor da cobrança que você deseja contestar?",
}
for (tool, field), prompt in expected.items():
assert tools[tool]["args_schema"][field]["user_prompt"] == prompt
assert field not in prompt.lower().replace("subject", "") if field == "subject" else True
def test_billing_prompt_forbids_unsupported_causal_hypotheses():
prompt = yaml.safe_load((ROOT / "config" / "prompts" / "billing.yaml").read_text(encoding="utf-8"))["system"]
assert "fim de promoção" in prompt
assert "perda de elegibilidade" in prompt
assert "sem evidência explícita" in prompt
assert "Não prometa nem estime valores de faturas futuras" in prompt
def test_support_prompt_does_not_simulate_handoff_or_terminal_success():
prompt = yaml.safe_load((ROOT / "config" / "prompts" / "support.yaml").read_text(encoding="utf-8"))["system"]
assert "Nunca anuncie transferência" in prompt
assert "não simule handoff em texto livre" in prompt
assert "OUT_OF_SCOPE" in prompt