NLWeb是什么?微软开源的网站对话接口,读的是你已经写好的Schema和RSS

NLWeb是什么?微软开源的网站对话接口,读的是你已经写好的Schema和RSS
张文保 21 分钟阅读 1,872 阅读
本文目录
  1. NLWeb到底是什么,谁在做?
  2. 它算不算一个协议
  3. 一次提问在NLWeb里是怎么走完的?
  4. 接口参数
  5. 三种回答模式
  6. 一个请求长什么样
  7. 视频里说的结构化数据,包括哪些东西?
  8. 官方实现实际读的是什么
  9. NLWeb和llms.txt、Schema、MCP的区别
  10. 一个普通网站要怎么接入?
  11. 自己部署的大致步骤
  12. 成本主要花在哪
  13. 现在值不值得做,做SEO的人该怎么看?
  14. 哪些网站更值得试
  15. 先把能复用的东西做好
  16. 常见问题解答
  17. NLWeb是什么的缩写?
  18. NLWeb是谁开发的?
  19. NLWeb是什么时候发布的?
  20. NLWeb和MCP是什么关系?
  21. 视频里说的ASK协议是什么?
  22. NLWeb能读哪些数据?
  23. 装了NLWeb对Google排名有帮助吗?
  24. NLWeb的三种回答模式有什么区别?
  25. Wix的NLWeb集成有什么要求?
  26. NLWeb会不会让AI直接拿走网站内容?
  27. NLWeb和llms.txt有什么不同?
  28. NLWeb支持哪些大模型?
  29. 小型外贸网站需要部署NLWeb吗?
  30. 权威参考资料

摘要:NLWeb是微软2025年5月开源的项目,全称Natural Language Web,由RSS和Schema.org的创造者R.V. Guha主导。它让网站可以直接用自然语言回答人和AI代理的提问,答案用Schema.org格式的JSON返回,每个NLWeb实例同时也是一个MCP服务器。Moz在9月25日重发的白板星期五里,Wix的Crystal Carter把它介绍为让网站准备好迎接代理网络的工具,核心卖点是复用你已经做好的结构化数据。对照微软的GitHub文档,官方实现的数据入口是Schema.org、RSS、JSONL和CSV这类结构化列表,提问走ask和mcp两个接口,支持列表、摘要、生成三种模式。它目前和Google排名没有直接关系,最适合商品、菜谱、活动这类条目多、结构清楚的网站。

站内搜索框,可能是一个网站里最被忽视的功能。用户打一句长一点的话进去,比如我每周打两次网球,主要在红土场,脚偏宽,想找双不容易崴脚的鞋,大多数站内搜索要么什么都搜不到,要么给你一堆不相干的结果。

NLWeb想解决的就是这件事,而且不只给人用,也给AI代理用。Moz在9月25日的白板星期五里请了Wix的AI搜索与SEO传播负责人Crystal Carter,专门讲NLWeb是什么。页面上标注这期最早发布于2026年6月,这次是重发。

这篇以那期视频的内容为主体,对照微软的官方公告和GitHub文档,把NLWeb是什么、怎么运作、怎么上手、值不值得现在做讲清楚。

NLWeb到底是什么,谁在做?

NLWeb是微软的开源项目。微软2025年5月19日的发布公告说,它的目标是让网站用自己选择的模型和自己的数据,简单地做出一个自然语言界面,用户可以像问AI助手一样直接问网站里的内容。

项目由R.V. Guha构思和开发,他当时刚加入微软,任企业副总裁和技术院士。Guha是RSS、RDF和Schema.org这几个网络标准的创造者,Crystal Carter在视频里也特意提了这一点。做SEO的人每天在写的Schema标记,最早就出自他手。

公告里列出的首批合作方包括Chicago Public Media、Common Sense Media、DDM(旗下有Allrecipes和Serious Eats)、Eventbrite、Hearst(Delish)、O'Reilly Media、Shopify、Tripadvisor,以及Milvus、Qdrant、Snowflake这几家向量数据库和数据平台。媒体、菜谱、活动票务、旅游点评、电商,都是条目多、结构清楚的网站。

它算不算一个协议

这一点视频和官方文档的说法不太一样,值得对一下。

Crystal Carter说NLWeb不完全是一个协议,它用到了协议,用的是一个叫ASK的协议。微软GitHub仓库的说明则写得更具体:NLWeb是一组开放协议和配套的开源工具,有两个主要组成部分。

  • 一个简单的协议,让人用自然语言和网站交互,返回Schema.org格式的JSON。
  • 一个直接可用的实现,利用网站上已有的结构化列表标记,比如商品、菜谱、景点、评价,再配上界面组件,就能加上对话界面。

仓库里说的ask,是每个NLWeb实例都支持的核心方法,用来向网站提一个自然语言问题。视频里的ASK协议,指的就是这个方法和它对应的接口。

仓库说明里还有一句很有代表性的话:NLWeb之于MCP和A2A,就像HTML之于HTTP。MCP是模型上下文协议,A2A是代理之间通信的协议,都是让AI助手调用工具、互相协作的标准。每个NLWeb实例同时就是一个MCP服务器,说明里还写着A2A支持即将加入。

一次提问在NLWeb里是怎么走完的?

视频里用一个机器人代表AI代理,讲了一个完整的过程:人或者代理问了一个很长的问题,网站上装了NLWeb,就调用ask,去网站的结构化数据里找相关内容,用大模型理解问题、整理答案,需要的话还会调用网站的MCP工具,最后生成一个对提问者有意义的回答。

Crystal Carter强调的一个好处是,答案以网站自己的数据为依据,能减少大模型编造内容。

落到技术上,官方的REST接口文档写得很清楚。NLWeb目前提供两个接口:/ask和/mcp。两者参数相同,功能大部分一样,/mcp返回MCP客户端能用的格式,还支持MCP的核心方法,比如列出工具、调用工具。

接口参数

参数是否必填作用
query必填当前这一轮的自然语言问题
site可选一个后端可以承载多个站点,用它限定只查某个站的数据
prev可选之前问过的问题,逗号分隔,用来还原上下文
decontextualized_query可选已经补全上下文的完整问题,提供了服务端就不再处理
streaming可选默认流式返回,设为0或false关闭
query_id可选不填会自动生成
mode可选list、summarize、generate三选一,默认list

参考实现在服务端不保存对话状态,所以多轮对话的上下文要靠调用方自己传回去,这就是prev和decontextualized_query两个参数的用处。

三种回答模式

模式返回什么适合的场景
list(默认)后端里和问题最相关的条目列表找商品、找菜谱、找活动,用户自己挑
summarize先对列表做个总结,同时返回列表结果较多,需要先给个概览
generate更接近传统的检索增强生成,调用一次或多次大模型来回答问题用户想要一个直接的答案,不想看一串链接

返回结果是一个JSON对象,每条结果包含url、name、site、score、description和schema_object。description是大模型生成的,schema_object是从数据库里取出的这条内容的原始JSON。文档还说,结果数组之后会改成更丰富的结构,从Schema.org的ItemList开始。

一个请求长什么样

按文档里的参数,一次最简单的列表查询大致是下面这样。网址、问题和返回值都是演示用的,字段名以官方文档为准:

GET https://example.com/ask?query=适合宽脚的红土场网球鞋&mode=list&streaming=false

{
  "query_id": "q_8f2a",
  "results": [
    {
      "url": "https://example.com/products/clay-court-shoe-wide",
      "name": "Clay Court Pro Wide",
      "site": "example",
      "score": 0.87,
      "description": "宽楦设计,鞋底花纹针对红土场",
      "schema_object": { "@type": "Product", "name": "Clay Court Pro Wide", "offers": { "@type": "Offer", "price": "89.00", "priceCurrency": "USD" } }
    }
  ]
}

如果是代理通过MCP来调用,请求发往/mcp,参数相同,返回的格式换成MCP客户端能识别的样子。

这个设计对网站方有个实际意义:代理拿到的每条结果,都带着你自己写的结构化数据原文。你的Schema写得准不准、全不全,直接决定代理看到的是什么。

视频里说的结构化数据,包括哪些东西?

这一段是视频里讲得最有意思的部分。Crystal Carter说,很多人一听结构化数据,想到的就是Schema标记和JSON-LD。可在数据科学里,凡是给数据打了标签、做了组织,就是结构化。按这个理解,网站上的结构化数据包括:

  • Schema标记。
  • 标题标签、各级小标题,HTML列表和表格,这些SEO做了很多年的基本功。
  • 商品数据源、博客或播客的RSS订阅源。
  • XML站点地图。
  • 自定义数据库,比如Wix里的CMS动态页面和数据集。

她的结论是,你这些年在Schema、小标题、HTML列表上下的功夫,现在都能派上用场,让网站为代理网络做好准备。她还引用了一个梗:那么多努力,换来了什么?换来了接入NLWeb的资格。

官方实现实际读的是什么

这个说法方向是对的,但和官方参考实现的数据入口对照一下,会更清楚哪些东西是直接用得上的。

按GitHub上的入门文档和数据加载工具说明,NLWeb的做法是先把数据计算成向量,存进向量数据库,查询时从库里检索。数据加载工具支持的格式是这五种:

  • 每行两列,用制表符分隔,一列网址,一列JSON。
  • 每行一列JSON,网址从JSON里取。
  • 带表头的CSV文件。
  • RSS或Atom订阅源。
  • 指向上面任意一种格式的网址。

可以看出,官方实现直接吃进去的,是Schema.org格式的JSON、RSS和表格数据这类条目化的东西。网页上的小标题、列表、表格,要先被抽取、整理成这几种格式,才能进库。视频里把小标题也算作结构化数据,说的是更宽的理念;要在官方实现里用起来,还得多一步处理。

仓库说明里还有一条生产建议:大多数正式部署会直接连接实时数据库,避免复制内容带来的数据过时问题。对价格和库存经常变的电商站,这一点很关键,向量库里存一份旧价格,代理拿去回答用户,比回答不出来更麻烦。

NLWeb和llms.txt、Schema、MCP的区别

最近一两年冒出来的面向AI的网站标准不少,容易混在一起。放在一张表里看:

名称是什么AI怎么用它
Schema标记写在网页里的结构化元数据抓取网页时顺带读取,理解页面讲的是什么
llms.txt放在网站根目录的Markdown文件,列出重要页面读一份静态清单,知道网站有哪些内容
MCP让AI助手调用外部工具的通用协议通过协议调用工具、拿数据、执行操作
NLWeb网站自己提供的自然语言问答接口,同时也是MCP服务器直接向网站提问,拿回Schema.org格式的结果

前两个是被动的,等AI来读;后两个是主动的,AI可以向网站发请求。NLWeb把Schema这类被动数据,变成了可以被提问的接口。站内写过llms.txt的字段和部署方法,可以对照看两者的定位差别。

一个普通网站要怎么接入?

视频里提到了两条路,加上官方文档,大致有三种接入方式:

方式要做什么适合谁
自己部署开源代码从GitHub拉代码,配置大模型、向量模型和向量数据库,导入数据,起服务有开发资源、数据量大、要深度定制的团队
建站平台的一键集成Wix提供NLWeb集成,勾选即可,要求是付费套餐并绑定自定义域名用Wix建站、没有开发资源的小商家
借助合作方的产品视频说还有其他NLWeb合作方在推,官方文档列出了Cloudflare AutoRAG等后端支持已经在用这些平台的网站

自己部署的大致步骤

官方的入门教程是在本机跑起来,用的是本地向量库和几个播客RSS做示例数据,要求Python 3.10以上。步骤压缩一下是这样:

  1. 克隆仓库,建一个Python虚拟环境。
  2. 进入AskAgent/python目录,安装依赖,会顺带装好本地向量库要用的包。
  3. 复制环境变量模板,填上你用的大模型接口密钥。
  4. 改config目录下的三个配置文件:大模型提供方、向量模型提供方、检索后端。教程里检索后端用本地的qdrant_local。
  5. 运行连通性检查脚本,确认密钥和配置都对。
  6. 用数据加载工具把RSS导进向量库,命令格式是python -m data_loading.db_load 数据地址 站点名。
  7. 启动服务,打开自带的网页界面提问测试。

教程里默认的OpenAI模型是gpt-4.1和gpt-4.1-mini,向量模型默认是text-embedding-3-small。仓库说明列出的大模型支持包括OpenAI、DeepSeek、Gemini、Anthropic等,向量库支持Qdrant、Snowflake、Milvus、Azure AI Search、Elasticsearch、Postgres和Cloudflare AutoRAG。项目用MIT许可证。

对国内团队来说,模型可以选DeepSeek,这降低了一点门槛。不过外贸站的服务器和用户多在海外,部署位置、接口延迟、数据合规要一起考虑,别只看模型便宜。

成本主要花在哪

开源代码不要钱,跑起来要钱的地方有三处:导入数据时计算向量的费用、每次提问调用大模型的费用、向量数据库的托管费用。条目越多、提问越多,费用越高。generate模式要调用一次或多次大模型,比list模式贵得多。上线前最好先估一下每月的提问量。

现在值不值得做,做SEO的人该怎么看?

先说清楚几件NLWeb目前做不到的事。

它和Google排名没有直接关系。没有任何公开信息表明Google、必应或者ChatGPT的搜索会去调用网站的NLWeb接口来生成答案。装了NLWeb,你的网站多了一个能被代理调用的接口,可代理怎么知道这个接口存在,是另一个问题。仓库里有一个叫AgentFinder的模块,定位是在网络上发现和路由到NLWeb代理的服务;行业里也有别的发现规范在推,比如站内讲过的ARD代理资源发现和Lighthouse的新审计,目前都还在早期。

Crystal Carter在视频里也说,代理网络现在还很偏大企业,提到的是万事达、Stripe、沃尔玛这些公司。她认为NLWeb的价值在于让任何网站都能用一次配置接上代理。这个判断有道理,但也要注意她的身份:她在Wix工作,Wix正好提供了NLWeb的一键集成。视频本身没有给出任何采用率或效果数据。

还有一点容易被忽略。仓库说明里写得很直白:NLWeb提供的实现代码只是概念验证,展示一种可能的做法,不是最终方案,项目希望社区做出超越这些示例的各种实现。仓库现在也不只一个问答服务,还拆出了几个模块:AskAgent是核心的问答代理,AgentFinder负责发现代理,DataFinder把自然语言翻译成SQL去查HubSpot、Dynamics 365、Jira这类企业数据,ModelRouter按质量门槛挑性价比合适的模型,NLWebScorer是给检索结果打分的模型。仓库说明还提到,持续集成和自动部署流程目前没有包含在内。

这说明NLWeb的定位更像一套参考设计和工具箱,要拿去跑正式业务,团队得有能力自己补测试、监控和运维。

哪些网站更值得试

  • 条目多、结构清楚的网站:商品目录、菜谱、活动、房源、课程。官方实现本来就是围绕结构化列表设计的,首批合作方也集中在这几类。
  • 站内搜索体验差、用户问题又比较复杂的网站。NLWeb本身就是一个更好的站内问答,对人也有用,不必等代理普及。站内测过的电商站内搜索查无结果的页面,问题很普遍。
  • 已经在用Wix付费版的小商家,接入成本几乎为零,可以先开着看看。

对内容量不大的外贸B2B企业站,几十个产品页、十几篇博客,单独部署一套NLWeb的投入产出比不高。更实在的做法,是先把视频里说的那些基本功做好,这些投入不管NLWeb以后发展得怎样,都不会浪费。

先把能复用的东西做好

不管最后是NLWeb、MCP,还是别的什么代理接口胜出,它们读网站时都更依赖条目化、字段清楚的数据,少靠模型从一大段文字里猜。可以先做这几件事:

  • 商品页的Product标记把价格、库存、型号、品牌、规格写全,和页面显示的一致。按全网采用度排优先级的方法,可以参考Schema使用统计数据的解读。
  • 博客和资讯保留一个可用的RSS订阅源,很多建站系统默认就有,别为了省事关掉。RSS是NLWeb官方实现直接支持的数据入口。
  • 商品数据源保持更新,它既是Merchant Center的入口,也可以作为NLWeb的数据来源。
  • 网页上的操作对代理友好,表单、按钮、筛选能被机器识别。站内做过AI代理能不能在网站上完成操作的检查,四个常见动作,能全部顺利完成的站很少。

串起来说,NLWeb目前更像一个方向明确、工具已经能用的早期项目。它最大的意义,是证明了Schema和RSS这些老标准在代理时代还有新用途。值不值得现在部署,看你的网站有没有大量结构化条目,以及站内搜索是不是真的拖了后腿。

常见问题解答

NLWeb是什么的缩写?

NLWeb是Natural Language Web的缩写,意思是自然语言网络。它是微软开源的项目,让网站可以用自然语言回答人和AI代理的提问。

NLWeb是谁开发的?

由R.V. Guha构思和开发,他是RSS、RDF和Schema.org的创造者,2025年加入微软任企业副总裁和技术院士。项目由微软和开源社区共同维护。

NLWeb是什么时候发布的?

微软在2025年5月19日正式发布NLWeb。GitHub仓库创建于2025年4月底,使用MIT许可证。

NLWeb和MCP是什么关系?

每个NLWeb实例同时是一个MCP服务器,提供/mcp接口,支持列出工具、调用工具等MCP核心方法。官方的说法是,NLWeb之于MCP和A2A,就像HTML之于HTTP。

视频里说的ASK协议是什么?

指NLWeb的核心方法ask和对应的/ask接口,用来向网站提一个自然语言问题。官方文档里它和/mcp接口参数相同,返回Schema.org格式的JSON。

NLWeb能读哪些数据?

官方数据加载工具支持网址加JSON的制表符分隔文件、纯JSON、带表头的CSV、RSS或Atom订阅源,以及指向这些格式的网址。数据会先计算成向量存进向量数据库。

装了NLWeb对Google排名有帮助吗?

没有证据表明有直接帮助。目前没有公开信息显示Google或其他AI搜索会调用网站的NLWeb接口。它更直接的价值是改善站内问答和对代理的可调用性。

NLWeb的三种回答模式有什么区别?

list返回最相关的条目列表,summarize先总结再给列表,generate调用大模型直接回答问题,更接近传统的检索增强生成,费用也更高。

Wix的NLWeb集成有什么要求?

按视频里的说法,需要Wix付费套餐并绑定自定义域名,满足条件后勾选启用即可。

NLWeb会不会让AI直接拿走网站内容?

NLWeb是网站方自己部署的接口,返回哪些数据、对谁开放,由网站方决定。微软公告的说法是,让网站在自己愿意的前提下,参与代理网络。

NLWeb和llms.txt有什么不同?

llms.txt是一份静态的页面清单,AI只能读;NLWeb是可以提问的接口,AI发一个自然语言问题,网站返回匹配的条目或答案。

NLWeb支持哪些大模型?

仓库说明列出的有OpenAI、DeepSeek、Gemini、Anthropic、Inception和HuggingFace上的模型,可以在配置文件里切换。

小型外贸网站需要部署NLWeb吗?

条目少的网站单独部署投入产出比不高。先把Product标记、RSS订阅源、商品数据源这些基础做好,以后接任何代理接口都用得上。

权威参考资料

分享到
标签
版权声明

本文标题:《NLWeb是什么?微软开源的网站对话接口,读的是你已经写好的Schema和RSS》

本文链接:https://zhangwenbao.com/nlweb-natural-language-web-ask-schema-mcp-guide.html

版权声明:本文原创,转载与引用请注明作者与原文链接。许可协议: CC BY 4.0

继续阅读
发表评论
支持 Ctrl + Enter 提交