← 返回 2026-04-17

不要检索,要导航:将企业知识蒸馏为可导航的智能体技能用于问答与检索增强生成 Don't Retrieve, Navigate: Distilling Enterprise Knowledge into Navigable Agent Skills for QA and RAG

Yiqun Sun, Pengfei Wei, Lawrence B. Hsieh 📅 2026-04-16 👍 7 2026-07-13 08:36
Anthropic Skills API RAG 企业知识库 层次化导航 智能体技能

把语料离线编译成层次化技能树,让LLM智能体主动浏览导航,取代被动的top-k检索。

前置知识

检索增强生成 (RAG)

RAG 把外部文档语料切成段落、用 embedding 模型索引,查询时取 top-k 相似段落塞进 LLM 上下文作为证据。Lewis 等人 2020 年提出后已成为企业问答、客服、合规等场景的主流范式。其核心假设是:单次检索的 top-k 段落足以回答用户问题,模型只需做『忠实于证据的生成』。

本文的工作起点就是 RAG 的这一范式:要批评它,先得理解它默认的『top-k 黑箱函数』接口是什么样子。

智能体技能 (Agent Skills) 与渐进披露 (Progressive Disclosure)

Anthropic Skills API 把技能定义为文件系统目录:含 SKILL.md 描述和可选脚本。运行时仅预加载元数据(<100 token),agent 选中后才把 SKILL.md 读入上下文,其余资源留盘。progressive disclosure 让技能库无限扩展而不爆窗口。

本文把原本用于程序性知识(教 agent 怎么做事)的 skill 范式,改造为信息性技能(让 agent 浏览一份语料包含什么),是整个框架的载体。

层次化聚类与递归摘要 (Hierarchical Clustering + Recursive Summarization)

RAPTOR 等工作使用的经典套路:先把所有文档/段落 embedding 出来,用 K-Means 或 GMM 在向量空间分组成簇,对每个簇用 LLM 生成概括性摘要,再把摘要向量重新嵌入再做上一层聚类,自底向上反复直到只剩 K 个根簇。每层都把『一组相似内容的浓缩描述』作为上层路由依据。

CORPUS2SKILL 的离线编译流水线就是这条 embed-cluster-summarize 循环的工程化,但产出不是向量索引而是文件系统目录。

K-Means 与软分配 (Soft Assignment)

K-Means 把每个样本硬分配到最近的一个质心所属簇。软分配指:当某样本的 top-1 与 top-2 质心余弦相似度差距低于阈值 τ 时,把它同时挂在次近的簇里作为『二级条目』,用 @see 桩指回主位置。本文用 τ=0.05 实现『跨簇可达性』,让一份讲两件事的文档能在两条路径下都被发现。

软分配是 CORPUS2SKILL 解决『跨主题文档』路由瓶颈的关键工程技巧。

Qwen3 Embedding 与 sentence-transformers

Qwen3-Embedding 是阿里通义 2025 年发布的句向量模型族,包含 0.6B 和 8B 两个规模,输出维度最高 4096。本文用 8B 版做离线语料和簇摘要的嵌入,用 0.6B 版做 dense baseline,是统一比较的合理选择。

理解本文需要知道离线嵌入和在线嵌入的算力差异——一个在 RTX 4090 上跑 20 分钟,一个在每次查询时实时算。

研究动机

传统 RAG 把 LLM 当作『top-k 段落的被动消费者』,存在三个结构性缺陷。第一,盲盒检索:模型只能看到取回的几个段落,看不到语料的全貌,不知道『还有哪些主题存在』、不知道『我以为最好的证据是否落在检索窗口内』,更没办法事先规划一条更彻底的搜索路径。第二,多主题查询的覆盖盲区:企业问答里大量问题横跨多个产品模块(如『如何用 Stripe 退款并同步到 QuickBooks』),top-5 段落几乎不可能同时命中两个主题的权威文档。第三,Agentic RAG 的随机性:ReAct/Toolformer 风格的 agent 虽然能多次检索,但每次查询都是『盲猜搜索词』,没有语料组织结构的引导,论文数据显示 Agentic 基线的 Faithfulnessgrd 只有 0.528、Hallucination 高达 50%,就是因为 agent 在多轮中积累了太多没有忠实于任何单篇证据的内容。RAPTOR/GraphRAG 这类层次化方法虽然做了组织,但仍然通过 embedding 相似度间接消费树,模型始终看不到目录本身。

本文的目标是本文要构造一个框架,使 LLM 在回答知识密集型查询时能『看见』整个语料的组织结构、能在多层次摘要之间主动下钻和回溯、能在不同分支之间横向跳转合成证据,同时把『建好的语料地图』做成可复用的离线产物。具体指标上,要在企业客服基准 WixQA 上同时拿下最优的 F1/BERTScore/Factuality/Context Recall/Context Precision,把 Agentic 基线的幻觉率从 50% 砍到个位数,并把单查询成本控制在可接受范围($0.153)。

与已有工作不同的是,本文抓住了被忽视的『语料导航性 (corpus navigability)』这一设计轴。已有工作要么只看 top-k 段落(BM25/Dense/Hybrid),要么用算法在树/图上固定遍历(RAPTOR/GraphRAG),要么用 agent 反复试错搜索(Agentic RAG),但都没把『语料本身组织成一棵 LLM 能浏览的目录』作为一级接口。CORPUS2SKILL 的独特切入是把 Anthropic 提出的程序性 skill 概念改造成信息性 skill——SKILL.md/INDEX.md 不再教 agent 怎么执行任务,而是充当『这个分支下面有什么』的路由决策点,从而让 progressive disclosure 天然适配 RAG 的层次化需求。

核心方法

CORPUS2SKILL 把『检索』这件事彻底重写为『浏览一个编译好的目录树』。直觉上,你可以把企业知识库想象成一本厚厚的产品手册,传统 RAG 相当于在书末索引里查关键词翻到对应页码,而 CORPUS2SKILL 相当于给你一份目录:你先看章节目录选一章,再看这一章的子目录选一节,再看这一节列出的文章标题挑一篇读,遇到不对的分支还能跳回上一层换个方向——而且目录本身就是用 LLM 写好的『这段内容是讲什么的』摘要,你不需要打开任何一篇文档就能决定往哪走。技术上分两阶段:离线编译阶段把 6,221 篇支持文档递归 K-Means 聚类、每层用 LLM 写摘要、最后物化成文件系统目录树(SKILL.md/INDEX.md);在线服务阶段把目录树通过 Anthropic Skills API 喂给 LLM agent,agent 用两个工具(code_execution 浏览目录、get_document 拉全文)走完『鸟瞰 → 钻取 → 拉文 → 综合』四步。整个体系在服务时不需要任何向量数据库或检索基础设施——LLM 就是唯一的运行时。

最本质的创新是把『语料的组织结构』从检索管线背后的隐藏资产变成了 LLM 直接消费的一级接口。在 RAPTOR 里,层次结构只是把段落分桶,模型依然用 embedding 找桶;在 CORPUS2SKILL 里,目录本身就是 LLM 的输入——SKILL.md 是一段 LLM 写好的、专门给 agent 看的『路线决策文本』,agent 读完后能『推理』该走哪个分支,再决定要不要花 token 打开文档。这与 Agentic RAG 的『盲猜关键词再检索』形成鲜明对比:CORPUS2SKILL 的 agent 拥有鸟瞰视图,能 backtrack(放弃不产出的分支)和 cross-branch synthesis(在多个子组合成证据),后两个能力在传统 RAG 里根本不存在,因为模型从来没见过树长什么样。另一个微妙的关键点是『信息性技能』的复用:同一套 progressive disclosure 接口(description → SKILL.md → INDEX.md → doc)原本是为『教 agent 怎么用工具』设计的,本文把它映射到『教 agent 一个语料里有什么』,几乎零额外基础设施就拿到了『无限扩展的层次化检索』能力。

方法步骤详情

离线编译阶段 (Compile Phase) 共五步。第一步是文档表示:对 .md/.txt/.json 等原始文档做内容哈希得到 doc_id,用 Claude Haiku 4.5 对每篇文档生成 JSON 摘要卡(title、one_line、≤4 个 distinctive phrases,≤250 token 异步并发调用 20 路),把摘要卡和截断的原文拼成一条字符串用 Qwen3-Embedding-8B 嵌入为 4096 维向量。第二步是建树:在当前层用 K-Means(L2 归一化、分支比 p=10、目标簇数 ⌈n/p⌉)分簇,对 top-1 vs top-2 余弦相似度差距 <τ=0.05 的文档做软分配(保留主簇同时在次簇 INDEX.md 加 @see 桩,本文产生 2,068 条二级指针),再用 Claude Sonnet 4.6 对每簇生成 2-3 句路由向摘要。第三步是验证-重分:把同层所有 sibling 摘要一起喂给 LLM,标记『两个簇讲同一件事』(confusable)或『一个簇横跨多主题』(mixed),对中招的簇在 ID 粒度重新分配并重新摘要;每层最多做一次,最多一次额外 Sonnet 调用。第四步是富化:每个非叶簇挑 top-3 离质心最近的文档作为 ## Example documents 露出,再用一个 batched Sonnet 调用对每簇做实体+文档类型抽取,汇总成全局 entity_index.json(本文生成 2,328 个实体映射);对每个 top-level skill 用 entity-Jaccard 计算 Related skills 块,agent 就能横向跳。第五步是物化:每个根簇变成一个 skill 目录,根是 SKILL.md、下面是若干 INDEX.md、再下面是叶子 INDEX.md 列出 doc_id+title+phrases 的文档行;完整文档正文存到单独的 documents.json 通过 get_document 访问。整套 WixQA 6,221 篇文档在 RTX 4090 上 19.5 分钟编完,得到 6 个根 skill、665 个导航文件、3 层深度。 在线服务阶段 (Serve Phase) 四步。Step 1(鸟瞰):skill 名字和一句话描述被预加载到 agent 上下文(约 200 token),agent 一开始就知道语料大致分哪几块;如果查询提到具体实体,agent 还会去 cat entity_index.json | grep -i entity 找出所有提到该实体的 skill。Step 2(候选保持):系统 prompt 强制 agent 在下钻前至少保留 2 个候选 skill,对每个候选先读它的 SKILL.md 看子组列表。Step 3(钻取):对最有希望的分支读 INDEX.md(典型 <2KB),INDEX.md 列出 10-20 行 doc 行,agent 用 grep/topic match 挑出 1-3 个最像的 doc_id。Step 4(拉文 + 综合):调用 get_document 拉这些 doc 的全文,agent 写一句直接答案(事实类 ≤80 词,流程类 ≤150 词)。系统 prompt 强制『每条事实必须能追溯到某篇 get_document 拉来的文档』,且 SKILL.md/INDEX.md 只能用于导航、不能作为引用源——这条硬规则把幻觉率从 Agentic 的 50% 砍到了 4.5%。

技术新颖性

相对 RAPTOR:技术栈相似(都做 recursive abstractive processing),但 RAPTOR 产出一个可被 embedding 检索的向量树,服务时仍是 embedding-similarity 主导,模型看不到目录;CORPUS2SKILL 产出文件系统目录,由 LLM agent 显式浏览。前者是『层次化检索 + 平坦消费』,后者是『层次化消费』。相对 GraphRAG/HiRAG/StructRAG/BookRAG:它们都在 query 时维护图/树结构并依赖图搜索或 embedding 检索,对模型而言仍是黑盒;CORPUS2SKILL 把整个 hierarchy 当文本喂给模型,路径选择完全由 LLM 推理完成。相对 NaviRAG/HCAG:这是两个最相近的『主动导航』工作,但它们依然依赖自定义检索 API,CORPUS2SKILL 退回到标准 code_execution 工具(ls/cat/grep),配合 Anthropic Skills API 的 progressive disclosure 把『导航基础设施』完全外包给 LLM 本身。相对 Toolformer/ReAct/Agentic RAG:后者每次查询都从零开始在向量空间里盲搜,CORPUS2SKILL 把搜索空间从 O(N) 压成 O(p·logp N) 且每次跳转都先看摘要再决定是否拉文,效率与可控性都更高。技术上最隐蔽的新颖点是 verify-and-repartition:单次 LLM 摘要几乎不可能把 K-Means 的错误聚类全部修正,因此本文在每层加一遍『confusable/mixed』审计,把误归并的文档在 ID 级重新分配并重新摘要,这一步让 narrow 树在 6 个根 skill 时就能达到 0.462 F1,否则会掉到 0.382。

CORPUS2SKILL system architecture. The compile phase (top) embeds documents, builds a multi-level cluster hierarchy with LLM summarization at each level, and materializes the result as a forest of navigable skills. The serve phase (bottom) uses an LLM agent with two tools: file navigation (code_execution) and document lookup (get_document).
Figure 2: CORPUS2SKILL system architecture. The compile phase (top) embeds documents, builds a multi-level cluster hierarchy with LLM summarization at each level, and materializes the result as a forest of navigable skills. The serve phase (bottom) uses an LLM agent with two tools: file navigation (code_execution) and document lookup (get_document).

实验结果

主实验在 WixQA(6,221 篇支持文档 + 200 道专家题)上做 5 个基线全对比。CORPUS2SKILL 拿下 7 个质量与覆盖率指标中的 6 个第一:Token F1 = 0.456(比 Agentic 0.378 高 21%、比 Dense 0.364 高 25%、比 RAPTOR 0.398 高 15%);BERTScore-F1 = 0.862(领先所有基线 0.019-0.032);Factuality = 0.767(比 Agentic 0.705 高 6 绝对点);Context Recall = 0.708(比 RAPTOR 0.618 高 15%、比 Agentic 0.452 高 56%);Context Precision = 0.829(比 RAPTOR 0.659 高 26%)。唯一没拿第一的是 Faithfulnessgrd = 0.859,比 Dense/RAPTOR 的 0.889-0.909 略低——但这正是单次检索的『天然优势』:一次只喂 5 个段落,几乎没有幻觉空间。CORPUS2SKILL 把 Agentic 那个 50% 的 Hallucination 砍到 4.5%,离 Dense 的 0% 已经很接近,但代价是 Faithfulnessgrd 从 0.889 降到 0.859——可以理解为『为了多读几篇相关文档而多承担一点点忠实性风险』。成本方面:$0.153/query 是 Agentic $0.082 的 1.9 倍、单次检索 0.007 的 22 倍,主要开销是 Skills API 把导航文件按 cache-read 价(0.1× 基础价)重复计费,约 70% 的 prompt token 在连续多轮间被缓存复用。 RAGBench 上的 10 个子集泛化研究给出了更细致的图景:CORPUS2SKILL 在 7 个上赢、2 个打平、3 个输,且胜负不是随机的,跟语料结构强相关。(a) 单领域原子文档型(Emanual、DelucionQA、TechQA、ExpertQA、ClapNQ + WixQA 本身)——这是 CORPUS2SKILL 的甜蜜区,ClapNQ 上 F1 0.468 vs Dense 0.333,提了 13.5 绝对点,Factuality 0.924 vs 0.774 提了 15 点;这些语料每篇文档都讲一个独立功能,K-Means 在第一层就能分出干净的子主题,目录摘要信息量大、路由决策准。(b) 异构/数字表格型(CovidQA、FinQA)——所有方法 F1 差不到 0.02,CORPUS2SKILL 与 flat retrieval 实质打平,因为答案经常需要从表格里抽精确数字,目录结构帮不上忙。(c) 开放域事实型 / 同质表格型(HAGRID、TatQA、CUAD)——CORPUS2SKILL 输了 0.04-0.17 F1:HAGRID 第一层摘要坍缩成『通用知识库文章』这种无意义标签,TatQA 的 SEC 表格反复重复让所有簇摘要都长一样,CUAD 的长合同按条款类型切不开。这种『结构决定胜负』的判据比简单报平均分有意义得多。 消融研究 (Table 3) 进一步分解了贡献来源。(a) 簇结构:把分支比 p 从 10 改成 5(narrow, 5 子/根/深度=5/2/5)几乎不掉点,F1 0.462 vs 默认 0.456、$0.133 vs $0.153;但把 p 改成 20(wide, 20/4/3)会崩——F1 掉到 0.382、Hallucination 飙到 24.5%,因为第一层每个簇要塞几百个混合文档,摘要变成无信息量的『涵盖多主题』,agent 无法用一句话决定走哪。这恰好复现了 TatQA 失败模式。(b) 探索预算:max rounds 设 5/10/20 对 F1 的影响不到 0.005,平均只用 2.4 轮——说明树组织得够好时 agent 不需要反复回溯,扩大预算主要换来 Hallucination 从 6.5% 单调降到 4.5%,即多出来的时间被用来验证而不是搜索。(c) 服务端 LLM:把 Sonnet 4.6 换成 Haiku 4.5,cost 砍 39% 到 $0.093,F1 保留 92%(0.420),Factuality 保留 87%(0.671),Haiku 甚至多读了一篇文档让 CtxR 从 0.708 升到 0.722——这是本文最重要的『鲁棒性证据』:编译好的树是主驱动力,navigator 的智商只要『够用』就行。

Main results on WixQA (200 queries). CORPUS2SKILL wins on F1, BERT, Fact., CtxR, CtxP and has the lowest Hallucination Rate among multi-turn methods. Single-shot retrievers win Faith.grd / Halluc. because they always feed back a small grounded passage.
Table 1: Main results on WixQA (200 queries). CORPUS2SKILL wins on F1, BERT, Fact., CtxR, CtxP and has the lowest Hallucination Rate among multi-turn methods. Single-shot retrievers win Faith.grd / Halluc. because they always feed back a small grounded passage.
Generalization on 10 RAGBench subsets (200 queries each, or all available) over the expanded retrieval pool. Datasets grouped by the structural pattern that determines whether navigation helps.
Table 2: Generalization on 10 RAGBench subsets (200 queries each, or all available) over the expanded retrieval pool. Datasets grouped by the structural pattern that determines whether navigation helps.
Ablations on WixQA (200 queries): (a) cluster structure, (b) agent exploration budget, (c) serving LLM.
Table 3: Ablations on WixQA (200 queries): (a) cluster structure, (b) agent exploration budget, (c) serving LLM.
Top-level skills produced by CORPUS2SKILL on WixQA.
Table 4: Top-level skills produced by CORPUS2SKILL on WixQA.
Positioning of CORPUS2SKILL relative to prior work.
Table 5: Positioning of CORPUS2SKILL relative to prior work.
查看结构化数据
任务指标本文基线提升
WixQA 企业客服 QA (F1) Token F1 0.456 Agentic 0.378 / RAPTOR 0.398 / Dense 0.364 +0.058 / +0.058 / +0.092 绝对点
WixQA 企业客服 QA (Factuality) LLM-judge Factuality (0-1) 0.767 Agentic 0.705 / RAPTOR 0.704 +0.062 绝对点
WixQA 检索覆盖率 Context Recall 0.708 RAPTOR 0.618 / Agentic 0.452 +0.090 / +0.256 绝对点
WixQA 检索精度 Context Precision 0.829 RAPTOR 0.659 / Agentic 0.649 +0.170 / +0.180 绝对点
WixQA 幻觉控制 Hallucination Rate (Faith<0.6 占比) 0.045 Agentic 0.500 / RAPTOR 0.005 把 Agentic 的 50% 砍到 4.5%,仅略输单次检索的 0.5%
ClapNQ (RAGBench) 泛化 Token F1 0.468 Dense 0.333 / Agentic 0.308 +0.135 绝对点(最大单数据集提升)
TatQA (RAGBench) 异构表格 Token F1 0.240 Dense 0.312 / BM25 0.307 -0.072 绝对点(结构失配)
WixQA 单查询成本 $/query (Anthropic ephemeral cache) 0.153 Agentic 0.082 / Dense 0.007 1.9× Agentic / 22× Dense;Haiku 4.5 版降至 0.093

局限与改进

作者明确承认四点局限。第一是成本:$0.153/query 仍比单次检索贵 13-22 倍,主要源于 Skills API 把导航文件在每轮都按 cache-read 价计费;尽管开启 ephemeral cache 已省下 70% 重复 token,对高 QPS 低价值场景仍不划算。第二是路由错误:失败分析里 45 个低分查询中有 19 个(42%)属于『导航选错分支』,如 PayPal 连接问题被路由到通用支付组而不是 payment-setup 叶;narrow 树(5 子/根/2 深度)能部分缓解但不能根治。第三是编译不支持增量:每次添加文档都得重新跑整条流水线(19.5 分钟 / 6k 篇,100k 篇约 1 小时多一点),对内容高频更新的知识库不友好。第四是语料结构敏感性:当 level-1 簇必须总结数百篇主题混杂的文档时(wide 树 / TatQA 同质表格 / HAGRID 开放域),摘要坍缩成无信息量标签,导航失败——这是结构性问题,不是实现问题。 我自己观察到的额外限制:(i) 实验只对比 Sonnet 4.6 自身做 navigator,没跨厂商测试(GPT-4o/Gemini),若 navigator 换成不支持工具调用的模型就崩;(ii) 评测用了 6,221 篇的 WixQA 单数据集做主实验,200 题是较小的统计样本,ClapNQ 上 0.135 的提升是全篇最大效应但仍需在更大题量上验证显著性;(iii) Context Recall 在 8000 字符截窗下统一评测,对 CORPUS2SKILL 这种『先看摘要再拉全文』的范式其实有一点不公——它能『看到』远多于 5 篇的相关文档,但评测只看 last 5;(iv) Faithfulnessgrd 的『严格忠实』判定对多文档综合题不友好:corpus 导航鼓励跨篇合成,但严格忠实性检查容易把『基于两篇综合出来的话』判为不忠实,这或许解释了为什么 CtxP/CtxR 涨而 Faithfulnessgrd 略降。

独立分析的弱点

独立分析三个我认为作者没充分讨论的弱点。弱点 1:顶级路由是真正的瓶颈,但作者只给了『narrow 树部分缓解』作为对策。改进方向是训练一个轻量级 query→skill 路由器(在 embedding 空间做 6-way 分类或 LLM 一次 tool-free 调用),让 agent 在 SKILL.md 加载之前就知道哪 2 个 skill 值得打开,而不是被动『读完全部 SKILL.md 再比较』——可把首轮 tool call 减半、$0.153 进一步降到 $0.08-0.10。弱点 2:编译产物虽然 16MB、可以放进 git,但对一个动态演化的真实知识库(每天新增 10-50 篇)来说,全量重编译既慢又贵。改进方向是做『增量 K-Means』——只对新增文档做 embedding,把它们各自分配到最近质心并更新 INDEX.md 的 doc 行;如果某个根簇的 centroid 漂移超过阈值,再触发该子树的局部 verify-and-repartition。弱点 3:当前评测只看 last 5 个 get_document 拉到的文档,对 CORPUS2SKILL 不公平,因为它的核心优势之一是『先看几十个 INDEX.md 摘要』再做精准拉文。改进方向是引入『导航信息增益 (NIG)』指标——记录 agent 每读一个 SKILL.md/INDEX.md 后 CtxR 的边际提升,定量刻画『鸟瞰视图』到底值多少 token。

未来方向

作者提出的方向:混合 per-query routing,让 system 先用 CORPUS2SKILL 一次失败回退到 flat retrieval,或对不同语料做策略选择(开放域 → flat,单域 → 导航)。基于成果可延伸的方向:(i) 把 SKILL.md 升级为『条件路由』——即 skill 自己声明『如果查询提到 entity X 则跳到 related_skill Y』,让 agent 不必每次都查 entity_index.json,进一步压低 latency;(ii) 把多模态文档(PDF 截图、表格图片、代码块)也通过统一的视觉 LLM 蒸馏成摘要节点,让 CORPUS2SKILL 自然扩展到多模态 RAG;(iii) 把『导航轨迹』作为监督信号——直接微调一个 navigator LLM(用人类或更强 agent 的成功轨迹做 SFT),把 2.4 轮平均轮次压到 1.5 轮,cost 再降 30%;(iv) 研究 dynamic rebalancing——监控 agent 的 routing error rate,自动触发 verify-and-repartition 而不是固定编译期做一次。

复现评估

代码已开源在 https://github.com/dukesun99/Corpus2Skill,论文附录 A-I 给了完整实现细节(编译 prompt、System prompt、Baseline 超参、评测 prompt)。复现门槛:硬件方面,离线编译需要单卡 RTX 4090(Qwen3-Embedding-8B + Haiku 4.5 摘要 + Sonnet 4.6 簇摘要并发),WixQA 6k 篇 19.5 分钟;在线服务只需 Anthropic API 访问权(用 Claude Sonnet 4.6 / Haiku 4.5)和 Skills API 配额(每请求 ≤8 skills、≤200 文件、≤30MB,本框架在边界内)。数据方面,WixQA 来自 Cohen et al. 2025 (arXiv:2505.08643) 已公开;RAGBench 10 个子集也是公开数据集。难度评估:复现主线结果中等——核心工程在编译流水线的并发控制(async semaphore 20)和 verify-and-repartition 的 prompt 设计;难度较大的部分是用 Skills API 部署,因为这是 Anthropic 较新的产品(2024 年底发布),文档和配额可能变动。值得注意的 fairness 细节:作者特意把 Context Recall 在 8000 字符统一截窗下评测、用 Sonnet 4.6 做 LLM judge,附录 I 列了所有 prompt,复现时直接照搬即可避免评测偏差。