Web 应该是机器可读的。这里有一个简单的方法。
Source: Dev.to
问题很简单
每个互联网上的 AI 代理都在做同一件事:获取 HTML,猜测内容是什么,却常常猜错。
当 AI 工具尝试使用你的网站时,它看到的内容是:

Sarah Chen
AI Agents Need Structure
The web was built for...
BUY NOW
“Sarah Chen” 是作者还是评论者?文章在哪里结束,广告从哪里开始?机器必须进行猜测,而它经常猜错。
我们有 robots.txt 来告诉机器哪些内容要避开。我们却没有任何东西告诉它们我们 拥有 的内容。
我的信念
-
网络应该被机器读取——不仅仅是人类。
AI 代理正成为人们获取信息的方式。如果你的内容没有为它们结构化,就会越来越不可见。 -
结构化数据不应需要自定义 API。
如今每一次集成都需要定制,每一个爬虫都是临时方案。应该有一种简单的约定,适用于所有场景。 -
署名不应是可选的。
如果机器读取你的内容,它应该知道内容的作者以及如何给出信用。这应当是协议的一部分,而不是事后补充。 -
开放优于专有。
如果我们不为此建立开放标准,每家 AI 公司都会构建自己的封闭管道。这对所有人都更糟。
所以我构建了一个东西
FlyWeb 是位于 /.well-known/flyweb.json 的 JSON 文件。它让任何网站以机器可理解的方式描述其内容。
{
"flyweb": "1.0",
"entity": "My Tech Blog",
"type": "blog",
"attribution": {
"required": true,
"must_link": true
},
"resources": {
"posts": {
"path": "/.flyweb/posts",
"format": "jsonl",
"fields": ["title", "author", "date", "tags", "content", "url"],
"access": "free",
"query": "?tag={tag}&limit={n}"
}
}
}
单个文件。一个能够找到它的 AI 代理就能知道你拥有何种内容、在哪里可以获取干净的数据、如何查询以及如何给你署名。无需 SDK、无需 API 密钥、无需 OAuth——只需要一个文件和一个约定。
工作原理
发现 – AI 代理检查 /.well-known/flyweb.json,类似爬虫检查 robots.txt。
结构 – 内容以干净的 JSON 或 JSONL 形式在您定义的路径上提供。
GET /.flyweb/posts
{"title": "Why AI Needs Structure", "author": "Sarah Chen", "date": "2026-02-15", "content": "..."}
{"title": "The Future of Web Protocols", "author": "Sarah Chen", "date": "2026-02-10", "content": "..."}
查询 – 标准 URL 参数。没有花哨的东西。
GET /.flyweb/posts?tag=ai&limit=5
前后对比
没有 FlyWeb – AI 进行猜测。它解析你的 Tailwind 类,希望找到正确的元素,却只能给你零分。
使用 FlyWeb – AI 得到以下内容:
{
"title": "AI Agents Need Structure",
"author": "Sarah Chen",
"date": "2026-02-15",
"tags": ["ai", "web"],
"content": "The web was built for...",
"url": "https://example.com/posts/42"
}
没有猜测。没有抓取。没有幻觉式的元数据。
署名不是可选的
这是我最关心的部分。
{
"attribution": {
"required": true,
"license": "CC-BY-4.0",
"must_link": true
}
}
你可以免费提供你的内容。你不应该失去署名权。在 FlyWeb 中,署名是协议的一部分——不是建议,也不是“最佳实践”,而是规范要求。
添加仅需几分钟
CLI
npx flyweb init
框架插件
npm i next-flyweb # Next.js
npm i astro-flyweb # Astro
npm i sveltekit-flyweb # SvelteKit
npm i nuxt-flyweb # Nuxt
npm i express-flyweb # Express
WordPress
有一个 plugin 可以自动从你的文章和页面生成配置。
验证
npx flyweb check https://your-site.com
面向 AI 开发者
用于消费 FlyWeb 数据的客户端 SDK
import { discover, fetchResource } from 'flyweb/client';
const site = await discover('https://techcrunch.com');
const articles = await fetchResource(
'https://techcrunch.com',
site.config.resources.articles,
{ params: { tag: 'ai' }, limit: 10 }
);
// Clean JSON. No scraping.
用于 Claude Code、Cursor 等工具的 MCP 服务器
{
"mcpServers": {
"flyweb": {
"command": "npx",
"args": ["-y", "flyweb-mcp"]
}
}
}
我不知道这是否会成功
我不会假装这一定会成功。协议很难。采纳更难。
但问题是真实存在的。AI 代理正在盲目抓取网页,内容创作者却没有得到适当的归属或结构。FlyWeb 旨在为双方提供一个清晰、开放且易于实现的解决方案。
获得零信用
每过去一个没有开放标准的月份,专有流程就会更加根深蒂固。
FlyWeb 是一个小小的尝试,认为简单的开放约定可以在为时已晚之前解决这个问题。
协议是开放的
- GitHub –
- Spec –
- Website –
- Docs –
- npm –
- MCP Server –
MIT 许可证。没有供应商锁定。无需付费。如果你认为网络应该可被机器读取,欢迎尝试。如果你有想法,欢迎提交 PR。
网络是为人类的眼睛而建的。它不应止步于此。