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
@@ -0,0 +1,94 @@
|
||||
{
|
||||
"schema_version": 1,
|
||||
"experiment": "6-8",
|
||||
"arm": "open-model-api",
|
||||
"status": "passed",
|
||||
"checks": [
|
||||
{
|
||||
"name": "existing_manifest_integrity",
|
||||
"passed": true,
|
||||
"detail": {
|
||||
"failures": [],
|
||||
"unmanifested_files": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "open_model_identity",
|
||||
"passed": true,
|
||||
"detail": {
|
||||
"requested": "qwen/qwen3-vl-32b-instruct",
|
||||
"provider_reported": [
|
||||
"qwen/qwen3-vl-32b-instruct"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "real_api_receipts",
|
||||
"passed": true,
|
||||
"detail": {
|
||||
"requests": 16,
|
||||
"responses": 16,
|
||||
"steps": 16
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "bounded_read_only_actions",
|
||||
"passed": true,
|
||||
"detail": {
|
||||
"one_action_per_step": true,
|
||||
"actions": [
|
||||
"navigate",
|
||||
"input",
|
||||
"click",
|
||||
"navigate",
|
||||
"navigate",
|
||||
"click",
|
||||
"click",
|
||||
"click",
|
||||
"input",
|
||||
"click",
|
||||
"click",
|
||||
"click",
|
||||
"wait",
|
||||
"click",
|
||||
"wait",
|
||||
"done"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "completed_within_limit",
|
||||
"passed": true,
|
||||
"detail": {
|
||||
"status": "complete",
|
||||
"steps": 16,
|
||||
"limit": 25
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "answer_grounded_in_final_browser_observation",
|
||||
"passed": true,
|
||||
"detail": {
|
||||
"missing_observation_fragments": [],
|
||||
"final_screenshot": "screenshots/step-016.png",
|
||||
"final_screenshot_sha256": "3639379122337818d7bef94facdf8110104bca8129f12b10f62d3d3e2678cfcc"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "step_screenshots_retained",
|
||||
"passed": true,
|
||||
"detail": {
|
||||
"retained": 15,
|
||||
"hashes_ok": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "credential_scan",
|
||||
"passed": true,
|
||||
"detail": {
|
||||
"findings": []
|
||||
}
|
||||
}
|
||||
],
|
||||
"qualification": "The Qwen3-VL browser arm passed. This does not claim that the separate Anthropic native-computer-tool arm in Experiment 6-7 ran."
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
)]}'
|
||||
22;["C2RtauXZIuLMkPIP-JjZsQw","2499"]c;[2,null,"0"]1b;<div jsname="Nll0ne"></div>c;[9,null,"0"]0;
|
||||
@@ -0,0 +1,2 @@
|
||||
)]}'
|
||||
22;["CmRtaqy8H6jDkPIPk8y26Qs","2499"]c;[2,null,"0"]1b;<div jsname="Nll0ne"></div>c;[9,null,"0"]0;
|
||||
@@ -0,0 +1,141 @@
|
||||
{
|
||||
"schema_version": 1,
|
||||
"experiment": "6-8",
|
||||
"arm": "open-model-api",
|
||||
"status": "passed",
|
||||
"api": {
|
||||
"api_protocol": "openai-compatible-chat-completions",
|
||||
"api_key_env": "OPENROUTER_API_KEY",
|
||||
"base_url": "https://openrouter.ai/api/v1",
|
||||
"requested_model": "qwen/qwen3-vl-32b-instruct",
|
||||
"schema_mode": "native"
|
||||
},
|
||||
"credential_retained": false,
|
||||
"artifacts": [
|
||||
{
|
||||
"path": "acceptance.json",
|
||||
"bytes": 2074,
|
||||
"sha256": "3aed10516d20a0bbb8f13175df51168a8ec2c145cc9c4ad957b7db395b7210dc"
|
||||
},
|
||||
{
|
||||
"path": "agent-files/browseruse_agent_data/todo.md",
|
||||
"bytes": 0,
|
||||
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
||||
},
|
||||
{
|
||||
"path": "api-receipts.json",
|
||||
"bytes": 48277,
|
||||
"sha256": "90c9d8153d13aa3b7a9f5aaebfe7e0766f277b5beee603e9ef302dc55af3ff0c"
|
||||
},
|
||||
{
|
||||
"path": "downloads/f (1).txt",
|
||||
"bytes": 102,
|
||||
"sha256": "2259823ec5ad0c2437d373ee983dca233e228b6114b91ac0abdea3f19115e95a"
|
||||
},
|
||||
{
|
||||
"path": "downloads/f.txt",
|
||||
"bytes": 102,
|
||||
"sha256": "1226ac037e3f8034e6ae1f6220167da5bec173f66232e0c5cd6f9698d2604ca3"
|
||||
},
|
||||
{
|
||||
"path": "history.json",
|
||||
"bytes": 203653,
|
||||
"sha256": "99a84f496574043a96bf57cfe3dbfe917496da4b0c5b07615f20467b0f945ea1"
|
||||
},
|
||||
{
|
||||
"path": "preflight.json",
|
||||
"bytes": 576,
|
||||
"sha256": "b41c8041a783ee1fa23c47af876f9c9a330811690db327d2917172e192b296b5"
|
||||
},
|
||||
{
|
||||
"path": "screenshots/step-002.png",
|
||||
"bytes": 28061,
|
||||
"sha256": "8c5c6e2e1e86efddfca55519f05989024638eb3a02ae664895c1e39ff83522f7"
|
||||
},
|
||||
{
|
||||
"path": "screenshots/step-003.png",
|
||||
"bytes": 29944,
|
||||
"sha256": "f81f47dbc57a9a8811f11f757b2346bd2bd62f44aa1b4ff97ba95cca2bf5f682"
|
||||
},
|
||||
{
|
||||
"path": "screenshots/step-004.png",
|
||||
"bytes": 55273,
|
||||
"sha256": "0bc740a84d46b7dd463b3a51938b65d8a0dc5d224792370f75cb0d4993611218"
|
||||
},
|
||||
{
|
||||
"path": "screenshots/step-005.png",
|
||||
"bytes": 27941,
|
||||
"sha256": "c1bc7955dac6fe5ad20ba354baba0090927bb47995fd31a0d4fd81031d915e4c"
|
||||
},
|
||||
{
|
||||
"path": "screenshots/step-006.png",
|
||||
"bytes": 23640,
|
||||
"sha256": "53605ec8ec85aeae9f4acae9a9470e6e49e3ced7c46f86597b7d66d7d233333a"
|
||||
},
|
||||
{
|
||||
"path": "screenshots/step-007.png",
|
||||
"bytes": 110544,
|
||||
"sha256": "4e2603a80d4ce151fd8c59f2085098f8ae95aff6e78379ded5ec16a9b7d92b60"
|
||||
},
|
||||
{
|
||||
"path": "screenshots/step-008.png",
|
||||
"bytes": 123209,
|
||||
"sha256": "54c1add05b5c9d2cf1b48441356807d3fc54645d0cd6d316ef5fb4509722d923"
|
||||
},
|
||||
{
|
||||
"path": "screenshots/step-009.png",
|
||||
"bytes": 127254,
|
||||
"sha256": "9febbe80a5d86ff6decd586d139157cb5262fe83819a652b17ea1bd7968dbe5f"
|
||||
},
|
||||
{
|
||||
"path": "screenshots/step-010.png",
|
||||
"bytes": 127210,
|
||||
"sha256": "e19ca02d40dd842180992b07e620d04b10b9de4380c8bba928ead6924970c821"
|
||||
},
|
||||
{
|
||||
"path": "screenshots/step-011.png",
|
||||
"bytes": 126639,
|
||||
"sha256": "0b6a960afe0043c71bff781ce49877c6323362c0ad70f22adfcbf6715604e746"
|
||||
},
|
||||
{
|
||||
"path": "screenshots/step-012.png",
|
||||
"bytes": 124265,
|
||||
"sha256": "816583d8b0d8293af360836f835b7342d7a3cf78a903d43cb6e0133ffbd2ea29"
|
||||
},
|
||||
{
|
||||
"path": "screenshots/step-013.png",
|
||||
"bytes": 42224,
|
||||
"sha256": "9128f3a40154ab5e281ad332ef3d680a2269823b5d2d11d63c6371625cf16ebc"
|
||||
},
|
||||
{
|
||||
"path": "screenshots/step-014.png",
|
||||
"bytes": 78288,
|
||||
"sha256": "c3bcf11a554460dfc8aef9afb8c6c862573f5e008831307c3190b11f0c84f13e"
|
||||
},
|
||||
{
|
||||
"path": "screenshots/step-015.png",
|
||||
"bytes": 52704,
|
||||
"sha256": "62dd5ad950d4ed339005219664a3c7bcd9dfbb29daed562cff2c02b9b4003114"
|
||||
},
|
||||
{
|
||||
"path": "screenshots/step-016.png",
|
||||
"bytes": 102608,
|
||||
"sha256": "3639379122337818d7bef94facdf8110104bca8129f12b10f62d3d3e2678cfcc"
|
||||
},
|
||||
{
|
||||
"path": "screenshots.json",
|
||||
"bytes": 2695,
|
||||
"sha256": "b783d7fbd9d61a38a3fc56c81a3aa783ade5a4ec69662b09ea7461d27e0b5bbb"
|
||||
},
|
||||
{
|
||||
"path": "source-snapshot.json",
|
||||
"bytes": 669,
|
||||
"sha256": "e7b235a2be23c4dd62fbeaa93331eab36a39d24d939e7339e3cd88adc332d8a2"
|
||||
},
|
||||
{
|
||||
"path": "summary.json",
|
||||
"bytes": 2398,
|
||||
"sha256": "a7efbbba82c18dd6f6c63a106b220ace3dd9e9ba5eb8c2308c8180a0b5441c44"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"api": {
|
||||
"api_protocol": "openai-compatible-chat-completions",
|
||||
"api_key_env": "OPENROUTER_API_KEY",
|
||||
"base_url": "https://openrouter.ai/api/v1",
|
||||
"requested_model": "qwen/qwen3-vl-32b-instruct",
|
||||
"schema_mode": "native"
|
||||
},
|
||||
"task": "Open Google, search for San Francisco weather today, and report the temperature and conditions. Do not sign in or change any external data.",
|
||||
"max_steps": 25,
|
||||
"headless": true,
|
||||
"record_video": false,
|
||||
"requirements": {
|
||||
"image_input": true,
|
||||
"structured_actions": true,
|
||||
"browser_execution": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,98 @@
|
||||
[
|
||||
{
|
||||
"step": 1,
|
||||
"source_present": false,
|
||||
"path": null,
|
||||
"sha256": null
|
||||
},
|
||||
{
|
||||
"step": 2,
|
||||
"source_present": true,
|
||||
"path": "screenshots/step-002.png",
|
||||
"sha256": "8c5c6e2e1e86efddfca55519f05989024638eb3a02ae664895c1e39ff83522f7"
|
||||
},
|
||||
{
|
||||
"step": 3,
|
||||
"source_present": true,
|
||||
"path": "screenshots/step-003.png",
|
||||
"sha256": "f81f47dbc57a9a8811f11f757b2346bd2bd62f44aa1b4ff97ba95cca2bf5f682"
|
||||
},
|
||||
{
|
||||
"step": 4,
|
||||
"source_present": true,
|
||||
"path": "screenshots/step-004.png",
|
||||
"sha256": "0bc740a84d46b7dd463b3a51938b65d8a0dc5d224792370f75cb0d4993611218"
|
||||
},
|
||||
{
|
||||
"step": 5,
|
||||
"source_present": true,
|
||||
"path": "screenshots/step-005.png",
|
||||
"sha256": "c1bc7955dac6fe5ad20ba354baba0090927bb47995fd31a0d4fd81031d915e4c"
|
||||
},
|
||||
{
|
||||
"step": 6,
|
||||
"source_present": true,
|
||||
"path": "screenshots/step-006.png",
|
||||
"sha256": "53605ec8ec85aeae9f4acae9a9470e6e49e3ced7c46f86597b7d66d7d233333a"
|
||||
},
|
||||
{
|
||||
"step": 7,
|
||||
"source_present": true,
|
||||
"path": "screenshots/step-007.png",
|
||||
"sha256": "4e2603a80d4ce151fd8c59f2085098f8ae95aff6e78379ded5ec16a9b7d92b60"
|
||||
},
|
||||
{
|
||||
"step": 8,
|
||||
"source_present": true,
|
||||
"path": "screenshots/step-008.png",
|
||||
"sha256": "54c1add05b5c9d2cf1b48441356807d3fc54645d0cd6d316ef5fb4509722d923"
|
||||
},
|
||||
{
|
||||
"step": 9,
|
||||
"source_present": true,
|
||||
"path": "screenshots/step-009.png",
|
||||
"sha256": "9febbe80a5d86ff6decd586d139157cb5262fe83819a652b17ea1bd7968dbe5f"
|
||||
},
|
||||
{
|
||||
"step": 10,
|
||||
"source_present": true,
|
||||
"path": "screenshots/step-010.png",
|
||||
"sha256": "e19ca02d40dd842180992b07e620d04b10b9de4380c8bba928ead6924970c821"
|
||||
},
|
||||
{
|
||||
"step": 11,
|
||||
"source_present": true,
|
||||
"path": "screenshots/step-011.png",
|
||||
"sha256": "0b6a960afe0043c71bff781ce49877c6323362c0ad70f22adfcbf6715604e746"
|
||||
},
|
||||
{
|
||||
"step": 12,
|
||||
"source_present": true,
|
||||
"path": "screenshots/step-012.png",
|
||||
"sha256": "816583d8b0d8293af360836f835b7342d7a3cf78a903d43cb6e0133ffbd2ea29"
|
||||
},
|
||||
{
|
||||
"step": 13,
|
||||
"source_present": true,
|
||||
"path": "screenshots/step-013.png",
|
||||
"sha256": "9128f3a40154ab5e281ad332ef3d680a2269823b5d2d11d63c6371625cf16ebc"
|
||||
},
|
||||
{
|
||||
"step": 14,
|
||||
"source_present": true,
|
||||
"path": "screenshots/step-014.png",
|
||||
"sha256": "c3bcf11a554460dfc8aef9afb8c6c862573f5e008831307c3190b11f0c84f13e"
|
||||
},
|
||||
{
|
||||
"step": 15,
|
||||
"source_present": true,
|
||||
"path": "screenshots/step-015.png",
|
||||
"sha256": "62dd5ad950d4ed339005219664a3c7bcd9dfbb29daed562cff2c02b9b4003114"
|
||||
},
|
||||
{
|
||||
"step": 16,
|
||||
"source_present": true,
|
||||
"path": "screenshots/step-016.png",
|
||||
"sha256": "3639379122337818d7bef94facdf8110104bca8129f12b10f62d3d3e2678cfcc"
|
||||
}
|
||||
]
|
||||
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 54 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 108 KiB |
|
After Width: | Height: | Size: 120 KiB |
|
After Width: | Height: | Size: 124 KiB |
|
After Width: | Height: | Size: 124 KiB |
|
After Width: | Height: | Size: 124 KiB |
|
After Width: | Height: | Size: 121 KiB |
|
After Width: | Height: | Size: 41 KiB |
|
After Width: | Height: | Size: 76 KiB |
|
After Width: | Height: | Size: 52 KiB |
|
After Width: | Height: | Size: 100 KiB |
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"capture_scope": "post-run hashes of unchanged runtime files",
|
||||
"sources": [
|
||||
{
|
||||
"path": "config.py",
|
||||
"bytes": 2717,
|
||||
"sha256": "d3145978a6ee5dbb3569ad63316235da9e83f4ef24ddabc8fab2399fd1bbfce5"
|
||||
},
|
||||
{
|
||||
"path": "evidence.py",
|
||||
"bytes": 2768,
|
||||
"sha256": "846977c70e7d199133adeaea1f617131edcf62f57c2c525ac77393a8a4d4fa28"
|
||||
},
|
||||
{
|
||||
"path": "main.py",
|
||||
"bytes": 9580,
|
||||
"sha256": "0964c502f19730e0f59f13e3b82b48a7bd15d609f3b49431f2a6bae81efa3cf9"
|
||||
},
|
||||
{
|
||||
"path": "requirements.txt",
|
||||
"bytes": 125,
|
||||
"sha256": "5be48fd1664657359cae7763aa074e059c9b7962204c3934e09d7e173cb520aa"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
{
|
||||
"schema_version": 1,
|
||||
"experiment": "6-8",
|
||||
"acceptance_scope": "provider-portable-computer-use-trajectory",
|
||||
"status": "complete",
|
||||
"started_at": "2026-08-01T03:11:50.348098+00:00",
|
||||
"ended_at": "2026-08-01T03:14:24.560745+00:00",
|
||||
"api": {
|
||||
"api_protocol": "openai-compatible-chat-completions",
|
||||
"api_key_env": "OPENROUTER_API_KEY",
|
||||
"base_url": "https://openrouter.ai/api/v1",
|
||||
"requested_model": "qwen/qwen3-vl-32b-instruct",
|
||||
"schema_mode": "native"
|
||||
},
|
||||
"provider_models_reported": [
|
||||
"qwen/qwen3-vl-32b-instruct"
|
||||
],
|
||||
"browser_use_version": "0.9.5",
|
||||
"task": "Open Google, search for San Francisco weather today, and report the temperature and conditions. Do not sign in or change any external data.",
|
||||
"max_steps": 25,
|
||||
"steps_executed": 16,
|
||||
"agent_reported_success": true,
|
||||
"final_result": "The current weather in San Francisco is 64°F, with conditions described as 'Sunny'. The temperature feels like 62°F, with a high of 74°F and a low of 55°F for the day. There is a 3% chance of rain and 0 inches of precipitation expected. This information was retrieved from weather.com after successfully navigating to the correct location and selecting today's forecast.",
|
||||
"urls": [
|
||||
"about:blank",
|
||||
"https://www.google.com/",
|
||||
"https://www.google.com/",
|
||||
"https://www.google.com/",
|
||||
"https://www.google.com/",
|
||||
"https://weather.com/",
|
||||
"https://weather.com/",
|
||||
"https://weather.com/",
|
||||
"https://weather.com/",
|
||||
"https://weather.com/",
|
||||
"https://weather.com/",
|
||||
"https://weather.com/",
|
||||
"https://weather.com/us/california/city/san-francisco/tenday",
|
||||
"https://weather.com/us/california/city/san-francisco/tenday",
|
||||
"https://weather.com/us/california/city/san-francisco/today",
|
||||
"https://weather.com/us/california/city/san-francisco/today"
|
||||
],
|
||||
"errors": [
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
"Failed to click element <div index=9207>. The element may not be interactable or visible. If the page changed after navigation/interaction, the index [9207] may be stale. Get fresh browser state before retrying.",
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null
|
||||
],
|
||||
"screenshots_retained": 15,
|
||||
"credential_retained": false,
|
||||
"qualification": "This is a separate open-model arm, not an Anthropic-equivalent result."
|
||||
}
|
||||