[全双工自测]:完成Agent自我测试体系,包含回声、打断、记忆和工具场景

This commit is contained in:
mkbk
2026-06-19 12:43:44 +08:00
parent 81c949a7ec
commit 98ae711971
7 changed files with 309 additions and 13 deletions
+44
View File
@@ -207,6 +207,50 @@ class CliAcceptanceTests(unittest.TestCase):
self.assertFalse(kwargs["play_audio"])
self.assertEqual(kwargs["questions"], ["第一问"])
def test_agent_self_test_runs_full_duplex_profile(self) -> None:
code, data = self.call("agent-self-test", "--profile", "full-duplex", "--turns", "3")
self.assertEqual(code, 0)
self.assertTrue(data["success"])
self.assertTrue(data["checks"]["barge_in"])
self.assertTrue(data["checks"]["tool_router"])
def test_audio_self_test_reports_missing_required_apm(self) -> None:
with tempfile.TemporaryDirectory() as tmp:
code, data = self.call(
"--env-file",
str(Path(tmp) / ".env"),
"audio-self-test",
"--duration",
"1",
"--check-echo",
)
self.assertEqual(code, 1)
self.assertFalse(data["success"])
self.assertEqual(data["apm"]["error_code"], "AUDIO_APM_UNAVAILABLE")
def test_audio_self_test_can_use_fake_apm_for_deterministic_check(self) -> None:
with tempfile.TemporaryDirectory() as tmp:
env_file = Path(tmp) / ".env"
env_file.write_text(
"OWNER_AUDIO_APM_PROVIDER=fake\nOWNER_AUDIO_APM_REQUIRED=0\n",
encoding="utf-8",
)
code, data = self.call(
"--env-file",
str(env_file),
"audio-self-test",
"--duration",
"1",
"--check-echo",
)
self.assertEqual(code, 0)
self.assertTrue(data["success"])
self.assertTrue(data["echo"]["suppressed"])
self.assertEqual(data["apm"]["provider"], "fake_webrtc")
if __name__ == "__main__":
unittest.main()