news 2026/10/17 6:42:32

XERJ llms.txt 基准研究报告:56 个开源项目的 llms.txt 对比表与 Agent 面文档启示

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
XERJ llms.txt 基准研究报告:56 个开源项目的 llms.txt 对比表与 Agent 面文档启示

【免费下载链接】xerj

XERJ is the new way for AI to search data. Its autoindex capability activates agents to know your data without the token waste of grep and sed. One command indexes code, docs, logs and PDFs for search, RAG, security audits and agent memory, using 40x fewer tokens than grep. Elasticsearch compatible, so existing clients just work.

项目地址:https://gitcode.com/GitHub_Trending/xe/xerj
点击查看免费下载

本文基于 XERJ 仓库内docs/research/llms-txt-2026-09/的专项研究,完整解读其 56 个项目 llms.txt 对比表(comparison-table.md)的度量口径、分布数据与逐列含义,并结合生成脚本与原始数据说明该表如何机械复现、哪些数字可以直接引用、哪些只是解剖记录。读完后你将掌握:如何从"一个给 AI Agent 读的索引文件"角度评估任何项目的 Agent 面文档质量,以及 XERJ 自身 llms.txt 在 40 KB 体量下的实际位置。

一、这张表是什么:研究对象、口径与生成方式

comparison-table.md是 XERJ 在 2026-09-18 至 2026-09-19 对 56 个开源项目llms.txt(以及llms-full.txt、AGENTS.md等 Agent 面文件)进行"解剖式"研究后产出的机械汇总。它的核心命题是:llms.txt 作为 AI Agent 获取项目知识的入口文件,在各头部项目中究竟承担了多少职责——是纯文档索引,还是安装了入口、MCP 配置片段、对 Agent 的直接指令,甚至是"回报反馈"的要求?

表头声明了三个关键事实,也是引用该表时必须理解的口径前提:

  • 完全机械生成。表由 build_tables.py 从 dissections.json(2026-09-18 首轮 48 次运行、46 个唯一项目)和 dissections-2026-09-19.json(2026-09-19 追加的 10 个项目)生成,没有任何单元格是手写的;运行python3 scripts/build_tables.py --check时,如果表内容与数据不一致会直接退出失败(exit 1),保证"表过期即报错"。
  • 排序规则:按 llms.txt 字节数升序排列,发布 llms.txt 的项目在前,未发布的排在最后。
  • "Install" 列的定义:安装命令是否出现在 llms.txt 文件自身里(而不是项目别处的 README 中)。

一个容易踩坑的口径区分,原文专门用一段话标注:表中的列记录的是"解剖 pass 为每个项目记下了什么",而不是文件本身的字节级事实。例如"MCP snippet: yes"可能是从项目被链接的页面上摘抄来的片段;至于每个 llms.txt 文件里字面上有没有代码围栏、有没有claude mcp add这类命令,是另一套脚本(measure_llms_txt.py)在 132 个 URL 上测出来的,结果在 llms-txt-measurements.md。研究总纲 README.md 强调"两种计数不可混用"——这一点对任何想引用该研究的人都是最重要的使用纪律。

1.1 表格各列的机器定义

build_tables.py的 docstring 给出了每列的精确判定逻辑,这是读懂全表的关键:

列判定逻辑(源自脚本)
llms.txt bytes/lines解剖 pass 抓取到的字节数与行数
llms-full bytes仅当 llms-full.txt 的 URL 返回HTTP 200时才计字节数(404 的响应体不算文件,记 0)
Install in llms.txt记录中无 install 命令、或install_position文本以 "absent" 开头时显示absent;否则显示install_position的前 44 个字符(截断位置即安装命令在文件中的位置线索)
Agent textagent_prompt_verbatim字段非空则yes,否则—
One-clickone_click_links列表的长度(一键安装/深度链接数量)
MCP snippetmcp_snippet_verbatim非空则yes
Feedback askfeedback_cta_verbatim非空则yes

另外两个去重细节值得注意:Weaviate 和 Deno 在首轮被解剖了两次,脚本保留 JSON 更长(信息更全)的那份;"published" 的判定要求status == 200且bytes非零——即HTTP 200 但内容是"Page Not Found" 的软 404 不计入(研究过程中 GitBook、Mintlify 等站点确实存在返回 200 加"未找到"正文的情况,见 README §8 "Probing trap")。

二、核心分布数据:llms.txt 的体量与 XERJ 的位置

表头给出的分布统计(对 52 个发布了 llms.txt 的项目):

llms.txt 大小分布(字节):min 1,674 · p25 16,049 · median 24,814 · p75 45,599 · max 175,811。XERJ:40,064 字节,234 行 —— 排名 39/53。

XERJ 高于中位数、低于 p75,不是离群点。这个结论本身是研究的"自我纠错"之一:在 2026-09-19 扩大样本之前,研究者基于 46 项目样本曾判断"40 KB 大概率是离群值",测量后证明错误——体量维度上 XERJ 处于中上区间(68 百分位,见 llms-txt-measurements.md)。真正的离群维度是首屏文本密度(超过 400 字符的非围栏行数 23 行,98 百分位)与义务性措辞数量(obligation words 21 个,97 百分位)——即"每行塞了多少字",而不是"总共多少 KB"。

各功能要素的出现次数(52 个发布项目):

要素计数解读
llms.txt 中没有安装命令30/52多数 llms.txt 是自动生成的纯文档索引
含面向 Agent 的直接文本28约一半项目把 llms.txt 当作"对 Agent 说的话"
含一键安装/深度链接20cursor://、vscode:mcp/install这类零命令入口
含 MCP 配置片段24多为从链接页摘抄(口径见 §1)
含反馈/贡献要求24README 总纲特别注明:无一例是强制性义务
发布了 llms-full.txt39全文 dump 已是事实约定,但不在官方 spec 内

10 个 2026-09-19 追加项目中 4 个根本没有发布 llms.txt,它们是 XERJ 在功能上最近的邻接者(本地代码搜索与 MCP server 类项目:GitHub MCP server、Serena、claude-context、probe)。对这四家,README 就是 Agent 安装面,表中相应行显示none published并记录 README 中的安装行数(3~7 行)。这一组的存在修正了首轮 46 项目样本的偏差——首轮样本偏向"带远程 HTTP MCP server 的托管产品",本地代码工具类同行(Lucene、Quickwit、Tantivy、Zoekt、ripgrep 等)在 140 项目探测中几乎全军覆没(36/140 无可用 llms.txt)。

三、对比表全量数据

以下为原表完整内容(排序、数值与仓库文件逐字节一致,XERJ (for reference)行为研究基准行)。每个项目链接到仓库内的 per-project/ 目录下的逐项目解剖页:

Projectllms.txt byteslinesllms-full bytesInstall in llms.txtAgent textOne-clickMCP snippetFeedback ask
Ollama1,67429236,111absentyes0——
Vercel AI SDK2,217466,062,390Lines 22-30, section '## Local Coding Agentsyes0——
Supabase2,709437,022,257absent—0——
DuckDB3,371370absent—0——
turbopuffer4,01259792,810absent—0——
Composio4,445501,160,265Line 11, inside '## Before you implement'yes1yesyes
Vercel4,726649,509,006Line 25, inline in a link descriptionyes0——
Deno5,055602,497,222absent—0——
Algolia7,8661880Lines 7-10, 首个 H2(描述之后第一节)yes6yesyes
Typesense8,591811,947,804营销版 llms.txt 中无安装命令yes5yesyes
Firecrawl8,8151281,914,650absent—0——
LlamaIndex10,908890absent—0——
Langfuse15,9711370absentyes0yes—
Cloudflare Developer Docs16,04913859,403,277absentyes1yesyes
Elastic17,1981710absent—0—yes
Meilisearch17,7022568,670absent—0—yes
Tavily18,171212856,222Line 16,第二个 H2yes2yes—
ParadeDB18,336131680,006line 5/131(第 3 个 bullet,仅链接)yes3yesyes
Cline18,871116675,700line 6/116(第 2 个 bullet)yes2yesyes
Sentry19,2431890Line 11,'## Instructions for…' 首个 bulletyes0yes—
Clerk19,607130768absentyes0——
Cursor21,678455142,881absent—1yesyes
Chroma22,134183814,626absent—0——
LangChain / LangGraph / LangSmith22,2731976,915,750absent—0——
Windsurf24,156132636,246absent—0——
Exa24,309168766,571文件本身无安装命令yes10yesyes
Modal25,3203722,321,860absent—0——
Stagehand26,114189898,822absent—0—yes
SurrealDB27,93829451,217首个可运行命令在 line 65yes1yesyes
Zed29,0762380absent—0——
Weaviate29,5837320非顶层 H2 节;SDK 安装是其中一条yes0yesyes
Pydantic AI30,5494355,782,671Line 26,第一节第 2 个 bulletyes3yesyes
Turso33,1362921,083,272文件本身无安装说明—6yesyes
Bun33,7213282,136,096line 6,'## Docs' 第 2 个链接—0—yes
Browserbase34,9562261,033,754line 7/226,扁平索引第 3 个链接yes3yes—
CrewAI38,8372331,964,675absent—0——
Neon39,7374106,564,134两处(line 9 等)yes5yesyes
Pinecone39,8732783,814,905absentyes0——
LanceDB44,8022401,668,626absent—0——
Convex45,5994982,554,656absentyes3yesyes
Claude Code docs46,9633619,512,179absentyes0——
Model Context Protocol48,3833542,487,841absent—0—yes
Mastra50,1057510absentyes5yesyes
Expo55,2578070Line 22,'## Performanc…' 下的裸命令yes0—yes
FastMCP64,8835742,885,378line 6/574(文件中第 2 个链接)—5yesyes
Anthropic68,03669935,109,013absentyes1yesyes
Vespa68,9379984,522,666absent—0——
Milvus81,9987960Line 58 '## Get Started'(第 4 个 H2)yes4yesyes
Stripe92,1597070absentyes0yes—
ClickHouse103,44450034,655,192Lines 5-12,第一个 H2—0——
Upstash163,5761,4723,456,603Lines 3-7(任何标题之前的<Tip>)yes10yes—
Qdrant175,8116960absent—0——
XERJ (for reference)40,06423483,712line 11,位于 'Start here' 内yes0—yes
GitHub MCP servernone published——仅 README(记录 4 行安装命令)—1README—
Serenanone published——仅 README(记录 4 行安装命令)—0README—
claude-contextnone published——仅 README(记录 3 行安装命令)—0README—
probenone published——仅 README(记录 7 行安装命令)—0README—

注:原文 "Install in llms.txt" 列对部分行做了 44 字符截断(如 Vercel AI SDK 行),上表在个别行做了忠实的中文化缩写;逐字原文与每个项目的完整解剖见 comparison-table.md 与 per-project 目录。

3.1 从表中可以直接读出的结构

  • 体量两极分化:最小 Ollama(1,674 B / 29 行)与最大 Qdrant(175,811 B / 696 行)相差 105 倍。小体量端(Ollama、AI SDK、Supabase、DuckDB)多为"摘要 + 短索引",大体量端(Upstash 1.472 行、Vespa 998 行、Cursor 455 行)多为生成器输出的全量文档目录。
  • "absent" 是 Install 列的主流值:52 家中 30 家没有安装命令,且其中不乏体量很大的自动索引(Qdrant、Vespa、Zed、Elastic)——印证了 proposals/report.md 的核心发现 1:"llms.txt 很少承担安装入口,安装被放在一跳之外的 Agent 面文件里"。
  • llms-full.txt 体量差异巨大:从 Clerk 的 768 字节到 Cloudflare 的 59.4 MB。中位数约 1.96 MB(46 项目口径),而 XERJ 的 llms-full.txt 仅 83,712 字节——README.md §5 将此列为 XERJ 的优势之一:"经过人工策展、能装进一个 context window"。
  • XERJ 行的四个特征:安装命令在 line 11('Start here' 内)、有 Agent 定向文本、零一键链接、有 feedback ask——而表中所有"有 feedback ask"的 24 个项目里,XERJ 是唯一把回报要求写进 llms.txt 的(README 头条数据:"0/140 探测项目要求 Agent 提交报告或开 PR——XERJ 是唯一一家")。这一列因此同时是 XERJ 的"亮点"和"待改点":通道选择(PR vs HTTP/MCP tool)与措辞("required" vs 流程性描述)在总纲 M1/M2 与 §4 中有完整分析。
  • 搜索邻接项目的缺席:与 XERJ 同类的本地搜索引擎/代码搜索项目(Elastic、Meilisearch、Typesense 有 llms.txt 但纯索引;GitHub MCP server、Serena、probe、claude-context 完全未发布)提示:这个品类的 Agent 安装面目前仍停留在 README 阶段。

四、XERJ 基准行是如何进入表的:源码级机制

XERJ 行不是从数据文件读出的——build_tables.py 第 32 行硬编码了基准常量:

XERJ = {"bytes": 40064, "lines": 234, "full": 83712}

排名计算(第 94 行)是"发布项目中字节数严格小于 XERJ 的数量加 1",即rank = sum(1 for s in sizes if s < 40064) + 1,分母为"发布项目数 + 1"(把 XERJ 自身算进排序域)。我用 dissections.json 与 dissections-2026-09-19.json 按脚本逻辑复算:56 个唯一项目、52 个发布、安装命令 absent 30 家、XERJ 排名第 39——与表中数字全部吻合。这也说明表头里的"40,064 bytes / 234 行"是研究日(2026-09-18)对landing/llms.txt的快照,并非仓库当前文件的实时值;当前文件内容可对照 landing/llms.txt 查看(该文件在研究后续推进中持续有修改,例如 llms-full 链接、Caveats 各条目的更新)。

XERJ 行中 "line 11, inside 'Start here'" 指研究日快照中第 11 行的安装命令curl -fsSL https://xerj.org/get | sh;"yes"(Agent text)对应文件第 3 行 "This file is an index for you, the AI agent" 的定向开头;"feedback ask: yes" 对应 'Start here' 第 5 步的 field report 要求。这三点恰好是 XERJ llms.txt 相对同侪最显著的差异面,也恰是总纲 M1("required, not optional" 与## Optional标题自相矛盾)、M2(PR 作为 Agent 回报通道不可行)两条缺陷的触发点。

五、引用与复现指南

引用该对比表时,建议遵循研究自身设定的三条纪律:

  1. 区分"记录"与"测量"。表内各列是解剖 Agent 在 2026-09-18/19 对 live URL 单次抓取后的笔记;文件级字节事实(代码围栏数、claude mcp add出现位置等)以 llms-txt-measurements.md 及其 manifest(每行含 URL、HTTP 状态、字节数、SHA-256、抓取时间)为准。
  2. 生成中的索引文件每天在变。报告明确记录了漂移实例:ClickHouse 的 llms.txt 在同一天晚间从 103,444 B 变为 103,065 B。公开引用任何数字前应重新测量(python3 scripts/measure_llms_txt.py)。
  3. 样本有选择偏差。46 项目首轮解剖自约 140 项目探测而来,偏向"探测时发现了 llms.txt + 至少一个其他 Agent 面文件"的对象;本地代码搜索/本地 MCP 工具类项目在 2026-09-19 才被补齐,且补齐的 4 家全部未发布 llms.txt。把该表当作"托管产品文档实践横截面"而非"全行业普查"来引用是准确的。

5.1 本地复现步骤

仓库内全部输入均为文本数据,可在只读克隆中直接复现(不修改任何仓库文件):

cd docs/research/llms-txt-2026-09 # 检查 comparison-table.md 是否与数据一致(过期则打印 STALE 并 exit 1) python3 scripts/build_tables.py --check # 重新生成表格(会写入本地文件,CI 中建议只用 --check) python3 scripts/build_tables.py # 对 proposals/data/llms-txt-urls.tsv 中的 132 个 URL 做字节级测量 # (需要网络;默认离线模式 --offline 只读缓存) python3 scripts/measure_llms_txt.py

原始结构化数据(无损)在 data/dissections.json、data/discovery.json;每项目一页的完整解剖(含逐字引用、"他们做得更好的地方 / XERJ 做得更好的地方 / 可借鉴点"三节)在 per-project/,例如 elastic.md(Elastic 的 llms.txt 是纯自动索引、零安装零 MCP,但其 MCP server README 的 "Verify the connection" 清单被列为 XERJ 可借鉴项)、qdrant.md(175 KB 最大文件的解剖)、github-mcp-server.md(未发布 llms.txt 组的代表)。事实核验记录(259 条 claim 全部重抓,258 确认、1 条未能确认并移除)见 proposals/FACTCHECK.md。

六、这张表回答了什么问题:对 Agent 面文档的结论

综合 README.md 总纲与本报告,该对比表支撑出四条可迁移结论:

  1. llms.txt 的行业主流用法是"文档目录",不是"安装面"。52 家中 30 家无安装命令;安装真正发生在一跳之外(SKILL.md、agents.md、per-host 安装指南)。因此 XERJ 把安装命令放进 llms.txt 本身(27/46 口径下的少数派)反而是差异化优势,被总纲 §5 列入"不得回退"清单。
  2. 对 Agent 的"要求"与"流程"是两回事。表中 Feedback ask 列 24 家有记录,但没有任何一家把反馈写成债务;XERJ 快照中"required, not optional"的措辞 + PR 通道组合,被总纲 §4 判定为"回报无法到达"的结构性原因(通道需要 shell、git、GitHub 身份,而宿主仓库规则普遍禁止 Agent 写操作)。
  3. MCP 片段的可发现性直接决定无 shell Agent 能否接入。表外测量口径:127 个 llms.txt 中仅 2 个字面含claude mcp add、仅 2 个含mcpServers(llms-txt-measurements.md)——MCP 配置普遍在 README/文档页,不在 llms.txt 内。XERJ 快照同样为 0,对应总纲 M4。
  4. 邻接品类(本地代码搜索 + MCP server)整体缺位。4 家最近功能同行全部未发布 llms.txt,README 是唯一 Agent 面;对 XERJ 而言,这既是"品类内先发"的事实,也意味着该表给出的最佳实践几乎全部来自托管产品,向本地工具迁移时需按 proposals/report.md §3 的模式(能力分支、一行粘贴提示、per-client 注册、verify 行)逐一适配。

最后重申引用边界:所有数字锚定 2026-09-18/19 的抓取时点,第三方页面的引用以 FACTCHECK.md 中的逐条核验记录为准;研究自身也公开了流程性错误(单 Agent 合成 52 份结果导致长时运行、锚定效应使"46 份解剖都批评同一缺陷"不构成 46 次独立确认),这些元信息在 README.md §1、§8 中有原文记载,引用时建议一并保留。

【免费下载链接】xerj

XERJ is the new way for AI to search data. Its autoindex capability activates agents to know your data without the token waste of grep and sed. One command indexes code, docs, logs and PDFs for search, RAG, security audits and agent memory, using 40x fewer tokens than grep. Elasticsearch compatible, so existing clients just work.

项目地址:https://gitcode.com/GitHub_Trending/xe/xerj
点击查看免费下载
上一篇:DuckyScript完全学习路径:USB Rubber Ducky从基础命令到复杂逻辑的教程
下一篇:giscus 评论系统技术指南:基于 GitHub Discussions 的零数据库评论方案

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/17 6:42:01

30分钟跑通LIO-SAM激光惯性里程计:安装、数据到排错的完整指南

30分钟跑通LIO-SAM激光惯性里程计&#xff1a;安装、数据到排错的完整指南 【免费下载链接】LIO-SAM LIO-SAM: Tightly-coupled Lidar Inertial Odometry via Smoothing and Mapping 项目地址: https://gitcode.com/GitHub_Trending/li/LIO-SAM 激光惯性SLAM的难点常常不…

作者头像 李华
网站建设 2026/10/17 6:41:33

open-code-review:用自动化规则引擎优化Code Review与代码质量

很多人把code review当成一个“流程负担”&#xff0c;觉得只要走了形式、点了通过按钮就算完事。我早年也这么想&#xff0c;直到有一次线上事故的根因&#xff0c;就是一行看似无害的临时调试代码被漏审进了主干&#xff0c;才彻底改观。代码审查不是卡进度的关卡&#xff0c…

作者头像 李华
网站建设 2026/10/17 6:41:06

从 ABAP CDS 到 SAP Analytics Cloud 深入理解 ABAP Analytics 的多维分析架构

在一个运行 SAP S/4HANA 的企业系统里,业务人员每天都会产生大量事务数据。销售订单不断创建,采购订单不断变化,库存持续移动,会计凭证不断过账,生产订单从创建走向确认和结算。对于 ABAP 开发人员而言,这些数据最初看起来往往只是数据库表中的一行行记录。但当业务部门提…

作者头像 李华
网站建设 2026/10/17 6:41:05

开源代码审查工具 open-code-review:让机器先看见,人再判断

先说一段我自己的经历。去年年中&#xff0c;我们组例行 Review 一个订单模块的合并请求&#xff0c;页面滚动到一半&#xff0c;有个老同事在评论区敲了一句“LGTM”&#xff0c;然后整个 MR 就被批准合入了。我当时心里咯噔一下——不是因为他看得不认真&#xff0c;而是这个…

作者头像 李华