Odoo 20 在核心 Website 应用中包含一个公开的 /llms.txt 路由。Website 管理员可以直接在 Odoo 内配置纯文本响应,而不必在应用外额外实现一个路由。相关变更还将部分技术性和事务性路由的爬虫限制移入自动生成的 robots.txt 指令中。 (Odoo Odoo Blob; mergebot.odoo.com)

这些变更带来两个独立的审查任务。管理员必须决定是否发布并维护 llms.txt 内容,然后检查数据库中已安装模块所生成的 robots.txt 输出。尽管二者由同一实现引入,llms.txt 和 robots.txt 的用途不同,应分别进行测试。 (Odoo Odoo Blob; mergebot.odoo.com)

Odoo 20 发布了什么

Website 应用通过 /llms.txt HTTP 路由在网站根目录公开 llms.txt。当配置了非空内容时,该路由会使用 UTF-8 编码将该内容作为纯文本返回。此实现不会自动从现有页面或其他网站记录生成完整的 llms.txt 文档。 (Odoo Odoo Blob)

Odoo 还在网站根目录 HTML 中添加了对 llms.txt 的引用,以提升可发现性。管理员可通过 Website SEO 设置下的编辑器管理文件内容,将发布文本纳入现有的网站配置流程。 (mergebot.odoo.com)

由于该路由属于核心 Website 应用,Odoo 20 网站无需仅为提供该端点而安装第三方模块。不过,管理员仍需准备并维护内容。Odoo 提供路由、设置编辑器和根目录 HTML 引用,而保存的文本决定端点返回的内容。 (Odoo Odoo Blob; mergebot.odoo.com)

空内容不会生成文件

Odoo 为尚未填充 llms.txt 的网站定义了明确行为。如果配置值缺失或仅包含空白字符,对 /llms.txt 的请求将返回未找到响应。Odoo 不会发布空文件、占位符或自动生成的摘要。 (Odoo Odoo Blob)

因此,Odoo 20 中存在该路由,并不意味着每个网站都会立即公开 llms.txt 文档。未找到响应可能表示尚未保存非空内容,而不是服务器或路由故障。管理员应先检查 Website SEO 设置,再将该请求视为技术故障进行排查。 (Odoo Odoo Blob; mergebot.odoo.com)

爬虫限制移至 robots.txt

相关的爬虫变更将登录、结账、支付、确认和门户页面等路由的限制移入 robots.txt 指令中。Odoo 会根据数据库中已安装的模块生成这些指令。 (mergebot.odoo.com)

因此,生成的 robots.txt 输出在不同 Odoo 环境中可能不同。包含电子商务或门户模块的数据库,不应只依据一个通用预期文件,或其他数据库复制来的文件来判断。审查人员需要检查所评估数据库生成的输出,并考虑其已安装的模块。 (mergebot.odoo.com)

这两种机制仍然不同。/llms.txt 路由发布管理员提供的纯文本内容,而 robots.txt 包含指定技术性和事务性路由的爬虫限制。发布 llms.txt 并不能替代检查 robots.txt,而存在 robots.txt 指令也不会填充 llms.txt。 (Odoo Odoo Blob; mergebot.odoo.com)

网站治理的影响

使用该功能的组织应指定 llms.txt 设置的责任人。Odoo 会发布已保存的非空内容,但当其他网站内容发生变化时,实施不会自动更新该文本。因此,其准确性取决于组织的内容审核和维护流程。 (Odoo Odoo Blob; mergebot.odoo.com)

应在预期可访问该文件的任何位置测试公开端点。仅检查管理界面中是否出现编辑器是不够的。直接请求 /llms.txt 应返回预期文本,并使用纯文本内容类型和 UTF-8 编码。 (Odoo Odoo Blob; mergebot.odoo.com)

爬虫审查流程也应考虑路由限制的所在位置。Odoo 20 的验收测试应包括生成的 robots.txt 输出,尤其是在已安装模块提供登录、结账、支付、确认或门户路由时。 (mergebot.odoo.com)

为了进行完整审查,团队应独立验证已配置的 llms.txt 内容及其公开响应,而不是依赖生成的 robots.txt 指令。这样分开检查有助于确保管理员提供的文本、端点行为以及依赖模块的爬虫限制,都分别与实现的相关部分进行核对。 (Odoo Odoo Blob; mergebot.odoo.com)

实现未说明的内容

该实现确认了 Odoo 如何公开和管理已配置的 llms.txt 内容,但并未规定组织应在文件中写入什么。它也未定义审批流程、审查计划或内容负责人。这些事项仍属于内部治理决策。 (Odoo Odoo Blob; mergebot.odoo.com)

该实现还确认 robots.txt 限制会根据已安装模块生成,但并不会为所有可能的模块组合提供统一输出。团队不应假定某个 Odoo 20 数据库中的 robots.txt 文件就代表另一个具有不同应用集合的环境输出。 (mergebot.odoo.com)

发布前检查

首先,确认 llms.txt 编辑器是否位于 Website SEO 设置中。输入已批准的内容,保存后直接请求 /llms.txt。已填充的端点应返回以 UTF-8 纯文本形式保存的文本。缺失内容或仅包含空白的内容应返回未找到响应。 (Odoo Odoo Blob; mergebot.odoo.com)

其次,检查网站根目录的 HTML 中是否包含 Odoo 的 llms.txt 引用。这是单独测试可发现性,而不是端点本身。路由响应和 HTML 引用是实现中的不同部分,因此都应检查。 (mergebot.odoo.com)

第三,从正在评估的环境中获取 robots.txt。检查针对相关登录、结账、支付、确认和门户路由生成的指令。对于安装了不同模块的数据库,应重复此审查,而不是沿用其他环境的预期结果。 (mergebot.odoo.com)

最后,记录 llms.txt 是有意发布还是留空。Odoo 通过已配置内容和未找到行为支持这两种状态,但软件不会说明组织为何做出任一选择。将该决定与网站的 SEO 和爬虫审查一并记录,可为后续配置检查提供更清晰的依据。 (Odoo Odoo Blob; mergebot.odoo.com)