一、为什么 AIGC 标准离不开 Web 行业协同?🌐
1. AIGC 已经不是"模型问题",而是"系统问题"
以前搞 AI,圈子很小:
- 算法研究员:卷谁的模型收敛得快
- 工程师:卷谁的 GPU 跑得更满
但 AIGC(AI Generated Content)真正落地时:
- 内容要在 浏览器渲染
- 模型推理要走 HTTP / WebSocket / gRPC 网关
- 权限要过 OAuth / Cookie / Token / CSP
- 调用要走 前端 SDK + 后端 API 协作
这时候,如果没有 Web 行业的统一标准,会怎样?
-
同一段 prompt,在不同平台:
- 有的走 REST
- 有的走 WebSocket
- 有的走纯流式 chunk
- 有的给你塞一层奇怪的 JSON 包壳
开发者日常变成:
ini
if (Vendor === 'A') then 这样包一层
else if (Vendor === 'B') then 那样包一层
else if (Vendor === 'C') then 你先祈祷文档是对的
这对 生态扩展 、工具链建设,是灾难级别的。
类比:想象一下,如果每家网站自己定义 HTML 标签------
<facebook-div>、<tiktok-p>, 浏览器工程师可能直接集体转行种地。
2. Web 是 AIGC 的"主战场",不是"附属品"
2.1 内容形态本身就是 Web 对象
在浏览器里,AIGC 生成的内容形式非常多样:
- 文本:要遵守 DOM、样式、安全策略
- 图片:Canvas /
<img>/ WebGL / WebGPU - 视频:MediaStream / MSE / WebRTC
- 互动内容:基于 JS 逻辑和虚拟 DOM
也就是说,AIGC 产物最终都是 Web 对象:
- 要能被浏览器安全、有效地"理解"和"呈现"
- 不能突破 Web 安全沙箱
- 不能随意注入恶意脚本、越权访问本地资源
这就意味着:
AIGC 标准不能只定义"接口长什么样",还要定义"在浏览器里怎么安全落地" 。
2.2 浏览器是最大规模的"AI 运行时"
从底层看,浏览器是一套极其复杂的"多语言运行时":
- JavaScript 引擎:V8 / SpiderMonkey / JavaScriptCore
- 渲染引擎:Blink / Gecko / WebKit
- GPU 管线:WebGL / WebGPU
- 安全模型:同源策略、CSP、权限 API
如果 AIGC 标准:
- 不考虑在浏览器端是否能高效流式处理
- 不考虑客户端是否能断点续传、并发请求、缓存
- 不考虑端上是否能轻量模型本地推理、协同云端计算
那它就会变成一个**"只适合写 PPT 的标准"**,而不是能跑在真实产品里的标准。
3. 协同的实质:让三种人说同一种"语言"🧠
AIGC 标准的核心参与者至少有三类:
-
模型侧:
- 关心:prompt 结构、上下文窗口、对话记忆、采样参数
- 心里想的是:"这玩意儿会不会损伤我模型的表达力?"
-
Web 平台 & 浏览器侧:
- 关心:性能、安全、网络协议、跨域策略
- 心里想的是:"别给我塞一个浏览器完全撑不住的怪协议。"
-
应用开发者:
- 关心:SDK 好不好用、API 是否统一、跨厂商迁移成本
- 心里想的是:"我代码能不能不写一堆
if (vendor === XXX)?"
标准制定的本质任务 :
是让这三类人,最终对同一条接口、同一种资源模型、同一组安全约束达成共识。
这就像在规定一门"跨族群通用语言":
- 模型讲"概率与分布"
- 浏览器讲"事件与流"
- 开发者讲"异步与回调"
标准需要把这三者翻译成:
统一的:
- 请求格式
- 响应结构
- 资源管理(会话、上下文、缓存)
- 权限 / 安全语义
二、AIGC + Web:底层到底在协同啥?🧩
从计算与系统视角,把事情拆开,其实有几条主线:
1. 数据流模型:从"黑盒接口"到"可组合流水线"
1.1 传统 HTTP:请求-响应,一锤子买卖
普通 Web API:
- 浏览器发起 HTTP 请求
- 服务器返回 JSON/HTML
- 一次交互就结束
1.2 AIGC:天然是"流式和状态化"的
例如一个流式文本生成过程,真实发生的是:
-
浏览器发出带上下文、参数、历史记录的请求
-
服务端启动一次长会话:
- 逐 token 生成
- 可能随时被中断、修改指令、追加上下文
-
多个标签页/设备还可能要共享对话状态
这意味着:
-
API 不再是"函数调用",而是一种"长生命周期会话资源"
-
标准里必须有:
- 会话 ID
- 流式通道(HTTP chunk / SSE / WebSocket 等)
- 状态同步与恢复机制
用一个类比:
- 传统 Web:一次请求像是"寄信"
- AIGC Web:更像"打视频电话,还能随时换背景和加字幕"
1.3 一个简化版 JS 示例:流式响应处理
ini
async function callAIGCStream(prompt) {
const response = await fetch('/aigc/generate', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ prompt, stream: true })
});
const reader = response.body.getReader();
const decoder = new TextDecoder('utf-8');
let buffer = '';
while (true) {
const { done, value } = await reader.read();
if (done) break;
buffer += decoder.decode(value, { stream: true });
// 假设服务端以换行分隔 chunk
let lines = buffer.split('\n');
buffer = lines.pop();
for (const line of lines) {
if (!line.trim()) continue;
let data;
try {
data = JSON.parse(line);
} catch (e) {
console.warn('Invalid JSON chunk:', line);
continue;
}
if (data.type === 'token') {
appendToUI(data.text); // UI 追加 token
} else if (data.type === 'meta') {
updateMeta(data.info); // 更新提示、进度等
}
}
}
}
如果各家厂商的流式协议不标准化 ,这段代码会变成一份"if-else 地狱",开发者体验和维护成本直接炸裂。
2. 资源模型:不仅是"调用接口",还是"管理记忆" 🧠
传统 Web:
- 资源是页面、文档、图片
- URL 代表一个静态或动态资源
AIGC 场景下,多了几种新的"资源":
-
对话会话
- 有生命周期
- 有上下文长度限制
- 需要序列化、迁移、共享
-
向量嵌入与知识库
-
需要标准的存储格式与查询接口
-
要有安全边界:
- 谁可以读?
- 谁可以写?
- 谁可以用这些数据做"进一步训练"?
-
-
模型本身与推理任务队列
- 不同模型版本
- 算力优先级
- 多租户隔离
如果 Web 行业不参与协同,就会出现:
- 每家都自己发明一套"会话标识""上下文传递格式""向量检索接口"
- 结果:生态工具做一次接入,要写 N 份适配层,完全无法规模化
3. 安全模型:AIGC 是"高危内容源"⚠️
Web 安全的基础观念是:
-
浏览器要保护用户免受:
- XSS(脚本注入)
- CSRF(跨站请求伪造)
- 点击劫持
- 隐私泄露
AIGC 带来了新类型的风险:
-
模型生成恶意内容
- 生成包含
<script>标签的 HTML 片段 - 生成钓鱼链接
- 生成含隐私信息的文本
- 生成包含
-
对抗样本与提示注入
- 用户通过精心设计 prompt,诱导模型泄露系统提示
- 引导模型越权访问数据
-
数据使用边界模糊
- 用户输入是否会被"继续训练"
- 不同应用间数据是否会被混用
这就要求标准中必须协商出:
-
内容输出的标记与沙箱策略(例如统一约束:
- HTML 片段必须经过 DOMPurify 类工具处理
- 或统一采用更安全的"结构化内容格式")
-
数据使用的声明与机器可读的 policy 格式
-
模型行为的"合规级别标记"(比如:
- 普通模式
- 严审模式
- 企业合规模式)
如果没有 Web 领域参与,安全标准就很容易和现有浏览器安全模型脱节。
4. 性能与算力:前端不是"搬运工",而是"参与者" ⚙️
Web 端技术近年的演进,给 AIGC 标准带来了新可能:
-
WebAssembly:
- 可在浏览器里跑高性能运算
-
WebGPU:
- 直接在浏览器调用 GPU 做并行计算
-
Edge Computing:
- 靠近用户的边缘节点降低延迟
这意味着:
-
AIGC 不必是纯云端
-
可以是:客户端与云端协作推理
- 前端本地做轻量预处理 / 模型剪枝推理
- 云端处理复杂逻辑、大模型二阶段生成
如果标准仅从云端视角设计,就会忽视:
- 客户端算力
- 边缘节点
- 本地缓存策略
- 模型分片加载
这又需要 Web 平台和引擎厂商加入:
去定义:
- 标准化的本地模型加载接口
- 统一的模型权重描述、校验和验证机制
- 安全沙箱:保证前端不会被"模型文件"植入后门
三、那为什么"协同"这么难?🧱
现在我们来讲讲"槽点环节"。
1. 利益冲突:大家都想当"事实标准"
现实情况是:
-
大厂 A:
- 已有一套完整 API + SDK + 工具链
- 当然希望"标准长得像我",这样接管生态更容易
-
大厂 B:
- 也有一套完全不同的
- 内心 OS:"为什么要用你的,不用我的?"
-
创业公司:
- 担心"标准定完,我成了执行单位,不是参与者"
结果:
大家开会时都说"开放、开放、开放",
真正落到每一条字段名、每一种错误码时,
心里都在盘算:"这个标准对我是不是最有利?"
标准会:
- 表面是技术讨论
- 本质上是温柔而持久的"地盘博弈"
2. 演进速度:AIGC 一年版本迭代,比某些标准十年都多 🏃♂️💨
Web 标准历来是"十年冷启动工程":
- HTTP/2:从草案到广泛部署,花了很多年
- WebAssembly:从 idea 到主流,也是一个漫长周期
但 AIGC 的现实是:
- 三个月一个新模型
- 六个月一个新架构
- 今年提的"最佳实践",明年就成了"历史包袱"
这就带来了悖论:
- 标准如果定得太细,等落地时已经过时
- 定得太粗,大家各自发挥,又回到"伪标准化"的状态
3. 抽象层级:抽象太高 vs 抽象太低 🎚️
做标准时,经常陷入两种极端:
-
抽象太高
-
只规定"有个叫会话的东西"
-
不规定:
- 会话怎么标识
- 状态如何转移
- 错误如何表达
-
结果就是:
- 每家都说"我们遵守标准"
- 实际上谁都对接不上谁
-
-
抽象太低
-
规定每个字段名、每个 JSON 结构
-
甚至连默认参数都写死
-
导致:
- 新特性完全塞不进去
- 所有人都被老设计反向绑定
-
理想情况是:
- 把交互行为、资源模型、安全语义标准化
- 把具体实现细节、模型内部参数留给各家灵活实现
这是极考验架构抽象能力的工作,技术和政治混合在一起,非常"烧脑"。
4. 多学科沟通障碍:建模的人和做浏览器的人,世界观不一样 🧬
举个真实常见的场景:
-
模型研究员:
- 讲的是概率、分布、采样、多模态对齐
-
浏览器工程师:
- 讲的是帧率、事件循环、内存碎片、垃圾回收
-
应用开发者:
- 讲的是 UX、交互流畅度、错误提示文案
三方凑一块开会时,有时会出现这样的对话:
研究员:
"我们需要支持一个超长上下文,能记住一整年对话历史。"
浏览器工程师:
"那请问你打算让用户浏览器怎么存?IndexedDB?File System?内存够吗?"
应用开发者:
"那用户换台手机,这个一年记忆咋同步?"
没有统一的跨学科语言,标准讨论就容易陷入惊险对话:
- "我以为你理解了我"
- "其实我根本不懂你在说啥,但是我不好意思问"
四、能不能给点"看起来靠谱"的未来方向?🔭
1. 统一但分层的 API 设计
一个有希望的方向是:
分层标准,而不是一次性包办一切。
可以考虑类似:
-
基础传输层
-
定义:
- 请求/响应结构
- 流式协议约定
-
保证:
- 不同服务商的 SDK 至少能在一套客户端基础设施上工作
-
-
能力描述层
-
例如:
- 该模型是否支持多模态
- 是否支持工具调用
- 是否支持函数式结构化输出
-
用统一 JSON 结构描述能力,让客户端"自适应用法"
-
-
安全与合规层
-
统一定义:
- 数据是否可用于训练
- 内容审查等级
- 日志是否可保留及保留时间
-
-
扩展层
-
为厂商保留"创新空间":
- 使用"扩展字段命名空间"
- 避免每个扩展都变成"兼容性灾难"
-
2. "对齐浏览器"的内容安全模型
对 Web 行业而言,一个要紧的原则应是:
AIGC 标准要与现有 Web 安全模型相容而非对抗。
包括但不限于:
-
所有可执行内容(脚本、富文本)必须标记为"非可信来源",
要经过安全清洗后才能注入 DOM
-
标准中鼓励(甚至要求)使用:
- 结构化内容描述(例如:树状结构 + 类型标记),
而不是简单的"直接生成 HTML 文本"
- 结构化内容描述(例如:树状结构 + 类型标记),
-
模型输出中与隐私相关的内容须带有可审计标签,
便利日志与合规系统介入
3. 生态驱动,而非"委员会闭门造车"
真正可行的路线不是:
- 一群人关在屋里写 500 页标准文档
- 再扔给开发者说:请照此实现
而更可能是这样:
-
各大厂在开源社区先给出可用又开放许可的 SDK / 协议草案
-
生态工具(编辑器插件、框架、浏览器扩展)逐步支持
-
从中沉淀出:
- 真正被广泛使用的模式
- 然后再逐步标准化
也就是说:
"先跑代码,再写标准;标准是对共识实践的抽象总结。"
五、对开发者来说,这意味着什么?🧑💻
如果你是 Web / JS 开发者,可以从三个层面理解自己在这场标准化中的角色:
-
使用者:
-
你有资格说:
- 哪种 API 设计烂
- 哪种错误处理完全不靠谱
-
这些反馈是标准能否"接地气"的关键
-
-
推动者:
-
你可以:
- 在开源工具中优先支持标准化接口
- 在公司内部技术选型中"投票"支持更开放的方案
-
-
未来潜在的"标准参与者":
- 很多标准工作组都欢迎真实一线开发者的声音
- 别以为"标准"只能是架构师和专家在写
- 你每天敲的 bugfix,有时候比一份"理想化提案"更有价值
六、结语:标准不是"圣经",是"协作契约" 📜
AIGC 技术正在把 Web 世界从:
- "人写代码给人看"
变成: - "人写提示词,机器写内容,再给人看"
在这个过程中,标准的意义并不是:
- 把所有细节写死
- 把所有创新框死
而是:
让不认识的人,
在不同公司、不同技术栈、不同国家,
依然可以愉快地协同构建同一个生态系统。
就像 TCP/IP 之于互联网,
未来总会有一套(或者一组)AIGC + Web 协议之于"智能内容互联网"。
在那之前,我们可能还要经历:
- 微妙的厂商博弈
- 漫长的试错周期
- 数不清的"不兼容坑"
但只要技术人还在坚持一个简单信念------
"让东西变得更好用、更安全、更开放一点点"