用户可通过本书系统学习 AI Agent 设计原理与工程实践,包含 10 章正文、93 个配套实验,从基础到生产覆盖上下文工程、工具调用、多模态交互等核心内容,支持多语言阅读与离线下载。【此简介由AI生成】
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
docs: add Brazilian Portuguese (pt-BR) translation (#1049) * docs: add Brazilian Portuguese (pt-BR) translation Add book-ptbr/ with complete translation of all 12 chapters (introduction, chapters 1-10, afterword) from the original Chinese with English reference. - 131 translation units, each structurally validated (fenced code, inline code, math, links, images, footnotes, pandoc attributes, heading levels) - Glossary of ~100 technical terms for consistent PT-BR terminology - build_pdf.sh adapted for .ptbr.md files with Portuguese language option - mkdocs.yml: add ptbr language with prefix/suffix/readmeSuffix - build_epub.sh: add ptbr edition with Portuguese metadata - .github/workflows/build-latest.yml: add book-ptbr to triggers, build matrix, and release upload steps - extras/site-nav-i18n.json: add ptbr navigation translations - README.md: add Portuguese (Brasil) to language switcher - README.ptbr.md: new Portuguese landing page with full TOC Translation by Leonardo F. Nascimento (LABHD-UFBA) with AI assistance (GPT-5.6 Sol), structural fidelity validation, and technical glossary. * fix(ptbr): complete edition assets and publication integration - add the full 133-image set and localized PDF helpers - add translated reference answers with structural validation - add the Portuguese site homepage and include book-ptbr in site assembly - localize cover, preamble, cross-references, and question callouts - align EPUB language metadata and remove unsupported experiment indexes - update root documentation and release links for the 15th edition * docs(ptbr): translate figure text in book-ptbr/images to Portuguese Translates the descriptive text inside the ~130 SVG diagrams from English to Brazilian Portuguese, following the same pattern already used by the other translated editions (book-es, book-ja, etc.): only the <text> content changes, layout/structure/coordinates untouched. Code identifiers, product/model names, and technical acronyms are kept in their original form. * docs(ptbr): credit the figure-translation contribution Adds Líbna Raffaely's credit for translating the SVG figure text, alongside Leonardo F. Nascimento's existing translation credit, in README.ptbr.md, index.ptbr.md, and the root README.md language list. Also updates index.ptbr.md's now-outdated note that figures kept their English labels. --------- Co-authored-by: Leonardo F. Nascimento <10790532+leofn@users.noreply.github.com> Co-authored-by: LibnaRaffaely <147429674+LibnaRaffaely@users.noreply.github.com> | 4 天前 | |
feat(providers): add Krill AI gateway (#1062) | 3 天前 | |
Update star history chart [skip ci] | 2 天前 | |
docs(ch9): 以三层验证为主线重写「从运行轨迹中获得学习信号」(15 语种) (#1059) 原节六段读起来跳跃,issue #1031 反映「有点看不懂在说什么」「缺乏上下文 联系」。加小标题只治标,真正的原因有三个: 1. 通篇没说「学习信号」到底长什么样。图9-2 右半边(任务结果/维度评价/ 证据位置/失败标签/证据不足可拒绝评分)才是本节的产出物,正文却只讲 了图的左半边,产出要求反而藏在实验 9-1 的说明里。 2. 六段里并行着三套互不对齐的分类:按任务分(容易验证的/没有标准答案 的)、按验证器分(结果/过程/质量)、按表9-1 分(前五项底线/后两项 服务质量)。而且「结果 vs 过程」本来就藏在第二段内部,读者读到图9-2 把它们拆成两层时必须回头重解析第二段。 3. 表9-1 的七个维度从未与三层对应,看起来像是又一份新清单。 重写为一条主线:评价一条轨迹=依次回答「是否办成了/是否以允许的方式办成/ 是否让用户舒服」三个问题,对应三层验证器。原有例子(删测试用例、七天退款 承诺、客服耐心与合规变通)全部保留,改挂到各自的层上;表9-1 显式映射回三层; 结尾补一段说明验证器输出的四项要求,把图9-2 右半边接进正文,并接上下一节的 四种更新方法。图9-2 前移到三层展开之前充当地图。 实验 9-1 未改:实验框按设计可独立阅读,与正文有重叠属预期。 顺带修掉 book-ar 表9-1 与其后段落之间缺失的空行(原本会被吸进表格)。 中文版与英文版定稿后,14 个译本同步。ru 与 ta 译本沿用各自现有的章节/图 编号(ru 作「рисунке 8-2」「шестой главе」,ta 作「ஆறாம் அத்தியாயம்」), 这两处编号偏移是既有问题,留待单独修。 Fixes #1031 Claude-Session: https://claude.ai/code/session_018iSm7JBWoy87hxSpUkJ49T Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> | 3 天前 | |
docs(ch9): 以三层验证为主线重写「从运行轨迹中获得学习信号」(15 语种) (#1059) 原节六段读起来跳跃,issue #1031 反映「有点看不懂在说什么」「缺乏上下文 联系」。加小标题只治标,真正的原因有三个: 1. 通篇没说「学习信号」到底长什么样。图9-2 右半边(任务结果/维度评价/ 证据位置/失败标签/证据不足可拒绝评分)才是本节的产出物,正文却只讲 了图的左半边,产出要求反而藏在实验 9-1 的说明里。 2. 六段里并行着三套互不对齐的分类:按任务分(容易验证的/没有标准答案 的)、按验证器分(结果/过程/质量)、按表9-1 分(前五项底线/后两项 服务质量)。而且「结果 vs 过程」本来就藏在第二段内部,读者读到图9-2 把它们拆成两层时必须回头重解析第二段。 3. 表9-1 的七个维度从未与三层对应,看起来像是又一份新清单。 重写为一条主线:评价一条轨迹=依次回答「是否办成了/是否以允许的方式办成/ 是否让用户舒服」三个问题,对应三层验证器。原有例子(删测试用例、七天退款 承诺、客服耐心与合规变通)全部保留,改挂到各自的层上;表9-1 显式映射回三层; 结尾补一段说明验证器输出的四项要求,把图9-2 右半边接进正文,并接上下一节的 四种更新方法。图9-2 前移到三层展开之前充当地图。 实验 9-1 未改:实验框按设计可独立阅读,与正文有重叠属预期。 顺带修掉 book-ar 表9-1 与其后段落之间缺失的空行(原本会被吸进表格)。 中文版与英文版定稿后,14 个译本同步。ru 与 ta 译本沿用各自现有的章节/图 编号(ru 作「рисунке 8-2」「шестой главе」,ta 作「ஆறாம் அத்தியாயம்」), 这两处编号偏移是既有问题,留待单独修。 Fixes #1031 Claude-Session: https://claude.ai/code/session_018iSm7JBWoy87hxSpUkJ49T Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> | 3 天前 | |
docs(ch9): 以三层验证为主线重写「从运行轨迹中获得学习信号」(15 语种) (#1059) 原节六段读起来跳跃,issue #1031 反映「有点看不懂在说什么」「缺乏上下文 联系」。加小标题只治标,真正的原因有三个: 1. 通篇没说「学习信号」到底长什么样。图9-2 右半边(任务结果/维度评价/ 证据位置/失败标签/证据不足可拒绝评分)才是本节的产出物,正文却只讲 了图的左半边,产出要求反而藏在实验 9-1 的说明里。 2. 六段里并行着三套互不对齐的分类:按任务分(容易验证的/没有标准答案 的)、按验证器分(结果/过程/质量)、按表9-1 分(前五项底线/后两项 服务质量)。而且「结果 vs 过程」本来就藏在第二段内部,读者读到图9-2 把它们拆成两层时必须回头重解析第二段。 3. 表9-1 的七个维度从未与三层对应,看起来像是又一份新清单。 重写为一条主线:评价一条轨迹=依次回答「是否办成了/是否以允许的方式办成/ 是否让用户舒服」三个问题,对应三层验证器。原有例子(删测试用例、七天退款 承诺、客服耐心与合规变通)全部保留,改挂到各自的层上;表9-1 显式映射回三层; 结尾补一段说明验证器输出的四项要求,把图9-2 右半边接进正文,并接上下一节的 四种更新方法。图9-2 前移到三层展开之前充当地图。 实验 9-1 未改:实验框按设计可独立阅读,与正文有重叠属预期。 顺带修掉 book-ar 表9-1 与其后段落之间缺失的空行(原本会被吸进表格)。 中文版与英文版定稿后,14 个译本同步。ru 与 ta 译本沿用各自现有的章节/图 编号(ru 作「рисунке 8-2」「шестой главе」,ta 作「ஆறாம் அத்தியாயம்」), 这两处编号偏移是既有问题,留待单独修。 Fixes #1031 Claude-Session: https://claude.ai/code/session_018iSm7JBWoy87hxSpUkJ49T Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> | 3 天前 | |
docs(ch9): 以三层验证为主线重写「从运行轨迹中获得学习信号」(15 语种) (#1059) 原节六段读起来跳跃,issue #1031 反映「有点看不懂在说什么」「缺乏上下文 联系」。加小标题只治标,真正的原因有三个: 1. 通篇没说「学习信号」到底长什么样。图9-2 右半边(任务结果/维度评价/ 证据位置/失败标签/证据不足可拒绝评分)才是本节的产出物,正文却只讲 了图的左半边,产出要求反而藏在实验 9-1 的说明里。 2. 六段里并行着三套互不对齐的分类:按任务分(容易验证的/没有标准答案 的)、按验证器分(结果/过程/质量)、按表9-1 分(前五项底线/后两项 服务质量)。而且「结果 vs 过程」本来就藏在第二段内部,读者读到图9-2 把它们拆成两层时必须回头重解析第二段。 3. 表9-1 的七个维度从未与三层对应,看起来像是又一份新清单。 重写为一条主线:评价一条轨迹=依次回答「是否办成了/是否以允许的方式办成/ 是否让用户舒服」三个问题,对应三层验证器。原有例子(删测试用例、七天退款 承诺、客服耐心与合规变通)全部保留,改挂到各自的层上;表9-1 显式映射回三层; 结尾补一段说明验证器输出的四项要求,把图9-2 右半边接进正文,并接上下一节的 四种更新方法。图9-2 前移到三层展开之前充当地图。 实验 9-1 未改:实验框按设计可独立阅读,与正文有重叠属预期。 顺带修掉 book-ar 表9-1 与其后段落之间缺失的空行(原本会被吸进表格)。 中文版与英文版定稿后,14 个译本同步。ru 与 ta 译本沿用各自现有的章节/图 编号(ru 作「рисунке 8-2」「шестой главе」,ta 作「ஆறாம் அத்தியாயம்」), 这两处编号偏移是既有问题,留待单独修。 Fixes #1031 Claude-Session: https://claude.ai/code/session_018iSm7JBWoy87hxSpUkJ49T Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> | 3 天前 | |
docs(ch9): 以三层验证为主线重写「从运行轨迹中获得学习信号」(15 语种) (#1059) 原节六段读起来跳跃,issue #1031 反映「有点看不懂在说什么」「缺乏上下文 联系」。加小标题只治标,真正的原因有三个: 1. 通篇没说「学习信号」到底长什么样。图9-2 右半边(任务结果/维度评价/ 证据位置/失败标签/证据不足可拒绝评分)才是本节的产出物,正文却只讲 了图的左半边,产出要求反而藏在实验 9-1 的说明里。 2. 六段里并行着三套互不对齐的分类:按任务分(容易验证的/没有标准答案 的)、按验证器分(结果/过程/质量)、按表9-1 分(前五项底线/后两项 服务质量)。而且「结果 vs 过程」本来就藏在第二段内部,读者读到图9-2 把它们拆成两层时必须回头重解析第二段。 3. 表9-1 的七个维度从未与三层对应,看起来像是又一份新清单。 重写为一条主线:评价一条轨迹=依次回答「是否办成了/是否以允许的方式办成/ 是否让用户舒服」三个问题,对应三层验证器。原有例子(删测试用例、七天退款 承诺、客服耐心与合规变通)全部保留,改挂到各自的层上;表9-1 显式映射回三层; 结尾补一段说明验证器输出的四项要求,把图9-2 右半边接进正文,并接上下一节的 四种更新方法。图9-2 前移到三层展开之前充当地图。 实验 9-1 未改:实验框按设计可独立阅读,与正文有重叠属预期。 顺带修掉 book-ar 表9-1 与其后段落之间缺失的空行(原本会被吸进表格)。 中文版与英文版定稿后,14 个译本同步。ru 与 ta 译本沿用各自现有的章节/图 编号(ru 作「рисунке 8-2」「шестой главе」,ta 作「ஆறாம் அத்தியாயம்」), 这两处编号偏移是既有问题,留待单独修。 Fixes #1031 Claude-Session: https://claude.ai/code/session_018iSm7JBWoy87hxSpUkJ49T Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> | 3 天前 | |
docs(ch9): 以三层验证为主线重写「从运行轨迹中获得学习信号」(15 语种) (#1059) 原节六段读起来跳跃,issue #1031 反映「有点看不懂在说什么」「缺乏上下文 联系」。加小标题只治标,真正的原因有三个: 1. 通篇没说「学习信号」到底长什么样。图9-2 右半边(任务结果/维度评价/ 证据位置/失败标签/证据不足可拒绝评分)才是本节的产出物,正文却只讲 了图的左半边,产出要求反而藏在实验 9-1 的说明里。 2. 六段里并行着三套互不对齐的分类:按任务分(容易验证的/没有标准答案 的)、按验证器分(结果/过程/质量)、按表9-1 分(前五项底线/后两项 服务质量)。而且「结果 vs 过程」本来就藏在第二段内部,读者读到图9-2 把它们拆成两层时必须回头重解析第二段。 3. 表9-1 的七个维度从未与三层对应,看起来像是又一份新清单。 重写为一条主线:评价一条轨迹=依次回答「是否办成了/是否以允许的方式办成/ 是否让用户舒服」三个问题,对应三层验证器。原有例子(删测试用例、七天退款 承诺、客服耐心与合规变通)全部保留,改挂到各自的层上;表9-1 显式映射回三层; 结尾补一段说明验证器输出的四项要求,把图9-2 右半边接进正文,并接上下一节的 四种更新方法。图9-2 前移到三层展开之前充当地图。 实验 9-1 未改:实验框按设计可独立阅读,与正文有重叠属预期。 顺带修掉 book-ar 表9-1 与其后段落之间缺失的空行(原本会被吸进表格)。 中文版与英文版定稿后,14 个译本同步。ru 与 ta 译本沿用各自现有的章节/图 编号(ru 作「рисунке 8-2」「шестой главе」,ta 作「ஆறாம் அத்தியாயம்」), 这两处编号偏移是既有问题,留待单独修。 Fixes #1031 Claude-Session: https://claude.ai/code/session_018iSm7JBWoy87hxSpUkJ49T Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> | 3 天前 | |
docs(ch9): 以三层验证为主线重写「从运行轨迹中获得学习信号」(15 语种) (#1059) 原节六段读起来跳跃,issue #1031 反映「有点看不懂在说什么」「缺乏上下文 联系」。加小标题只治标,真正的原因有三个: 1. 通篇没说「学习信号」到底长什么样。图9-2 右半边(任务结果/维度评价/ 证据位置/失败标签/证据不足可拒绝评分)才是本节的产出物,正文却只讲 了图的左半边,产出要求反而藏在实验 9-1 的说明里。 2. 六段里并行着三套互不对齐的分类:按任务分(容易验证的/没有标准答案 的)、按验证器分(结果/过程/质量)、按表9-1 分(前五项底线/后两项 服务质量)。而且「结果 vs 过程」本来就藏在第二段内部,读者读到图9-2 把它们拆成两层时必须回头重解析第二段。 3. 表9-1 的七个维度从未与三层对应,看起来像是又一份新清单。 重写为一条主线:评价一条轨迹=依次回答「是否办成了/是否以允许的方式办成/ 是否让用户舒服」三个问题,对应三层验证器。原有例子(删测试用例、七天退款 承诺、客服耐心与合规变通)全部保留,改挂到各自的层上;表9-1 显式映射回三层; 结尾补一段说明验证器输出的四项要求,把图9-2 右半边接进正文,并接上下一节的 四种更新方法。图9-2 前移到三层展开之前充当地图。 实验 9-1 未改:实验框按设计可独立阅读,与正文有重叠属预期。 顺带修掉 book-ar 表9-1 与其后段落之间缺失的空行(原本会被吸进表格)。 中文版与英文版定稿后,14 个译本同步。ru 与 ta 译本沿用各自现有的章节/图 编号(ru 作「рисунке 8-2」「шестой главе」,ta 作「ஆறாம் அத்தியாயம்」), 这两处编号偏移是既有问题,留待单独修。 Fixes #1031 Claude-Session: https://claude.ai/code/session_018iSm7JBWoy87hxSpUkJ49T Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> | 3 天前 | |
docs(ch9): 以三层验证为主线重写「从运行轨迹中获得学习信号」(15 语种) (#1059) 原节六段读起来跳跃,issue #1031 反映「有点看不懂在说什么」「缺乏上下文 联系」。加小标题只治标,真正的原因有三个: 1. 通篇没说「学习信号」到底长什么样。图9-2 右半边(任务结果/维度评价/ 证据位置/失败标签/证据不足可拒绝评分)才是本节的产出物,正文却只讲 了图的左半边,产出要求反而藏在实验 9-1 的说明里。 2. 六段里并行着三套互不对齐的分类:按任务分(容易验证的/没有标准答案 的)、按验证器分(结果/过程/质量)、按表9-1 分(前五项底线/后两项 服务质量)。而且「结果 vs 过程」本来就藏在第二段内部,读者读到图9-2 把它们拆成两层时必须回头重解析第二段。 3. 表9-1 的七个维度从未与三层对应,看起来像是又一份新清单。 重写为一条主线:评价一条轨迹=依次回答「是否办成了/是否以允许的方式办成/ 是否让用户舒服」三个问题,对应三层验证器。原有例子(删测试用例、七天退款 承诺、客服耐心与合规变通)全部保留,改挂到各自的层上;表9-1 显式映射回三层; 结尾补一段说明验证器输出的四项要求,把图9-2 右半边接进正文,并接上下一节的 四种更新方法。图9-2 前移到三层展开之前充当地图。 实验 9-1 未改:实验框按设计可独立阅读,与正文有重叠属预期。 顺带修掉 book-ar 表9-1 与其后段落之间缺失的空行(原本会被吸进表格)。 中文版与英文版定稿后,14 个译本同步。ru 与 ta 译本沿用各自现有的章节/图 编号(ru 作「рисунке 8-2」「шестой главе」,ta 作「ஆறாம் அத்தியாயம்」), 这两处编号偏移是既有问题,留待单独修。 Fixes #1031 Claude-Session: https://claude.ai/code/session_018iSm7JBWoy87hxSpUkJ49T Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> | 3 天前 | |
docs(ch9): 以三层验证为主线重写「从运行轨迹中获得学习信号」(15 语种) (#1059) 原节六段读起来跳跃,issue #1031 反映「有点看不懂在说什么」「缺乏上下文 联系」。加小标题只治标,真正的原因有三个: 1. 通篇没说「学习信号」到底长什么样。图9-2 右半边(任务结果/维度评价/ 证据位置/失败标签/证据不足可拒绝评分)才是本节的产出物,正文却只讲 了图的左半边,产出要求反而藏在实验 9-1 的说明里。 2. 六段里并行着三套互不对齐的分类:按任务分(容易验证的/没有标准答案 的)、按验证器分(结果/过程/质量)、按表9-1 分(前五项底线/后两项 服务质量)。而且「结果 vs 过程」本来就藏在第二段内部,读者读到图9-2 把它们拆成两层时必须回头重解析第二段。 3. 表9-1 的七个维度从未与三层对应,看起来像是又一份新清单。 重写为一条主线:评价一条轨迹=依次回答「是否办成了/是否以允许的方式办成/ 是否让用户舒服」三个问题,对应三层验证器。原有例子(删测试用例、七天退款 承诺、客服耐心与合规变通)全部保留,改挂到各自的层上;表9-1 显式映射回三层; 结尾补一段说明验证器输出的四项要求,把图9-2 右半边接进正文,并接上下一节的 四种更新方法。图9-2 前移到三层展开之前充当地图。 实验 9-1 未改:实验框按设计可独立阅读,与正文有重叠属预期。 顺带修掉 book-ar 表9-1 与其后段落之间缺失的空行(原本会被吸进表格)。 中文版与英文版定稿后,14 个译本同步。ru 与 ta 译本沿用各自现有的章节/图 编号(ru 作「рисунке 8-2」「шестой главе」,ta 作「ஆறாம் அத்தியாயம்」), 这两处编号偏移是既有问题,留待单独修。 Fixes #1031 Claude-Session: https://claude.ai/code/session_018iSm7JBWoy87hxSpUkJ49T Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> | 3 天前 | |
docs(ch9): 以三层验证为主线重写「从运行轨迹中获得学习信号」(15 语种) (#1059) 原节六段读起来跳跃,issue #1031 反映「有点看不懂在说什么」「缺乏上下文 联系」。加小标题只治标,真正的原因有三个: 1. 通篇没说「学习信号」到底长什么样。图9-2 右半边(任务结果/维度评价/ 证据位置/失败标签/证据不足可拒绝评分)才是本节的产出物,正文却只讲 了图的左半边,产出要求反而藏在实验 9-1 的说明里。 2. 六段里并行着三套互不对齐的分类:按任务分(容易验证的/没有标准答案 的)、按验证器分(结果/过程/质量)、按表9-1 分(前五项底线/后两项 服务质量)。而且「结果 vs 过程」本来就藏在第二段内部,读者读到图9-2 把它们拆成两层时必须回头重解析第二段。 3. 表9-1 的七个维度从未与三层对应,看起来像是又一份新清单。 重写为一条主线:评价一条轨迹=依次回答「是否办成了/是否以允许的方式办成/ 是否让用户舒服」三个问题,对应三层验证器。原有例子(删测试用例、七天退款 承诺、客服耐心与合规变通)全部保留,改挂到各自的层上;表9-1 显式映射回三层; 结尾补一段说明验证器输出的四项要求,把图9-2 右半边接进正文,并接上下一节的 四种更新方法。图9-2 前移到三层展开之前充当地图。 实验 9-1 未改:实验框按设计可独立阅读,与正文有重叠属预期。 顺带修掉 book-ar 表9-1 与其后段落之间缺失的空行(原本会被吸进表格)。 中文版与英文版定稿后,14 个译本同步。ru 与 ta 译本沿用各自现有的章节/图 编号(ru 作「рисунке 8-2」「шестой главе」,ta 作「ஆறாம் அத்தியாயம்」), 这两处编号偏移是既有问题,留待单独修。 Fixes #1031 Claude-Session: https://claude.ai/code/session_018iSm7JBWoy87hxSpUkJ49T Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> | 3 天前 | |
docs(ch9): 以三层验证为主线重写「从运行轨迹中获得学习信号」(15 语种) (#1059) 原节六段读起来跳跃,issue #1031 反映「有点看不懂在说什么」「缺乏上下文 联系」。加小标题只治标,真正的原因有三个: 1. 通篇没说「学习信号」到底长什么样。图9-2 右半边(任务结果/维度评价/ 证据位置/失败标签/证据不足可拒绝评分)才是本节的产出物,正文却只讲 了图的左半边,产出要求反而藏在实验 9-1 的说明里。 2. 六段里并行着三套互不对齐的分类:按任务分(容易验证的/没有标准答案 的)、按验证器分(结果/过程/质量)、按表9-1 分(前五项底线/后两项 服务质量)。而且「结果 vs 过程」本来就藏在第二段内部,读者读到图9-2 把它们拆成两层时必须回头重解析第二段。 3. 表9-1 的七个维度从未与三层对应,看起来像是又一份新清单。 重写为一条主线:评价一条轨迹=依次回答「是否办成了/是否以允许的方式办成/ 是否让用户舒服」三个问题,对应三层验证器。原有例子(删测试用例、七天退款 承诺、客服耐心与合规变通)全部保留,改挂到各自的层上;表9-1 显式映射回三层; 结尾补一段说明验证器输出的四项要求,把图9-2 右半边接进正文,并接上下一节的 四种更新方法。图9-2 前移到三层展开之前充当地图。 实验 9-1 未改:实验框按设计可独立阅读,与正文有重叠属预期。 顺带修掉 book-ar 表9-1 与其后段落之间缺失的空行(原本会被吸进表格)。 中文版与英文版定稿后,14 个译本同步。ru 与 ta 译本沿用各自现有的章节/图 编号(ru 作「рисунке 8-2」「шестой главе」,ta 作「ஆறாம் அத்தியாயம்」), 这两处编号偏移是既有问题,留待单独修。 Fixes #1031 Claude-Session: https://claude.ai/code/session_018iSm7JBWoy87hxSpUkJ49T Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> | 3 天前 | |
docs(ch9): 以三层验证为主线重写「从运行轨迹中获得学习信号」(15 语种) (#1059) 原节六段读起来跳跃,issue #1031 反映「有点看不懂在说什么」「缺乏上下文 联系」。加小标题只治标,真正的原因有三个: 1. 通篇没说「学习信号」到底长什么样。图9-2 右半边(任务结果/维度评价/ 证据位置/失败标签/证据不足可拒绝评分)才是本节的产出物,正文却只讲 了图的左半边,产出要求反而藏在实验 9-1 的说明里。 2. 六段里并行着三套互不对齐的分类:按任务分(容易验证的/没有标准答案 的)、按验证器分(结果/过程/质量)、按表9-1 分(前五项底线/后两项 服务质量)。而且「结果 vs 过程」本来就藏在第二段内部,读者读到图9-2 把它们拆成两层时必须回头重解析第二段。 3. 表9-1 的七个维度从未与三层对应,看起来像是又一份新清单。 重写为一条主线:评价一条轨迹=依次回答「是否办成了/是否以允许的方式办成/ 是否让用户舒服」三个问题,对应三层验证器。原有例子(删测试用例、七天退款 承诺、客服耐心与合规变通)全部保留,改挂到各自的层上;表9-1 显式映射回三层; 结尾补一段说明验证器输出的四项要求,把图9-2 右半边接进正文,并接上下一节的 四种更新方法。图9-2 前移到三层展开之前充当地图。 实验 9-1 未改:实验框按设计可独立阅读,与正文有重叠属预期。 顺带修掉 book-ar 表9-1 与其后段落之间缺失的空行(原本会被吸进表格)。 中文版与英文版定稿后,14 个译本同步。ru 与 ta 译本沿用各自现有的章节/图 编号(ru 作「рисунке 8-2」「шестой главе」,ta 作「ஆறாம் அத்தியாயம்」), 这两处编号偏移是既有问题,留待单独修。 Fixes #1031 Claude-Session: https://claude.ai/code/session_018iSm7JBWoy87hxSpUkJ49T Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> | 3 天前 | |
docs(ch9): 以三层验证为主线重写「从运行轨迹中获得学习信号」(15 语种) (#1059) 原节六段读起来跳跃,issue #1031 反映「有点看不懂在说什么」「缺乏上下文 联系」。加小标题只治标,真正的原因有三个: 1. 通篇没说「学习信号」到底长什么样。图9-2 右半边(任务结果/维度评价/ 证据位置/失败标签/证据不足可拒绝评分)才是本节的产出物,正文却只讲 了图的左半边,产出要求反而藏在实验 9-1 的说明里。 2. 六段里并行着三套互不对齐的分类:按任务分(容易验证的/没有标准答案 的)、按验证器分(结果/过程/质量)、按表9-1 分(前五项底线/后两项 服务质量)。而且「结果 vs 过程」本来就藏在第二段内部,读者读到图9-2 把它们拆成两层时必须回头重解析第二段。 3. 表9-1 的七个维度从未与三层对应,看起来像是又一份新清单。 重写为一条主线:评价一条轨迹=依次回答「是否办成了/是否以允许的方式办成/ 是否让用户舒服」三个问题,对应三层验证器。原有例子(删测试用例、七天退款 承诺、客服耐心与合规变通)全部保留,改挂到各自的层上;表9-1 显式映射回三层; 结尾补一段说明验证器输出的四项要求,把图9-2 右半边接进正文,并接上下一节的 四种更新方法。图9-2 前移到三层展开之前充当地图。 实验 9-1 未改:实验框按设计可独立阅读,与正文有重叠属预期。 顺带修掉 book-ar 表9-1 与其后段落之间缺失的空行(原本会被吸进表格)。 中文版与英文版定稿后,14 个译本同步。ru 与 ta 译本沿用各自现有的章节/图 编号(ru 作「рисунке 8-2」「шестой главе」,ta 作「ஆறாம் அத்தியாயம்」), 这两处编号偏移是既有问题,留待单独修。 Fixes #1031 Claude-Session: https://claude.ai/code/session_018iSm7JBWoy87hxSpUkJ49T Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> | 3 天前 | |
docs(ch9): 以三层验证为主线重写「从运行轨迹中获得学习信号」(15 语种) (#1059) 原节六段读起来跳跃,issue #1031 反映「有点看不懂在说什么」「缺乏上下文 联系」。加小标题只治标,真正的原因有三个: 1. 通篇没说「学习信号」到底长什么样。图9-2 右半边(任务结果/维度评价/ 证据位置/失败标签/证据不足可拒绝评分)才是本节的产出物,正文却只讲 了图的左半边,产出要求反而藏在实验 9-1 的说明里。 2. 六段里并行着三套互不对齐的分类:按任务分(容易验证的/没有标准答案 的)、按验证器分(结果/过程/质量)、按表9-1 分(前五项底线/后两项 服务质量)。而且「结果 vs 过程」本来就藏在第二段内部,读者读到图9-2 把它们拆成两层时必须回头重解析第二段。 3. 表9-1 的七个维度从未与三层对应,看起来像是又一份新清单。 重写为一条主线:评价一条轨迹=依次回答「是否办成了/是否以允许的方式办成/ 是否让用户舒服」三个问题,对应三层验证器。原有例子(删测试用例、七天退款 承诺、客服耐心与合规变通)全部保留,改挂到各自的层上;表9-1 显式映射回三层; 结尾补一段说明验证器输出的四项要求,把图9-2 右半边接进正文,并接上下一节的 四种更新方法。图9-2 前移到三层展开之前充当地图。 实验 9-1 未改:实验框按设计可独立阅读,与正文有重叠属预期。 顺带修掉 book-ar 表9-1 与其后段落之间缺失的空行(原本会被吸进表格)。 中文版与英文版定稿后,14 个译本同步。ru 与 ta 译本沿用各自现有的章节/图 编号(ru 作「рисунке 8-2」「шестой главе」,ta 作「ஆறாம் அத்தியாயம்」), 这两处编号偏移是既有问题,留待单独修。 Fixes #1031 Claude-Session: https://claude.ai/code/session_018iSm7JBWoy87hxSpUkJ49T Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> | 3 天前 | |
docs(ch9): 以三层验证为主线重写「从运行轨迹中获得学习信号」(15 语种) (#1059) 原节六段读起来跳跃,issue #1031 反映「有点看不懂在说什么」「缺乏上下文 联系」。加小标题只治标,真正的原因有三个: 1. 通篇没说「学习信号」到底长什么样。图9-2 右半边(任务结果/维度评价/ 证据位置/失败标签/证据不足可拒绝评分)才是本节的产出物,正文却只讲 了图的左半边,产出要求反而藏在实验 9-1 的说明里。 2. 六段里并行着三套互不对齐的分类:按任务分(容易验证的/没有标准答案 的)、按验证器分(结果/过程/质量)、按表9-1 分(前五项底线/后两项 服务质量)。而且「结果 vs 过程」本来就藏在第二段内部,读者读到图9-2 把它们拆成两层时必须回头重解析第二段。 3. 表9-1 的七个维度从未与三层对应,看起来像是又一份新清单。 重写为一条主线:评价一条轨迹=依次回答「是否办成了/是否以允许的方式办成/ 是否让用户舒服」三个问题,对应三层验证器。原有例子(删测试用例、七天退款 承诺、客服耐心与合规变通)全部保留,改挂到各自的层上;表9-1 显式映射回三层; 结尾补一段说明验证器输出的四项要求,把图9-2 右半边接进正文,并接上下一节的 四种更新方法。图9-2 前移到三层展开之前充当地图。 实验 9-1 未改:实验框按设计可独立阅读,与正文有重叠属预期。 顺带修掉 book-ar 表9-1 与其后段落之间缺失的空行(原本会被吸进表格)。 中文版与英文版定稿后,14 个译本同步。ru 与 ta 译本沿用各自现有的章节/图 编号(ru 作「рисунке 8-2」「шестой главе」,ta 作「ஆறாம் அத்தியாயம்」), 这两处编号偏移是既有问题,留待单独修。 Fixes #1031 Claude-Session: https://claude.ai/code/session_018iSm7JBWoy87hxSpUkJ49T Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> | 3 天前 | |
fix(ch1): 实验 1-2 默认超时从 30 秒提到 180 秒,并区分速率限制与超时 (#1058) issue #1032 里三次运行有两次以 "Request timed out" 收尾。根因是 Config.SEARCH_TIMEOUT 默认 30 秒,并被当作 OpenAI 客户端的整体 timeout: - kimi-k3 以 reasoning_effort=max、max_tokens=32768 运行,单次 completion 常需 1-3 分钟。本目录保留的真实运行证据里就有 161 秒、121 秒、64 秒、 41 秒的 chat completion(validation/real_20260729T163003Z 等)。 - run_experiment_1_2.py 的 --timeout 默认是 180 秒,所以验收脚本跑得通, 而 README 让读者用的 main.py 交互模式跑不通——两条入口配置不一致。 - 429 会被 SDK 自动重试,重试把 30 秒预算耗完后,最终抛出的是 APITimeoutError,读者只看到 "Request timed out",看不出真正原因是限流。 改动: 1. Config.SEARCH_TIMEOUT 默认 30 → 180,与 run_experiment_1_2.py 对齐。 2. 新增 _error_hint():速率限制直说是限流;超时则报出超时预算、说明 kimi-k3 单次调用的量级,并提示去日志里查 429。 3. README(中英)配置表与注意事项、env.example 同步;补 4 个单元测试。 Fixes #1032 Claude-Session: https://claude.ai/code/session_018iSm7JBWoy87hxSpUkJ49T Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> | 3 天前 | |
docs(ch10): 从章节 README 移除中文独有的外部复现锚点小节 (#963) 与 #960 同样处理。第 10 章中文 README 有一整节「实验 10-3 / 10-5 外部复现 锚点」(42 行)以及其前的一行编号说明,12 个译本都没有;中文版因此是 76 行 4 节,译本是 33-34 行 3 节。这些属于外部仓库的复现操作与证据细节,不适合放在 章节索引层面的 README,按作者要求删除,而不是翻译到 12 个语言。 删除内容: - 第 26 行「章节、项目入口和保存的验收目录均使用当前编号;重编号不改变外部 源码的固定提交和原始模型回执。」 - 整节「实验 10-3 / 10-5 外部复现锚点」:不 vendoring 说明与 caller 偏差记录、 固定提交表(TalkAct 7d70007…、generative_agents fe05a71…)、clone 与 rev-parse 校验的 bash 块、TalkAct Python 3.12 环境与 run_bench 调用的 bash 块、Generative Agents Python 3.9.12 环境说明、并发拓扑证据段。 内容未从仓库消失,删除前逐项核对了留存位置: - 两个固定 SHA 的 clone 与校验命令在根 README 的「附录 · 外部仓库获取」中; - TalkAct 的固定提交、Python 3.12.11、Playwright、Gemini 凭据返回 400 API_KEY_INVALID 因而改用 CUV_USER_MODEL=claude-sonnet-4-5-20250929 的 偏差记录、run_bench 调用与可比性说明,均在 chapter10/talkact-reproduction/README.md; - 「39 次 fast→slow relay、33 次 slow→fast 事件、91 个延迟样本」在同一文件 第 71 行; - generative_agents 的固定提交与 detach checkout 在 chapter10/generative-agents/README.md。 改动后中文母版为 32 行 3 节,与 12 个译本的小节结构一致。 校验:chapter10 无失效相对链接;pytest test_chapter_numbering_consistency / test_site_i18n / test_docs_experiment_status_links / test_build_site_assets / test_epub_external_links 通过。 Claude-Session: https://claude.ai/code/session_012a9XZi352t2qxfPHQN8f7n Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> | 16 天前 | |
fix(ch2,ch3): 统一适配新版 ollama 的 client.list() 返回类型 (#1047) #1041 的后续: 1. 清理 #1041 留下的注释掉的旧代码和行尾空格。 2. 改用 client.list()["models"] 下标访问而非 .models 属性访问。 ListResponse 继承自 SubscriptableBaseModel,两种写法对新版都成立, 但下标写法对旧版返回 dict 的情况同样成立,兼容性更好。 3. 补上 #1041 漏掉的两处相同问题: - chapter2/local_llm_serving/demo_streaming.py 与 ollama_native.py 同样的 KeyError。 - chapter3/log-sanitization/agent.py 靠 isinstance(models, dict) 分支判断, 新版 ListResponse 既不是 dict 也不是 list,会静默得到空列表, 导致每次启动都重新 pull 模型。 已在 ollama 0.5.1 上验证新旧两种返回值形态都能正确解析。 Claude-Session: https://claude.ai/code/session_01D8yPLHf3N9aP8nKAqFXL6S Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> | 5 天前 | |
fix(ch2,ch3): 统一适配新版 ollama 的 client.list() 返回类型 (#1047) #1041 的后续: 1. 清理 #1041 留下的注释掉的旧代码和行尾空格。 2. 改用 client.list()["models"] 下标访问而非 .models 属性访问。 ListResponse 继承自 SubscriptableBaseModel,两种写法对新版都成立, 但下标写法对旧版返回 dict 的情况同样成立,兼容性更好。 3. 补上 #1041 漏掉的两处相同问题: - chapter2/local_llm_serving/demo_streaming.py 与 ollama_native.py 同样的 KeyError。 - chapter3/log-sanitization/agent.py 靠 isinstance(models, dict) 分支判断, 新版 ListResponse 既不是 dict 也不是 list,会静默得到空列表, 导致每次启动都重新 pull 模型。 已在 ollama 0.5.1 上验证新旧两种返回值形态都能正确解析。 Claude-Session: https://claude.ai/code/session_01D8yPLHf3N9aP8nKAqFXL6S Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> | 5 天前 | |
fix(ch4): 修复主动工具发现运行器的 MCP v2 迁移遗漏,并重跑实验 (#990) #630 把实验迁到 MCP SDK v2 时只覆盖了感知实验,主动工具发现的运行器被漏下, 仍在用 v1 的 serverInfo 属性——v2 已改名为 server_info。因此这个实验自那次 迁移起就完全跑不起来,这也正是它 ledger 里记录的哈希 ce9d6eda… 在运行目录中 对不上任何文件的原因:那份记录来自 v1 时代(server_version 1.26.0),之后再 没有人成功跑过。 - 运行器按仓库中已迁移运行器的同款防御写法修两处:serverInfo/server_info 与 isError/is_error 双兼容;顺带修正 VALIDATION_ROOT 仍指向 experiment_4_7 的 残留(磁盘上早已不是该名)。 - 重跑并记录为新的 canonical run rerun_20260825,12 项门禁全部通过, manifest 哈希 e5a70588… 可复验。ledger 与 latest.json 同步。 重跑复现了原始结论:两组均 3/3 完成、工具选择准确率均 100%,**准确率提升依然 没有出现**;主动发现在耗时与 schema 暴露上优势显著——每任务 system prompt 1,251 token 加全组 8,424 token 动态注入,对照组每任务 50,829 token; 783.442 秒对 3,056.294 秒(3.90×)。原始记录为 808.926 对 2,590.820 秒(3.20×)。 运行需要 OLLAMA_FLASH_ATTENTION=0:开启 flash attention 时,ollama 0.20.7 在 Metal 上预填充对照组约 5 万 token 的提示词会使 llama runner 崩溃(exit status 2)。 这只是运行时规避,实验参数一律未改——num_ctx 仍为 131072,127 个 schema、 50,597 token 全量注入,符合协议要求的下限。 ledger 顶部的失效哈希说明相应收敛为一条:6-1 邮箱实验的哈希仍然失效,其 Unipile 凭据至今返回 401,重跑无法解除阻塞,只能靠一次明确记录的重算来更正, 因此仍保留原值不动。 Claude-Session: https://claude.ai/code/session_01B1Zu35aad26ZyQbzyAvBJe Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> | 13 天前 | |
refactor(ch4,ch5): 六个实验改用共享 provider 注册表,删掉手抄的 gpt-5 改道 (#981) * refactor(ch4,ch5): 六个实验改用共享 provider 注册表,删掉手抄的 gpt-5 改道 #980 给 resolve_backend 加了 chosen_by_reader,用来区分「读者点名要 openai」 与「openai 只是实验的内置默认值」。第四、五章还有六个实验各自抄了一份 prefer_or + map_model_to_openrouter,这次一起收敛掉: chapter4/multimodal-agent、chapter5/{erp-agent,code-for-math, conversational-ui(agent.py 与 backend/main.py),paper-to-ppt,paper-to-video} 其中 chapter5/code-for-math 的那份是**死代码**:resolve_llm() 定义了却从未被 调用,build_client_and_model() 里没有任何 gpt-5 判断。也就是说它今天和 agent-skills-ppt 撞的是同一个坑——默认 gpt-5.6-luna + OPENAI_API_KEY 直连, 而它的 code 模式正是 function calling,必然 400。改用注册表后自动改道修好了。 共享侧 map_model_to_openrouter 补上各实验本地版本有、它却没有的三条规则: gemini* → google/*(缺了它,resolve_backend("gemini") 的 OpenRouter 兜底会把 OpenRouter 不认识的裸 id 发出去)、chatgpt*、以及不带连字符的 o1/o3/o4("o3" 本身就是合法 id)。 行为核对:写了一个 old-vs-new 的对照脚本,按 {无 key / 只有 OPENAI_API_KEY / 只有 OPENROUTER_API_KEY / 两者都有 / 各家直连 key} × {gpt-5.6-luna, gpt-4o, kimi-k3, gemini-3.5-flash, doubao-1.6} × {PPT_PROVIDER 五种} 逐一比对解析出的 (endpoint, key, model)。绝大多数格完全一致,差异只有四类,都是有意的: 1. 走 OpenRouter 且 id 映射不到时,旧代码一律换成 openai/gpt-5.6-luna,现在 按读者写的名字原样发出、由 OpenRouter 报错——注册表既有的策略:悄悄换成 别家的模型作答,比失败更糟。kimi-k3 则从「被换成 gpt-5.6-luna」变成正确的 moonshotai/kimi-k2.6。 2. 显式选了某家却没有它的 key 时,从 SystemExit 变成走 OpenRouter 通用兜底 (注册表第 3 步),与全书其它实验一致。 3. chapter4 的 gemini 模型在配了 GEMINI_API_KEY 时,不再被送去 api.openai.com(且带着 OpenAI 的 key),而是走 Google 的 OpenAI 兼容端点。 4. 报错时机/文案:缺 key 从 OpenAIError 变成注册表那条点名环境变量的 ValueError。 chapter4 例外——那里保留了原来的「不抛异常、让 API 调用去报错」路径,免得 打断它自己的降级逻辑。 CI:provider-adoption-tests 的 paths 与 matrix 扩到这五个 chapter5 实验(装 media 组,因为 paper-to-ppt/agents.py 与 paper-to-video/demo.py 在模块级 import PIL)。chapter4/multimodal-agent 不加进去:它的 test_extract_image_to_text 需要 至少一个真 key 才能过,把 key 清空时在 main 上也一样红,与路由无关。 本地:六个实验各自的测试 + tests/test_providers.py(新增 5 例)全过;上面那个 对照脚本的每一格差异都逐条核对过。没有线上验证——两个 key 都没额度。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TKUAoLDhVDcw4e24yaJJra * ci: 给 chapter5 两个实验补上收集期就需要的依赖 provider-adoption-tests 新加的 code-for-math 与 paper-to-ppt 在 CI 上收集失败: build_aime_2024.py 需要 pyarrow、paper_source.py 需要 fitz,而这两个模块都被 测试直接 import,所以缺了它们连 collection 都过不去(本地有装,故未暴露)。 两者都写在各自的 requirements.txt 里,按本 workflow 既有的做法在这里点名安装, 而不是扩进 pyproject 的能力组——保持 CI 契约可见。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TKUAoLDhVDcw4e24yaJJra --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> | 13 天前 | |
docs(ch4): 实验编号、目录名与交叉引用对齐新的阅读顺序 (#987) * docs(ch4): 实验编号、目录名与交叉引用全部对齐新的阅读顺序 第四章把「工具太多怎么办」移到三类工具之前后,实验的阅读顺序变了: 主动工具发现 4-5→4-1,感知 4-1→4-2,多模态 4-2→4-3,执行 4-3→4-4, 协作 4-4→4-5。本 PR 把正文之外的一切跟着改齐。 正文与文档 - book/chapter2.md 指向第四章的交叉引用改名为「工具太多怎么办」一节 - chapter4/README.md 配套项目表按新顺序重排重编号 - 五个实验目录各自的 README(中英双语段落) - docs/EXPERIMENT_STATUS.md、slides/lesson-12.md 代码与目录 - 运行器与测试文件改名:perception 的 run/test/test_real_evidence 4_1→4_2, execution 的 run 4_3→4_4,collaboration 的 run/test_run/validate 4_4→4_5 - validation 目录改名:discovery 4_5→4_1、perception 4_1→4_2、 execution 4_3→4_4、collaboration 4_4→4_5 - 源码内的路径常量、campaign 标识、Docker 容器名 exp4-3→exp4-4 顺带修一个真 bug:active-tool-discovery 的源码里编号停留在拆分第六章之前的 4-7,VALIDATION_ROOT 指向 experiment_4_7,而磁盘上的目录早已是 4_5——今天跑 一次会另建一个目录。现已统一到 4-1。 EXPERIMENT_LEDGER - ch4 ledger 重排重编号;原先残留的 4-5/4-6 两行(agent-with-event-trigger、 async-agent)早在拆分第六章时就搬走了,移出并新建 chapter6/EXPERIMENT_LEDGER.md 承接,编号改为 6-1/6-2 - 顶部新增说明:目录改名只动目录名,封存的 manifest 与 receipts 字节未变, 因此每个哈希仍可对其原文件复验;改名前写下的 receipts 仍引用旧路径与旧编号, 那是运行当时的真实记录,刻意不改写 两处既有的哈希失效,只标注不代填 - 4-1(主动工具发现)记录的 ce9d6eda… 在其 canonical 运行目录里对不上任何文件 - 搬去第六章的邮箱实验,manifest 的 experiment 字段被改标为 6-1 从而改变了文件, 但 ch4 ledger 与 chapter6/.../latest.json 都仍记着改标前的 3f689dfe…, 实际已是 5b8befd0… 两者都早于本次改动。直接写上新哈希等于把一次没有说明的改动洗白,因此保留原值 并在 ledger 中写明,留待重跑或明确记录的重算。 校验:源码与文档中已无旧编号残留;封存证据零修改(git 全为 R 改名); 四个仍然有效的 ch4 哈希与 6-2 的哈希改名后复验通过;改名后的运行器均通过 py_compile;图 fig4-1..4-4 按阅读顺序递增,无需改名,无孤儿文件。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B1Zu35aad26ZyQbzyAvBJe * docs(ch4): 12 个翻译版 README 的实验表同步重排重编号 上一个提交只改了 chapter4/README.md,11 个带编号的翻译版(ar/en/es/hu/id/ja/ ko/ru/ta/vi/zh-TW)漏了;README.tr.md 的表中没有编号,但行序同样按阅读顺序 重排。行内译文一字未动,只动编号与行序。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B1Zu35aad26ZyQbzyAvBJe --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> | 13 天前 | |
fix(i18n): 修复土耳其语第七章 README 的项目数与实验编号 (#998) i18n consistency check 自 #996 起在 main 上失败: 「tr 项目数不一致(1 处):第7章 19≠20」。 土耳其语版把实验编号写在项目名后的括号里( (7-3)),而其它 12 个 语种放在表格第一列。#996 的重编号脚本按第一列匹配,因此整份文件 被跳过:既漏掉了新增的失败归因实验行,编号也停留在重编号之前。 - 补上遗漏的 android-world/failure-attribution (7-6) 行,项目数 由 19 恢复为 20,CI 恢复通过 - 按项目(而非按旧编号)重新对齐 10 处括号内编号,避免连锁改错: tts 7-6→7-5、轨迹前缀 7-5→7-7、Elo 7-7→7-8、行动阈值 7-8→7-9、 成本 7-9→7-10、基准 7-10→7-11、记忆选型 7-11→7-12、 android-world 7-12→7-13、OpenVLA 7-13→7-14、android_world 的 (7-2, 7-12)→(7-2, 7-13) - android-world 行状态 📖 改为 ✅,与中文版一致 已确认其余 12 个语种不使用括号式编号,不受此问题影响。 本地 scripts/check_i18n_consistency.py 通过。 Claude-Session: https://claude.ai/code/session_01B1Zu35aad26ZyQbzyAvBJe Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> | 13 天前 | |
fix(readme): 重新落地 #958/#959/#960 未进入 main 的改动 (#962) * fix(readme): 同步 34 个译本 README 停留在旧章号的实验编号 各章译本 README 的实验编号整体停留在重排前的章号:chapter7 用 6-K、 chapter8 用 7-K、chapter9 用 8-K,中文母版均已是正确编号。共 520 处, 覆盖第一列的编号单元格与正文里的「实验 X-Y」引用。 以各章中文 README 为基准。校验方式不是按章号加一,而是按项目名逐行比对 中文母版的编号,因为第 9 章有一批译本的表格本身与中文版不同步。 chapter7、chapter8:逐项目核对后确认是干净的「章号加一、序号不变」映射 (6-K→7-K、7-K→8-K),统一替换。chapter8 部分译本把 8-3、8-4 合并为一个 单元格「8-3, 8-4」,属于表格形态差异,不是编号错误,保持原样。 chapter9 分两种情况处理: - en、zh-TW 的行序与中文版完全一致(含中文版 9-4 的正文对照实验行), 按 8-K→9-K 统一替换。 - ar、es、hu、id、ja、ko、ru、ta、vi、tr 十个译本的表格缺少中文版 9-4 那 一行,且 harness-safety-gate 与 hermes-self-evolution、self-evolution-eval 的先后顺序也不同。若按章号加一,会得到「看起来是新编号、实际对错项目」的 结果,例如 browser-use-rpa 会变成 9-4(正确为 9-5)。因此改为按项目名取 中文母版编号:browser-use-rpa→9-5、self-modifying-agent→9-6、 harness-safety-gate→9-7、hermes-self-evolution→9-8、self-evolution-eval→9-9。 tr 的编号只出现在正文(「Deney 8-6」「(8-8)」),按同一规则处理。 两处刻意保留或改写: - chapter9 各译本「补充案例」表中的 prompt-distillation 行是跨章项目,中文版 就写作 8-8,不参与替换。 - ai-style-skill 在中文版与 en、zh-TW 中是不编号的补充案例( —),九个译本 仍把它当作编号实验 8-9。改为 —,未凭空指派新编号。 替换式用了 (?<!exp) 前瞻,避免误伤 expN-M- 形式的验收产物目录名;另已 确认 45-69%、Qwen2.5-32B 这类正文数字未被波及(仅所在行的行首编号变化)。 校验:按项目名比对,译本与中文母版的编号不一致数为 0;除刻意保留的跨章 8-8 外无残留旧章号;失效相对链接数未变化;pytest test_chapter_numbering_consistency / test_site_i18n / test_docs_experiment_status_links / test_build_site_assets 通过。 遗留(未在本 PR 处理):上述十个 chapter9 译本仍缺少中文版 9-4 的正文对照实验 一行,行序也与中文版不同;ai-style-skill 在它们那里仍位于配套实验表而非补充 案例表。这属于表格内容同步,需要另行处理。 本分支基于 #956。两者会改到同一批文件的同一些行(编号与 expN-M- 路径常在同 一行),故叠加提交,合并时请先合 #956。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012a9XZi352t2qxfPHQN8f7n (cherry picked from commit 1e475bfbb153d68be07f3668a037f71b9af544bb) * fix(ch9): 同步 10 个译本 README 与中文版的表格结构分歧 #958 只统一了实验编号,遗留三点结构分歧:译本缺少中文版 9-4 那一行、行序 与中文版不同、ai-style-skill 被放在配套实验表而非补充案例表。本次以中文 母版为准补齐,en 与 zh-TW 早已一致,未改动。 配套实验表:补入 9-4「正文对照实验」(🚧,无项目链接,各语言新译),并把 行序调整为 9-1 至 9-9。原有译文描述全部保留,只做重排,未重译。 ai-style-skill:中文版与 en、zh-TW 都把它列为补充案例(编号 —),十个 译本仍将其作为配套实验。移入补充案例表,沿用各译本已有的描述文字,由四列 格式转为三列(去掉类型列)。 hu、id 原本没有补充案例小节,新建该小节,并补上中文版已有而它们缺失的 prompt-distillation(跨章 8-8)与 self-evolving-tools 两行。 tr 的分歧最大:整张表没有编号列,且缺 trajectory-verifier 与 self-modifying-agent 两个项目,prompt-distillation、self-evolving-tools 混在配套实验表里。按中文版重建为「配套实验(带编号列)+ 补充案例」两张表, 新译 9-1、9-6 两行说明与离线入口段落,其余描述沿用原译文。harness-safety-gate 描述末尾的「(9-7)」在补上编号列后已冗余,一并去掉。 顺带修正 #958 引入的一处误伤:tr 版 browser-use-rpa 描述中的 「3-5 kat hız artışı」(3-5 倍加速)是速度倍数而非实验编号,被按行替换误改 为「9-5 kat」,已还原。该修正已 amend 进 #958 分支。 校验:13 个 chapter9 README(中文母版加 12 个译本)的配套实验表编号与项目 顺序、补充案例表三行内容全部一致;chapter9 无失效相对链接;pytest test_chapter_numbering_consistency / test_site_i18n / test_docs_experiment_status_links / test_build_site_assets 通过。 遗留:中文版主表后的「证据完整性边界」一段(9-6/9-9 的 SHA-256 sidecar、 9-1/9-2/9-3 可审计强度较低等说明)在全部 12 个译本中都缺失,包括 en 与 zh-TW。属于正文内容翻译,不在本次结构同步范围内。 本分支基于 #958。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012a9XZi352t2qxfPHQN8f7n (cherry picked from commit 06a50574870910cc8570df24da5bd3ca9c4a384a) * docs(ch9): 从章节 README 移除证据审计强度的细节表述 第 9 章 README 主表之后有两段中文独有、12 个译本均无的内容,属于实验证据 的审计强度细节,不适合放在章节索引层面的 README。按作者要求删除,而不是 翻译到 12 个语言。 删除「证据完整性边界」整段:9-6/9-9 的 canonical evidence 与 latest.json 各有独立 SHA-256 sidecar、9-5 对三个浏览器产物核对 hash、9-1/9-2/9-3 缺少 顶层 evidence/source hash manifest 因而可审计强度较低、不能把提交时存在的 JSON 等同于运行时源码已被固定。 第一段精简为「带项目链接的实验都保留无需 API Key 的离线入口和单元测试用于 预检。」,去掉两处审计表述:「表中 ✅ 来自各目录保存的真实模型、真实轨迹或 真实浏览器规范证据,不由离线机制演示代替」与「历史数值或定性主张未复现时, 证据按负结果如实记录」。原句「除仍处于设计阶段的实验 9-4 外」一并去掉—— 9-4 本就没有项目链接,新表述已自然排除它。 这些内容并未从仓库消失:SHA-256 快照比对、证据 manifest、可审计性说明都保留 在对应项目自己的 README(self-modifying-agent、harness-safety-gate、 browser-use-rpa、prompt-auto-optimization),那里才是记录证据强度的位置。 逐行的负结果也仍写在表内,例如 9-2 的说明保留了「知识文档组仅 25%、两控制组 均 50% 的负结果」。 改动后中文母版与 11 个译本在该位置都只有一段说明。es 版原本就没有这段,属 既有缺口,未在此处补。 校验:chapter9 无失效相对链接;pytest test_chapter_numbering_consistency / test_site_i18n / test_docs_experiment_status_links / test_build_site_assets 通过。 本分支基于 #959。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012a9XZi352t2qxfPHQN8f7n (cherry picked from commit b95061a1af87890eb4b12eee2889497f6e2f2bd5) --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> | 16 天前 | |
docs(ch9): 用 τ²-bench 实测替换 GAIA 经验迁移实验 (#1028) * exp(ch9): 用 τ²-bench 失败轨迹提炼转人工与工具使用规则,替换 GAIA 经验迁移实验 原实验 9-2(GAIA 经验文档迁移)的实测结果无法支撑正文主张:跨轨迹知识文档 的迁移成功率 25%,低于单轨迹摘要与不使用经验的 50%,负迁移率 25%;生成的 经验文档仅 1094 字节,「推荐策略」只有一条常识,「例外条件」为空。本实验 换用第七章已经解剖过的 τ²-bench telecom 环境重做。 设计: - 提炼集 telecom_small(20 条)与迁移集 telecom(114 条)在上游仓库中互不 相交,划分非事后选取 - 被测 Agent 用弱模型 doubao-seed-1-6-flash-250615(提炼集基线 1/20), 用户模拟器 doubao-seed-1-6-250615 三臂固定 - 规则由模型从 19 条失败轨迹提炼,非人工撰写;保存完整请求与回复回执 - 三臂只换 main_policy.md,每臂记录 sha256,运行后恢复原文件 迁移集 114 条结果: | 臂 | 通过率 | 转人工率 | 误调用户侧工具 | 空参调用 | 工具报错 | |---|---|---|---|---|---| | A 原始策略 | 12.3% | 91.2% | 1056 | 904 | 1392 | | B +v1 规则 | 17.5% | 100.0% | 221 | 256 | 303 | | C +v2 规则 | 19.3% | 97.4% | 293 | 174 | 254 | 配对比较(McNemar 精确检验,零回归):A→B 修好 6 条 p=0.031;A→C 修好 8 条 p=0.008;B→C 修好 2 条 p=0.50(不显著)。 v1 与 v2 的唯一差别是提炼时是否提供 Agent 与用户各自的工具清单。只看报错 文本时,提炼器学到的是「不要重试」;看到工具清单后,它学到「设备侧工具属于 用户,应引导用户执行」。 已知局限(写入 evidence.json):单次运行未做多种子重复;改进集中在 service_issue 一族(14/29 → 21/29),mms_issue 三臂均为 0/49;样本量仅 百余条,只够判断是否值得扩大测试。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Mw1Dd4Xnmuk7aW6WMYtDZX * docs(ch9): 用 τ²-bench 实测替换 GAIA 经验迁移实验 原实验 9-2(GAIA 经验文档迁移)的实现有问题:生成的经验文档只有一条常识性 "推荐策略"、例外条件为空,迁移对照因此得出知识文档组 25%、两个对照组各 50% 的负结果。GAIA 上的经验学习本身是有效做法,该结果反映的是实验实现缺陷,不 是方法失效,故整体替换。 新的实验 9-2 复用第七章已经解剖过的 τ²-bench telecom 环境: - 提炼集与迁移集在上游仓库中互不相交,提炼过程未见过迁移集任务 - 由模型(非人工)从 19 条失败轨迹归纳规则,追加到原始政策末尾 - 迁移集 114 条上通过率 12.3% → 19.3%,零回归 正文只在原则层面陈述做法与结果,并保留三点发现:提炼器学到什么取决于给它 看什么;模型总结的第一版规则可能把错误固化;被修好的往往是"该问用户却把 话说给了工具"这类朴素问题。 例子一改用 telecom,与第七章现在的解剖对象一致;航空客服作为同一做法的另 一个领域保留,实验 9-3 及其后编号不变。13 个译本的章节 README 同步更新。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Mw1Dd4Xnmuk7aW6WMYtDZX * docs(ch9): 删除 GAIA 实验目录,修正调用方判定 bug,重写例子一文风 三处改动: 一、删除 chapter9/gaia-experience(含 vendored 的 AWorld,919 个文件、46 MB)。 该实验的实现有缺陷,产出的经验文档只有一条常识性策略、例外条件为空,据此 得到的负结果不能代表 GAIA 经验学习本身;正文与 13 个译本 README 已不再引用。 二、修正统计脚本的调用方判定。原先用 requestor 字段区分工具调用是 Agent 还是用户发出的,但 τ²-bench 的消息里该字段恒为 None,导致用户在自己设备上 的合法调用被计成 Agent 越界。改用 role 判定后: | 臂 | 误调用户侧工具(修正前 → 后) | |---|---| | A 原始策略 | 1056 → 1049 | | B +v1 规则 | 221 → 205 | | C +v2 规则 | 293 → 163 | C 臂受影响最大,因为它成功委派给用户的次数最多。修正后 v2 在该指标上明显 优于 v1,与它学到了工具归属这一点一致。通过率与配对结论不受影响。 analyze.py 的工具清单改为与 build_evidence.py 共用 tool_inventory.txt, 避免两份硬编码分叉;顺带删除一段死代码。 三、重写例子一,去掉翻译腔与列举式脚手架(“关于……只有两句话”“比这个数字 更值得记住的是三点”“第一/第二/第三”),改为从具体现象起笔的写法;引号统一 为全书通用的中文双引号。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Mw1Dd4Xnmuk7aW6WMYtDZX * docs(ch9): 例子一改用书面语体例 上一版为消除翻译腔而过度口语化(规矩、没辙、了事、丢给、搞清楚、任务过了 等)。本次按第七章确立的体例改回书面语:小标题用名词短语,正文用完整书面 句式,同时不恢复被删除的翻译腔与列举式脚手架。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Mw1Dd4Xnmuk7aW6WMYtDZX --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> | 11 天前 | |
Revert "Merge pull request #12 from nsdevaraj/main" This reverts commit 927d1352b7517fa2c569623aba88f0e167558a3b, reversing changes made to 0ab5d1ea24ba499e6993a1824115f1957d329a69. | 1 个月前 | |
docs(readme): update Krill AI domain | 3 天前 | |
docs: add Brazilian Portuguese (pt-BR) translation (#1049) * docs: add Brazilian Portuguese (pt-BR) translation Add book-ptbr/ with complete translation of all 12 chapters (introduction, chapters 1-10, afterword) from the original Chinese with English reference. - 131 translation units, each structurally validated (fenced code, inline code, math, links, images, footnotes, pandoc attributes, heading levels) - Glossary of ~100 technical terms for consistent PT-BR terminology - build_pdf.sh adapted for .ptbr.md files with Portuguese language option - mkdocs.yml: add ptbr language with prefix/suffix/readmeSuffix - build_epub.sh: add ptbr edition with Portuguese metadata - .github/workflows/build-latest.yml: add book-ptbr to triggers, build matrix, and release upload steps - extras/site-nav-i18n.json: add ptbr navigation translations - README.md: add Portuguese (Brasil) to language switcher - README.ptbr.md: new Portuguese landing page with full TOC Translation by Leonardo F. Nascimento (LABHD-UFBA) with AI assistance (GPT-5.6 Sol), structural fidelity validation, and technical glossary. * fix(ptbr): complete edition assets and publication integration - add the full 133-image set and localized PDF helpers - add translated reference answers with structural validation - add the Portuguese site homepage and include book-ptbr in site assembly - localize cover, preamble, cross-references, and question callouts - align EPUB language metadata and remove unsupported experiment indexes - update root documentation and release links for the 15th edition * docs(ptbr): translate figure text in book-ptbr/images to Portuguese Translates the descriptive text inside the ~130 SVG diagrams from English to Brazilian Portuguese, following the same pattern already used by the other translated editions (book-es, book-ja, etc.): only the <text> content changes, layout/structure/coordinates untouched. Code identifiers, product/model names, and technical acronyms are kept in their original form. * docs(ptbr): credit the figure-translation contribution Adds Líbna Raffaely's credit for translating the SVG figure text, alongside Leonardo F. Nascimento's existing translation credit, in README.ptbr.md, index.ptbr.md, and the root README.md language list. Also updates index.ptbr.md's now-outdated note that figures kept their English labels. --------- Co-authored-by: Leonardo F. Nascimento <10790532+leofn@users.noreply.github.com> Co-authored-by: LibnaRaffaely <147429674+LibnaRaffaely@users.noreply.github.com> | 4 天前 | |
perf(site): split the search index per book edition (#821) * fix(figures): close Chinese numbering gaps and rebuild fig8-1 The Chinese source had reader-visible figure numbering gaps left behind by earlier content removals, and the caption number no longer matched the filename in two chapters. - ch5: restore the 图5-4 embed dropped by d39b1d74 while its prose reference survived, closing the 5-3 -> 5-5 gap. - ch7: retire the two figures the chapter dropped to descriptive names and shift fig7-18/19/20 down so caption number == filename again. - ch10: renumber 10-3..10-13 to 10-2..10-11 across all 13 editions, closing the gaps at 10-2 and 10-10; retire the two removed figures to descriptive names. Drop the dangling "Figure 10-10" reference in the English edition. - Rebuild fig8-1 for the 11 editions still shipping the pre-04c0ed70 artwork. The Chinese source now has gapless, filename-aligned numbering in every chapter with no dangling cross-references. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * perf(site): split the search index per book edition MkDocs' search plugin emits one search_index.json for the whole build. With 13 editions plus the ~94 companion-experiment pages in a single build that file had reached 55 MB, and Material fetches it in full the first time a reader opens search — so everyone downloaded the prose of 12 editions they cannot read. Split it into one file per edition. Each keeps the shared, language-agnostic experiment pages, so search from any edition still reaches the experiments exactly as before; only the other editions' prose is dropped. 55 MB -> 12-15 MB per edition (measured on the current build) scripts/split_search_index.py runs after the search plugin (MkDocs appends hooks: to the plugin list) and rewrites search/ into: search/search_index.json default edition + shared pages search/search_index.<slug>.json one per edition, slug = URL directory Keeping the default edition at the canonical filename means a client that never runs the router — or a stale cached page — degrades to today's behaviour instead of losing search. extras/search-index-router.js picks the matching file in the browser. Material builds the index URL as new URL("search/search_index.json", config.base) and requests it over XMLHttpRequest during bundle.js init; there is no config seam for the path, and extra_javascript loads after bundle.js, so overrides/main.html injects the router in the config block that base.html renders immediately before the bundle. Cross-edition navigation already forces a full reload (lang-switcher.js), so an instant-navigation page swap can never leave a reader on an index for the wrong edition. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> | 25 天前 | |
Update star history chart [skip ci] | 2 天前 | |
docs(ch4): 实验编号、目录名与交叉引用对齐新的阅读顺序 (#987) * docs(ch4): 实验编号、目录名与交叉引用全部对齐新的阅读顺序 第四章把「工具太多怎么办」移到三类工具之前后,实验的阅读顺序变了: 主动工具发现 4-5→4-1,感知 4-1→4-2,多模态 4-2→4-3,执行 4-3→4-4, 协作 4-4→4-5。本 PR 把正文之外的一切跟着改齐。 正文与文档 - book/chapter2.md 指向第四章的交叉引用改名为「工具太多怎么办」一节 - chapter4/README.md 配套项目表按新顺序重排重编号 - 五个实验目录各自的 README(中英双语段落) - docs/EXPERIMENT_STATUS.md、slides/lesson-12.md 代码与目录 - 运行器与测试文件改名:perception 的 run/test/test_real_evidence 4_1→4_2, execution 的 run 4_3→4_4,collaboration 的 run/test_run/validate 4_4→4_5 - validation 目录改名:discovery 4_5→4_1、perception 4_1→4_2、 execution 4_3→4_4、collaboration 4_4→4_5 - 源码内的路径常量、campaign 标识、Docker 容器名 exp4-3→exp4-4 顺带修一个真 bug:active-tool-discovery 的源码里编号停留在拆分第六章之前的 4-7,VALIDATION_ROOT 指向 experiment_4_7,而磁盘上的目录早已是 4_5——今天跑 一次会另建一个目录。现已统一到 4-1。 EXPERIMENT_LEDGER - ch4 ledger 重排重编号;原先残留的 4-5/4-6 两行(agent-with-event-trigger、 async-agent)早在拆分第六章时就搬走了,移出并新建 chapter6/EXPERIMENT_LEDGER.md 承接,编号改为 6-1/6-2 - 顶部新增说明:目录改名只动目录名,封存的 manifest 与 receipts 字节未变, 因此每个哈希仍可对其原文件复验;改名前写下的 receipts 仍引用旧路径与旧编号, 那是运行当时的真实记录,刻意不改写 两处既有的哈希失效,只标注不代填 - 4-1(主动工具发现)记录的 ce9d6eda… 在其 canonical 运行目录里对不上任何文件 - 搬去第六章的邮箱实验,manifest 的 experiment 字段被改标为 6-1 从而改变了文件, 但 ch4 ledger 与 chapter6/.../latest.json 都仍记着改标前的 3f689dfe…, 实际已是 5b8befd0… 两者都早于本次改动。直接写上新哈希等于把一次没有说明的改动洗白,因此保留原值 并在 ledger 中写明,留待重跑或明确记录的重算。 校验:源码与文档中已无旧编号残留;封存证据零修改(git 全为 R 改名); 四个仍然有效的 ch4 哈希与 6-2 的哈希改名后复验通过;改名后的运行器均通过 py_compile;图 fig4-1..4-4 按阅读顺序递增,无需改名,无孤儿文件。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B1Zu35aad26ZyQbzyAvBJe * docs(ch4): 12 个翻译版 README 的实验表同步重排重编号 上一个提交只改了 chapter4/README.md,11 个带编号的翻译版(ar/en/es/hu/id/ja/ ko/ru/ta/vi/zh-TW)漏了;README.tr.md 的表中没有编号,但行序同样按阅读顺序 重排。行内译文一字未动,只动编号与行序。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B1Zu35aad26ZyQbzyAvBJe --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com> | 13 天前 | |
feat(providers): add Krill AI gateway (#1062) | 3 天前 | |
| 1 个月前 | ||
feat(providers): add Krill AI gateway (#1062) | 3 天前 | |
docs(book): reorganize chapters for version 2.0 (#909) | 21 天前 | |
Merge upstream main into Hungarian translation # Conflicts: # .github/workflows/build-latest.yml # EPUB.md # README.md # build_epub.sh # scripts/build_site.sh | 1 个月前 | |
采用 Apache License 2.0 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PsE5hToFrvVx4qaPhTuptQ | 1 个月前 | |
fix(i18n): use shortest BCP 47 locale tags and add redirect stubs - Simplify region subtags: en-US -> en, ta-IN -> ta, vi-VN -> vi (zh-CN/zh-TW keep region subtags to disambiguate the two Chinese variants) - Add redirect stubs at the old locations (root README.<lang>.md, docs/LEARNING*.md) so existing external links don't 404 - Remove stray blank line in docs/zh-TW/README.md | 1 个月前 | |
feat(i18n): add full Spanish (Español) translation for book, docs, and navigation | 1 个月前 | |
docs(readme): add Português (Brasil) to language indexes in all translations (#1051) Follow-up to #1049: append the pt-BR edition to the language switcher line, the translations badge (14 -> 15), and the language-count table row in the 13 localized docs/*/README.md files and README.he.md, matching the pattern used for the Hebrew edition in #924. | 4 天前 | |
docs(ja): add Japanese locale (#84) * docs: add Japanese (ja) locale - mkdocs.yml / lang-switcher.js / build_site.sh: register ja (book-ja/, suffix .ja) - docs/ja/README.md, docs/ja/LEARNING.md + root move-stubs (README.ja.md, docs/LEARNING.ja.md) - Update language switchers, e-book lists and language counts to 6 across all main READMEs and index.md - chapter1-10/README.ja.md (project counts aligned with the Chinese base) - book-ja/: introduction and afterword translated; figures reused from book-en check_i18n_consistency.py passes (6/6). build_epub.sh / build-latest.yml wiring deferred until the 10 chapter bodies and PDF pipeline are ready. * docs(ja): translate chapter bodies (chapter1-10) Translate the full text of all 10 chapters from the Chinese source into book-ja/chapter1.ja.md … chapter10.ja.md (敬体). Structure verified against the source: image references, footnote definitions, headings, tables, code blocks and ★ difficulty ratings preserved; captions rendered as 図X-Y; 实验→実験, 思考题→演習問題; acronyms/product/model names kept in original form. * docs(ja): localize script-generated figures (ch1-5, 8) Add Japanese figure-generation scripts (svg_lib.py + gen_ch{1,2,3,4,5,8}_figs.py, adapted from book-en with display text translated to Japanese) and regenerate their SVGs under book-ja/images/. Code identifiers, coordinates, colors, model/ product names and acronyms are kept verbatim; only human-readable labels, titles, captions and annotations are translated. 63 figures localized. Hand-authored SVGs without a generator (ch6/7/9/10 and a few in ch1-3) still carry English text and will be localized separately. * docs(ja): localize hand-authored figures (ch0/1/2/3/6/7/9/10) Translate the display text of the hand-authored SVG figures that have no generator script (chapter maps, ch6/7/9/10 diagrams, and the remaining figures in ch1-3) from English to Japanese, editing the <text>/<tspan> content in place. Attributes, coordinates, structure, code/tool identifiers, formulas, model/product names and acronyms are preserved. All 135 book-ja figures now render Japanese text and parse as well-formed XML. * docs(ja): add PDF/EPUB build assets for book-ja (build_epub ja case) Add book-ja LaTeX/build assets adapted from book-zhtw: - build_pdf.sh (chapters .ja, ja output name, Japanese title) - preamble.tex (CJK fonts → Hiragino / Noto Serif|Sans CJK JP) - cover.tex (Japanese cover title/subtitle) - crossref.lua (図N-M / 第N章 in-text links) and experiment_box.lua (実験 / 演習問題 boxes) - build_epub.sh: add a ja case (usable via ./build_epub.sh ja) NOT wired into build_epub.sh all or .github/workflows/build-latest.yml on purpose: the Japanese PDF/EPUB build is UNVALIDATED (no LaTeX toolchain here) and enabling it in the release CI before a successful xelatex run could break the main build for the other languages. Enable those after validation. * ci(ja): wire Japanese PDF/EPUB into build-latest (non-fatal / WIP) Add the Japanese edition to the rolling-latest build in a way that CANNOT break the release for the other languages while the ja build is still unvalidated: - add book-ja/** to the trigger paths - install Japanese Noto fonts in a continue-on-error step - build the ja PDF and ja EPUB in separate continue-on-error steps (ja is intentionally NOT added to build_epub.sh all) - copy the ja artifacts only if they were produced (|| echo … skipping) Once cd book-ja && bash build_pdf.sh is confirmed to work in a real xelatex environment, these steps can be promoted to fatal. * fix(ja): point chapter links to the .ja.md files docs/ja/README.md and chapter{1..10}/README.ja.md linked to book-ja/chapterN.md, but the Japanese chapter files carry the .ja suffix (book-ja/chapterN.ja.md) — so every "read chapter" link 404'd. Fix them to match the .ja naming (the same pattern book-vi/book-ta already use for their suffixed editions). * docs(ja): list Japanese in EPUB build docs (EPUB.md) * docs(ja): use the Japanese core formula in chapter1 README Match the rest of the ja edition (docs/ja, lang-switcher, book body): Agent = LLM + コンテキスト + ツール (was: LLM + Context + Tools). * fix(ja,pdf): bundle PNG figures and use a full-coverage CJK-JP font Two issues surfaced by the first ja PDF build (which otherwise succeeded — 356 pages): - The 3 raster figures (n8n-workflow.png, fig2-7.png, attention-visualization.png) were skipped by a global *.png gitignore, so pandoc could not fetch them. Force-add them (book-en tracks the same files). - Hiragino Mincho ProN lacks Simplified-Chinese glyphs that legitimately appear in the book (verbatim code comments and Chinese product names like 硅基流动 / SiliconFlow), producing "Missing character" tofu. Prefer Noto Serif/Sans CJK JP (full CJK coverage; confirmed installed on the CI runner), falling back to Hiragino only if Noto is absent. - Override the TOC label 目录 → 目次 (ElegantBook has no lang=jp). The remaining CI failure is only the "Upload" step (the fork has no latest release); it is unrelated to the ja build and does not affect the other languages. * docs(ja): translate reference answers (思考题参考答案.ja.md) Translate the reference answers to the chapters' thinking questions from the Chinese source. Gives ja parity with the zh/zh-TW editions and makes the language switcher's 演習問題の解答例 entry resolve. 敬体; glossary followed; code blocks and acronyms/model names kept verbatim. * fix(ja,pdf): render the — (U+2015) dash via the CJK fallback font The second ja PDF build (363 pages, all Simplified-Chinese and PNG issues gone) left one warning: 812× "Missing character U+2015 (―)". The horizontal bar is used throughout the translation as the Japanese dash 「――」 but is absent from the Latin body font (lmroman); route it to the CJK-capable fallback font (Noto Sans CJK JP), matching how ✓/✗/≈ and other symbols are already handled. --------- Co-authored-by: Bojie Li <bojieli@gmail.com> | 1 个月前 | |
docs(ko): add complete Korean edition | 1 个月前 | |
docs(readme): update Krill AI domain | 3 天前 | |
docs: add Brazilian Portuguese (pt-BR) translation (#1049) * docs: add Brazilian Portuguese (pt-BR) translation Add book-ptbr/ with complete translation of all 12 chapters (introduction, chapters 1-10, afterword) from the original Chinese with English reference. - 131 translation units, each structurally validated (fenced code, inline code, math, links, images, footnotes, pandoc attributes, heading levels) - Glossary of ~100 technical terms for consistent PT-BR terminology - build_pdf.sh adapted for .ptbr.md files with Portuguese language option - mkdocs.yml: add ptbr language with prefix/suffix/readmeSuffix - build_epub.sh: add ptbr edition with Portuguese metadata - .github/workflows/build-latest.yml: add book-ptbr to triggers, build matrix, and release upload steps - extras/site-nav-i18n.json: add ptbr navigation translations - README.md: add Portuguese (Brasil) to language switcher - README.ptbr.md: new Portuguese landing page with full TOC Translation by Leonardo F. Nascimento (LABHD-UFBA) with AI assistance (GPT-5.6 Sol), structural fidelity validation, and technical glossary. * fix(ptbr): complete edition assets and publication integration - add the full 133-image set and localized PDF helpers - add translated reference answers with structural validation - add the Portuguese site homepage and include book-ptbr in site assembly - localize cover, preamble, cross-references, and question callouts - align EPUB language metadata and remove unsupported experiment indexes - update root documentation and release links for the 15th edition * docs(ptbr): translate figure text in book-ptbr/images to Portuguese Translates the descriptive text inside the ~130 SVG diagrams from English to Brazilian Portuguese, following the same pattern already used by the other translated editions (book-es, book-ja, etc.): only the <text> content changes, layout/structure/coordinates untouched. Code identifiers, product/model names, and technical acronyms are kept in their original form. * docs(ptbr): credit the figure-translation contribution Adds Líbna Raffaely's credit for translating the SVG figure text, alongside Leonardo F. Nascimento's existing translation credit, in README.ptbr.md, index.ptbr.md, and the root README.md language list. Also updates index.ptbr.md's now-outdated note that figures kept their English labels. --------- Co-authored-by: Leonardo F. Nascimento <10790532+leofn@users.noreply.github.com> Co-authored-by: LibnaRaffaely <147429674+LibnaRaffaely@users.noreply.github.com> | 4 天前 | |
fix(i18n): use shortest BCP 47 locale tags and add redirect stubs - Simplify region subtags: en-US -> en, ta-IN -> ta, vi-VN -> vi (zh-CN/zh-TW keep region subtags to disambiguate the two Chinese variants) - Add redirect stubs at the old locations (root README.<lang>.md, docs/LEARNING*.md) so existing external links don't 404 - Remove stray blank line in docs/zh-TW/README.md | 1 个月前 | |
Merge current main into Turkish translation | 1 个月前 | |
fix(i18n): use shortest BCP 47 locale tags and add redirect stubs - Simplify region subtags: en-US -> en, ta-IN -> ta, vi-VN -> vi (zh-CN/zh-TW keep region subtags to disambiguate the two Chinese variants) - Add redirect stubs at the old locations (root README.<lang>.md, docs/LEARNING*.md) so existing external links don't 404 - Remove stray blank line in docs/zh-TW/README.md | 1 个月前 | |
docs(i18n): label zh-TW as 繁體中文(台灣) | 1 个月前 | |
docs: add Brazilian Portuguese (pt-BR) translation (#1049) * docs: add Brazilian Portuguese (pt-BR) translation Add book-ptbr/ with complete translation of all 12 chapters (introduction, chapters 1-10, afterword) from the original Chinese with English reference. - 131 translation units, each structurally validated (fenced code, inline code, math, links, images, footnotes, pandoc attributes, heading levels) - Glossary of ~100 technical terms for consistent PT-BR terminology - build_pdf.sh adapted for .ptbr.md files with Portuguese language option - mkdocs.yml: add ptbr language with prefix/suffix/readmeSuffix - build_epub.sh: add ptbr edition with Portuguese metadata - .github/workflows/build-latest.yml: add book-ptbr to triggers, build matrix, and release upload steps - extras/site-nav-i18n.json: add ptbr navigation translations - README.md: add Portuguese (Brasil) to language switcher - README.ptbr.md: new Portuguese landing page with full TOC Translation by Leonardo F. Nascimento (LABHD-UFBA) with AI assistance (GPT-5.6 Sol), structural fidelity validation, and technical glossary. * fix(ptbr): complete edition assets and publication integration - add the full 133-image set and localized PDF helpers - add translated reference answers with structural validation - add the Portuguese site homepage and include book-ptbr in site assembly - localize cover, preamble, cross-references, and question callouts - align EPUB language metadata and remove unsupported experiment indexes - update root documentation and release links for the 15th edition * docs(ptbr): translate figure text in book-ptbr/images to Portuguese Translates the descriptive text inside the ~130 SVG diagrams from English to Brazilian Portuguese, following the same pattern already used by the other translated editions (book-es, book-ja, etc.): only the <text> content changes, layout/structure/coordinates untouched. Code identifiers, product/model names, and technical acronyms are kept in their original form. * docs(ptbr): credit the figure-translation contribution Adds Líbna Raffaely's credit for translating the SVG figure text, alongside Leonardo F. Nascimento's existing translation credit, in README.ptbr.md, index.ptbr.md, and the root README.md language list. Also updates index.ptbr.md's now-outdated note that figures kept their English labels. --------- Co-authored-by: Leonardo F. Nascimento <10790532+leofn@users.noreply.github.com> Co-authored-by: LibnaRaffaely <147429674+LibnaRaffaely@users.noreply.github.com> | 4 天前 | |
feat(he): publish and integrate the Hebrew edition (#924) * fix(he): publish PDF and EPUB builds * docs(he): integrate Hebrew edition across the project | 19 天前 | |
fix(epub): externalize intra-book chapter links | 29 天前 | |
feat(he): publish and integrate the Hebrew edition (#924) * fix(he): publish PDF and EPUB builds * docs(he): integrate Hebrew edition across the project | 19 天前 | |
docs(site): include Português (Brasil) in homepage language tables (#1052) Follow-up to #1049: the site config (mkdocs.yml, site-nav-i18n.json, index.ptbr.md) already covers pt-BR, but the Chinese and Korean homepages still listed 14 languages and the Hebrew homepage still said 14 editions. - index.md, index.ko.md: add a Português (Brasil) column (community translation) to the multilingual reading table - index.he.md: 14 -> 15 editions in the language-switcher blurb | 4 天前 | |
docs(site): include Português (Brasil) in homepage language tables (#1052) Follow-up to #1049: the site config (mkdocs.yml, site-nav-i18n.json, index.ptbr.md) already covers pt-BR, but the Chinese and Korean homepages still listed 14 languages and the Hebrew homepage still said 14 editions. - index.md, index.ko.md: add a Português (Brasil) column (community translation) to the multilingual reading table - index.he.md: 14 -> 15 editions in the language-switcher blurb | 4 天前 | |
docs(site): include Português (Brasil) in homepage language tables (#1052) Follow-up to #1049: the site config (mkdocs.yml, site-nav-i18n.json, index.ptbr.md) already covers pt-BR, but the Chinese and Korean homepages still listed 14 languages and the Hebrew homepage still said 14 editions. - index.md, index.ko.md: add a Português (Brasil) column (community translation) to the multilingual reading table - index.he.md: 14 -> 15 editions in the language-switcher blurb | 4 天前 | |
docs: add Brazilian Portuguese (pt-BR) translation (#1049) * docs: add Brazilian Portuguese (pt-BR) translation Add book-ptbr/ with complete translation of all 12 chapters (introduction, chapters 1-10, afterword) from the original Chinese with English reference. - 131 translation units, each structurally validated (fenced code, inline code, math, links, images, footnotes, pandoc attributes, heading levels) - Glossary of ~100 technical terms for consistent PT-BR terminology - build_pdf.sh adapted for .ptbr.md files with Portuguese language option - mkdocs.yml: add ptbr language with prefix/suffix/readmeSuffix - build_epub.sh: add ptbr edition with Portuguese metadata - .github/workflows/build-latest.yml: add book-ptbr to triggers, build matrix, and release upload steps - extras/site-nav-i18n.json: add ptbr navigation translations - README.md: add Portuguese (Brasil) to language switcher - README.ptbr.md: new Portuguese landing page with full TOC Translation by Leonardo F. Nascimento (LABHD-UFBA) with AI assistance (GPT-5.6 Sol), structural fidelity validation, and technical glossary. * fix(ptbr): complete edition assets and publication integration - add the full 133-image set and localized PDF helpers - add translated reference answers with structural validation - add the Portuguese site homepage and include book-ptbr in site assembly - localize cover, preamble, cross-references, and question callouts - align EPUB language metadata and remove unsupported experiment indexes - update root documentation and release links for the 15th edition * docs(ptbr): translate figure text in book-ptbr/images to Portuguese Translates the descriptive text inside the ~130 SVG diagrams from English to Brazilian Portuguese, following the same pattern already used by the other translated editions (book-es, book-ja, etc.): only the <text> content changes, layout/structure/coordinates untouched. Code identifiers, product/model names, and technical acronyms are kept in their original form. * docs(ptbr): credit the figure-translation contribution Adds Líbna Raffaely's credit for translating the SVG figure text, alongside Leonardo F. Nascimento's existing translation credit, in README.ptbr.md, index.ptbr.md, and the root README.md language list. Also updates index.ptbr.md's now-outdated note that figures kept their English labels. --------- Co-authored-by: Leonardo F. Nascimento <10790532+leofn@users.noreply.github.com> Co-authored-by: LibnaRaffaely <147429674+LibnaRaffaely@users.noreply.github.com> | 4 天前 | |
docs: add Brazilian Portuguese (pt-BR) translation (#1049) * docs: add Brazilian Portuguese (pt-BR) translation Add book-ptbr/ with complete translation of all 12 chapters (introduction, chapters 1-10, afterword) from the original Chinese with English reference. - 131 translation units, each structurally validated (fenced code, inline code, math, links, images, footnotes, pandoc attributes, heading levels) - Glossary of ~100 technical terms for consistent PT-BR terminology - build_pdf.sh adapted for .ptbr.md files with Portuguese language option - mkdocs.yml: add ptbr language with prefix/suffix/readmeSuffix - build_epub.sh: add ptbr edition with Portuguese metadata - .github/workflows/build-latest.yml: add book-ptbr to triggers, build matrix, and release upload steps - extras/site-nav-i18n.json: add ptbr navigation translations - README.md: add Portuguese (Brasil) to language switcher - README.ptbr.md: new Portuguese landing page with full TOC Translation by Leonardo F. Nascimento (LABHD-UFBA) with AI assistance (GPT-5.6 Sol), structural fidelity validation, and technical glossary. * fix(ptbr): complete edition assets and publication integration - add the full 133-image set and localized PDF helpers - add translated reference answers with structural validation - add the Portuguese site homepage and include book-ptbr in site assembly - localize cover, preamble, cross-references, and question callouts - align EPUB language metadata and remove unsupported experiment indexes - update root documentation and release links for the 15th edition * docs(ptbr): translate figure text in book-ptbr/images to Portuguese Translates the descriptive text inside the ~130 SVG diagrams from English to Brazilian Portuguese, following the same pattern already used by the other translated editions (book-es, book-ja, etc.): only the <text> content changes, layout/structure/coordinates untouched. Code identifiers, product/model names, and technical acronyms are kept in their original form. * docs(ptbr): credit the figure-translation contribution Adds Líbna Raffaely's credit for translating the SVG figure text, alongside Leonardo F. Nascimento's existing translation credit, in README.ptbr.md, index.ptbr.md, and the root README.md language list. Also updates index.ptbr.md's now-outdated note that figures kept their English labels. --------- Co-authored-by: Leonardo F. Nascimento <10790532+leofn@users.noreply.github.com> Co-authored-by: LibnaRaffaely <147429674+LibnaRaffaely@users.noreply.github.com> | 4 天前 | |
fix(deps): use LiteLLM Windows wheels (#993) | 13 天前 | |
fix(docs): publish linked JSON evidence (#602) * fix(docs): publish linked JSON evidence * test: install Markdown for site asset tests * fix(docs): ignore links in fenced code blocks --------- Co-authored-by: Bojie Li <bojieli@gmail.com> | 1 个月前 | |
feat(site): Open Graph + Twitter Card meta, robots.txt (#290) Sharing any page from https://bojieli.github.io/ai-agent-book/ to WeChat / Twitter / Slack currently shows a bare URL — the site has 0 og:* or twitter:* meta tags (verified by curl-ing the production HTML). Two small changes fix that: 1. scripts/seo_meta.py (~40 lines): a MkDocs hook that injects og:type, og:site_name, og:title, og:description, og:url, og:locale, twitter:card, twitter:title, twitter:description into every page's <head>. Title and description come from page frontmatter / site config, so each page gets its own card. No image generation — Material's social plugin can do images but needs cairosvg and silently no-ops in some CI environments; this hook is deterministic. 2. robots.txt: explicit "allow all" + pointer to the auto-generated sitemap.xml. Without it, crawlers have to guess. build_site.sh copies robots.txt into _web/ (and the existing extension whitelist now allows *.txt). Verified locally: 9 og/twitter meta tags on the homepage (was 0), robots.txt served at the site root. | 1 个月前 | |
fix(deps): use LiteLLM Windows wheels (#993) | 13 天前 |
此檔案已移動
繁體中文(台灣) README 現在位於 docs/zh-TW/README.md。