evaluation.md
Book Agent 0.1.0 · 本版随附原文,按章节提供导览;完整原文可在文末展开。文内本机路径属于示例,请替换为你的实际路径。
本版本其他文档与许可
- 用户完整使用手册.md
- 网站发布交接说明.md
- 一句话安装提示词.md
- 安装Agent操作指南.md
- README-交付说明.md
- README.md
- dependency-licenses.json
- acceptance.md
- architecture.md
- build.md
- codex-diagnostics.md
- contracts.md
- deployment.md
- evaluation.md
- example-package-inspection.md
- hosts.md
- mcp.md
- package-format.md
- portability.md
- query-runtime.md
- rerankers.md
- retrieval.md
- security.md
- source-resolution.md
- sqlite-adapters.md
- troubleshooting.md
- visual-fallback.md
- windows-binary-validation.md
- offline-dependency-licenses.json
- 289bfef3a422b5d7-LICENSE
- 320fb46da982dd20-LICENSE
- 0d26a74c4cd409f1-LICENSE
- 29f0a9349a98f786-LICENSE.txt
- 8fe2fae6851b8b02-LICENSE_zstd.txt
- 5927d884110638aa-LICENSE
- c1aedbaa6db194c8-LICENSE
- 2e2d841f3829cb8c-LICENSE
- 37deb54162951132-LICENSE
- 1c294ee0ed0fe5a4-LICENSE.txt
- 9cbd6b2bcad1331c-LICENSE.txt
- 22cdd958c280cb3f-LICENSE.APACHE
- 33a7c36a4f64f214-LICENSE.BSD
- 8e9b59db150b8b29-LICENSE
- 9d2d6534b255a725-LICENSE
- 44ac41031103bcac-LICENSE
- 39d084ff20ffc40e-LICENSE.txt
- b6618d8dc766ea7c-LICENSE.md
- 696bca653f07d94f-LICENSE
- 1a79882f84c42428-LICENSE.md
- 404602f585d7ece7-LICENSE
- d91c8e1dcc4f21a2-LICENSE.md
- b0ec1e6164c921a7-LICENSE.txt
- 2102cfff7eb71b8c-LICENSE.txt
- 60b346c789b9f38f-LICENSE
- 21b64ce33aa4532a-LICENSE
- 37bbe72ee1bbafbd-LICENSE
- 3a70ad943ce55a72-LICENSE.txt
- 0f4ffb2948b11d2f-LICENSE.txt
- 0f552da71ad28735-LICENSE.txt
- 14c3180f75c13432-LICENSE.txt
- 237d5ce190d18ec8-LICENSE.md
- 33f4c2195fc42df4-LICENSE.md
- 34e0a82278464f7a-LICENSE.md
- 606163a509c60e74-LICENSE.txt
- 68188ef77bc0f51d-LICENSE.md
- 7d261385d7c11247-LICENSE.md
- 892e6e9281e05f9e-LICENSE.md
- a62d8b7410f97d10-LICENSE
- aefd64774c70ee6f-LICENSE
- ba28e7ff75ea728b-dragon4_LICENSE.txt
- c21c93791addfba9-LICENSE.md
- c38cab56d01cd957-LICENSE
- caa67dbe4c1ea31d-LICENSE.md
- ddfcf34665e22241-LICENSE
- f384fe378597d8ee-LICENSE.md
- fa40db527ec8a4f8-LICENSE.md
- 11c854e2fea5c3c3-LICENSE
- e9a5bac8b5a01882-LICENSE.APACHE
- ef96a0844cda24cd-LICENSE.BSD
- 60b8570677f4c852-LICENSE
- b750eeade19bb396-LICENSE
- 7d70cfb623ece0f5-LICENSE
- c6dc91d12372ba7d-LICENSE
- 4d610a0401713428-LICENSE
- b4cf246d7037e3e5-LICENSE
- 6ba7e4be3a3e5e98-LICENSE.rst
- bd6c3caec9dc0b2c-LICENSE
- 404f172525c78526-LICENSE
- ea58743ddd8149fe-LICENSE
- d94ac33ee6c5b99c-LICENSE
- 06fc5f72f75ece40-LICENSE
- 6ee341f79804040b-LICENSE
- ca8b44050606bf3f-LICENSE.txt
- 0eb90f9858c86a9d-MAPIStubLibrary-License.txt
- 0f36ec7ac95c3104-Scintilla-License.txt
- 1445ad867b84e928-LICENSE.txt
- 1b588beb4a04f4c3-LICENSE
- 3c06ee52d5d89b25-License.txt
- 6300165282b47172-License.txt
- 6eec8b7b9c778ef7-License.txt
- 6fbb090f28b7d9d7-NOTICE.md
- 7f00f05027a6f1b3-license.txt
- 881f648ef42a607c-License.txt
- ae73a46638a88910-License.txt
- c2a4985aa4145fc3-License.txt
- cf5cae3ab668ac79-License.txt
- d04b9dead3df9f2b-License.txt
- dc8527163d427906-LICENSE.txt
- ff463f305e7e68dc-license.txt
- 1f5c94674bb026f1-LICENSE
- 0fb05a2e9284070c-LICENSE.txt
- bd7b91afd66e7fa0-NOTICE
- fb0b720c70d8ce6a-LICENSE
- fcd0c1933c03449f-LICENSE
- 07c67dcb9a0a1264-LICENSE
- 0e45092c306c1829-LICENSE
- 123439bfbc433e83-LICENSE.APACHE
- 1ab641e9121b81f5-LICENSE
- 4094fd3590b59adb-NOTICE
- 4a7fd6a9c689e423-LICENSE
- 4d09286af1bf926b-LICENSE
- 63a92caf8157263d-LICENSE
- 6562dd76db576ab9-LICENSE
- 8b28658c9e8179cb-LICENSE.txt
- 9fe05a3195b3cc3f-LICENSE
- aeab75b4c2775e84-LICENSE
- b8b1f5f03784d7a5-LICENSE
- c2780f51d1429c4b-LICENSE
- c80865de46db705d-LICENSE.BSD
- c9e41e71fb671b2e-LICENSE
- d6b8bc4557547f24-LICENSE
- e972ee51f8cb405e-NOTICE
- e453abd81b5ad12e-LICENSE
- 717f721f1be51398-LICENSE.md
- 767eeaf795dbfce8-LICENSE
- 94e2a313c2183fa6-LICENSE.txt
- 3391f6db464bf907-LICENSE
- c4388b01504343b0-LICENSE
- 000af5e58f31978d-LICENSE.txt
- 012d34b072b31cdb-LICENSE
- 020fa8056b9cc414-LICENSE
- 057ffcbbade9301e-LICENSE
- 096eee7c37050ec5-LICENSE
- 0b14d5ccfc8ae3b6-LICENSE
- 0d84796ed41f21b5-LICENSE.txt
- 0f51b035ee2b205e-LICENSE.txt
- 15ac02d83e9f5cf0-LICENSE
- 1987b9857feb2977-LICENSE
- 1ab5abcd87c44e46-LICENSE.rst
- 1b491a95f1ea6812-LICENSE
- 1bddb28b536554a8-LICENSE
- 1e0dae2d67a75d8f-LICENSE
- 1f00093269c431aa-LICENSE
- 1f88918564d6b190-LICENSE.txt
- 23170591db6c2e35-LICENSE
- 24e7a39da250d246-LICENSE
- 25356621a82f4798-LICENSE
- 2b6931cc6558558d-LICENSE
- 2e20b75d944dfc10-LICENSE.rst
- 3148042f9d6dc44b-LICENSE
- 34440ff12dbdee0b-LICENSE
- 38d7390db6751b95-LICENSE
- 394f72aa9820b35e-LICENSE
- 3a1efc907aa90e6e-LICENSE.txt
- 3f471b7b9a34654b-LICENSE
- 3f59a46ca08f425d-LICENSE
- 41a82292d67b1815-LICENSE
- 43e0660fee92e3d9-LICENSE
- 4418818ca0528087-LICENSE
- 44bd708d348a7f79-LICENSE.txt
- 45a5f164a90b025e-LICENSE
- 4679f7f6ca539098-LICENSE
- 46bcf873674918a0-LICENSE
- 4cb2f76b15650e2b-LICENSE.txt
- 4ce67a1d3f22f06e-LICENSE
- 4d4c272c2aaf7d4c-LICENSE.txt
- 4f73bb9c13a8cf6a-LICENSE
- 50d2c50ab17033d4-LICENSE
- 568ef02dec145f8f-LICENSE.APACHE
- 5d0844276d7620c3-LICENSE
- 5d3ee7cad434b050-LICENSE
- 63c9efa00504c8e7-LICENSE.BSD
- 658c67bb72402f54-LICENSE
- 65feb792d908bb47-LICENSE
- 6ab6f3ebe36250fc-LICENSE
- 6f3ff74d1e961003-LICENSE
- 70c92009f569c7ff-LICENSE
- 71e8135b761ff506-LICENSE
- 720a043a5f63b8e2-LICENSE
- 732e9d1d0dc3a9f3-LICENSE.rst
- 76fa1ec680b6563a-LICENSE
- 778654dd362ccfc1-LICENSE
- 7bad43a1c663d2d3-LICENSE
- 7e5ab77aaefbcbfe-LICENSE
- 81f9de42fb4cff6d-LICENSE.rst
- 83a0b2cad3631647-LICENSE
- 83d9a4cd337039d3-LICENSE
- 878c0ed7cc080bee-LICENSE.txt
- 8e3c8657c4d54274-LICENSE
- 923573b2290edd3f-LICENSE.txt
- 932fff1dd3afca18-LICENSE.rst
- 93b14a999e446b81-LICENSE
- 93ef29e6e98ebe1c-LICENSE
- 95a8821c42dd5a93-LICENSE
- 9611af4ef03999e9-LICENSE.txt
- 9690869ec82dc7ff-LICENSE
- 98445537094b5eca-LICENSE.txt
- 9bcc07396f3695fd-LICENSE.txt
- 9d236d10d50376fa-LICENSE
- a3af08ceb14d4e70-LICENSE.rst
- a42e3616102ec1a4-LICENSE
- a68145b6a6945de2-LICENSE
- ac000064f187d287-LICENSE
- b14490d244e39dd6-LICENSE.txt
- b152e206fedb11c6-LICENSE
- b5cccfdd56d29de3-LICENSE
- bb4c4e06309173d1-LICENSE.txt
- c18a22744d03cae4-LICENSE.rst
- c59a7e2bf6163ddd-LICENSE
- c643fc658eb3d4f4-LICENSE
- ce8e5d64c3015701-LICENSE
- d382d51b74d1dde7-LICENSE
- d414936ad243b5dd-LICENSE.txt
- d431c50ef2b89f09-LICENSE
- d86156e7d7554a5f-LICENSE
- e04596b38de5343a-LICENSE
- e1fd63729d99cd47-LICENSE
- e3aa5bda22dc7a7a-LICENSE
- e3f5bf83e6fd8b70-LICENSE
- e7f7eb90618838ff-LICENSE
- e845cee760dabf6e-LICENSE
- ea19c7c3e4500582-LICENSE
- f063c5a9ee927ae6-LICENSE
- f589495d9a662be4-LICENSE.txt
- f7f25c636a548517-LICENSE.rst
- f861d3e2e007d200-LICENSE.txt
- fa17b838b2594837-LICENSE.txt
- 14a65df99717c958-LICENSE
- 2231b6c46c068b83-LICENSE
- 215ebb8580f197a8-LICENSE
- 3677f050c9618f5d-LICENSE.txt
- b645068efededc15-LICENSE.md
- MODEL-LICENSE.md
- README.md
- UPSTREAM-LICENSE.txt
# Evaluation The executable synthetic evaluation is `evals/run_eval.py`; its dataset is `evals/cases.json`. It calls the same `BookAgent` Core used by CLI/MCP and creates an isolated PDF knowledge package with existing fixed 2D fixture vectors. No original example archive is modified or copied into the distributable dataset. The synthetic vectors exercise adapter/ranking mechanics and do not represent a validated real embedding model. Run from the project directory in PowerShell: ```powershell & .\.venv\Scripts\python.exe .\evals\run_eval.py --top-k 3 --repetitions 3 ``` Use `--output` to choose independent evaluation runtime storage and `--dataset` for a compatible case file. Each run creates a new folder; it does not delete or overwrite an earlier package. The default is `.work/evals/`. A complete machine-readable `report.json` is saved in each run directory and copied to `latest-report.json`. The two modes use identical package/version, query vectors, query runtime fingerprint, dense/lexical limits, candidate limit, text budgets and top_k. The control records full candidate-text fingerprints. The custom loopback HTTP MOCK compares its submitted documents to those fingerprints and reports mismatches as failed checks. Its lexical scoring rule is deliberately simple and transparent. It is neither a remote model nor a local CrossEncoder. No API keys, external calls or downloads are used. Query representation is marked `caller_vector_unverified`; the no-evidence question uses explicit lexical fallback because no query encoder is verified. Metrics are defined as follows: | Metric | Definition | | --- | --- | | retrieval hit@k | Fraction of answerable cases with at least one expected record among top k | | MRR | Mean reciprocal rank of the first expected record; zero when absent | | source locator hit | Fraction of source-labelled cases retrieving an expected record and verifying its expected PDF file-page index | | visual fallback precision | True fallback decisions / all predicted fallback decisions | | visual fallback recall | True fallback decisions / all expected fallback decisions | | search latency | Wall-clock Core search duration in milliseconds, p50/p95/min/max across repetitions | | original integrity | Exact before/after file hashes, sizes, modification times and directory inventory | Fallback is measured using `source_fallback.recommended`: labels mean the Agent should inspect or verify original evidence. They include image questions, a Chinese “state graph” question and insufficient textual evidence. Text insufficiency may need original-source verification without proving an image exists. Reasons remain available per case. Metrics with no denominator return null. Expected-no-evidence cases are excluded from retrieval/MRR/source denominators and receive separate no-hits/status contract checks. The dataset covers graph automata, temporal property checking, Chinese short terms, publication citations, no evidence and two visual questions. A unique value occurs solely as raster pixels on the parameter page. The runner confirms it is absent from PDF native text, Markdown and SQLite body text. It follows Core locate → read → render for visual cases, checks the correct verified file page, inspects original image presence and validates PNG bytes. The result explicitly records `model_visual_understanding_verified=false`, `answer_read_from_image=false` and `ocr_used=false`. Passing checks establish consistent candidate generation, stable ranking for this fixture, unchanged query-runtime fingerprint, original-input preservation and successful location/PNG generation. They do not establish real-service availability, real-model accuracy, Harness image delivery, image-only answer correctness or general performance improvement. Latency describes a small warmed local fixture. Model/provider and Harness latency require separate authorized real acceptance runs. The report retains both modes' metrics even when one mode ranks poorly. This project does not assume reranking always improves retrieval. Real-book evaluations should hold book hashes, compatible query encoder/version and candidate settings fixed, add independently checked expected records/source ranges, and label any questions requiring an actual visual model. Never copy copyrighted local example text or model weights into the public evaluation fixture. The development run on 2026-10-02 used seven cases, top_k=3 and three repetitions. Both `none` and the loopback MOCK produced hit@3=1.0, MRR=1.0 and source locator hit=1.0. Fallback precision was 0.8 and recall 1.0 in both modes: the temporal-property question also retrieved figure-referencing context, causing one extra fallback recommendation. No ranking-quality improvement was demonstrated. Initial search latency p50/p95 was about 9.8/16.2 ms without rerank and 97.9/130.4 ms with the localhost MOCK; timing is machine/run specific and should be read from the current report. All original integrity, candidate match, runtime fingerprint, stable ranking, explicit case and location/PNG checks passed.
原文 SHA-256:1f57af0386ce69a7f54f45bf67636a64d928bcf053c14e5f91981a499d653527