ai-agent-book 精选快照(<2MB 代码与文档,来自 github.com/bojieli/ai-agent-book)
Build latest book artifacts / build (push) Canceled after 0s
dependency resolution / resolve (3.11) (push) Canceled after 0s
dependency resolution / resolve (3.13) (push) Canceled after 0s
deploy-pages / build (push) Canceled after 0s
deploy-pages / deploy (push) Canceled after 0s
i18n consistency check / check (push) Canceled after 0s
provider adoption tests / test (chapter2/context-compression) (push) Canceled after 0s
provider adoption tests / test (chapter2/prompt-injection) (push) Canceled after 0s
provider adoption tests / test (chapter2/system-hint) (push) Canceled after 0s
provider adoption tests / test (chapter3/log-sanitization) (push) Canceled after 0s
web-search-agent tests / test (push) Canceled after 0s
web-search-agent tests / agentbook (push) Canceled after 0s
Build latest book artifacts / build (push) Canceled after 0s
dependency resolution / resolve (3.11) (push) Canceled after 0s
dependency resolution / resolve (3.13) (push) Canceled after 0s
deploy-pages / build (push) Canceled after 0s
deploy-pages / deploy (push) Canceled after 0s
i18n consistency check / check (push) Canceled after 0s
provider adoption tests / test (chapter2/context-compression) (push) Canceled after 0s
provider adoption tests / test (chapter2/prompt-injection) (push) Canceled after 0s
provider adoption tests / test (chapter2/system-hint) (push) Canceled after 0s
provider adoption tests / test (chapter3/log-sanitization) (push) Canceled after 0s
web-search-agent tests / test (push) Canceled after 0s
web-search-agent tests / agentbook (push) Canceled after 0s
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"schema_version": 1,
|
||||
"experiment": "10-3",
|
||||
"redaction": "all collected values replaced with <redacted>",
|
||||
"events": [
|
||||
{"sequence": 1, "at": 19.711342, "sender": "phone_agent", "recipient": "computer_agent", "type": "call_started", "payload": {"fields": ["firstName", "lastName", "gender", "userNumber"]}},
|
||||
{"sequence": 2, "at": 19.711714, "sender": "phone_agent", "recipient": "computer_agent", "type": "question_asked", "payload": {"field": "firstName", "attempt": 1}},
|
||||
{"sequence": 3, "at": 22.437785, "sender": "phone_agent", "recipient": "computer_agent", "type": "info_collected", "payload": {"field": "firstName", "value": "<redacted>", "attempt": 1}},
|
||||
{"sequence": 4, "at": 22.43812, "sender": "phone_agent", "recipient": "computer_agent", "type": "question_asked", "payload": {"field": "lastName", "attempt": 1}},
|
||||
{"sequence": 5, "at": 22.520051, "sender": "computer_agent", "recipient": "phone_agent", "type": "field_filled", "payload": {"field": "firstName"}},
|
||||
{"sequence": 6, "at": 25.792242, "sender": "phone_agent", "recipient": "computer_agent", "type": "info_collected", "payload": {"field": "lastName", "value": "<redacted>", "attempt": 1}},
|
||||
{"sequence": 7, "at": 25.793196, "sender": "phone_agent", "recipient": "computer_agent", "type": "question_asked", "payload": {"field": "gender", "attempt": 1}},
|
||||
{"sequence": 8, "at": 25.874117, "sender": "computer_agent", "recipient": "phone_agent", "type": "field_filled", "payload": {"field": "lastName"}},
|
||||
{"sequence": 9, "at": 29.852781, "sender": "phone_agent", "recipient": "computer_agent", "type": "info_collected", "payload": {"field": "gender", "value": "<redacted>", "attempt": 1}},
|
||||
{"sequence": 10, "at": 29.854119, "sender": "phone_agent", "recipient": "computer_agent", "type": "question_asked", "payload": {"field": "userNumber", "attempt": 1}},
|
||||
{"sequence": 11, "at": 29.965478, "sender": "computer_agent", "recipient": "phone_agent", "type": "field_filled", "payload": {"field": "gender"}},
|
||||
{"sequence": 12, "at": 32.229468, "sender": "phone_agent", "recipient": "computer_agent", "type": "info_collected", "payload": {"field": "userNumber", "value": "<redacted>", "attempt": 1}},
|
||||
{"sequence": 13, "at": 32.229907, "sender": "phone_agent", "recipient": "computer_agent", "type": "task_completed", "payload": {}},
|
||||
{"sequence": 14, "at": 32.258196, "sender": "computer_agent", "recipient": "phone_agent", "type": "field_filled", "payload": {"field": "userNumber"}},
|
||||
{"sequence": 15, "at": 32.258767, "sender": "computer_agent", "recipient": "phone_agent", "type": "form_ready", "payload": {"errors": 0, "submitted": false}},
|
||||
{"sequence": 16, "at": 32.266255, "sender": "computer_agent", "recipient": "manager", "type": "registration_finished", "payload": {"filled": ["firstName", "lastName", "gender", "userNumber"], "submitted": false, "errors": []}}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
{
|
||||
"schema_version": 1,
|
||||
"experiment": "10-3",
|
||||
"generated_at": "2026-07-29T18:39:03+0800",
|
||||
"command_profile": "real Playwright + real LLM + synthetic scripted phone answers",
|
||||
"transport": "scripted",
|
||||
"synthetic_values_used": true,
|
||||
"values_persisted": false,
|
||||
"decision_provider": "Volcengine ARK",
|
||||
"decision_model": "doubao-seed-1-6-250615",
|
||||
"page_url": "https://demoqa.com/automation-practice-form",
|
||||
"fields_discovered": 13,
|
||||
"tool_called": "initiate_phone_call_agent",
|
||||
"required_fields": ["firstName", "lastName", "gender", "userNumber"],
|
||||
"result": {
|
||||
"filled": ["firstName", "lastName", "gender", "userNumber"],
|
||||
"submitted": false,
|
||||
"errors": [],
|
||||
"browser_closed": true
|
||||
},
|
||||
"timing_evidence": {
|
||||
"question_times": {
|
||||
"firstName": 19.711714,
|
||||
"lastName": 22.43812,
|
||||
"gender": 25.793196,
|
||||
"userNumber": 29.854119
|
||||
},
|
||||
"collection_times": {
|
||||
"firstName": 22.437785,
|
||||
"lastName": 25.792242,
|
||||
"gender": 29.852781,
|
||||
"userNumber": 32.229468
|
||||
},
|
||||
"fill_times": {
|
||||
"firstName": 22.520051,
|
||||
"lastName": 25.874117,
|
||||
"gender": 29.965478,
|
||||
"userNumber": 32.258196
|
||||
},
|
||||
"overlap_checks": [
|
||||
{
|
||||
"field_being_filled": "firstName",
|
||||
"next_question": "lastName",
|
||||
"next_question_before_fill_completed": true,
|
||||
"next_question_at": 22.43812,
|
||||
"fill_completed_at": 22.520051
|
||||
},
|
||||
{
|
||||
"field_being_filled": "lastName",
|
||||
"next_question": "gender",
|
||||
"next_question_before_fill_completed": true,
|
||||
"next_question_at": 25.793196,
|
||||
"fill_completed_at": 25.874117
|
||||
},
|
||||
{
|
||||
"field_being_filled": "gender",
|
||||
"next_question": "userNumber",
|
||||
"next_question_before_fill_completed": true,
|
||||
"next_question_at": 29.854119,
|
||||
"fill_completed_at": 29.965478
|
||||
}
|
||||
],
|
||||
"independent_tasks": ["phone-agent-react-loop", "computer-agent-react-loop"]
|
||||
},
|
||||
"gates": {
|
||||
"real_playwright_page_and_fill": {"status": "pass"},
|
||||
"autonomous_real_llm_tool_call": {"status": "pass"},
|
||||
"ask_one_fill_one_concurrency": {"status": "pass"},
|
||||
"browser_resource_cleanup": {"status": "pass"},
|
||||
"real_form_submission": {
|
||||
"status": "not_run",
|
||||
"reason": "submission was intentionally disabled; no external form side effect was authorized"
|
||||
},
|
||||
"real_pstn_call": {
|
||||
"status": "not_run",
|
||||
"reason": "no authorized consenting endpoint and Twilio configuration was supplied"
|
||||
},
|
||||
"real_audio_asr_tts": {
|
||||
"status": "not_run",
|
||||
"reason": "scripted transport is explicitly non-acceptance"
|
||||
}
|
||||
},
|
||||
"overall_status": "incomplete"
|
||||
}
|
||||
+75
@@ -0,0 +1,75 @@
|
||||
{
|
||||
"schema_version": 1,
|
||||
"experiment": "10-3",
|
||||
"generated_at": "2026-07-29T20:59:26+0800",
|
||||
"command_profile": "real Playwright + real LLM + synthetic scripted phone answers; no submit",
|
||||
"transport": "scripted",
|
||||
"synthetic_values_used": true,
|
||||
"human_audio_used": false,
|
||||
"pstn_calls_placed": 0,
|
||||
"external_form_submissions": 0,
|
||||
"decision_provider": "Volcengine ARK",
|
||||
"decision_model": "doubao-seed-1-6-250615",
|
||||
"page_url": "https://demoqa.com/automation-practice-form",
|
||||
"fields_discovered": 13,
|
||||
"required_fields": ["firstName", "lastName", "gender", "userNumber"],
|
||||
"result": {
|
||||
"filled": ["firstName", "lastName", "gender", "userNumber"],
|
||||
"submitted": false,
|
||||
"errors": [],
|
||||
"browser_closed": true
|
||||
},
|
||||
"timing_evidence": {
|
||||
"question_times": {
|
||||
"firstName": 31.312472,
|
||||
"lastName": 34.77661,
|
||||
"gender": 38.136418,
|
||||
"userNumber": 41.920582
|
||||
},
|
||||
"fill_times": {
|
||||
"firstName": 34.859382,
|
||||
"lastName": 38.218494,
|
||||
"gender": 42.040402,
|
||||
"userNumber": 48.001121
|
||||
},
|
||||
"overlap_checks": [
|
||||
{
|
||||
"field_being_filled": "firstName",
|
||||
"next_question": "lastName",
|
||||
"next_question_before_fill_completed": true
|
||||
},
|
||||
{
|
||||
"field_being_filled": "lastName",
|
||||
"next_question": "gender",
|
||||
"next_question_before_fill_completed": true
|
||||
},
|
||||
{
|
||||
"field_being_filled": "gender",
|
||||
"next_question": "userNumber",
|
||||
"next_question_before_fill_completed": true
|
||||
}
|
||||
],
|
||||
"expected_overlap_count": 3,
|
||||
"independent_tasks": ["phone-agent-react-loop", "computer-agent-react-loop"]
|
||||
},
|
||||
"persisted_collected_values": ["<redacted>", "<redacted>", "<redacted>", "<redacted>"],
|
||||
"gates": {
|
||||
"real_playwright_page_and_fill": {"status": "pass"},
|
||||
"autonomous_real_llm_tool_call": {"status": "pass"},
|
||||
"ask_one_fill_one_concurrency": {"status": "pass"},
|
||||
"browser_resource_cleanup": {"status": "pass"},
|
||||
"real_form_submission": {
|
||||
"status": "not_run",
|
||||
"reason": "no external form side effect was authorized"
|
||||
},
|
||||
"real_pstn_call": {
|
||||
"status": "not_run",
|
||||
"reason": "no authorized consenting endpoint was supplied"
|
||||
},
|
||||
"real_audio_asr_tts": {
|
||||
"status": "not_run",
|
||||
"reason": "scripted transport is explicitly non-acceptance"
|
||||
}
|
||||
},
|
||||
"overall_status": "incomplete"
|
||||
}
|
||||
+544
@@ -0,0 +1,544 @@
|
||||
{
|
||||
"schema_version": 2,
|
||||
"experiment": "10-3",
|
||||
"generated_at": "2026-07-31T19:29:06+0800",
|
||||
"transport": "webrtc",
|
||||
"synthetic_values_used": true,
|
||||
"decision_provider": "Volcengine ARK",
|
||||
"decision_model": "doubao-seed-1-6-250615",
|
||||
"page_url": "http://127.0.0.1:50624/register",
|
||||
"fields_discovered": 6,
|
||||
"required_fields": [
|
||||
"firstName",
|
||||
"lastName",
|
||||
"email",
|
||||
"userNumber",
|
||||
"gender",
|
||||
"address"
|
||||
],
|
||||
"result": {
|
||||
"filled": [
|
||||
"firstName",
|
||||
"lastName",
|
||||
"email",
|
||||
"userNumber",
|
||||
"gender",
|
||||
"address"
|
||||
],
|
||||
"submitted": true,
|
||||
"errors": []
|
||||
},
|
||||
"timing_evidence": {
|
||||
"question_times": {
|
||||
"firstName": 26.873284,
|
||||
"lastName": 36.099655,
|
||||
"email": 47.377071,
|
||||
"userNumber": 92.855214,
|
||||
"gender": 112.645667,
|
||||
"address": 136.483352
|
||||
},
|
||||
"collection_times": {
|
||||
"firstName": 36.09918,
|
||||
"lastName": 47.376214,
|
||||
"email": 92.854189,
|
||||
"userNumber": 112.64446,
|
||||
"gender": 136.4828,
|
||||
"address": 150.994505
|
||||
},
|
||||
"fill_times": {
|
||||
"firstName": 36.140925,
|
||||
"lastName": 47.400183,
|
||||
"email": 92.884465,
|
||||
"userNumber": 112.666944,
|
||||
"gender": 136.509506,
|
||||
"address": 151.016117
|
||||
},
|
||||
"overlap_checks": [
|
||||
{
|
||||
"field_being_filled": "firstName",
|
||||
"next_question": "lastName",
|
||||
"next_question_before_fill_completed": true,
|
||||
"next_question_at": 36.099655,
|
||||
"fill_completed_at": 36.140925
|
||||
},
|
||||
{
|
||||
"field_being_filled": "lastName",
|
||||
"next_question": "email",
|
||||
"next_question_before_fill_completed": true,
|
||||
"next_question_at": 47.377071,
|
||||
"fill_completed_at": 47.400183
|
||||
},
|
||||
{
|
||||
"field_being_filled": "email",
|
||||
"next_question": "userNumber",
|
||||
"next_question_before_fill_completed": true,
|
||||
"next_question_at": 92.855214,
|
||||
"fill_completed_at": 92.884465
|
||||
},
|
||||
{
|
||||
"field_being_filled": "userNumber",
|
||||
"next_question": "gender",
|
||||
"next_question_before_fill_completed": true,
|
||||
"next_question_at": 112.645667,
|
||||
"fill_completed_at": 112.666944
|
||||
},
|
||||
{
|
||||
"field_being_filled": "gender",
|
||||
"next_question": "address",
|
||||
"next_question_before_fill_completed": true,
|
||||
"next_question_at": 136.483352,
|
||||
"fill_completed_at": 136.509506
|
||||
}
|
||||
],
|
||||
"expected_overlap_count": 5,
|
||||
"independent_tasks": [
|
||||
"phone-agent-react-loop",
|
||||
"computer-agent-react-loop"
|
||||
]
|
||||
},
|
||||
"webrtc_receipt": {
|
||||
"transport": "webrtc",
|
||||
"signaling_scope": "in-page localhost offer/answer; no external relay",
|
||||
"offers": 1,
|
||||
"answers": 1,
|
||||
"ice_candidates": 6,
|
||||
"media_recordings": 7,
|
||||
"agent_connection_state": "connected",
|
||||
"participant_connection_state": "connected",
|
||||
"audio_rtp": [
|
||||
{
|
||||
"side": "agent",
|
||||
"type": "inbound-rtp",
|
||||
"packets": 603,
|
||||
"bytes": 46939
|
||||
},
|
||||
{
|
||||
"side": "agent",
|
||||
"type": "outbound-rtp",
|
||||
"packets": 2520,
|
||||
"bytes": 186654
|
||||
},
|
||||
{
|
||||
"side": "participant",
|
||||
"type": "inbound-rtp",
|
||||
"packets": 2520,
|
||||
"bytes": 186654
|
||||
},
|
||||
{
|
||||
"side": "participant",
|
||||
"type": "outbound-rtp",
|
||||
"packets": 603,
|
||||
"bytes": 46939
|
||||
}
|
||||
],
|
||||
"tts_prompt_count": 9,
|
||||
"asr_count": 7,
|
||||
"speech_provider": "local system TTS + local OpenAI Whisper",
|
||||
"synthetic_participant": true,
|
||||
"raw_audio_retained": false,
|
||||
"transcripts_retained": false,
|
||||
"status": "completed"
|
||||
},
|
||||
"provider_receipts": {
|
||||
"decision": {
|
||||
"provider": "Volcengine ARK",
|
||||
"model": "doubao-seed-1-6-250615",
|
||||
"response_id": "0217854971908780d00bd2433ad042948032361e92cd5cefed308",
|
||||
"usage": {
|
||||
"prompt_tokens": 934,
|
||||
"completion_tokens": 515,
|
||||
"total_tokens": 1449
|
||||
}
|
||||
},
|
||||
"field_extractions": [
|
||||
{
|
||||
"operation": "field_value_extraction",
|
||||
"provider": "Volcengine ARK",
|
||||
"model": "doubao-seed-1-6-250615",
|
||||
"response_id": "021785497223817a04a47ac73179d3e64c063d7b69771fc7c8bfa",
|
||||
"usage": {
|
||||
"prompt_tokens": 190,
|
||||
"completion_tokens": 76,
|
||||
"total_tokens": 266
|
||||
},
|
||||
"transcript_or_value_retained": false
|
||||
},
|
||||
{
|
||||
"operation": "field_value_extraction",
|
||||
"provider": "Volcengine ARK",
|
||||
"model": "doubao-seed-1-6-250615",
|
||||
"response_id": "021785497232231ea4a69cd411baf032d46b5f346221adc35d161",
|
||||
"usage": {
|
||||
"prompt_tokens": 191,
|
||||
"completion_tokens": 152,
|
||||
"total_tokens": 343
|
||||
},
|
||||
"transcript_or_value_retained": false
|
||||
},
|
||||
{
|
||||
"operation": "field_value_extraction",
|
||||
"provider": "Volcengine ARK",
|
||||
"model": "doubao-seed-1-6-250615",
|
||||
"response_id": "0217854972517657904abb9448890f9b94c80482cf61b2921cfdb",
|
||||
"usage": {
|
||||
"prompt_tokens": 201,
|
||||
"completion_tokens": 126,
|
||||
"total_tokens": 327
|
||||
},
|
||||
"transcript_or_value_retained": false
|
||||
},
|
||||
{
|
||||
"operation": "field_value_extraction",
|
||||
"provider": "Volcengine ARK",
|
||||
"model": "doubao-seed-1-6-250615",
|
||||
"response_id": "0217854972781593b2c90331db17702ff1ef9ef62383e604a6a8d",
|
||||
"usage": {
|
||||
"prompt_tokens": 198,
|
||||
"completion_tokens": 168,
|
||||
"total_tokens": 366
|
||||
},
|
||||
"transcript_or_value_retained": false
|
||||
},
|
||||
{
|
||||
"operation": "field_value_extraction",
|
||||
"provider": "Volcengine ARK",
|
||||
"model": "doubao-seed-1-6-250615",
|
||||
"response_id": "02178549729600444d62fd40b4606d08afe49bd4ea80f05614313",
|
||||
"usage": {
|
||||
"prompt_tokens": 207,
|
||||
"completion_tokens": 220,
|
||||
"total_tokens": 427
|
||||
},
|
||||
"transcript_or_value_retained": false
|
||||
},
|
||||
{
|
||||
"operation": "field_value_extraction",
|
||||
"provider": "Volcengine ARK",
|
||||
"model": "doubao-seed-1-6-250615",
|
||||
"response_id": "0217854973220839707f6c6d04f57819fc098a4ef7e1cdd8482fb",
|
||||
"usage": {
|
||||
"prompt_tokens": 203,
|
||||
"completion_tokens": 156,
|
||||
"total_tokens": 359
|
||||
},
|
||||
"transcript_or_value_retained": false
|
||||
},
|
||||
{
|
||||
"operation": "field_value_extraction",
|
||||
"provider": "Volcengine ARK",
|
||||
"model": "doubao-seed-1-6-250615",
|
||||
"response_id": "02178549733582814c42a60562dfb6c540ee32d577db5463fa61f",
|
||||
"usage": {
|
||||
"prompt_tokens": 196,
|
||||
"completion_tokens": 178,
|
||||
"total_tokens": 374
|
||||
},
|
||||
"transcript_or_value_retained": false
|
||||
}
|
||||
],
|
||||
"speech": [
|
||||
{
|
||||
"operation": "tts",
|
||||
"provider": "macOS say",
|
||||
"model": "operating-system speech synthesizer",
|
||||
"request_id": null,
|
||||
"response_bytes": 398942,
|
||||
"latency_seconds": 2.529,
|
||||
"network_used": false
|
||||
},
|
||||
{
|
||||
"operation": "tts",
|
||||
"provider": "macOS say",
|
||||
"model": "operating-system speech synthesizer",
|
||||
"request_id": null,
|
||||
"response_bytes": 67626,
|
||||
"latency_seconds": 1.423,
|
||||
"network_used": false
|
||||
},
|
||||
{
|
||||
"operation": "synthetic_participant_tts",
|
||||
"provider": "macOS say",
|
||||
"model": "operating-system speech synthesizer",
|
||||
"request_id": null,
|
||||
"response_bytes": 25068,
|
||||
"latency_seconds": 1.289,
|
||||
"network_used": false
|
||||
},
|
||||
{
|
||||
"operation": "asr",
|
||||
"provider": "local OpenAI Whisper",
|
||||
"model": "whisper-tiny",
|
||||
"model_sha256": "65147644a518d12f04e32d6f3b26facc3f8dd46e5390956a9424a650c0ce22b9",
|
||||
"runtime": {
|
||||
"torch": "2.7.0",
|
||||
"openai_whisper": "20231106"
|
||||
},
|
||||
"request_bytes": 13235,
|
||||
"latency_seconds": 1.705,
|
||||
"network_used": false,
|
||||
"raw_audio_retained": false,
|
||||
"transcript_retained": false
|
||||
},
|
||||
{
|
||||
"operation": "tts",
|
||||
"provider": "macOS say",
|
||||
"model": "operating-system speech synthesizer",
|
||||
"request_id": null,
|
||||
"response_bytes": 35488,
|
||||
"latency_seconds": 1.339,
|
||||
"network_used": false
|
||||
},
|
||||
{
|
||||
"operation": "synthetic_participant_tts",
|
||||
"provider": "macOS say",
|
||||
"model": "operating-system speech synthesizer",
|
||||
"request_id": null,
|
||||
"response_bytes": 21662,
|
||||
"latency_seconds": 1.275,
|
||||
"network_used": false
|
||||
},
|
||||
{
|
||||
"operation": "asr",
|
||||
"provider": "local OpenAI Whisper",
|
||||
"model": "whisper-tiny",
|
||||
"model_sha256": "65147644a518d12f04e32d6f3b26facc3f8dd46e5390956a9424a650c0ce22b9",
|
||||
"runtime": {
|
||||
"torch": "2.7.0",
|
||||
"openai_whisper": "20231106"
|
||||
},
|
||||
"request_bytes": 11287,
|
||||
"latency_seconds": 1.727,
|
||||
"network_used": false,
|
||||
"raw_audio_retained": false,
|
||||
"transcript_retained": false
|
||||
},
|
||||
{
|
||||
"operation": "tts",
|
||||
"provider": "macOS say",
|
||||
"model": "operating-system speech synthesizer",
|
||||
"request_id": null,
|
||||
"response_bytes": 330654,
|
||||
"latency_seconds": 2.382,
|
||||
"network_used": false
|
||||
},
|
||||
{
|
||||
"operation": "synthetic_participant_tts",
|
||||
"provider": "macOS say",
|
||||
"model": "operating-system speech synthesizer",
|
||||
"request_id": null,
|
||||
"response_bytes": 66502,
|
||||
"latency_seconds": 1.444,
|
||||
"network_used": false
|
||||
},
|
||||
{
|
||||
"operation": "asr",
|
||||
"provider": "local OpenAI Whisper",
|
||||
"model": "whisper-tiny",
|
||||
"model_sha256": "65147644a518d12f04e32d6f3b26facc3f8dd46e5390956a9424a650c0ce22b9",
|
||||
"runtime": {
|
||||
"torch": "2.7.0",
|
||||
"openai_whisper": "20231106"
|
||||
},
|
||||
"request_bytes": 27189,
|
||||
"latency_seconds": 1.736,
|
||||
"network_used": false,
|
||||
"raw_audio_retained": false,
|
||||
"transcript_retained": false
|
||||
},
|
||||
{
|
||||
"operation": "tts",
|
||||
"provider": "macOS say",
|
||||
"model": "operating-system speech synthesizer",
|
||||
"request_id": null,
|
||||
"response_bytes": 666252,
|
||||
"latency_seconds": 3.27,
|
||||
"network_used": false
|
||||
},
|
||||
{
|
||||
"operation": "synthetic_participant_tts",
|
||||
"provider": "macOS say",
|
||||
"model": "operating-system speech synthesizer",
|
||||
"request_id": null,
|
||||
"response_bytes": 73564,
|
||||
"latency_seconds": 1.533,
|
||||
"network_used": false
|
||||
},
|
||||
{
|
||||
"operation": "asr",
|
||||
"provider": "local OpenAI Whisper",
|
||||
"model": "whisper-tiny",
|
||||
"model_sha256": "65147644a518d12f04e32d6f3b26facc3f8dd46e5390956a9424a650c0ce22b9",
|
||||
"runtime": {
|
||||
"torch": "2.7.0",
|
||||
"openai_whisper": "20231106"
|
||||
},
|
||||
"request_bytes": 28819,
|
||||
"latency_seconds": 1.816,
|
||||
"network_used": false,
|
||||
"raw_audio_retained": false,
|
||||
"transcript_retained": false
|
||||
},
|
||||
{
|
||||
"operation": "tts",
|
||||
"provider": "macOS say",
|
||||
"model": "operating-system speech synthesizer",
|
||||
"request_id": null,
|
||||
"response_bytes": 86570,
|
||||
"latency_seconds": 1.567,
|
||||
"network_used": false
|
||||
},
|
||||
{
|
||||
"operation": "synthetic_participant_tts",
|
||||
"provider": "macOS say",
|
||||
"model": "operating-system speech synthesizer",
|
||||
"request_id": null,
|
||||
"response_bytes": 252282,
|
||||
"latency_seconds": 2.144,
|
||||
"network_used": false
|
||||
},
|
||||
{
|
||||
"operation": "asr",
|
||||
"provider": "local OpenAI Whisper",
|
||||
"model": "whisper-tiny",
|
||||
"model_sha256": "65147644a518d12f04e32d6f3b26facc3f8dd46e5390956a9424a650c0ce22b9",
|
||||
"runtime": {
|
||||
"torch": "2.7.0",
|
||||
"openai_whisper": "20231106"
|
||||
},
|
||||
"request_bytes": 90189,
|
||||
"latency_seconds": 1.844,
|
||||
"network_used": false,
|
||||
"raw_audio_retained": false,
|
||||
"transcript_retained": false
|
||||
},
|
||||
{
|
||||
"operation": "tts",
|
||||
"provider": "macOS say",
|
||||
"model": "operating-system speech synthesizer",
|
||||
"request_id": null,
|
||||
"response_bytes": 568444,
|
||||
"latency_seconds": 3.272,
|
||||
"network_used": false
|
||||
},
|
||||
{
|
||||
"operation": "synthetic_participant_tts",
|
||||
"provider": "macOS say",
|
||||
"model": "operating-system speech synthesizer",
|
||||
"request_id": null,
|
||||
"response_bytes": 31108,
|
||||
"latency_seconds": 1.335,
|
||||
"network_used": false
|
||||
},
|
||||
{
|
||||
"operation": "asr",
|
||||
"provider": "local OpenAI Whisper",
|
||||
"model": "whisper-tiny",
|
||||
"model_sha256": "65147644a518d12f04e32d6f3b26facc3f8dd46e5390956a9424a650c0ce22b9",
|
||||
"runtime": {
|
||||
"torch": "2.7.0",
|
||||
"openai_whisper": "20231106"
|
||||
},
|
||||
"request_bytes": 15183,
|
||||
"latency_seconds": 1.76,
|
||||
"network_used": false,
|
||||
"raw_audio_retained": false,
|
||||
"transcript_retained": false
|
||||
},
|
||||
{
|
||||
"operation": "tts",
|
||||
"provider": "macOS say",
|
||||
"model": "operating-system speech synthesizer",
|
||||
"request_id": null,
|
||||
"response_bytes": 102124,
|
||||
"latency_seconds": 1.544,
|
||||
"network_used": false
|
||||
},
|
||||
{
|
||||
"operation": "synthetic_participant_tts",
|
||||
"provider": "macOS say",
|
||||
"model": "operating-system speech synthesizer",
|
||||
"request_id": null,
|
||||
"response_bytes": 89304,
|
||||
"latency_seconds": 1.512,
|
||||
"network_used": false
|
||||
},
|
||||
{
|
||||
"operation": "asr",
|
||||
"provider": "local OpenAI Whisper",
|
||||
"model": "whisper-tiny",
|
||||
"model_sha256": "65147644a518d12f04e32d6f3b26facc3f8dd46e5390956a9424a650c0ce22b9",
|
||||
"runtime": {
|
||||
"torch": "2.7.0",
|
||||
"openai_whisper": "20231106"
|
||||
},
|
||||
"request_bytes": 34981,
|
||||
"latency_seconds": 1.776,
|
||||
"network_used": false,
|
||||
"raw_audio_retained": false,
|
||||
"transcript_retained": false
|
||||
},
|
||||
{
|
||||
"operation": "tts",
|
||||
"provider": "macOS say",
|
||||
"model": "operating-system speech synthesizer",
|
||||
"request_id": null,
|
||||
"response_bytes": 116628,
|
||||
"latency_seconds": 1.588,
|
||||
"network_used": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"gates": {
|
||||
"real_playwright_page_and_fill": {
|
||||
"status": "pass"
|
||||
},
|
||||
"autonomous_real_llm_tool_call": {
|
||||
"status": "pass"
|
||||
},
|
||||
"ask_one_fill_one_concurrency": {
|
||||
"status": "pass"
|
||||
},
|
||||
"validation_feedback_and_reask": {
|
||||
"status": "pass"
|
||||
},
|
||||
"privacy_redaction_and_ephemeral_audio": {
|
||||
"status": "pass",
|
||||
"reason": null
|
||||
},
|
||||
"browser_resource_cleanup": {
|
||||
"status": "pass"
|
||||
},
|
||||
"real_form_submission": {
|
||||
"status": "pass",
|
||||
"reason": null
|
||||
},
|
||||
"real_webrtc_session": {
|
||||
"status": "pass",
|
||||
"reason": null
|
||||
},
|
||||
"bidirectional_webrtc_audio_and_real_asr_tts": {
|
||||
"status": "pass",
|
||||
"reason": null
|
||||
}
|
||||
},
|
||||
"overall_status": "pass",
|
||||
"safe_local_submission_receipt": {
|
||||
"endpoint_scope": "localhost-only",
|
||||
"submission_count": 1,
|
||||
"submissions": [
|
||||
{
|
||||
"field_names": [
|
||||
"address",
|
||||
"email",
|
||||
"firstName",
|
||||
"gender",
|
||||
"lastName",
|
||||
"userNumber"
|
||||
],
|
||||
"field_count": 6,
|
||||
"all_values_redacted": true
|
||||
}
|
||||
],
|
||||
"raw_values_retained": false
|
||||
}
|
||||
}
|
||||
+152
@@ -0,0 +1,152 @@
|
||||
{
|
||||
"page_url": "http://127.0.0.1:50624/register",
|
||||
"page_title": "Safe local registration",
|
||||
"known_fields": [],
|
||||
"discovered_fields": [
|
||||
{
|
||||
"name": "firstName",
|
||||
"label": "First name",
|
||||
"input_type": "text",
|
||||
"required": true,
|
||||
"selector": "#firstName",
|
||||
"format_hint": "",
|
||||
"pattern": "",
|
||||
"options": []
|
||||
},
|
||||
{
|
||||
"name": "lastName",
|
||||
"label": "Last name",
|
||||
"input_type": "text",
|
||||
"required": true,
|
||||
"selector": "#lastName",
|
||||
"format_hint": "",
|
||||
"pattern": "",
|
||||
"options": []
|
||||
},
|
||||
{
|
||||
"name": "email",
|
||||
"label": "Email address",
|
||||
"input_type": "email",
|
||||
"required": true,
|
||||
"selector": "#email",
|
||||
"format_hint": "name@example.com",
|
||||
"pattern": "",
|
||||
"options": []
|
||||
},
|
||||
{
|
||||
"name": "userNumber",
|
||||
"label": "Phone number",
|
||||
"input_type": "tel",
|
||||
"required": true,
|
||||
"selector": "#userNumber",
|
||||
"format_hint": "10 digits",
|
||||
"pattern": "[0-9]{10}",
|
||||
"options": []
|
||||
},
|
||||
{
|
||||
"name": "gender",
|
||||
"label": "Gender",
|
||||
"input_type": "select",
|
||||
"required": true,
|
||||
"selector": "#gender",
|
||||
"format_hint": "",
|
||||
"pattern": "",
|
||||
"options": [
|
||||
"Choose one",
|
||||
"Female",
|
||||
"Male",
|
||||
"Non-binary"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "address",
|
||||
"label": "Mailing address",
|
||||
"input_type": "textarea",
|
||||
"required": true,
|
||||
"selector": "#address",
|
||||
"format_hint": "",
|
||||
"pattern": "",
|
||||
"options": []
|
||||
}
|
||||
],
|
||||
"tool_called": "initiate_phone_call_agent",
|
||||
"purpose": "Complete registration by collecting required user information",
|
||||
"required_info": [
|
||||
{
|
||||
"name": "firstName",
|
||||
"label": "First name",
|
||||
"input_type": "text",
|
||||
"required": true,
|
||||
"selector": "#firstName",
|
||||
"format_hint": "",
|
||||
"pattern": "",
|
||||
"options": []
|
||||
},
|
||||
{
|
||||
"name": "lastName",
|
||||
"label": "Last name",
|
||||
"input_type": "text",
|
||||
"required": true,
|
||||
"selector": "#lastName",
|
||||
"format_hint": "",
|
||||
"pattern": "",
|
||||
"options": []
|
||||
},
|
||||
{
|
||||
"name": "email",
|
||||
"label": "Email address",
|
||||
"input_type": "email",
|
||||
"required": true,
|
||||
"selector": "#email",
|
||||
"format_hint": "name@example.com",
|
||||
"pattern": "",
|
||||
"options": []
|
||||
},
|
||||
{
|
||||
"name": "userNumber",
|
||||
"label": "Phone number",
|
||||
"input_type": "tel",
|
||||
"required": true,
|
||||
"selector": "#userNumber",
|
||||
"format_hint": "10 digits",
|
||||
"pattern": "[0-9]{10}",
|
||||
"options": []
|
||||
},
|
||||
{
|
||||
"name": "gender",
|
||||
"label": "Gender",
|
||||
"input_type": "select",
|
||||
"required": true,
|
||||
"selector": "#gender",
|
||||
"format_hint": "",
|
||||
"pattern": "",
|
||||
"options": [
|
||||
"Choose one",
|
||||
"Female",
|
||||
"Male",
|
||||
"Non-binary"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "address",
|
||||
"label": "Mailing address",
|
||||
"input_type": "textarea",
|
||||
"required": true,
|
||||
"selector": "#address",
|
||||
"format_hint": "",
|
||||
"pattern": "",
|
||||
"options": []
|
||||
}
|
||||
],
|
||||
"rationale_summary": "模型通过工具调用决定启动 Phone Agent",
|
||||
"model": "doubao-seed-1-6-250615",
|
||||
"monotonic_seconds": 14.374983,
|
||||
"provider": "Volcengine ARK",
|
||||
"provider_response_id": "0217854971908780d00bd2433ad042948032361e92cd5cefed308",
|
||||
"provider_usage": {
|
||||
"prompt_tokens": 934,
|
||||
"completion_tokens": 515,
|
||||
"total_tokens": 1449
|
||||
},
|
||||
"wall_time": "2026-07-31T11:26:44.053087+00:00"
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"schema_version": 1,
|
||||
"experiment": "10-3",
|
||||
"page_url": "http://127.0.0.1:50624/register",
|
||||
"form_html": "<!doctype html>\n<html lang=\"en\"><meta charset=\"utf-8\"><title>Safe local registration</title>\n<h1>Conference registration</h1>\n<form method=\"post\" action=\"/register\">\n <label for=\"firstName\">First name</label>\n <input id=\"firstName\" name=\"firstName\" required>\n <label for=\"lastName\">Last name</label>\n <input id=\"lastName\" name=\"lastName\" required>\n <label for=\"email\">Email address</label>\n <input id=\"email\" name=\"email\" type=\"email\" required placeholder=\"name@example.com\">\n <label for=\"userNumber\">Phone number</label>\n <input id=\"userNumber\" name=\"userNumber\" type=\"tel\" required pattern=\"[0-9]{10}\" title=\"10 digits\">\n <label for=\"gender\">Gender</label>\n <select id=\"gender\" name=\"gender\" required>\n <option value=\"\">Choose one</option><option>Female</option><option>Male</option><option>Non-binary</option>\n </select>\n <label for=\"address\">Mailing address</label>\n <textarea id=\"address\" name=\"address\" required></textarea>\n <button type=\"submit\">Register</button>\n</form></html>",
|
||||
"form_html_sha256": "cb8f0ca7d7260ab8f32e306e7d5abbfc06387d9a19976a1cfffdcece391d0d3b",
|
||||
"field_answer_counts": {
|
||||
"firstName": 1,
|
||||
"lastName": 1,
|
||||
"email": 2,
|
||||
"userNumber": 1,
|
||||
"gender": 1,
|
||||
"address": 1
|
||||
},
|
||||
"participant": "safe synthesized voice over WebRTC RTP",
|
||||
"participant_values_retained": false
|
||||
}
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"endpoint_scope": "localhost-only",
|
||||
"submission_count": 1,
|
||||
"submissions": [
|
||||
{
|
||||
"field_names": [
|
||||
"address",
|
||||
"email",
|
||||
"firstName",
|
||||
"gender",
|
||||
"lastName",
|
||||
"userNumber"
|
||||
],
|
||||
"field_count": 6,
|
||||
"all_values_redacted": true
|
||||
}
|
||||
],
|
||||
"raw_values_retained": false
|
||||
}
|
||||
+50
@@ -0,0 +1,50 @@
|
||||
{
|
||||
"schema_version": 2,
|
||||
"experiment": "10-3",
|
||||
"run_kind": "full_safe_webrtc_acceptance",
|
||||
"generated_at": "2026-07-31T19:29:06+0800",
|
||||
"git_head_at_run": "f66e2fbdbe267f75bf28470ddc59fc1b7beb5c4c",
|
||||
"command": "python run_acceptance.py --run-dir <validation-run-directory>",
|
||||
"providers": {
|
||||
"decision_and_extraction": "Volcengine ARK",
|
||||
"speech": "local system TTS + local OpenAI Whisper"
|
||||
},
|
||||
"privacy": {
|
||||
"phone_number_required": false,
|
||||
"pstn_provider_required": false,
|
||||
"participant": "safe synthesized voice",
|
||||
"raw_audio_retained": false,
|
||||
"transcripts_or_values_retained": false,
|
||||
"form_values_retained": false
|
||||
},
|
||||
"source_sha256": {
|
||||
"browser.py": "66768575e96e76c745c9d470bbad24c98e47a8a321e9e908cc6ba67df795fd97",
|
||||
"bus.py": "d5ae473831426b4cd5c9f746f8f9c24f7e1f08f3d61173430d5bb582f92af1de",
|
||||
"decision.py": "64e68c5a7c77d9404fcb451fbd8325f29d0b4ab58fedcfb0c4700653ee53c913",
|
||||
"demo.py": "d491b0a8f5de02fa7da44f382005a108d9f252b864b57fc189ff0b6608ddd826",
|
||||
"models.py": "1f28ed0b6edfbcde68146ba68f183cc0a3a9ce6aa64a3220026453628eb97f1d",
|
||||
"orchestration.py": "0e2e3eadcd5158e9ac4faea7bb5179f53f56ca84ed7956d31f023b397619e58e",
|
||||
"run_acceptance.py": "867b4b9b5f7ca6201517fbe4b2165d2946e322fe1cd8bbe0a2bd6a08cf22be0b",
|
||||
"validate_acceptance.py": "4a89fc84407fd4813459872f973411fcc2beb871ba1fe7553e22d5e8ce2dc85f",
|
||||
"voice.py": "5fb46942a38fa4a8aa338e8360dfb459a3b0b629ee07579f127cea6dd962d490",
|
||||
"webrtc_channel.py": "47835d12ba988f017647bf4e527696ef69ab867f7bd730f30904b5ed9369040f"
|
||||
},
|
||||
"input_sha256": {
|
||||
"experiment_input.json": "49df4da2dcf86a24c31a8cb447e1c94b98bde908cdb95ce902a319ddc768b51d"
|
||||
},
|
||||
"artifact_sha256": {
|
||||
"acceptance_report.json": "78adfb166ecf10736dcf69afdaacca52356f266d2b95e83a1a7c364106222b38",
|
||||
"decision.json": "69ac3b412a0e5921f50b1b31c6e7678f71a77a7ed8275b0f773602fe8ab99baa",
|
||||
"message_timeline.json": "3ad8d949458e1be0f8c632624c1fc7582621c624a45a2d72f4c2d1cc88852ca8",
|
||||
"form_submission_receipt.json": "d073943e7ebbe29f3945ac3597f5237a8e6258f842f872b0a926abe547d63f66",
|
||||
"raw_decision_request.json": "893317a2f60dc41a0966af41355d4ccad1276f0c289aba7b5df1889582a76f23",
|
||||
"raw_decision_response.json": "19d8efd662750b29129fe13dd69c6b64accd1ddf06d8a2ecdab50edb3d775e94",
|
||||
"validation_report.json": "c9a02501d00f790f88c7d43ad699cdcc7a6aac72dd6dd5d1d695d4a092925724"
|
||||
},
|
||||
"acceptance": {
|
||||
"overall_status": "pass",
|
||||
"gate_count": 9,
|
||||
"passed_gate_count": 9
|
||||
},
|
||||
"retained_evidence_validation": "pass"
|
||||
}
|
||||
+303
@@ -0,0 +1,303 @@
|
||||
[
|
||||
{
|
||||
"sender": "phone_agent",
|
||||
"recipient": "computer_agent",
|
||||
"type": "call_started",
|
||||
"payload": {
|
||||
"purpose": "Complete registration by collecting required user information",
|
||||
"fields": [
|
||||
"firstName",
|
||||
"lastName",
|
||||
"email",
|
||||
"userNumber",
|
||||
"gender",
|
||||
"address"
|
||||
]
|
||||
},
|
||||
"sequence": 1,
|
||||
"monotonic_seconds": 15.983982,
|
||||
"wall_time": "2026-07-31T19:26:45+0800"
|
||||
},
|
||||
{
|
||||
"sender": "phone_agent",
|
||||
"recipient": "computer_agent",
|
||||
"type": "question_asked",
|
||||
"payload": {
|
||||
"field": "firstName",
|
||||
"attempt": 1
|
||||
},
|
||||
"sequence": 2,
|
||||
"monotonic_seconds": 26.873284,
|
||||
"wall_time": "2026-07-31T19:26:56+0800"
|
||||
},
|
||||
{
|
||||
"sender": "phone_agent",
|
||||
"recipient": "computer_agent",
|
||||
"type": "info_collected",
|
||||
"payload": {
|
||||
"field": "firstName",
|
||||
"value": "<redacted>",
|
||||
"attempt": 1
|
||||
},
|
||||
"sequence": 3,
|
||||
"monotonic_seconds": 36.09918,
|
||||
"wall_time": "2026-07-31T19:27:05+0800"
|
||||
},
|
||||
{
|
||||
"sender": "phone_agent",
|
||||
"recipient": "computer_agent",
|
||||
"type": "question_asked",
|
||||
"payload": {
|
||||
"field": "lastName",
|
||||
"attempt": 1
|
||||
},
|
||||
"sequence": 4,
|
||||
"monotonic_seconds": 36.099655,
|
||||
"wall_time": "2026-07-31T19:27:05+0800"
|
||||
},
|
||||
{
|
||||
"sender": "computer_agent",
|
||||
"recipient": "phone_agent",
|
||||
"type": "field_filled",
|
||||
"payload": {
|
||||
"field": "firstName"
|
||||
},
|
||||
"sequence": 5,
|
||||
"monotonic_seconds": 36.140925,
|
||||
"wall_time": "2026-07-31T19:27:05+0800"
|
||||
},
|
||||
{
|
||||
"sender": "phone_agent",
|
||||
"recipient": "computer_agent",
|
||||
"type": "info_collected",
|
||||
"payload": {
|
||||
"field": "lastName",
|
||||
"value": "<redacted>",
|
||||
"attempt": 1
|
||||
},
|
||||
"sequence": 6,
|
||||
"monotonic_seconds": 47.376214,
|
||||
"wall_time": "2026-07-31T19:27:17+0800"
|
||||
},
|
||||
{
|
||||
"sender": "phone_agent",
|
||||
"recipient": "computer_agent",
|
||||
"type": "question_asked",
|
||||
"payload": {
|
||||
"field": "email",
|
||||
"attempt": 1
|
||||
},
|
||||
"sequence": 7,
|
||||
"monotonic_seconds": 47.377071,
|
||||
"wall_time": "2026-07-31T19:27:17+0800"
|
||||
},
|
||||
{
|
||||
"sender": "computer_agent",
|
||||
"recipient": "phone_agent",
|
||||
"type": "field_filled",
|
||||
"payload": {
|
||||
"field": "lastName"
|
||||
},
|
||||
"sequence": 8,
|
||||
"monotonic_seconds": 47.400183,
|
||||
"wall_time": "2026-07-31T19:27:17+0800"
|
||||
},
|
||||
{
|
||||
"sender": "phone_agent",
|
||||
"recipient": "computer_agent",
|
||||
"type": "format_invalid",
|
||||
"payload": {
|
||||
"field": "email",
|
||||
"attempt": 1,
|
||||
"reason": "该项为必填项,不能留空"
|
||||
},
|
||||
"sequence": 9,
|
||||
"monotonic_seconds": 65.561405,
|
||||
"wall_time": "2026-07-31T19:27:35+0800"
|
||||
},
|
||||
{
|
||||
"sender": "phone_agent",
|
||||
"recipient": "computer_agent",
|
||||
"type": "question_asked",
|
||||
"payload": {
|
||||
"field": "email",
|
||||
"attempt": 2
|
||||
},
|
||||
"sequence": 10,
|
||||
"monotonic_seconds": 65.562376,
|
||||
"wall_time": "2026-07-31T19:27:35+0800"
|
||||
},
|
||||
{
|
||||
"sender": "phone_agent",
|
||||
"recipient": "computer_agent",
|
||||
"type": "info_collected",
|
||||
"payload": {
|
||||
"field": "email",
|
||||
"value": "<redacted>",
|
||||
"attempt": 2
|
||||
},
|
||||
"sequence": 11,
|
||||
"monotonic_seconds": 92.854189,
|
||||
"wall_time": "2026-07-31T19:28:02+0800"
|
||||
},
|
||||
{
|
||||
"sender": "phone_agent",
|
||||
"recipient": "computer_agent",
|
||||
"type": "question_asked",
|
||||
"payload": {
|
||||
"field": "userNumber",
|
||||
"attempt": 1
|
||||
},
|
||||
"sequence": 12,
|
||||
"monotonic_seconds": 92.855214,
|
||||
"wall_time": "2026-07-31T19:28:02+0800"
|
||||
},
|
||||
{
|
||||
"sender": "computer_agent",
|
||||
"recipient": "phone_agent",
|
||||
"type": "field_filled",
|
||||
"payload": {
|
||||
"field": "email"
|
||||
},
|
||||
"sequence": 13,
|
||||
"monotonic_seconds": 92.884465,
|
||||
"wall_time": "2026-07-31T19:28:02+0800"
|
||||
},
|
||||
{
|
||||
"sender": "phone_agent",
|
||||
"recipient": "computer_agent",
|
||||
"type": "info_collected",
|
||||
"payload": {
|
||||
"field": "userNumber",
|
||||
"value": "<redacted>",
|
||||
"attempt": 1
|
||||
},
|
||||
"sequence": 14,
|
||||
"monotonic_seconds": 112.64446,
|
||||
"wall_time": "2026-07-31T19:28:22+0800"
|
||||
},
|
||||
{
|
||||
"sender": "phone_agent",
|
||||
"recipient": "computer_agent",
|
||||
"type": "question_asked",
|
||||
"payload": {
|
||||
"field": "gender",
|
||||
"attempt": 1
|
||||
},
|
||||
"sequence": 15,
|
||||
"monotonic_seconds": 112.645667,
|
||||
"wall_time": "2026-07-31T19:28:22+0800"
|
||||
},
|
||||
{
|
||||
"sender": "computer_agent",
|
||||
"recipient": "phone_agent",
|
||||
"type": "field_filled",
|
||||
"payload": {
|
||||
"field": "userNumber"
|
||||
},
|
||||
"sequence": 16,
|
||||
"monotonic_seconds": 112.666944,
|
||||
"wall_time": "2026-07-31T19:28:22+0800"
|
||||
},
|
||||
{
|
||||
"sender": "phone_agent",
|
||||
"recipient": "computer_agent",
|
||||
"type": "info_collected",
|
||||
"payload": {
|
||||
"field": "gender",
|
||||
"value": "<redacted>",
|
||||
"attempt": 1
|
||||
},
|
||||
"sequence": 17,
|
||||
"monotonic_seconds": 136.4828,
|
||||
"wall_time": "2026-07-31T19:28:46+0800"
|
||||
},
|
||||
{
|
||||
"sender": "phone_agent",
|
||||
"recipient": "computer_agent",
|
||||
"type": "question_asked",
|
||||
"payload": {
|
||||
"field": "address",
|
||||
"attempt": 1
|
||||
},
|
||||
"sequence": 18,
|
||||
"monotonic_seconds": 136.483352,
|
||||
"wall_time": "2026-07-31T19:28:46+0800"
|
||||
},
|
||||
{
|
||||
"sender": "computer_agent",
|
||||
"recipient": "phone_agent",
|
||||
"type": "field_filled",
|
||||
"payload": {
|
||||
"field": "gender"
|
||||
},
|
||||
"sequence": 19,
|
||||
"monotonic_seconds": 136.509506,
|
||||
"wall_time": "2026-07-31T19:28:46+0800"
|
||||
},
|
||||
{
|
||||
"sender": "phone_agent",
|
||||
"recipient": "computer_agent",
|
||||
"type": "info_collected",
|
||||
"payload": {
|
||||
"field": "address",
|
||||
"value": "<redacted>",
|
||||
"attempt": 1
|
||||
},
|
||||
"sequence": 20,
|
||||
"monotonic_seconds": 150.994505,
|
||||
"wall_time": "2026-07-31T19:29:00+0800"
|
||||
},
|
||||
{
|
||||
"sender": "phone_agent",
|
||||
"recipient": "computer_agent",
|
||||
"type": "task_completed",
|
||||
"payload": {},
|
||||
"sequence": 21,
|
||||
"monotonic_seconds": 150.995086,
|
||||
"wall_time": "2026-07-31T19:29:00+0800"
|
||||
},
|
||||
{
|
||||
"sender": "computer_agent",
|
||||
"recipient": "phone_agent",
|
||||
"type": "field_filled",
|
||||
"payload": {
|
||||
"field": "address"
|
||||
},
|
||||
"sequence": 22,
|
||||
"monotonic_seconds": 151.016117,
|
||||
"wall_time": "2026-07-31T19:29:00+0800"
|
||||
},
|
||||
{
|
||||
"sender": "computer_agent",
|
||||
"recipient": "phone_agent",
|
||||
"type": "form_ready",
|
||||
"payload": {
|
||||
"errors": 0,
|
||||
"submitted": true
|
||||
},
|
||||
"sequence": 23,
|
||||
"monotonic_seconds": 152.049317,
|
||||
"wall_time": "2026-07-31T19:29:01+0800"
|
||||
},
|
||||
{
|
||||
"sender": "computer_agent",
|
||||
"recipient": "manager",
|
||||
"type": "registration_finished",
|
||||
"payload": {
|
||||
"filled": [
|
||||
"firstName",
|
||||
"lastName",
|
||||
"email",
|
||||
"userNumber",
|
||||
"gender",
|
||||
"address"
|
||||
],
|
||||
"submitted": true,
|
||||
"errors": []
|
||||
},
|
||||
"sequence": 24,
|
||||
"monotonic_seconds": 152.050405,
|
||||
"wall_time": "2026-07-31T19:29:01+0800"
|
||||
}
|
||||
]
|
||||
+65
@@ -0,0 +1,65 @@
|
||||
{
|
||||
"schema_version": 1,
|
||||
"experiment": "10-3",
|
||||
"provider": "Volcengine ARK",
|
||||
"endpoint": "https://ark.cn-beijing.volces.com/api/v3",
|
||||
"credential_fields_retained": [],
|
||||
"request": {
|
||||
"model": "doubao-seed-1-6-250615",
|
||||
"messages": [
|
||||
{
|
||||
"role": "system",
|
||||
"content": "You are a Computer Use Agent completing a registration request. Inspect the real page observation and the information already in context. When you need to collect a large amount of structured information and it can be done step by step through conversation, consider calling the Phone Agent tool. Do not call it for one or two simple missing values. Never invent user data. Give only a short decision summary; do not reveal private chain-of-thought."
|
||||
},
|
||||
{
|
||||
"role": "user",
|
||||
"content": "{\"request\": \"帮我在这个网站上完成注册\", \"page_url\": \"http://127.0.0.1:50624/register\", \"page_title\": \"Safe local registration\", \"form_fields\": [{\"name\": \"firstName\", \"label\": \"First name\", \"type\": \"text\", \"required\": true, \"format_hint\": \"\", \"options\": []}, {\"name\": \"lastName\", \"label\": \"Last name\", \"type\": \"text\", \"required\": true, \"format_hint\": \"\", \"options\": []}, {\"name\": \"email\", \"label\": \"Email address\", \"type\": \"email\", \"required\": true, \"format_hint\": \"name@example.com\", \"options\": []}, {\"name\": \"userNumber\", \"label\": \"Phone number\", \"type\": \"tel\", \"required\": true, \"format_hint\": \"10 digits\", \"options\": []}, {\"name\": \"gender\", \"label\": \"Gender\", \"type\": \"select\", \"required\": true, \"format_hint\": \"\", \"options\": [\"Choose one\", \"Female\", \"Male\", \"Non-binary\"]}, {\"name\": \"address\", \"label\": \"Mailing address\", \"type\": \"textarea\", \"required\": true, \"format_hint\": \"\", \"options\": []}], \"known_context_fields\": []}"
|
||||
}
|
||||
],
|
||||
"tools": [
|
||||
{
|
||||
"type": "function",
|
||||
"function": {
|
||||
"name": "initiate_phone_call_agent",
|
||||
"description": "Start a live Phone Agent when a user must provide many missing pieces of structured information conversationally. The Phone Agent asks, confirms, validates, and streams each collected field back to the browser Agent.",
|
||||
"parameters": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"purpose": {
|
||||
"type": "string"
|
||||
},
|
||||
"required_info": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"label": {
|
||||
"type": "string"
|
||||
},
|
||||
"format_hint": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name",
|
||||
"label"
|
||||
],
|
||||
"additionalProperties": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"purpose",
|
||||
"required_info"
|
||||
],
|
||||
"additionalProperties": false
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"tool_choice": "auto"
|
||||
}
|
||||
}
|
||||
+57
@@ -0,0 +1,57 @@
|
||||
{
|
||||
"schema_version": 1,
|
||||
"experiment": "10-3",
|
||||
"provider": "Volcengine ARK",
|
||||
"latency_seconds": 13.610751,
|
||||
"response": {
|
||||
"id": "0217854971908780d00bd2433ad042948032361e92cd5cefed308",
|
||||
"choices": [
|
||||
{
|
||||
"finish_reason": "tool_calls",
|
||||
"index": 0,
|
||||
"logprobs": null,
|
||||
"message": {
|
||||
"content": "",
|
||||
"refusal": null,
|
||||
"role": "assistant",
|
||||
"annotations": null,
|
||||
"audio": null,
|
||||
"function_call": null,
|
||||
"tool_calls": [
|
||||
{
|
||||
"id": "call_huhht07ujt63g3g48jzg0nkz",
|
||||
"function": {
|
||||
"arguments": "{\"purpose\":\"Complete registration by collecting required user information\",\"required_info\":[{\"name\":\"firstName\",\"label\":\"First name\"},{\"name\":\"lastName\",\"label\":\"Last name\"},{\"name\":\"email\",\"label\":\"Email address\",\"format_hint\":\"name@example.com\"},{\"name\":\"userNumber\",\"label\":\"Phone number\",\"format_hint\":\"10 digits\"},{\"name\":\"gender\",\"label\":\"Gender\"},{\"name\":\"address\",\"label\":\"Mailing address\"}]}",
|
||||
"name": "initiate_phone_call_agent"
|
||||
},
|
||||
"type": "function"
|
||||
}
|
||||
],
|
||||
"reasoning_content": "我现在需要处理用户的注册请求。用户希望在网站上完成注册,提供的页面信息显示有多个必填字段:firstName、lastName、email、userNumber、gender和address。所有这些字段都是必填的,而且用户的已知上下文字段是空的,说明目前没有收集到任何信息。\n\n根据系统提示,当需要收集大量结构化信息且可以通过对话逐步完成时,应该考虑调用Phone Agent工具。这里有六个必填字段,属于大量信息,所以符合调用Phone Agent的条件。不需要为一两个简单的缺失值调用,但这里显然超过了这个数量。\n\n接下来,我需要构造调用Phone Agent的参数。purpose应该是注册所需的信息收集,required_info需要列出所有必填字段,每个字段包括name、label,可能还有format_hint。检查每个字段:\n\n- firstName:name是firstName,label是First name,format_hint为空。\n- lastName:类似,label是Last name。\n- email:label是Email address,format_hint是name@example.com。\n- userNumber:label是Phone number,format_hint是10 digits。\n- gender:label是Gender,format_hint为空,选项有几个,但Phone Agent可能需要确认选项。\n- address:label是Mailing address,format_hint为空。\n\n确保每个required_info项都包含name和label,format_hint可选。然后按照工具要求的格式构造JSON数组,使用正确的名称和参数。不需要并行调用,因为只需要启动一个Phone Agent来处理所有字段的收集。\n\n最后,检查是否符合格式要求,使用<|FunctionCallBegin|>和<|FunctionCallEnd|>包裹,确保JSON结构正确,没有语法错误。确认所有必填字段都被包含,没有遗漏。这样就能正确调用Phone Agent来帮助用户逐步完成注册信息的收集。"
|
||||
}
|
||||
}
|
||||
],
|
||||
"created": 1785497204,
|
||||
"model": "doubao-seed-1-6-250615",
|
||||
"object": "chat.completion",
|
||||
"moderation": null,
|
||||
"service_tier": "default",
|
||||
"system_fingerprint": null,
|
||||
"usage": {
|
||||
"completion_tokens": 515,
|
||||
"prompt_tokens": 934,
|
||||
"total_tokens": 1449,
|
||||
"completion_tokens_details": {
|
||||
"accepted_prediction_tokens": null,
|
||||
"audio_tokens": null,
|
||||
"reasoning_tokens": 394,
|
||||
"rejected_prediction_tokens": null
|
||||
},
|
||||
"prompt_tokens_details": {
|
||||
"audio_tokens": null,
|
||||
"cache_write_tokens": null,
|
||||
"cached_tokens": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"schema_version": 1,
|
||||
"experiment": "10-3",
|
||||
"status": "pass",
|
||||
"checks": {
|
||||
"source_hashes": "pass",
|
||||
"artifact_hashes": "pass",
|
||||
"input_hashes": "pass",
|
||||
"raw_ark_request_tool_choice_auto": "pass",
|
||||
"raw_ark_response_metadata": "pass",
|
||||
"raw_arguments_normalize_to_decision": "pass",
|
||||
"participant_privacy": "pass",
|
||||
"acceptance_gates": "pass"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"schema_version": 1,
|
||||
"experiment": "10-3",
|
||||
"evidence_type": "focused_software_tests",
|
||||
"human_audio_used": false,
|
||||
"pstn_calls_placed": 0,
|
||||
"gates": {
|
||||
"live_transport_refuses_without_consent_before_browser_or_audio_creation": "pass",
|
||||
"unexpected_agent_failure_cancels_peer": "pass",
|
||||
"unexpected_agent_failure_closes_phone_transport": "pass",
|
||||
"task_completed_triggers_opt_in_submission": "pass",
|
||||
"computer_fill_error_returns_to_phone_and_blocks_submission": "pass",
|
||||
"optional_blank_is_audited_and_never_written_to_browser": "pass",
|
||||
"field_validation_and_reask": "pass",
|
||||
"ask_next_before_prior_fill_completes": "pass"
|
||||
},
|
||||
"acceptance_boundary": {
|
||||
"real_pstn_call": "not_run",
|
||||
"real_human_asr_tts": "not_run",
|
||||
"real_external_form_submission": "not_run",
|
||||
"overall_status": "incomplete"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user