微软全新开源的Agentic Web网络项目:NLWeb,到底是什么 ?
目录
1、背景
2、NLWeb是什么?
3、NLWeb是如何工作的?
3.1 技术原理
3.2 对发布者的价值
3.3 核心团队与合作伙伴
4、快速入门指南
5、延伸阅读
Agentic:Agent的形容词,Agentic指系统由大型语言模型(LLM)或其他自治系统驱动的自主程度。
NLWeb:Natural Language Web(自然语言网络)的缩写,该项目旨在简化网站自然语言交互界面开发,轻松将任意网站转化为具备 AI 功能的智能应用平台。
1、背景
2025年5月20日,微软Build大会上,CEO Satya Nadella展示了如何构建开放的智能代理网络的(agentic web),目标是帮助每一位开发者构建能够赋能全球各地的人们和组织的应用程序和Agents。整体宣布了5个大事件(其中4个与Agent相关):
-
Coding agent:我们将GitHub Copilot从“配对程序员”升级为“同行程序员”。现在,您拥有一个直接集成在GitHub中的完整编程智能代理。您可以为它分配任务——无论是修复漏洞、开发新功能,还是持续的代码维护。它将自主完成这些任务。
-
Copilot调优:Copilot现在可以学习您公司独特的语气和语言风格。这主要是将您作为公司所拥有的专业知识进一步放大,以便每个人都能使用。
-
Agent factory:Foundry是用于构建应用程序和智能代理的完整应用平台。我们正在增加对Grok、Hugging Face、Meta、Mistral等更多模型的支持。此外还包括:Azure AI搜索中的智能代理检索功能、Foundry智能代理服务以及与Copilot Studio的集成等。
-
NLWeb:是一个新的开放项目, 在代理网络中扮演着与 HTML 类似的角色,旨在简化网站的自然语言界面的创建,从而使任何网站易于将任何网站变成AI-Power的应用程序。
-
微软发现(Microsoft Discovery):企业代理平台,将整个技术栈整合在一起,以加快科学发现的速度。发现工具使用Agents生成想法、模拟结果并进行学习。一个很好的例子是这种有希望成为冷却剂的候选物质,它不依赖于持久性化学品(科学家研究领域范畴)。
2、NLWeb是什么?
为网站构建会话界面是很困难的,NLWeb 试图让网站更容易做到这一点。
「NLWeb 允许用户使用自然语言与任何网站进行交互。我们可以把它想象成智能体化 web 世界的 HTML。」
NLWeb 是由微软开发的一个开放项目,旨在让网站能够轻松地使用其选择的模型和自有数据创建丰富的自然语言界面。目标是让 NLWeb成为将网站高效转化为 AI 应用的最快捷、最简便的方法,让用户能够像使用 AI 助手或 Copilot 一样,直接使用自然语言查询网站内容。
由于 NLWeb 原生支持 MCP,因此人类和智能体可以使用相同的自然语言 API。MCP 是一种新兴的协议,用于聊天机器人和 AI 助手与工具交互。每个 NLWeb 实例本身也是一个 MCP 服务器,它支持一个核心方法 ask,该方法用于以自然语言的方式向网站提出问题。返回的响应利用了 schema.org,这是一个广泛使用的描述 Web 数据的词汇表。
简单来说,MCP 与 NLWeb 的关系就像 Http 与 HTML 的关系一样。作为一个开放协议和相关开源工具的集合,NLWeb 主要目标是为 AI Web 构建一个基础层 —— 就像 HTML 彻底革新了文档共享一样。
一直以来,开发能够用自然语言与应用程序乃至整个计算机世界进行自由对话的智能体一直是 AI 革命的核心。然而,当前大多数新型交互都被 ChatGPT、Claude 甚至必应等产品垄断。这些机器人汲取海量知识却不产生实质价值。而 NLWeb 相比传统搜索要便宜得多,且使用起来非常方便,仅需几行代码、任选 AI 模型(OpenAI 、DeepSeek、Gemini、Anthropic、Inception 等),并输入特定数据,NLWeb 就能为用户提供对话式交互界面(即一个文本框加提交按钮)。
比如:Eventbrite公司(美国一个活动管理和在线票务平台),面相用户的搜索场景,基于NLWeb升级前后的交互对比。
升级前:传统搜索交互
-
构建传统搜索引擎,按条件搜索。
升级后:NLWEB自然语言交互
-
自然语言输入:I'm in Seattle for a tech conference. Are there any geeky events I might enjoy?(译:我在西雅图参加一个技术会议。有什么我可能喜欢的极客活动吗?)
还有很多类似的场景,比如零售商可以使用 NLWeb 创建一个聊天机器人,帮助用户选择特定行程的服装;而烹饪网站则可以使用它来构建一个根据菜谱推荐合适菜肴的智能体。
回想以前,研究者为了建立一个网络搜索索引,需要爬取整个网络并创建一个包含它的索引。这对于搜索引擎和相关网站来说都是昂贵的。但有了 NLWeb 后,事情就变得简单了,比如你可能只需要获取一个 RSS 源,然后把它放到一个矢量数据库中,就可以运行了。此外,NLWeb 还可以调用廉价模型,而且整个过程快速且简便。
RSS 源是一种基于XML格式的数据源,用于发布和订阅网站内容的更新。通过RSS 源,用户可以方便地获取最新信息,而无需频繁访问网站。RSS应用在国外已经非常普遍,从个人博客(Blog)栏目、企业站点到世界级的门户都提供基于RSS的服务。
3、NLWeb是如何工作的?
微软的目标是将人工智能改变人们搜索方式的优势直接带到网站本身。正如 HTML 的出现让几乎任何人都能轻松创建网站一样,微软希望 NLWeb 能够让任何网络发布者都能轻松地为其网站打造智能、自然的语言体验。NLWeb 可以在智能体网络中扮演与 HTML 类似的角色,它允许用户以更丰富的语义方式直接与 Web 内容进行交互。
随着智能体网络的持续增长,NLWeb 将赋能网络发布者,使其能够按照自己的意愿参与其中,确保他们的网站能够随时进行互动、交易,并被其他智能体发现(如果他们选择的话)。
3.1 技术原理
NLWeb通过整合以下要素实现自然语言交互:
-
结构化数据支持:在实现方面,NLWeb 利用 Schema.org、RSS 等半结构化格式以及网站已发布的其他数据,并将它们与 LLM 驱动的工具相结合,创建可供人类和 AI 智能体使用的自然语言界面。
-
LLM增强:NLWeb 系统通过整合来自底层 LLM 的外部知识(例如将地理洞察叠加到餐厅查询中)来增强这些结构化数据,从而提供更丰富的用户体验。
-
技术中立架构:作为一个开放项目,NLWeb 的技术无关性很强。它支持所有主流操作系统(Windows、MacOS、Linux),并允许开发者选择最符合自身需求的组件,同时支持所有主流模型和矢量数据库。
-
代理兼容性:提供人类与AI代理均可使用的统一接口。
3.2 对发布者的价值
-
降低AI应用门槛:如同HTML简化网站建设,NLWeb让自然语言交互部署变得简单
-
参与智能体经济:通过MCP协议自主控制网站内容在智能体网络中的可见性与交互方式
-
数据主权保障:发布者完全掌控使用的模型、数据存储及服务扩展方式
3.3 核心团队与合作伙伴
-
技术领袖:由RSS、RDF和Schema.org标准的创建者R.V. Guha主导开发
-
早期采用者:芝加哥公共媒体、Eventbrite、Shopify、Tripadvisor等已部署测试
-
技术生态伙伴:包括Milvus、Qdrant等向量数据库开发商
4、快速入门指南
访问NLWeb GitHub仓库获取:
-
核心服务代码:处理自然语言查询的轻量级服务框架
-
连接器套件:主流模型(如GPT-4、Claude)和向量数据库的预置接口
-
数据工具包:支持Schema.org、JSONL、RSS等格式的数据注入工具
-
前端模板:包含Web服务器前端及简易查询界面的开箱即用方案
5、延伸阅读
【完整版】微软Build 2025主题演讲 | 萨提亚·纳德拉_哔哩哔哩_bilibili
GitHub - microsoft/NLWeb: Natural Language Web
https://news.microsoft.com/build-2025-book-of-news/zh/#main
https://news.microsoft.com/source/features/company-news/introducing-nlweb-bringing-conversational-interfaces-directly-to-the-web/
相关文章:

微软全新开源的Agentic Web网络项目:NLWeb,到底是什么 ?
目录 1、背景 2、NLWeb是什么? 3、NLWeb是如何工作的? 3.1 技术原理 3.2 对发布者的价值 3.3 核心团队与合作伙伴 4、快速入门指南 5、延伸阅读 Agentic:Agent的形容词,Agentic指系统由大型语言模型(LLM&#…...

Idea出现 100% classes 等
总是误点出来,每次又忘了怎么消除,在这里记录一下。 出现这样: 操作idea界面的:点击View->Tool Windows ->Coverage,然后关掉...

【学习笔记】计算机操作系统(五)—— 虚拟存储器
第五章 虚拟存储器 文章目录 第五章 虚拟存储器5.1 虚拟存储器概述5.1.1 常规存储管理方式的特征和局部性原理5.1.2 虚拟存储器的定义和特征5.1.3 虚拟存储器的实现方法 5.2 请求分页存储管理方式5.2.1 请求分页中的硬件支持5.2.2 请求分页中的内存分配5.2.3 页面调入策略 5.3 …...
构建基于全面业务数据的大数据与大模型企业护城河战略
引言:数据与AI驱动的专精企业未来 在数字化浪潮和人工智能技术飞速发展的今天,对于“专精特新”型企业而言,如何利用自身积累的深厚行业知识和独特的业务数据,结合大数据分析与大模型能力,构建难以被复制的竞争壁垒&a…...
centos系统redis-dump安装
1. Ruby 环境 Redis-dump 是一个 Ruby 工具,需先安装 Ruby 和 RubyGems。 安装依赖: sudo yum install -y curl gpg2 gcc-c patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel openssl-devel make bzip2 autoconf aut…...

乘最多水的容器 | 算法 | 给定一个整数数组。有n条垂线。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。
在我们日常生活中,蓄水似乎是一个极为朴素的物理行为:两堵墙之间,注入水,看谁能装得更多。可如果换个角度,从算法的视角去看这个问题,它会变得怎样?你是否意识到,这样一个简单的问题…...
Python项目文件组织与PyCharm实践:打造高效开发环境
# Python项目文件组织与PyCharm实践:打造高效开发环境 在Python编程的世界里,合理组织项目文件是提升代码质量、增强可维护性以及促进团队协作的关键。同时,借助强大的集成开发环境(IDE)——PyCharm,我们能…...

【Java高阶面经:数据库篇】19、分库分表查询困境:无分库分表键时的高效应对
一、分库分表下的无分片键查询困境 在分布式数据库架构中,分库分表通过分片键(如买家ID)将数据分散存储,显著提升了单表性能和系统扩展性。然而,当业务需要从非分片键维度(如卖家ID)进行查询时,传统架构暴露出以下核心问题: 1.1 跨分片扫描的性能灾难 数据分散性:以…...

spring中的BeanFactoryAware接口详解
一、接口定义与核心作用 BeanFactoryAware 是 Spring 框架提供的一个回调接口,允许 Bean 在初始化阶段获取其所属的 BeanFactory 实例。该接口定义如下: public interface BeanFactoryAware {void setBeanFactory(BeanFactory beanFactory) throws Bea…...

Unity Hub打不开项目一直在加载
Unity Hub打不开项目,一直在加载。 运行环境:win10 解决方法:退还个人许可证,退出UnityHub重新登录后,再次获取个人许可证 Tips: 国内连续超过三天不登陆就需要激活一次。(每天登陆一次会自动续时间吗&…...

蓝桥杯19681 01背包
问题描述 有 N 件物品和一个体积为 M 的背包。第 i 个物品的体积为 vi,价值为 wi。每件物品只能使用一次。 请问可以通过什么样的方式选择物品,使得物品总体积不超过 M 的情况下总价值最大,输出这个最大价值即可。 输入格式 第一行输…...
服务器操作系统调优内核参数(方便查询)
fs.aio-max-nr1048576 #此参数限制并发未完成的异步请求数目,应该设置避免I/O子系统故障 fs.file-max1048575 #该参数决定了系统中所允许的文件句柄最大数目,文件句柄设置代表linux系统中可以打开的文件的数量 fs.inotify.max_user_watches8192000 #表…...

ElasticSearch导读
ElasticSearch 简介:ElasticSearch简称ES是一个开源的分布式搜素和数据分析引擎。是使用Java开发并且是当前最流行的开源的企业级搜索引擎,能够达到近实时搜索,它专门设计用于处理大规模的文本数据和实现高性能的全文搜索。它基于 Apache Luc…...

【机器学习】 关于外插修正随机梯度方法的数值实验
1. 随机梯度下降(SGD) 迭代格式: x k 1 x k − η k ∇ f i ( x k ) x_{k1} x_k - \eta_k \nabla f_i(x_k) xk1xk−ηk∇fi(xk) 其中, η k \eta_k ηk 为步长(可能递减), ∇ f…...

结构型:组合模式
目录 1、核心思想 2、实现方式 2.1 模式结构 2.2 实现案例 3、优缺点分析 4、适用场景 1、核心思想 目的:将总是在重复、迭代地显示的某种自相似性的结构(部分与整体结构特征相似),例如树形结构,以统一的方式处…...

windows 删除文件夹提示“操作无法完成,因为其中的文件夹或文件已在另一程序中打开”
windows 删除文件夹提示“操作无法完成,因为其中的文件夹或文件已在另一程序中打开” tomact已经关闭了,刚开始怀疑是tomcat关闭不彻底,但是任务管理器–》进程里根本没有java的进程了,由于是医院服务器、不方便重启 解决方法&am…...
使用 electron-builder 打包与发布 Electron 应用
基于 electron-vite-vue 项目结构 本文将基于 electron-vite-vue 脚手架,详细介绍如何使用 electron-builder 实现: ✅ 多平台打包(Windows / macOS / Linux)✅ 自动更新发布配置✅ 常用构建脚本与输出结构 📁 项目结…...

微信小程序中,解决lottie动画在真机不显示的问题
api部分 export function getRainInfo() {return onlineRequest({url: /ball/recruit/getRainInfo,method: get}); }data存储json数据 data:{rainJson:{} }onLoad方法获取json数据 onLoad(options) {let that thisgetRainInfo().then((res)>{that.setData({r…...

Wireshark 抓包工具使用
1.下载地址 https://2.na.dl.wireshark.org/win64/ 或者 Wireshark Go Deep 2.安装并打开 3.电脑设置热点,手机连接热点 4.手机发起网络请求,工具上选择WLAN。或者本地连接 5.点击查看抓包数据,过滤。最好用发送端ip过滤,s…...

大语言模型(LLM)本身是无状态的,怎么固化记忆
大语言模型(LLM)本身是无状态的,无法直接“记住”历史对话或用户特定信息 大语言模型(LLM)本身是无状态的,无法直接“记住”历史对话或用户特定信息,但可以通过架构改进、外部记忆整合、训练方法优化等方案实现上下文记忆能力。 一、模型内部记忆增强:让LLM“记住”…...

JUC入门(六)
12、四大函数式接口 Consumer<T>(消费者接口) 源码 功能 接收一个参数T,不返回任何结果。主要用于消费操作,例如打印日志、更新状态等。 使用场景 遍历集合并执行操作。 对象的字段赋值。 代码示例 import java.util.…...
std::chrono类的简单使用实例及分析
author: hjjdebug date: 2025年 05月 20日 星期二 14:36:17 CST descrip: std::chrono类的简单使用实例及分析 文章目录 1.实例代码:2. 代码分析:2.1 auto t1 std::chrono::high_resolution_clock::now();2.1.1 什么是 system_clock2.1.2 什么是 chrono::time_point?2.1.3 什…...
Git命令汇总(自用,持续更新update 5/23)
文章目录 Git常见命令1. 推送空提交2. 提交Clean-PR3. 回退add操作4. 交互式rebase4.1 切换模式4.2 保存与退出4.3 注意Rebase 5. 合并多个commit 问题一:Clone Github报错The TLS connection was non-properly terminated.TLS握手报错原因解决 问题二:F…...

window xampp apache使用腾讯云ssl证书配置https
下载腾讯云ssl证书: 编辑Apache根目录下 conf/httpd.conf 文件: #LoadModule ssl_module modules/mod_ssl.so和#Include conf/extra/httpd-ssl.conf,去掉前面的#号注释。 编辑Apache根目录下 conf/httpd-ssl.conf 文件: <Vi…...
MATLAB求解二元一次方程组基础教程
MATLAB求解二元一次方程组基础教程 一、二元一次方程组简介 二元一次方程组是包含两个未知数(x和y)的一组方程,每个方程中未知数的最高次数为1。一般形式为: a₁x b₁y c₁ a₂x b₂y c₂其中a₁, b₁, c₁, a₂, b₂, c₂为已知系数。 二、MATL…...
Android13 wifi设置国家码详解
Android13 wifi设置国家码详解 文章目录 Android13 wifi设置国家码详解一、前言二、设置wifi国家码相关代码1、adb或者串口也能设置和获取当前国家码(1)查询命令的方式(2)获取和设置国家码的示例 2、Java代码设置国家码3、获取当前…...

逆向音乐APP:Python爬虫获取音乐榜单 (1)
1. 引言 在数字音乐时代,许多平台如音乐有榜单,限制非付费用户访问高音质或独家内容。然而,从技术研究的角度来看,我们可以通过逆向工程和Python爬虫技术解音乐的API接口,获取付费音乐的播放链接。 2. 技术准备 在当…...
JVM 垃圾回收器
以下是对主流 JVM 垃圾回收器的详细解析,涵盖 一、Serial GC(单线程串行回收器) 二、Parallel GC(吞吐量优先回收器) 三、CMS(Concurrent Mark Sweep,低延迟回收器) 四、G1&…...
Java合并两个列表到目标列表,并且进行排序
可以通过使用addAll()方法将两个列表合并到目标列表中。以下是实现代码: java 复制 下载 List<LedgerRecord> rkRecordList warehouseMapper.selectLedgerRkRecordByMaterialNo(materialNo); List<LedgerRecord> ckRecordList warehouseMapper.se…...
Spring AI Alibaba集成阿里云百炼大模型应用
文章目录 1.准备工作2.引入maven依赖3.application.yml4.调用4.1.非流式调用4.2.流式调用 阿里云百炼推出的智能体应用、工作流应用和智能体编排应用,有效解决了大模型在处理私有领域问题、获取最新信息、遵循固定流程以及自动规划复杂项目等方面的局限,…...