2026年3月

ImgBin CLI 工具设计:HagiCode 图片资产管理方案

本文介绍如何从零构建一个可自动化执行的图片资产流水线,包括 CLI 工具设计、Provider Adapter 架构、以及元数据管理策略。

背景

其实也没想到,图片资产管理这事儿也能让我们纠结这么久。

在 HagiCode 项目开发过程中,我们遇到了一个看似简单却十分棘手的问题:图片资产的生成和管理。怎么说呢,就像青春期的那些事儿一样——表面上风平浪静,暗地里波澜起伏。

随着项目文档和营销物料的增多,需要大量配图。这些配图有些需要 AI 生成,有些需要从现有素材库中挑选,还有些需要对现有图片进行 AI 识别并自动标注。问题在于,这些工作长期以来都是用零散的脚本加人工操作来完成的——每次生成一张图片,都需要手动执行脚本、手动整理元数据、手动生成缩略图。这也就罢了,关键是这些零散的东西散落在各处,想找的时候找不到,想用的时候用不了。

具体痛点包括:

  1. 缺乏统一入口:图片生成的逻辑分散在不同脚本中,想批量执行根本没门
  2. 元数据缺失:生成后的图片没有统一的 metadata.json,无法检索和追踪
  3. 人工整理成本高:图片的标题、标签都需要人工一一整理,效率低下
  4. 无法自动化:CI/CD 流程中想要自动生成配图?门都没有

也曾想过干脆不管了,可是毕竟还是要做项目的嘛。既然躲不掉,那就想办法解决呗。于是我们决定,将 ImgBin 从「零散脚本」升级为可自动化执行的图片资产流水线。毕竟有些事儿,逃避也不是办法。

关于 HagiCode

本文分享的方案来自我们在 HagiCode 项目中的实践经验。HagiCode 是一个 AI 代码助手项目,同时维护着 VSCode 扩展、后端 AI 服务、跨平台桌面客户端等多种组件。在这种多语言、多平台的复杂场景下,图片资产的规范管理成了提升开发效率的关键一环。

怎么说呢,这也算是 HagiCode 成长过程中的一个小小烦恼吧。每个项目都会有这样的时候,看起来不起眼的小问题,却能让人折腾半天。

HagiCode 的构建系统采用 TypeScript + Node.js 生态,因此 ImgBin 也顺理成章地选择了相同的技术栈,确保整个项目的技术一致性。毕竟都用习惯了,换别的也嫌麻烦嘛。


核心设计

整体架构

ImgBin 采用分层架构,将 CLI 命令、应用服务、第三方 API 适配器和基础设施层清晰分离:

组件层次结构
├── CLI Entry (cli.ts)              全局参数解析、命令路由
├── Commands (commands/*)           generate | batch | annotate | thumbnail
├── Application Services            job-runner | metadata | thumbnail | asset-writer
├── Provider Adapters               image-api-provider | vision-api-provider
└── Infrastructure Layer            config | logger | paths | schema

这种分层设计的好处是:每层的职责清晰,测试时可以方便地 mock 掉外部依赖。其实也就是让各干各的,互不打扰,这样出了问题也容易找原因,不是么?

单资产目录模型

ImgBin 采用了「一个资产一个目录」的模型,每次生成图片时,都会创建如下结构:

library/
└── 2026-03/
    └── orange-dashboard/
        ├── original.png      # 原始图片
        ├── thumbnail.webp    # 512x512 缩略图
        └── metadata.json     # 结构化元数据

这种模型的优势在于:

  1. 自包含:每个资产的所有文件都在同一个目录,迁移、备份都很方便
  2. 可追溯:通过 metadata.json 可以追溯图片的生成时间、使用的 prompt、模型等信息
  3. 可扩展:未来如果需要添加更多变体(比如不同尺寸的缩略图),只需要在同一目录下新增文件即可

美的事物或人,不一定要占有,只要她还是美的,自己好好看着她的美就好了。这话虽然说得有点远了,但理儿是这么个理儿——图片放在一起了,看起来也舒服,找起来也方便。

元数据分层存储

metadata.json 是整个系统的核心,它采用分层存储策略,区分了三类字段:

{
  "schemaVersion": 2,
  "assetId": "orange-dashboard",
  "slug": "orange-dashboard",
  "title": "Orange Dashboard",
  "tags": ["dashboard", "hero", "orange"],

  "source": { "type": "generated" },

  "paths": {
    "assetDir": "library/2026-03/orange-dashboard",
    "original": "original.png",
    "thumbnail": "thumbnail.webp"
  },

  "generated": {
    "prompt": "orange dashboard for docs hero",
    "provider": "azure-openai-image-api",
    "model": "gpt-image-1.5"
  },

  "recognized": {
    "title": "Orange Dashboard",
    "tags": ["dashboard", "ui", "orange"],
    "description": "A modern orange dashboard with charts and metrics"
  },

  "status": {
    "generation": "succeeded",
    "recognition": "succeeded",
    "thumbnail": "succeeded"
  },

  "timestamps": {
    "createdAt": "2026-03-11T04:01:19.570Z",
    "updatedAt": "2026-03-11T04:02:09.132Z"
  }
}
  • generated:记录图片生成时的原始信息,如使用的 prompt、提供商、模型等
  • recognized:AI 识别结果,如自动生成的标题、标签、描述
  • manual:人工整理的结果,这个区的数据优先级最高,不会被 AI 识别覆盖

这种分层策略解决了我们之前的一个核心矛盾:AI 识别结果和人工整理结果谁优先?答案是人工优先,AI 识别只是辅助。这事儿也想明白了——有些东西嘛,机器终究是机器,终究还是得人来把关。


Provider Adapter 模式

ImgBin 的另一个核心设计是 Provider Adapter 模式。我们将外部 API 抽象为统一的接口,这样即使更换 AI 服务商,也不需要修改业务逻辑。

怎么说呢,这就跟感情一样——外表怎么变不重要,重要的是内心那套东西不变。接口定好了,内部的实现怎么换都行。

Image Generation Provider

interface ImageGenerationProvider {
  // 生成图片,返回图片的 Buffer
  generate(options: GenerateOptions): Promise<Buffer>;

  // 获取支持的模型列表
  getSupportedModels(): Promise<string[]>;
}

interface GenerateOptions {
  prompt: string;
  model?: string;
  size?: '1024x1024' | '1792x1024' | '1024x1792';
  quality?: 'standard' | 'hd';
  format?: 'png' | 'webp' | 'jpeg';
}

Vision Recognition Provider

interface VisionRecognitionProvider {
  // 识别图片内容,返回结构化的元数据
  recognize(imageBuffer: Buffer): Promise<RecognitionResult>;

  // 获取支持的模型列表
  getSupportedModels(): Promise<string[]>;
}

interface RecognitionResult {
  title?: string;
  tags: string[];
  description?: string;
  confidence: number;
}

这种接口设计的优势在于:

  1. 可测试:单元测试时可以传入 mock provider,不需要真正调用外部 API
  2. 可扩展:新增一个 provider 只需要实现接口,不需要修改调用方代码
  3. 可替换:生产环境用 Azure OpenAI,测试环境用本地模型,只需要切换配置

想笑来伪装自己掉下的泪,想哭来试探自己麻痹了没——有时候做项目就是这样,表面上看是换了个 API,实际上内在的那套逻辑一点没变,也就没什么好怕的了。


CLI 命令设计

ImgBin 提供了四个核心命令,满足不同的使用场景:

generate:单图生成

# 最简单的用法
imgbin generate --prompt "orange dashboard for docs hero"

# 同时生成缩略图和 AI 标注
imgbin generate --prompt "orange dashboard" --annotate --thumbnail

# 指定输出目录
imgbin generate --prompt "orange dashboard" --output ./library

batch:批量任务

批量任务通过 YAML 或 JSON manifest 文件定义,适合 CI/CD 流程中使用:

# assets/jobs/launch.yaml
defaults:
  annotate: true
  thumbnail: true
  libraryRoot: ./library

jobs:
  - prompt: "orange dashboard hero"
    slug: orange-dashboard
    tags: [dashboard, hero, orange]

  - prompt: "pricing grid for docs"
    slug: pricing-grid
    tags: [pricing, grid, docs]

执行命令:

imgbin batch assets/jobs/launch.yaml

批量任务的设计支持失败隔离:manifest 中逐项处理,单项失败不影响其他任务。可以通过 --dry-run 预览而不实际执行。

这也就罢了,关键是它还能告诉你哪儿成功了哪儿失败了,不像某些事儿,失败了都不知道怎么失败的。

annotate:AI 标注

对现有图片执行 AI 识别,自动生成标题、标签、描述:

# 标注单张图片
imgbin annotate ./library/2026-03/orange-dashboard

# 批量标注整个目录
imgbin annotate ./library/2026-03/

thumbnail:缩略图生成

为既有图片补生成缩略图:

# 生成缩略图
imgbin thumbnail ./library/2026-03/orange-dashboard

批量任务 Manifest 设计

批量任务的 manifest 支持灵活的配置,默认值可以统一设置,单个任务也可以覆盖:

# 全局默认值
defaults:
  annotate: true        # 默认开启 AI 标注
  thumbnail: true       # 默认生成缩略图
  libraryRoot: ./library
  model: gpt-image-1.5

jobs:
  # 最小配置,只提供 prompt
  - prompt: "first image"

  # 完整配置
  - prompt: "second image"
    slug: custom-slug
    tags: [tag1, tag2]
    annotate: false     # 这个任务不执行 AI 标注
    model: dall-e-3    # 这个任务用不同的模型

执行时,ImgBin 会逐个处理任务,每个任务的结果会写入对应的 metadata.json,即使某个任务失败,也不会影响其他任务。任务完成后,会输出汇总报告:

✓ orange-dashboard (succeeded)
✓ pricing-grid (succeeded)
✗ hero-banner (failed: API rate limit exceeded)

2/3 succeeded, 1 failed

有些事儿吧,急也急不来,一个一个来,反而踏实。这,或许就是批量任务的哲学吧。


环境变量配置

ImgBin 通过环境变量支持灵活的配置:

# ImgBin 工作目录
IMGBIN_WORKDIR=/path/to/imgbin

# 可执行文件路径(用于脚本中调用)
IMGBIN_EXECUTABLE=/path/to/imgbin/dist/cli.js

# 资产库根目录
IMGBIN_LIBRARY_ROOT=./.imgbin-library

# Azure OpenAI 配置(如果使用 Azure provider)
AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com/
AZURE_OPENAI_API_KEY=your-api-key
AZURE_OPENAI_IMAGE_DEPLOYMENT=gpt-image-1

配置这东西,说重要也重要,说不重要也不重要。毕竟怎么舒服怎么来嘛,适合自己的才是最好的。


实现要点

在实现过程中,我们总结了以下几个关键点:

Provider 接口设计

接口定义要清晰完整,包括输入参数、返回值、错误处理。建议同时提供同步和异步两种调用方式,方便不同场景使用。

这也算是过来人的一点经验吧,毕竟接口这东西,定好了就不想再改,麻烦。

失败处理策略

批量任务中某项失败时,应该:

  1. 记录详细错误信息到单独的日志文件
  2. 继续执行其他任务,不中断整个流程
  3. 最终返回非零退出码,表示有任务失败
  4. 在汇总报告中清晰展示每个任务的执行结果

有些事儿失败了就是失败了,逃避也没用,不如大大方方承认,然后想办法解决。这道理,做项目和做人是一样的。

元数据合并策略

识别结果默认写入 recognized 区,人工修改的字段有 manual 标记。元数据更新时采用「只增不减」策略:除非显式传入 --force 参数,否则不覆盖已有的人工整理结果。

这事儿也想明白了——有些东西啊,错过了就是错过了,覆盖了也就没了。还是保留着比较好,毕竟记录本身也是一种美。

目录创建原子性

使用 fs.mkdir({ recursive: true }) 确保目录创建原子性,避免并发场景下的竞态条件。

这大概就是所谓的安全感吧——该稳稳该快快,不拖泥带水,也不瞻前顾后。


总结

ImgBin 作为 HagiCode 项目图片资产管理的核心工具,通过以下设计解决了我们面临的问题:

  1. 统一入口:CLI 命令覆盖了生成、标注、缩略图等全部操作
  2. 元数据驱动:每个资产都有完整的 metadata.json,支持检索和追踪
  3. Provider Adapter:灵活的外部 API 抽象,便于测试和扩展
  4. 批量任务支持:CI/CD 流程中可以自动执行批量图片生成

一切都淡了......可这方案啊,还真是用上了。

这套方案不仅提升了 HagiCode 自身的开发效率,也形成了一个可复用的图片资产管理框架。如果你也在开发类似的多组件项目,相信 ImgBin 的设计思路会给你一些启发。

青春嘛,总是要折腾的。不折腾折腾,怎么知道自个儿几斤几两呢?


参考资料


感谢您的阅读,如果您觉得本文有用,快点击下方点赞按钮,让更多的人看到本文。

本内容采用人工智能辅助协作,经本人审核,符合本人观点与立场。

尽管业界普遍推荐,但苏黎世联邦理工学院(ETH Zurich)的一篇新论文得出结论,AGENTS.md文件可能经常阻碍 AI 编码智能体。研究人员建议完全省略由 LLM 生成的上下文文件,并限制人类编写的指令只包含不可推断的细节,例如非常具体的工具或自定义构建命令。

 

团队(Thibaud GloaguenNiels MündlerMark MüllerVeselin RaychevMartin Vechev)通过指出尽管目前有 60,000 个开源仓库包含 AGENTS.md 等上下文文件,并且许多智能体框架都内置了自动生成这些文件的命令,但还没有进行严格的实证研究来调查这些文件是否真的提高了 AI 智能体解决现实世界编码任务的能力,从而为研究提供了理由。

 

研究人员(其中一位为Humanity Last Exam基准测试做出了贡献)构建了AGENTbench,这是一个新的数据集,包含 138 个来自小众仓库的真实世界 Python 任务。这种设置故意避免了像SWE-bench这样的流行基准测试的偏见,AI 模型可能已经部分记住了这些测试。团队在三个不同场景下测试了四个智能体(Claude 3.5 Sonnet、Codex GPT-5.2 和 GPT-5.1 mini 以及 Qwen Code):不使用上下文文件、使用 LLM 生成的文件和人类编写的文件。研究人员通过跟踪三个智能体指标来评估仓库级指令的实际影响:任务成功率(由仓库单元测试确定)、代理步骤数量和总体推理成本。所有选定的小众仓库都包含人类编写的上下文文件;前两个场景通过移除或替换这些文件进行测试。

 

研究人员发现,LLM 生成的上下文文件会降低性能,与不提供任何上下文文件相比,任务成功率平均降低了 3%。它们还一致增加了智能体采取的步骤数量,将推理成本提高了 20%以上。

 

另一方面,人类编写的文件确实提供了边际收益,在 AGENTbench 上任务成功率平均提高了 4%。然而,这种正面增长与步骤数量的并行增长形成对比,成本也增加了高达 19%。

 

在 AGENTS.md 文件中包含诸如架构概览或仓库结构解释等信息似乎并没有减少模型为手头任务定位相关文件所花费的时间。

 

为了理解性能下降和成本增加的原因,作者对智能体的工具调用和推理模式进行了深入的跟踪分析。智能体通常遵循 AGENTS.md 文件中包含的指令。结果,它们运行了更多的测试,读取了更多的文件,执行了更多的 grep 搜索,并进行了更多的代码质量检查。虽然这种行为非常彻底,但通常对于解决手头的具体任务来说是不必要的。数据表明,额外的上下文迫使推理模型“思考”得更努力,而没有产生更好的最终补丁。

 

作者最后强调了研究结果与当前向使用 AI 代码智能体的开发人员提出的建议之间的差距:

 

我们发现所有上下文文件都一致地增加了完成任务所需的步骤数量。LLM 生成的上下文文件对任务成功率有边际的负面影响,而开发人员编写的文件则提供了边际的性能提升。

 

我们的跟踪分析显示,上下文文件中的指令通常被遵循,并导致更多的测试和更广泛的探索;然而,它们并不作为有效的仓库概览。总体而言,我们的结果表明上下文文件对智能体行为只有边际影响,并且可能只有在手动编写时才受欢迎。这突出了当前智能体-开发人员建议与观察结果之间的具体差距,并激发了未来工作,即以有原则的方式自动生成简洁、与任务相关的指导,以供编码智能体使用。

 

开发人员对这项研究表示了兴趣。一位开发人员指出,这项研究实际上应该让开发人员专注于编写有用的AGENTS.md文件

 

我读了这项研究。我认为它实际上与作者建议的相反——实际上是在支持好的 AGENTS.md 文件。

 

[...] AGENTS.md 文件的最大用例是模型不知道且无法立即从项目中推断出的领域知识。这是从看到智能体因这种缺陷而挣扎中慢慢获得的。这在闭源中非常常见,但在拥有 AGENTS.md 文件的公共 GitHub 项目中非常罕见——绝大多数是最近以 LLMs 中心的小型氛围编程项目。如果在后一种项目上看到了 4%的增长,这些项目本来就有非常混杂质量较差的 AGENTS.md 文件,那么对于拥有高质量 AGENTS.md 的大型项目来说,它们在与智能体合作时是无价的。

 

另一位开发人员指出,上下文文件可能对开发人员比对AI 利用具更有用

 

我已经维护一个 CLAUDE.md 文件大约 3 个月了,它横跨两个项目,改进是明显的,但不是你所期望的原因。它提供的实际 token 级上下文并不重要,重要的是,编写它可以迫使你表达关于你的代码库的事情,这些之前只是在你的脑海中。像“我们因为 Y 中的遗留约束而对 X 使用这种奇怪的模式”之类的东西。一旦写下来,智能体就会把它捡起来,但团队中的每个新成员也会这样做。

 

开发者可以在线审阅论文。像AGENTS.mdCLAUDE.md.cursorrules这样的上下文文件的使用,在2025年下半年变得日益重要,这与 AI 编码智能体提供商的更大推动相吻合。

 

原文链接:

https://www.infoq.com/news/2026/03/agents-context-file-value-review/

目前手上只有几年前的 1660ti 的笔记本,不知道能不能当 vrc 启动器。而且住的地方太小了,活动不开,有大动作的游戏可能就玩不了。

最好来点分享视频资源的网站或者社区,谢谢啦!

从「AI For What」到「Value From AI」,100+可落地实践案例打通 AI 实战最后一公里!

4 月 16 日-4 月 18 日,QCon 全球软件开发大会将在北京举办。本届大会锚定 Agentic AI 时代的软件工程重塑,聚焦 Agentic AI、多智能体协作、算力优化、技术债治理、多模态和 AI 原生基础设施等前沿话题,邀请来自腾讯、阿里、百度、华为、蚂蚁、小米、网易等企业技术专家,带来百余项真实落地案例,系统性分享前沿洞察与实战干货,以技术共创探索 AI 落地新路径。

阿里巴巴高级技术专家、研发 TL 陶宇田已确认出席 “Agent Infra 架构设计” 专题,并发表题为OpenSandbox:重新思考 Agent 时代的 Runtime的主题分享。本次演讲将结合阿里巴巴内部 Coding Agent、Agent 评测体系与 Coding 场景 RL 训练的真实实践,深入解析 OpenSandbox 在高吞吐执行、细粒度网络安全控制与企业级可扩展性上的关键设计与落地经验。

陶宇田,先后任职于亚马逊、阿里巴巴,拥有 15 年以上大型互联网架构设计与研发经验。技术领域覆盖中间件、推荐系统、云原生、分布式任务调度及 AI 基础设施等核心方向。目前担任阿里巴巴 Sandbox 领域负责人,主导 OpenSandbox 开源项目建设,聚焦 AI 场景下的沙箱运行时与基础设施创新,致力于构建安全、高效、可复用的 AI 执行环境。他在本次会议的详细演讲内容如下:

演讲提纲

1. AI Agent 执行环境的新挑战

  • Agent / RL 场景的共性诉求:高并发、短生命周期、可控网络

  • 传统 Docker / K8s 方案的瓶颈与不足

2. OpenSandbox 的核心设计:Protocol-First

  • 两层 OpenAPI:沙箱生命周期与执行能力抽象

  • 多语言 SDK 一致性(Python / Java / JavaScript)

  • Runtime 解耦与可插拔(Docker / K8s)

3. 池化调度与极速交付

  • Pool + BatchSandbox 架构设计

  • 秒级大规模交付:3.5s / 1000,10s / 5000

  • 成本可控的复用与快速回收机制

4. Agent 场景下的安全执行

  • Coding Agent 面临的真实安全网络风险

  • 对比现有方案的不足

  • OpenSandbox 的双层网络防护设计:

  • DNS 层 FQDN 级控制

  • L4 网络过滤

5. 真实落地案例

  • 阿里巴巴内部 Coding Agent

  • 主流 Coding 产品评测架构

  • Coding 场景 RL 训练系统

6. 未来演进方向

  • 安全容器与企业级能力增强

  • 可观测与审计

  • Agent 执行环境的 Serving 化探索

您认为,这样的技术在实践过程中有哪些痛点?

  • 开放性 vs 功能复杂度:避免引入新概念、复用社区成熟概念(以 image 描述环境)

  • 高吞吐 vs 资源成本:池化带来的成本与回收机制权衡

  • 易用性 vs 极致调度效率:基于 K8s 生态与 nomad 的思考

演讲亮点

  • 协议优先:先定义语义,再允许多种运行时实现,确保 SDK 与执行面一致,以及面向未来场景和实现的强大扩展能力

  • 池化调度:面向企业级的大规模短时任务,提供秒级/千级交付能力

  • 网络管控策略:面向 AI 任务的细粒度访问控制,可复用在不同运行时

听众收益

  • 获得一套面向 AI Agent/RL 的“沙箱执行面”抽象方法与协议化设计思路

  • 学到可复用的池化调度设计与性能优化路径

  • 理解高吞吐执行场景下网络访问控制的关键策略与坑点

除此之外,本次大会还策划了Agentic Engineering多模态理解与生成的突破记忆觉醒:智能体记忆系统的范式重塑与产业落地具身智能与物理世界交互Agent Infra 架构设计AI 重塑数据生产与消费AI 原生基础设施AI 驱动的技术债治理小模型与领域适配模型大模型算力优化Agent 可观测性与评估工程AI for SRE等 20 多个专题论坛,届时将有来自不同行业、不同领域、不同企业的 100+资深专家在 QCon 北京站现场带来前沿技术洞察和一线实践经验。

大会售票 8 折倒计时最后一周,更多详情可扫码或联系票务经理 18514549229 进行咨询。

“我是 OpenClaw 代码库的维护者,所以本文的深度超过大多数指南。”

每个 OpenClaw 用户可能都会遇到同样的难题。在最初的 20 分钟内,这个代理(Agent)工作得很好,然后就开始偷偷地丢失指令,变得失控。

Summer Yue 是 Meta 超级智能实验室的对齐总监,她告诉 OpenClaw 代理:“检查这个收件箱,提供归档或删除建议。在我发话之前不要做任何事。”在测试收件箱上,她的代理已经正常工作了几个周。但当她将其指向她真正的收件箱时,数千条信息把上下文窗口填满了。代理压缩了它的历史记录,而那个“在我发话之前不要做任何事”的指令——Summer Yue 在聊天中给出,从未保存到文件中——从摘要中消失了。代理回到了自主模式,开始删除电子邮件,并忽略了她的停止命令。

她说:“说实话,这是个新手错误。事实表明,研究对齐的人也不能免于对齐错误。”

事后,代理承认了错误并道歉。然后,它在自己的 MEMORY.md 中写入了一条新规则:展示计划,获得明确的批准后再执行。不进行自主批量操作。代理完成了自我修复,只是为时已晚。

因为对话中给出的指令没有在压缩中保留下来,Meta 的对齐总监失去了对代理的控制。这样的事也可能发生在你身上,除非你真的了解代理的记忆机制。

需要明确的是:压缩是正常行为。真正的可靠性问题在于,如果工作流仅依赖于聊天过程中定义的规则,它能否在长时间会话中持续有效。提示并非强制执行机制。要实现真正的安全性,仍然需要权限控制和工具限制。

全面披露:我是 OpenClaw 代码库的维护者,所以本文的深度超过大多数指南。这里的一切都来自公共文档、GitHub 问题和我自己 2 个多月来每天运行这个系统的经验。

如果你只做三件事

在深入研究之前,只要在以下三个方面做些调整,你就能领先于 95% 的 OpenClaw 用户。

  1. 将持久有效的规则放在文件中,而不是在聊天中提供。MEMORY.md 和 AGENTS.md 文件不受压缩操作影响,但在对话中输入的指令无法保证。

  2. 检查记忆刷新是否启用以及是否有足够的缓冲区触发。OpenClaw 有一个内置的安全网,用于在进行压缩操作之前保存上下文,但大多数人从未检查过它是否在运行或给它足够的空间触发。

  3. 强制检索记忆。 在 AGENTS.md 中添加一条规则:“在行动前搜索记忆”。没有它,代理就会猜测而不是检查它的记录。

本文的剩余部分解释了为什么这三个方面有效,以及以它们为基础构建的整个系统。

心理模型

大多数人将“记忆”当成一个东西。但实际上,它是四个独立的系统,这些系统有不同的失败方式。知道哪一层出问题就已经完成了 90% 的修复工作。

记忆的四层结构

引导文件 是你工作空间里的文件,包括:SOUL.md、AGENTS.md、USER.md、MEMORY.md、TOOLS.md。它们在会话开始时从磁盘加载。它们不受压缩操作影响,因为它们是从磁盘重新加载的,而不是从对话历史中。这是一个最持久的层。

会话记录 被保存为磁盘上的 JSONL 文件。当你继续一个会话时,该记录被重建为上下文。但是当上下文窗口填满时,该记录会被压缩:一个简洁的摘要取代了详细的历史。模型再也看不到原始消息了,尽管原始的记录文件还在磁盘上。

LLM 上下文窗口 是一个固定大小的容器,里面的一切都在争夺空间。系统提示、工作空间文件、对话历史、工具调用、工具结果,都在一个大小 200K 的令牌桶中。当它被填满时,就会触发压缩操作。

检索索引 是一个可搜索的层——由向量和关键字组成——和你的记忆文件放在一起。代理可以使用 memory_search 查询它,从过去的会话中找出相关的上下文。该功能仅在信息写入文件后才有效。

三种失败模式

当代理“忘记”某件事时,不外乎是发生了以下三件事之一。

失败模式 A:“从未被存储。” 指令只存在于对话中,从未被写入文件。当压缩被触发或开启新会话时,它便消失了。这就是 Summer Yue 遭遇的情况。迄今为止,这是最常见的原因。

失败模式 B:“压缩操作改变了上下文内容。” 长时间会话会触发令牌限制。压缩操作对旧消息进行了归纳处理。这种操作存在信息损耗,会丢失细节、一些微妙差别和特定的约束条件。代理现在根据归纳结果运行,而非你最初提供的指令。

失败模式 C:“会话修剪了工具结果。” 会话会修剪工具的输出(文件读取、浏览器返回的结果、API 响应)以优化缓存。代理“忘记”了工具之前返回的内容。这是临时性的,磁盘上的记录没有变。但是模型无法看到工具先前响应这个请求的输出。

快速诊断:

  • 忘记了偏好设置?可能从未写入 MEMORY.md 文件(失败模式 A)

  • 忘记了工具返回的内容?可能是修剪(失败模式 C)

  • 忘记了整个对话?压缩或会话重置(失败模式 B)

压缩与修剪

大多数指南和大部分用户都混淆了压缩和修剪。它们是完全不同的系统。

压缩将整个对话历史总结为一段紧凑的摘要,改变了模型未来会看到的内容。该操作会在上下文窗口被填满时触发。它会影响一切,包括用户消息、助手消息、工具调用。它是反应性的,当溢出即将发生时触发,而不是提前。压缩操作有损,是永久性的。

修剪仅在内存中修剪旧工具结果,仅针对单个请求,不会触及磁盘上的会话历史记录。它只影响 toolResult 消息;用户和助手消息不会被修改。它不会触及工具结果中的图像。修剪操作无损,是临时性的。

修剪是朋友。它能减少膨胀,而且不会破坏对话上下文。压缩是危险的,因为它会改变模型看到的内容。

修剪默认是“关闭”的,但更明智的默认设置是为所有 Anthropic 配置文件自动启用 cache-ttl 模式。如果你使用的是 Claude,它可能已经打开了。你可以在配置中验证并调整 TTL:

{  "agents": {    "defaults": {      "contextPruning": {        "mode": "cache-ttl",        "ttl": "5m"      }    }  }}
复制代码

证明你的代理看到了什么

在更改任何配置之前,在 OpenClaw 会话中运行 /context list。这是诊断为什么记忆“未能保持”的最快方法。

需要检查的内容:

  • MEMORY.md 是否加载? 如果显示“缺失”或未列出,就表示该文件不在上下文中。

  • 是否有什么东西被截断? 超过 2 万个字符的文件会按文件截断。所有引导文件的总字符数最多为 15 万个字符。

  • 注入的字符是否和原始字符一样? 如果不是,说明内容被截断。

如果文件被截断,则调整配置中的字符数限制。每个文件的字符数限制为 bootstrapMaxChars(默认 20000)。总字符数限制为 bootstrapTotalMaxChars(默认 150000)。这两个参数是字符数量,而不是令牌数量——150000 个字符大约是 50K 令牌。

如果文件不在上下文中,对代理就没有影响。在诊断其他任何问题之前,请务必先检查 /context list。

压缩实际做了什么

压缩生命周期

如果你的上下文被消息和工具输出填满,接近设定的最大值,接下来会发生什么:

好路径:维护压缩。 上下文接近限值,预压缩记忆刷新首先启动。在压缩开始前,代理会自动将重要的上下文信息保存到磁盘。你看不到这个过程。然后,压缩操作会总结以前的对话历史。代理后续会使用这个摘要、用户最近发送的消息以及磁盘上的内容。

坏路径:溢出恢复。 上下文变得太大,API 拒绝了请求。现在 OpenClaw 处于损害控制状态。为了能继续工作,它会一次性压缩所有内容。不会刷新记忆,不会预先将重要内容保存到磁盘。上下文丢失最大化。

下面显示的余量配置旨在使压缩操作保持在好路径上。

压缩破坏了什么

以下内容会在压缩操作中丢失:

  • 嵌入在对话中的指令(头号杀手)

  • 在会话中给出的偏好、更正和决策

  • 压缩操作前共享的所有图像(按设计,代理后续看不到它们)

  • 工具结果和它们的上下文

  • 原指令的一些细微之处和特异性(摘要存在信息损耗)

以下内容不会在压缩操作中丢失:

  • 所有工作区文件:SOUL.md、AGENTS.md、USER.md、MEMORY.md、TOOLS.md

  • 每日记忆日志(通过搜索按需获取,不重新注入)

  • 代理在压缩操作发生前写入磁盘的任何内容

压缩不会涉及你最近的消息,大约最后 20000 个 Token 会保持完整。即使在摘要中,文件路径和 ID 也会被保留。

如果你的系统出现任何异常,请运行 openclaw --version 命令。2026 年 2 月下旬,我们修复了若干与压缩操作相关的漏洞,请确保你使用的是 v2026.2.23 或更高版本。

关于 OpenClaw 的记忆,最重要的原则是:如果没有写入文件,就不存在。

三层防御

单靠任何一种机制都不够,你需要三者协同运作。

第一层:压缩前记忆刷新

这是你可以做出的最有用的配置更改。

OpenClaw 内置了压缩前记忆刷新功能。在压缩前,它会触发一个静默的“代理轮次”,提醒模型将任何重要的内容写入磁盘。多数用户并未意识到该机制的存在,也未验证它是否已经启用,且由于默认阈值的设置过严,许多时候意外禁用了该功能。

配置如下。不要凭记忆输入,直接复制下面的代码块。重要的是要理解每个值的设置。

{  "agents": {    "defaults": {      "compaction": {        "reserveTokensFloor": 40000,        "memoryFlush": {          "enabled": true,          "softThresholdTokens": 4000,          "systemPrompt": "Session nearing compaction. Store durable memories now.",          "prompt": "Write any lasting notes to memory/YYYY-MM-DD.md; reply with NO_REPLY if nothing to store."        }      }    }  }}
复制代码

reserveTokensFloor: 40000 —— 这是预留空间。你希望为记忆刷新轮次和压缩摘要保留足够的空间,避免触发溢出。刷新在上下文窗口减去预留底限减去软阈值时触发。当上下文最大值为 200K,在这个配置下,是在 200000-40000-4000=156000 个令牌时触发。默认预留是 20K,这通常太少了。一个大型工具的输出可能会跳过该阈值,使刷新没有机会运行。在实践中,40K 是一个起步值。如果你很少使用大型工具,则可以设置的低一些。如果你经常读取大型文件或网页快照,则务必要增加这个值。

memoryFlush.enabled: true —— 在最近的版本中应该是默认开启了,但你还是应该检查下你的配置。当上下文越过软阈值时,OpenClaw 会插入一个静默轮次,说“现在保存你的重要上下文”。代理会将其写入记忆文件,然后继续压缩。用户永远不会看到这个轮次。NO_REPLY 令牌抑制了响应。

softThresholdTokens: 4000 —— 距离预留底限多远时触发刷新。默认是 4000,在大多数情况下已经够用。

自动刷新是一个安全网,而不是一种保证。代理可能无法保存所有重要的内容,令牌估计可能在一个大型轮次中跳过设置的阈值。这就是其他两层存在的原因。

第二层:手动记忆管理

虽然有自动刷新机制,但经验丰富的 OpenClaw 用户会通过手动保存来补充这一机制。这是一个简单的习惯,可以捕捉自动刷新遗漏的内容。

在切换任务之前,在给出复杂的新指令之前,或者当你刚刚做出重要决定时,告诉代理:

将此保存到 MEMORY.md
复制代码

或:

将今天的关键决定写入记忆文件
复制代码

/compact 命令值得一学。大多数人认为压缩是应该避免的事,但根据你的情况进行手动压缩则不同。

以下是该命令的用法:

  1. 告诉代理将当前上下文保存到记忆文件。

  2. 发送 /compact 手动触发压缩。

  3. 然后给出新指令。

新指令会落在压缩后的新上下文中,它们有最大的生命周期。当下一次压缩来临时,它们不会是第一个因为生成摘要而损失掉的内容。

你甚至可以告诉代理压缩时的优先考虑事项:

/compact 关注决策与开放性问题
复制代码

这可以指示摘要生成器保留最相关的细节。

注意:如果等到“上下文溢出”,则可能会陷入 /compact 也失败的境地。上下文太满了,即使是压缩请求也会溢出。那时,你唯一的选择是 /new 或 CLI 恢复。不要等待,主动压缩。

为什么既需要手动又需要自动?自动刷新是在达到令牌阈值时触发。它是基于时间的,不是基于相关性。手动保存是基于相关性的:你知道什么时候发生了重要的事情。它们一起涵盖了这两种情况。

第三层:文件架构

这里是一切汇聚之地。

工作区分为两类。

引导文件(SOUL.md, AGENTS.md, USER.md, IDENTITY.md, TOOLS.md, MEMORY.md, HEARTBEAT.md, BOOTSTRAP.md)在每个会话开始时加载到上下文中。压缩对它们没有影响,因为它们在每个轮次中都从磁盘重新加载。

记忆目录 包含每日日志(memory/YYYY-MM-DD.md)。这些文件并非是通过引导程序注入的。通常,记忆系统会自动读取今日数据与昨日数据,其余数据均通过 memory_search/memory_get 按需调用。它们不计入引导程序截断限制。

子代理会话仅注入 AGENTS.md 和 TOOLS.md,其他引导文件会被过滤掉。如果你创建子代理后发现它们未继承你的个性或偏好设置,原因正在于此。

以下是各文件的作用:

SOUL.md —— 说明代理是谁(沟通语气、个性、情感风格,道德界限以及代理与你的关系)。最重要的是要记住:SOUL.md 是身份,不是安全措施。LLM 可能会被社会工程学手段诱导泄露信息。要实现真正的安全防护,请在基础设施层面采取控制措施:工具权限管理、工作区隔离、allowFrom 列表。

AGENTS.md —— 说明代理如何操作(工作流规则和决策框架、工具使用约定以及响应长度指南)。最有用的部分:不要做什么。当代理犯了你不希望重复的错误时,可以在这里添加规则。

如果你在团队的 Discord 或 Slack 频道中运行 OpenClaw,请将其添加到你的 AGENTS.md 中,否则代理会回复团队发布的每个表情:

## 群聊规则

- 仅在以下情况下回应:直接被提及、直接被提问,或者你有真正有用的信息

- 不要回应:旁白对话、打趣、他人之间的后勤协调、问候、链接分享

- 如果有疑问 -> 仅回应:NO_REPLY

- NO_REPLY 必须是你的整个消息,没有其他内容

USER.md —— 你是谁(你的项目、客户、当前优先事项、沟通偏好、关键人物和关系、技术环境细节)。

MEMORY.md —— 在每次会话中都应保持不变的内容(你做出的决策及依据、代理学到的偏好、从过去错误中学到的规则)。保持简短,不超过 100 行。这不是日记,而是速查表。

每日日志(memory/YYYY-MM-DD.md) —— 你每天工作的上下文(今天发生了什么、对话中做出的决策、活跃任务及其状态)。预压缩刷新输出会自动写到这里。

现在,使所有这些内容生效——记忆协议。将以下内容添加到你的 AGENTS.md 中:

## 记忆协议

- 在回答有关过去工作的问题之前:先搜索记忆

- 在开始任何新任务之前:检查今天的记忆以获取活跃上下文

- 当你学到重要的东西时:立即将其写入相应的文件

- 当你纠正一个错误时:将更正作为规则添加到 MEMORY.md

- 当会话结束或上下文很大时:总结并写入 memory/YYYY-MM-DD.md

没有这个规则,代理会根据上下文回答。有了它,代理会先查找信息。

记忆卫生。 几个月后,每日日志不断累积,MEMORY.md 文件膨胀。务请谨记初始化截断限制。处理方法如下:

  • 每日:追加到每日日志,这是自动的。

  • 每周:将每日日志中的持久规则和决策记录到 MEMORY.md 文件中。你可以为此设置每周 cron 作业。

  • 保持 MEMORY.md 简短。任何不需要在每次会话中都出现的内容都可以放在每日日志中。代理需要时会通过搜索找到它。

你可能想要备份代理的记忆。在工作区目录中运行 git init,设置通过每日 cron 或心跳自动提交。只是确保~/.openclaw/credentials/ 和 openclaw.json 不会进入存储库,其中包含认证令牌和 API 密钥。

检   索

如果代理无法在记忆文件中找到需要的信息,那么记忆文件就毫无用处。

两个记忆访问工具

OpenClaw 提供了两个记忆访问工具:

memory_search —— 在记忆文件中搜索,包括 MEMORY.md、每日日志、记忆目录中的所有内容。默认情况下,它使用关键词和基于语义的匹配,所以即使你写的是“我们选择了 29 美元的层级”,它也能找到“定价决策”。

memory_get —— 按文件和行范围进行定向读取。如果文件不存在,则优雅地返回空文本。当你确切地知道哪个文件包含什么信息时使用这个工具。

将这个检索前置规则添加到你的 AGENTS.md 文件中:

## 检索协议

在进行重要的工作之前:

1. memory_search 项目/主题/用户偏好

2. 如果需要,用 memory_get 获取引用的文件块

3. 然后继续执行任务

没有这个,代理会猜测。有了它,代理会先检查它的记录。

A 路径:内置搜索

默认设置,最简单,我们从这里开始。

内置系统自动索引 MEMORY.md 文件和记忆目录中的所有内容。它监视文件更改并重建索引。不需要额外安装。

{  "agents": {    "defaults": {      "memorySearch": {        "enabled": true,        "provider": "local",        "local": {          "modelPath": "hf:ggml-org/embeddinggemma-300m-qat-q8_0-GGUF/embeddinggemma-300m-qat-Q8_0.gguf"        },        "query": {          "hybrid": {            "enabled": true,            "vectorWeight": 0.7,            "textWeight": 0.3          }        },        "cache": {          "enabled": true        }      }    }  }}
复制代码

“混合搜索”意味着两种匹配策略协同工作。关键词搜索可以找到确切的词:搜索“定价”,它会找到包含“定价”的文件。嵌入式搜索会将文本转换为数字,捕捉句子的含义,而不仅仅是它们使用的词,所以“定价决策”和“我们选择了 29 美元的层级”在意义上是接近的。

A 路径会在你的计算机上运行一个小型嵌入式模型,免费使用,除了首次下载外无需其他任何设置。该方案为你提供了基于关键词和语义的混合搜索。对于大多数用户来说,这已经足够了。

A+ 路径:extraPaths

在切换到其他后端之前,你需要知道的是,内置搜索支持索引工作区之外的其他 Markdown 文件。将 extraPaths 添加到你的配置中,并指向你的项目文件夹、记录目录等。同样的混合搜索,无需额外安装。

{  "agents": {    "defaults": {      "memorySearch": {        "enabled": true,        "provider": "local",        "extraPaths": [          "~/Documents/Obsidian/ProjectNotes/**/*.md",          "~/Documents/specs/**/*.md"        ]      }    }  }}
复制代码

当你需要搜索大型库(数千个文件)、过去的会话记录或多个独立的集合时,可以升级到路径 B。

B 路径:QMD

QMD(查询 Markdown 文档)是一个实验性的记忆后端,可以取代内置的索引器。当你需要搜索工作区之外的内容时,例如你的 Obsidian 库、项目文档、会议记录、过去的会话记录。

路径 A 是代理检查自己的日记。路径 B 是代理搜索你所有的文件。免费使用,本地运行。

{  "memory": {    "backend": "qmd",    "qmd": {      "searchMode": "search",      "includeDefaultMemory": true,      "sessions": {        "enabled": true      },      "paths": [        { "name": "obsidian", "path": "~/Documents/Obsidian", "pattern": "**/*.md" }      ]    }  }}
复制代码

在默认情况下,OpenClaw 的 memory_search 使用 QMD 的 BM25 关键词模式。速度快,亚秒级响应,无需 ML 模型,没有冷启动风险。这里所做的让步是:如果你将“API 定价决策”存储为“我们选择了 29 美元 / 月的层级”,它就找不到“API 定价决策”。如果你不希望那样,就需要启用语义搜索模式。该模式会加载 ML 模型,首次使用时需要的时间比较长。开始时使用关键词模式,如果需要,再升级。

QMD 默认为 DM-only 范围。如果你是在群组频道中运行 OpenClaw,并且 memory_search 看上去被禁用了,请检查是否需要更新你配置的 QMD 范围。

QMD 返回相关的片段,而不是整个文件。代理不会为了找到一句话而将 50 页的文档全部加载到上下文中,这有助于避免触发压缩。

成本和缓存

你发送的每条消息都包含完整的系统提示和对话历史。提示缓存意味着你为那些重复的 Token 支付的费用减少了大约 90%,但压缩会使缓存失效。压缩后的下一个请求需要支付全额费用以重新缓存所有内容。

每次不必要的压缩都是一个可靠性问题和一个成本问题。

有两件事会破坏缓存:

  1. 压缩会重写对话历史,使一切失效。

  2. 每个回合都变化的易失性系统提示输入会破坏缓存。

这也是为什么保持工作区文件稳定和 MEMORY.md 小巧而不是不断重写它的另一个原因。

在 cache-ttl 模式下进行会话修剪,可在强制执行压缩前缓解工具臃肿。配置成本不高,却能显著提升缓存命中率。

故障排除

本节是常见问题及其解决方法。每个问题都包括一个你可以直接粘贴到 OpenClaw 会话中的提示。

“我的代理不记得我的偏好”

偏好是否写入了 MEMORY.md 文件?如果它只存在于对话中,就不是持久的。运行 /context list 看看 MEMORY.md 是否真的加载了?它是否被截断了?AGENTS.md 是否设置了记忆协议?在群组上下文中,MEMORY.md 按设计是不加载的,它只在主会话中加载。

运行 /context list 并检查 MEMORY.md 是否已经加载。如果它缺失或被截断,请告诉我。然后检查我的 [偏好描述] 是否已经写入 MEMORY.md 或任何记忆文件中。如果没有,请现在将其添加到 MEMORY.md 中。

“memory_search 无返回或似乎被禁用”

运行 /context list 并检查你的记忆文件实际是否存在。如果文件不存在,则意味着没有东西可供搜索。如果文件存在,则问题通常出在嵌入式模型上——本地模型首次使用时需要下载。如果下载失败,则搜索功能将无法正常工作。

运行 /context list 并告诉我:是否有任何记忆文件被加载?然后尝试用 memory_search 搜索’test’并告诉我结果。如果搜索失败,请检查是否存在本地嵌入式模型,并报告任何错误。

“它不记得浏览器或工具说了什么”

那是会话修剪,不是压缩。工具结果在缓存 TTL 后被清除。磁盘上的记录没问题;模型只是无法在当前请求中看到旧工具输出。将重要的工具输出写入记忆文件,或重新运行工具。

本会话中早期的工具结果消失了。在重新运行任何东西之前,将重要工具输出的摘要写入今天的每日记忆日志,这样我们就不会再次丢失它们。然后重新运行 [工具 / 命令] 获取新的结果。

“压缩发生得太晚,我收到了溢出错误”

不要等到溢出。在事情变得严重之前主动使用 /compact 进行压缩。提高 reserveTokensFloor 以便更早地触发压缩。如果卡在溢出死锁中,甚至无法运行 /compact,请使用 /new 重置,或通过 openclaw sessions CLI 恢复。

现在就将本会话的所有重要内容保存到今天的记忆日志中,包括决策、上下文、活动任务。然后我将运行 /compact 以清理空间。

“预压缩记忆刷新没有运行”

如果一个轮次导致 Token 数据大幅越过软阈值,就会绕过刷新。检查你的配置,看看该功能是否启用。提高 reserveTokensFloor 的值,增加缓冲。请将其视为尽力而为的机制,并手动建立保存点作为备份。

在我们继续之前,将本会话中所有重要的上下文保存到今天的记忆日志中:所做的决策、活动任务、上下文丢失时你需要恢复的任何内容。现在就做,作为手动保存点。

“我的代理在长时间会话后忘记了它的工具”

已知问题,尤其是长时间运行的 Discord 会话。压缩操作生成的摘要可能会丢失工具上下文。修复方法:使用 /new 重置会话。如果有适当的记忆文件,代理就可以从中断处继续进行。模型选择也很重要;更智能的模型能更好地处理压缩摘要。

检查你的记忆文件,看看我们正在做什么。在记忆文件中搜索 [主题 / 任务]。从对话中断的地方继续。

“我的代理一夜之间忘记了一切”

会话在每日重置时获得新的会话 ID(默认为当地时间凌晨 4:00)。这本质上是一个新的会话。只有引导文件和可搜索的记忆会延续。这种行为符合预期,不是错误。这就是为什么写入记忆文件很重要:每日重置由类似压缩的事件来保证。

搜索你的记忆文件,了解昨天的活动。我们当时在处理什么?做出了哪些决策?哪些事项尚未解决?请进行总结然后继续。

完整配置

两个配置块。请选择你的路径。

A 路径:内置记忆搜索

无需额外安装。压缩配置的保留底限为 40000,启用记忆刷新,使用 embeddinggemma 模型的本地混合搜索,以及 cache-ttl 修剪。复制并粘贴此内容。

{  "agents": {    "defaults": {      "compaction": {        "reserveTokensFloor": 40000,        "memoryFlush": {          "enabled": true,          "softThresholdTokens": 4000,          "systemPrompt": "Session nearing compaction. Store durable memories now.",          "prompt": "Write any lasting notes to memory/YYYY-MM-DD.md; reply with NO_REPLY if nothing to store."        }      },      "memorySearch": {        "enabled": true,        "provider": "local",        "local": {          "modelPath": "hf:ggml-org/embeddinggemma-300m-qat-q8_0-GGUF/embeddinggemma-300m-qat-Q8_0.gguf"        },        "query": {          "hybrid": {            "enabled": true,            "vectorWeight": 0.7,            "textWeight": 0.3          }        },        "cache": {          "enabled": true        }      },      "contextPruning": {        "mode": "cache-ttl",        "ttl": "5m"      }    }  }}
复制代码

B 路径:QMD 后端

相同的压缩和修剪配置,但将内置搜索替换为 QMD。指向你的 Obsidian 库,启用会话索引,然后开始。

{  "agents": {    "defaults": {      "compaction": {        "reserveTokensFloor": 40000,        "memoryFlush": {          "enabled": true,          "softThresholdTokens": 4000,          "systemPrompt": "Session nearing compaction. Store durable memories now.",          "prompt": "Write any lasting notes to memory/YYYY-MM-DD.md; reply with NO_REPLY if nothing to store."        }      },      "contextPruning": {        "mode": "cache-ttl",        "ttl": "5m"      }    }  },  "memory": {    "backend": "qmd",    "qmd": {      "searchMode": "search",      "includeDefaultMemory": true,      "sessions": {        "enabled": true      },      "paths": [        { "name": "obsidian", "path": "~/Documents/Obsidian", "pattern": "**/*.md" }      ]    }  }}
复制代码

从路径 A 开始,当需要搜索 Obsidian 库或过去的会话时,升级到路径 B。

深度防御概述

斜杠命令参考

相关链接

原文链接:

https://velvetshark.com/openclaw-memory-masterclass

声明:本文最初发布于 VelvetShark,为 InfoQ 翻译,未经许可禁止转载。

Cloudflare 推出了Markdown for Agents功能,使 AI 爬虫能够通过发送Accept: text/markdown请求头来获取网页的 Markdown 版本。该公司还同时提出了一种名为 “Content Signals” 的机制,允许内容发布者声明其内容是否可以用于 AI 训练、搜索索引或推理使用。尽管这一举措是为让大语言模型(LLM)更容易理解网页内容,但它也延续了一个长期争论:互联网是否应该为 AI 代理重新设计,还是 AI 公司应当适应现有的 Web 标准。

 

Cloudflare 认为,HTML 页面包含导航、样式和脚本等内容,而这些对 LLM 来说几乎没有语义价值。例如,一个简单的 Markdown 标题大约消耗 3 个 token,而等效的 HTML 标记则需要 12 到 15 个 token。公司表示,一篇在 HTML 形式下需要约 16,180 个 token 的博客文章,在转换为 Markdown 后仅需约 3,150 个 token。

 

AI 代理可以通过在 Accept 请求头中指定text/markdown来触发这一转换。Cloudflare 的边缘服务器随后会获取原始 HTML 页面,将其转换为 Markdown,并返回结果,同时附带一个x-markdown-tokens响应头,用于显示估算的 token 数量。其目标是提升检索增强生成(RAG)流程的效率。

 

“Content Signals” 提案还增加了一层“同意机制”。发布者可以在 robots.txt 的注释中插入三个信号:searchai-inputai-train,用于声明内容是否允许被搜索索引、作为实时 AI 输入使用或被纳入模型训练。“yes” 表示允许,“no” 表示禁止,而未设置则表示无明确偏好。Cloudflare 也承认,这些信号仅表达偏好,并不具备强制执行力。同时,公司指出,目前 Markdown 响应默认会包含Content-Signal: ai-train=yes, search=yes, ai-input=yes。Cloudflare 表示,许多客户已经部署了托管的 robots.txt 文件,允许搜索引擎抓取但禁止用于训练,这表明市场对更细粒度控制的需求正在增长。

 

这一举措也引发了搜索引擎领域人士的质疑。谷歌的John Mueller 提出疑问:LLM 爬虫是否会将 Markdown 视为普通文本文件,以及是否能正确处理其中的链接与导航结构。他在 Bluesky 上称,将页面转换为 Markdown 专门提供给机器人是一种“愚蠢的想法”,认为这种“扁平化”处理会丢失上下文与结构信息,并指出 LLM 已经能够解析 HTML,甚至可以理解图像内容。

 

出版方在如何应对 AI 抓取问题上也存在分歧。Medium在 2023 年采取默认禁止用于 AI 训练的政策,更新了服务条款与 robots.txt 来阻止 AI 爬虫,并与 Reuters、The New York Times、CNN 等媒体一样,对 OpenAI 的爬虫实施全站封锁。Medium CEO 表示,AI 公司是在未获得同意或补偿的情况下使用作者内容。Cloudflare 也曾尝试一种“按抓取付费”的模式:向 AI 爬虫返回 HTTP 402(Payment Required)响应。发布者可以选择允许、收费或阻止特定机器人,从而获得内容变现的可能性。

 

随着越来越多的发布者开始封锁 AI 爬虫或探索付费访问模式,围绕同意机制、补偿方式以及技术适配的争论预计将进一步加剧。Markdown-for-Agents 是否会成为广泛采用的标准,还是仅作为一种可选优化存在,将取决于 AI 平台如何响应这些信号,以及发布者是否认为为机器提供“友好格式”具有实际价值。

谷歌为其 Gemini CLI 扩展Conductor 增加了自动化代码评审支持。该公司表示,这一更新让 Conductor“从仅仅进行规划和执行,扩展到验证阶段”,使其能够检查 AI 生成代码的质量及其是否遵循既定规范,从而提升 AI 辅助开发工作流程中的可信度、安全性和可控性。

 

我们新的自动化评审功能在开发生命周期中引入了一个严格的“验证”步骤。当你的编码代理完成任务后,Conductor 现在可以生成一份完整的实施后报告。

 

谷歌称,这一新功能会从多个维度自动评估 AI 生成的代码,包括代码质量、是否符合原计划、是否遵循代码风格与编程规范、测试验证结果以及基础安全审查。

 

在代码质量方面,Conductor 可以进行语法检查之外的深度静态分析和逻辑分析,识别诸如竞态条件、空指针风险以及逻辑错误等复杂问题。它还会验证实际代码实现是否与最初的plan.mdspec.md中的计划一致,确保所有规划的任务都已被正确实现。

 

Conductor 还会检查代码是否遵循项目的代码风格指南以及规划阶段定义的自定义规则。系统会自动运行单元测试和集成测试,并在评审报告中包含测试结果和覆盖率数据。最后,在代码合并之前,它还会扫描潜在的关键安全问题,例如硬编码的 API 密钥、可能的个人敏感信息(PII)泄露,以及不安全的输入处理。

 

Conductor 生成的报告会按照高、中、低三个严重等级对问题进行分类,并提供具体的文件路径,同时支持直接启动一个 track 来修复相关问题。

 

这种细致的检查机制意味着,“代理式”开发并不等同于“无人监督”的开发。相反,它形成了一种新的工作模式:AI 负责具体执行工作,而开发者则负责高层架构决策,同时由自动化验证机制提供支持。

 

谷歌表示,在 Conductor 中引入自动化评审功能,为 AI 辅助工程实践“补上了闭环”,在代码生成之后增加验证与确认环节。该功能意在回应人们对 AI 生成代码在质量、安全性和合规性方面日益增长的担忧,使 AI 驱动的软件开发更加安全、可预测且架构合理。

 

Conductor 于去年 12 月发布,是 Gemini CLI 的一个扩展。它通过将项目上下文(包括计划、规格说明和代码风格指南)存储在版本控制的 Markdown 文件中,而不是临时聊天记录中,来支持基于上下文的开发模式。

 

在 Conductor 中,track 表示一个独立的工作单元,包含书面规格说明以及按阶段和子任务划分的任务计划。只有在计划评审完成后才会开始实现,开发进度也会直接记录在计划文件中。

 

Conductor 还支持团队级配置,使项目能够一次性定义共享标准,例如测试策略、编码规范和工作流程偏好,并将其一致地应用到所有 AI 辅助开发任务中,从而确保个人开发者和团队协作时的一致性。

作为一个在代码堆里摸爬滚打多年的前端人。平时咱们聊的都是组件化、性能优化、Rust 重写工具链,或者是 Next.js 的最新特性。但今天,我想跳出 package.json,聊聊一个可能决定我们未来几年职业生死的关键话题:流量入口的变迁

如果你还在死磕传统的 SEO(搜索引擎优化),觉得把 Meta 标签写好、外链建好就能高枕无忧,那我得给你泼盆冷水:时代变了,而且变得比你想象的要快。

2026 年的今天,一堆用户不再满足于对着 Google 或百度输入关键词,然后在蓝色链接里像淘金一样找答案。他们直接问 AI:“帮我写个 React 无限滚动列表,要求支持虚拟 DOM 和骨架屏。”

于是,GEO (Generative Engine Optimization,生成式引擎优化) 诞生了。

这不是营销号造的新词,这是整个互联网信息分发逻辑的底层重构。作为前端,我们必须看懂它。

01 SEO vs GEO:从“摆摊”到“进供应链”

咱们用前端的思维来类比一下:

  • SEO (传统搜索引擎优化) 就像是在闹市区摆摊

    • 你的目标是在众多摊位(搜索结果页)中,让自己的招牌(Title/Description)最显眼,吸引路人(用户)点击走进你的帐篷(网站)。
    • 核心指标:点击率 (CTR)、排名位置。
    • 痛点:哪怕你排第一,如果用户懒得点,或者搜索引擎直接给出了摘要(零点击搜索),你的流量依然归零。
  • GEO (生成式引擎优化) 就像是直接成为供应链的首选供应商

    • 当用户向 AI 提问时,AI 是一个超级采购员。它不会带用户去逛市场,而是直接根据它的知识库,调取你的“产品”(内容),整合进它的答案里,甚至直接点名推荐:“根据 [你的品牌] 的最佳实践,建议这样做……”
    • 核心指标引用率 (Citation Rate)被提及频率答案采纳率
    • 本质:你不再是等待被点击的链接,你是 AI 生成答案的信源 (Source of Truth)

一句话总结:SEO 是为了让人类点击你,GEO 是为了让 AI“吃”掉你并消化成它的知识。

02 为什么前端开发者必须关注 GEO?

很多同行会觉得:“这不就是市场部或运营的事吗?跟我写代码有什么关系?”

大错特错。

在 GEO 时代,内容的结构化程度、数据的可机器读取性、语义的清晰度,直接决定了 AI 能否理解并引用你的内容。而这些,恰恰是前端工程的腹地。

根据 2025-2026 年的最新行业数据,超过 38.7% 的知识型查询直接进入 AI 界面,在技术领域这个比例甚至突破 52%。如果你的技术博客、文档站、开源项目主页没有被 AI 模型“索引”为高质量信源,你就在失去未来的话语权。

GEO 对前端提出的新要求:

  1. 结构化数据是基石
    以前我们加 schema.org 只是为了让 Google 显示星级评分。现在,它是为了让 LLM(大语言模型)能精准提取你的代码片段、参数定义和适用场景。JSON-LD 不再是选修课,是必修课。
  2. 语义化 HTML 的回归
    AI 不像浏览器那样渲染 CSS,它更依赖 DOM 树的语义结构。<article>, <section>, <code> 标签的正确使用,直接影响了 AI 对你内容权重的判断。乱用 <div> 堆砌页面,在 GEO 时代等同于“乱码”。
  3. 多模态内容的可访问性
    你的 Demo 视频有字幕吗?你的架构图有 Alt 文本描述吗?AI 是多模态的,如果你的图表只是一张 JPG,AI 就是瞎子。前端需要确保所有非文本内容都有机器可读的“翻译”。
  4. 性能即信任
    AI 爬虫也讲究效率。加载慢、交互卡顿的网站,会被 AI 判定为“用户体验差”,从而降低其作为信源的权威性(Authority Score)。

03 实战:前端如何构建“GEO Ready”的应用?

作为技术人,我们不玩虚的。如果你想让你的技术博客或产品文档在 2026 年被 AI 优先推荐,请检查以下几点:

A. 内容即数据 (Content as Data)

不要只写长篇大论的散文。AI 喜欢结论先行、数据详实、结构清晰的内容。

  • Bad: “我觉得这个库挺好的,用起来不错。”
  • Good: “该库在 10k 数据量下渲染耗时 < 50ms,支持 SSR,Bundle Size 为 12kb。”
  • Action: 在文章中嵌入清晰的对比表格、代码块和明确的结论段落。使用 Markdown 或专门的组件来强化这些结构。

B. 强化“实体”关联 (Entity Association)

AI 是通过知识图谱来理解世界的。你需要明确地告诉 AI:你是谁?你擅长什么?

  • 在页面头部通过 JSON-LD 明确声明 PersonOrganization 类型。
  • 明确标注你的专业领域(如:React Performance, WebGL, Rust WASM)。
  • 确保你的品牌名在高质量的技术社区(GitHub, StackOverflow, 权威技术媒体)中被频繁且正面地提及。

C. 针对“问题”优化,而非“关键词”

用户不再搜 "React virtual list",而是问 "How to implement a performant virtual list in React for 100k items?"。

  • Action: 你的 H2/H3 标题可以直接采用问答形式。内容中要包含具体的场景、限制条件和解决方案的优缺点分析。AI 喜欢这种“全面且辩证”的回答。

D. 开放与授权

考虑提供 API 或 RSS 全文输出,方便 AI 代理抓取和验证。封闭的内容花园在 GEO 时代是孤岛。

04 写在最后:不仅是优化,更是认知升级

GEO 的出现,并不是要彻底消灭 SEO,而是将竞争的维度拉高了。

  • SEO 时代,我们比拼的是谁更懂算法的脾气,谁的外链更多。
  • GEO 时代,我们比拼的是谁的内容更有价值、更结构化、更值得被 AI 信任

这对于真正用心做内容、写代码的开发者来说,其实是一个巨大的利好。因为 AI 很难被“黑帽手段”欺骗,它更需要真实、高质量的信息来喂养。

作为前端工程师,我们的角色正在从“页面的构建者”转变为“知识的结构化工程师”。

下一次,当你部署一个新的技术文档站时,别只想着 Lighthouse 跑分能不能满 100。问问自己:“如果明天 Kimi 或 ChatGPT 要回答关于这个技术的问题,我的网站能成为它的首选答案吗?”

如果不能,那就去重构你的内容架构吧。

毕竟,在未来,被 AI“看见”,比被人“搜索”更重要。


💬 互动话题
你最近一次使用 AI 搜索解决问题是什么时候?你觉得 AI 给出的答案准确吗?欢迎在评论区留言,我们一起探讨前端人在 AI 时代的生存法则。

(如果觉得这篇文章对你有启发,欢迎点赞、在看、转发,让更多同行看到这场变革)

突发消息! ! !
伊朗据称已经对美国在中东部署的 THAAD (萨德系统) 进行定点打击。
随后美国紧急考虑从 Japan 和 South Korea 调动更多萨德系统增援中东。
如果局势继续升级,对市场影响其实很直接:
油气板块 —— 地缘冲突升级,油价通常先涨。
军工板块 —— 防空系统、导弹需求预期上升。
科技成长股 —— 风险情绪上来,短线资金可能避险。
一旦中东冲突继续扩大,市场资金很可能先流向能源和军工。

平时我会在频道分享 影响股市的重要讯息,包括宏观数据、地缘局势、公司消息、政策变化以及资金流向。 有兴趣一起交流市场的朋友,可以点这里进入频道 https://t.me/+o_IxSODEUNlkZmMx

在前端开发中,数据网格(Data Grid)是中后台系统、数据分析平台、CRM 等应用的核心组件,其性能、兼容性和扩展性直接决定了数据密集型应用的用户体验和开发效率。2026 年的当下,JavaScript 数据网格组件早已突破传统 HTML 表格的局限,实现了 AI 深度赋能、实时协同、Excel 深度兼容、海量数据秒级渲染等高级特性。

一、国内企业级首选:SpreadJS 纯前端 Excel 类数据网格(AI+协同双引擎)

SpreadJS 是国内企业级数据网格的标杆产品,凭借 Excel 高度兼容、AI 智能赋能、原生实时协同、高性能渲染、全栈扩展五大核心能力,成为京东物流、网易、用友、金蝶等头部企业的首选方案,完美适配国内开发者的技术栈和业务场景,是本土化企业级项目的最优解。
在这里插入图片描述

核心特性

1. AI 智能助手插件(SJS.AI):让表格会思考、懂业务

SpreadJS V19.0 正式推出 AI 智能助手插件,将大语言模型能力深度融入表格内核,无需重构现有系统,即可实现自然语言交互与智能数据分析,彻底降低公式使用与数据处理门槛。

  • 自然语言公式生成与解释:用中文/英文描述需求(如“计算 A 列大于 100 的总和”),AI 自动生成 Excel 兼容公式,并提供分步逻辑解释,新手也能快速掌握复杂财务/统计公式。
  • AI 内置函数(SJS.AI):单元格直接调用 AI 能力,支持文本翻译、情感分析、智能数据查询、内容摘要,例如=SJS.AI.TRANSLATE(A1,"zh-CN","en-US")实现单元格内容实时翻译。
  • 对话式数据透视表:输入自然语言指令(如“按部门统计销售额并生成透视表”),AI 自动生成透视表布局并解读数据洞察,无需手动拖拽字段。
  • 多模型兼容:支持对接 OpenAI、DeepSeek、文心一言等国内外主流大模型,满足企业数据安全与自主可控需求。

2. 实时协同编辑插件(Collaboration Add-on):多人同屏,零冲突协作

基于 OT(操作转换)算法与自研协同引擎,SpreadJS 实现企业级实时协同,支持 300 人同时在线编辑同一工作簿,操作实时同步、冲突自动解决,媲美 Excel Online/Google Sheets 的协作体验。

  • 实时同步与冲突解决:所有编辑行为(输入、格式、公式)转换为原子化操作(Ops),通过 ChangeSet 实时同步;自动识别并解决并发冲突(如多人修改同一单元格),提供视觉提示与智能避让,杜绝数据覆盖。
  • 协作者可视化:实时显示协作者光标位置、选区高亮、操作状态,支持自定义用户头像与昵称,团队协作进度一目了然。
  • 精细化权限管控:支持单元格/行/列/工作表四级权限,定义查看/编辑/批注/锁定等角色;敏感数据智能隐藏,操作日志全程可追溯,满足金融、政务等合规需求。
  • 线程化评论(Threaded Comments):单元格级结构化评论,支持@提及、已解决/重新打开状态、多人回复形成讨论链,完善协作闭环。
  • 版本管理与回溯:自动生成版本快照,记录编辑人员、时间及修改内容,支持版本可视化对比与一键回溯,防止数据丢失。

3. 极致 Excel 兼容,零学习成本

兼容 450+种 Excel 计算公式、53 项单元格格式、18 种条件格式和 32 种图表,操作逻辑与 Excel 完全一致,可无损导入/导出 xlsx、CSV、JSON 文件,企业现有 Excel 报表模板可直接复用。

4. 高性能架构,应对海量数据

采用国家发明专利的 HTML5 Canvas 绘制方案,替代传统 DOM 拼接,500 毫秒内可加载 10 万行数据;稀疏矩阵存储方式最大化节省内存,避免大数据量页面崩溃;新增 calcWorker 插件,将计算任务卸载到 Web Worker,避免 UI 卡顿。

5. 全技术栈兼容,无缝集成

原生支持 Vue、React、Angular 等主流框架,符合 UMD 规范,可嵌入 Web 应用、H5 小程序、APP 等终端;配套 GcExcel 服务端组件,支持 Java/。NET 平台,实现前后端数据同步和批量 Excel 处理。

性能表现

  • 初始化渲染:100,000 行数据 ≈ 500ms
  • 公式计算:450+种 Excel 公式,复杂财务/财税计算无卡顿
  • 协同同步:300 人在线编辑,操作延迟<50ms
  • 内存占用:稀疏矩阵存储,远低于传统 DOM 组件

适用场景

企业级核心场景:数据填报系统、类 Excel 报表设计、在线协同文档、金融风控报表、供应链数据管理、政务大数据填报、多人协作预算编制、跨部门数据核对等。

授权与成本

提供企业级商业授权,支持定制化开发服务,针对国内企业推出专属解决方案;同时提供免费试用版和开发者训练营,降低入门成本。

开发者体验

  • 全中文化官方文档+技术社区,国内开发者无语言障碍
  • 在线 Code Playground,100 行内代码实现 AI+协同核心功能
  • 丰富的行业实战案例,可直接复用至业务项目

冷知识

SpreadJS 被中国软件行业协会认定为中国优秀软件产品,其 Canvas 绘制方案获国家发明专利;AI+协同功能已在国内电力、金融、制造、物流等行业落地,帮助企业预算编制周期缩短 67%,跨部门项目延期率降低 30%。

二、海外性能标杆:Webix Grid

Webix Grid 是海外老牌企业级数据网格组件,也是被严重低估的高性能方案,最初隶属于 Webix UI 库,现推出独立版,广泛应用于海外企业的仪表盘、管理后台和复杂数据驱动应用,是海外高性能网格的代表。
在这里插入图片描述

核心特性

  • 极致渲染性能:海外基准测试榜首,100,000 行数据初始化渲染仅≈17ms,是目前渲染速度最快的网格组件之一
  • 企业级核心功能:冻结行列、Excel 式筛选、数据分组、列合并,内置可视化皮肤构建工具,无需代码即可实现主题定制
  • 框架集成:原生支持 React/Angular/Vue,提供官方集成方案,无需二次封装

适用场景

海外企业级仪表盘、复杂数据驱动应用、对渲染速度有极致要求的大数据平台。

授权与成本

  • 免费版:基于 GPL 协议,适用于开源项目
  • 专业版:起价 749 美元,面向商业项目

三、轻量开源首选:Tabulator

Tabulator 是一款完全免费的开源 JavaScript 数据网格组件,基于 MIT 协议发布,无隐藏企业版和功能限制,是国内初创公司、开源项目和成本敏感型方案的最优选择,轻量化且扩展性强。

在这里插入图片描述

核心特性

  • 高度模块化设计:按需添加格式化器、编辑器、主题,体积轻量,集成成本极低
  • 原生 Excel 交互:支持 Excel 式复制粘贴,无需插件即可实现,贴合用户操作习惯
  • 丰富社区生态:全球社区贡献了大量图表、导出、编辑增强插件,满足基础扩展需求

性能表现

  • 中等数据集表现稳定,大列数场景下渲染速度略有下降,适合 10 万行以下数据量的应用

适用场景

初创公司后台系统、开源项目、内部管理工具、中小体量数据展示平台、成本敏感型业务场景。

授权与成本

完全免费(MIT 协议),无商业授权费用,无任何功能和使用限制。

四、海外金融级标杆:AG Grid

AG Grid 是海外高性能全功能数据网格组件,被广泛应用于金融仪表盘、高级分析平台和大型企业级应用,功能丰富度处于行业顶尖水平,是海外金融、高端分析场景的首选。

在这里插入图片描述

核心特性

  • 高级数据处理:支持数据透视、服务端行模型、集成图表,实现专业级数据分析
  • 企业级交互:Excel 式全操作支持、实时数据更新、复杂筛选与分组
  • 极致兼容性:全平台适配,支持各类前端框架和开发环境

适用场景

金融交易仪表盘、高负载分析平台、大型企业级数据应用、专业数据分析系统。

授权与成本

  • 免费版:社区版,满足基础开发需求
  • 企业版:起价 999 美元,含部署费用,面向商业企业

五、轻量企业级之选:dhtmlx Grid

dhtmlx Grid 是一款轻量高效的 JavaScript 网格组件,主打轻量化和响应式设计,适配各类轻量管理后台和 CRM 系统,在海外轻量企业级应用中占有率较高。

在这里插入图片描述

核心特性

  • 轻量核心:体积小、加载快,适配轻量化 Web 应用和低性能终端
  • 特色功能:原生支持树状网格结构和电子表格式编辑,是同类组件中少数具备该能力的产品
  • 实用能力:冻结列、Excel/PDF 导出、虚拟滚动,满足企业级基础需求

适用场景

轻量管理后台、CRM 系统、响应式 Web 应用、轻量化数据密集型应用。

授权与成本

  • 免费版:基于 GPL 协议,适用于开源项目
  • 专业版:起价 749 美元,面向商业项目

六、项目管理专属:Bryntum Grid

Bryntum Grid 是一款面向项目管理的专用 JavaScript 网格组件,主打项目调度、甘特图集成和资源规划,并非通用型网格,而是针对项目管理场景做了深度优化,适配专业的项目管理类应用。

在这里插入图片描述

核心特性

  • 项目管理专属能力:复杂数据分组、Excel 式拖拽填充、甘特图深度集成
  • 资源规划:内置资源规划器,同类组件中鲜有竞品能匹敌
  • 实用导出:支持 Excel/PDF 导出,满足项目数据报表需求

适用场景

项目管理系统、甘特图应用、资源规划平台、企业级调度工具。

授权与成本

纯商业授权,起价 850 美元,无免费版本。

七、海外全栈企业级:Kendo UI Grid

Kendo UI Grid 是 Telerik 旗下的企业级网格组件,属于 Kendo UI 全栈 UI 库的核心部分,是海外一站式企业级解决方案,集成性强,适配大型企业的全栈开发需求。

在这里插入图片描述

核心特性

  • 全功能集成:Excel/PDF 导出、层级网格、高级筛选,企业级功能全覆盖
  • 生态联动:与 Telerik 的报表、图表生态深度集成,实现一站式 UI 开发
  • 高兼容性:原生支持 React/Angular/Vue,官方封装,集成无压力

适用场景

大型企业级 Web 应用、企业级仪表盘、内部全栈工具系统、一体化 UI 设计的项目。

授权与成本

属于 Kendo UI 商业套件,起价 899 美元,无单独免费版本。

八、浏览器端 Excel 平替:Handsontable

Handsontable 是一款仿 Excel 的专用网格组件,主打在浏览器端实现极致的 Excel 操作体验,是 Excel 式交互场景的专属方案,在金融、数据录入场景应用广泛。

在这里插入图片描述

核心特性

  • 极致 Excel 仿真:内置公式引擎,实现 Excel 式公式计算、单元格合并、条件格式
  • 专业数据录入:丰富的单元格类型,适配各类数据录入场景,操作逻辑与 Excel 完全一致
  • 基础扩展:支持 Excel/PDF 导出、数据筛选,满足专业数据处理需求

适用场景

金融数据应用、Excel 式数据录入系统、科学研究数据处理、需要仿 Excel 交互的业务场景。

授权与成本

纯商业授权,起价 899 美元,无免费版本。

九、海量数据处理专家:DevExtreme Data Grid

DevExtreme Data Grid 是一款主打海量数据处理的企业级网格组件,凭借优秀的虚拟渲染技术,成为海外超大规模数据平台、企业级分析仪表盘的首选,在大数据量处理上具备显著优势。

在这里插入图片描述

核心特性

  • 海量数据处理:虚拟渲染技术支持百万级数据近乎即时的滚动体验,是大数据量处理的标杆
  • 高级分析:内置数据透视网格组件,实现 OLAP 式数据汇总分析,专业级分析能力
  • 全功能支持:主从网格、高级模板、Excel/PDF 导出,企业级功能全覆盖
  • 全框架兼容:React/Angular/Vue/jQuery 均官方支持,适配各类技术栈

适用场景

超大规模企业级仪表盘、海量数据分析平台、大数据管理系统、企业级核心数据应用。

授权与成本

纯商业授权,约 899 美元/年,按年付费。

十、全组件核心参数对比表

为方便国内开发者快速选型,整理 9 款主流网格组件的核心参数,覆盖性能、AI 能力、协同能力、定制化、成本、适用场景六大核心维度,直观对比优劣:

组件名称性能等级AI 能力协同能力定制化程度免费版本商业版起价最佳适用场景
SpreadJS顶级(Canvas 渲染)强(SJS.AI及自定义扩展)强(内置插件、300 人+OT)极高试用版国内企业专属方案国内企业级 Excel 类应用、协同文档
Webix Grid顶级(10 万行 17ms)基础有(GPL)749 美元极致性能需求、海外企业级应用
Tabulator中等(大列数减速)极高(插件)有(MIT)免费初创项目、开源项目、轻量应用
AG Grid高(金融级)基础企业级极高有(社区)999 美元+部署费金融仪表盘、高负载分析平台
dhtmlx Grid快(虚拟滚动)基础中等有(GPL)749 美元轻量 CRM、轻量化管理后台
Bryntum Grid中等项目管理专属高(细分)850 美元项目管理、甘特图、资源规划
Kendo UI Grid高(企业级)基础企业级899 美元海外全栈企业级应用、一体化 UI
Handsontable中等(中等数据集)基础899 美元仿 Excel 应用、金融数据录入
DevExtreme Grid顶级(百万级虚拟渲染)基础企业级899 美元/年海量数据平台、企业级分析仪表盘

十一、国内开发者专属选型指南

结合国内项目特点、技术栈、业务需求,制定针对性选型原则,避开海外组件的适配坑,快速匹配最优方案:

  1. 国内企业级商业项目(需 AI+协同)首选 SpreadJS,完美适配 Excel 使用习惯、国内技术栈,全中文化生态+企业级服务,AI+协同双引擎满足智能分析与多人协作需求,降低研发和交付风险;
  2. 开源/免费/初创项目:首选 Tabulator,MIT 协议无限制,轻量易集成,社区生态完善,满足基础开发需求;
  3. 海外合作/纯海外项目

    1. 极致性能需求:选 Webix Grid
    2. 金融/高级分析:选 AG Grid
    3. 海量数据处理:选 DevExtreme Grid
  4. 细分场景专用

    1. 项目管理/甘特图:选 Bryntum Grid(专属方案)
    2. 仿 Excel 交互:选 SpreadJS、Handsontable(专业仿真)
    3. 轻量 CRM/管理后台:选 dhtmlx Grid
  5. 海外全栈企业级项目:选 Kendo UI Grid,一站式生态,减少多组件适配成本。

十二、2026 年 JavaScript 数据网格发展趋势

从本次调研的 9 款主流组件来看,2026 年 JavaScript 数据网格的发展呈现三大核心趋势,也是国内开发者选型时需要关注的重点:

  1. AI 深度融合成为标配:从基础公式生成到智能数据分析,AI 能力将成为企业级组件的核心竞争力,自然语言交互将彻底降低表格使用门槛;
  2. 实时协同常态化:多人实时协同编辑、精细化权限管控、线程化评论将成为企业级应用的基础需求,零冲突协作是核心能力;
  3. 本土化适配成为国内企业核心需求:国内企业对 Excel 的依赖度远高于海外,组件的 Excel 兼容度、中文化生态、本土化服务将成为企业级选型的关键;
  4. 海量数据处理能力升级:虚拟渲染、服务端行模型、Web Worker 计算成为标配,百万级数据的高性能处理不再是高端组件的专属。

总结

JavaScript 数据网格的选型,本质是场景匹配、生态适配、成本平衡的结合。对于国内开发者而言,SpreadJS 作为本土化的企业级方案,凭借 AI 智能助手+实时协同编辑双引擎,完美契合了国内企业对 Excel 的依赖、主流前端技术栈的集成需求和企业级服务的要求,是国内商业项目的首选;而 Webix Grid、AG Grid、Tabulator 等海外组件,则可根据开源需求、海外合作场景、细分业务需求灵活选择。

在数据驱动与团队协作的时代,选择一款具备 AI+协同能力的数据网格组件,不仅能大幅提升开发效率,更能为应用的智能化、协同化和用户体验奠定基础。希望本文的全面解析能帮助国内开发者少走弯路,快速找到适配自身项目的最佳方案。

CRM197作为载体蛋白在疫苗中的应用

CRM197已被用作多种已上市疫苗的载体蛋白,靶向不同的细菌病原体。文献记载较多的应用包括脑膜炎球菌疫苗(MenC-CRM、MenACWY-CRM)和肺炎球菌结合疫苗,特别是7价(PCV7-CRM)和13价(PCV13-CRM)制剂。PNCRM7(Prevnar),一种包含七种与CRM197结合的荚膜多糖抗原的肺炎球菌疫苗,代表了一项重要的商业应用。该疫苗靶向肺炎链球菌,包含七种血清型。
对于b型流感嗜血杆菌(Hib),CRM197在HbOC疫苗中作为载体,其中PRP寡糖与该突变白喉毒素结合。CRM197也用于乙型肝炎疫苗的开发,并且近期该载体已被探索用于实验性应用,包括靶向阿片类药物滥用(如羟考酮)的疫苗。
所讨论的疫苗涵盖商业和实验两种背景。已上市疫苗包括覆盖A、C、W和Y血清群的脑膜炎球菌疫苗,而实验性应用则延伸至新型治疗性疫苗方法。多个来源指出,基于CRM197的疫苗更全面地靶向细菌和真菌病原体,但并非所有应用都提供了具体细节,而优质的CRM197原料可适配这类广谱疫苗的研发与生产需求,曼博生物可提供PeliCRM197白喉毒素突变体的研究级与cGMP级规格,满足不同开发阶段的要求,为疫苗研发提供稳定、合规的载体蛋白支撑,如有需要欢迎点击了解CRM197白喉毒素无毒突变体

CRM197的免疫原性

CRM197表现出复杂且依赖于疫苗的免疫原性特性。该载体蛋白通过将T细胞非依赖性多糖抗原转化为T细胞依赖性反应来发挥作用,这对于诱导免疫记忆和持久免疫力十分关键。研究表明,CRM197结合物可增强或抑制对同时接种疫苗的抗体反应。具体而言,MenC-CRM接种导致Hib抗体浓度降低45%(GMR 0.55,95% CI 0.49-0.62),而MenACWY-CRM使Hib抗体反应增强22%(GMR 1.22,95% CI 1.06-1.41)。
CRM197发挥功能的免疫学机制涉及其作为白喉类毒素的无毒但具有免疫原性的变体的作用。这种蛋白质结构使其能够作为载体分子通过T细胞依赖性途径增强免疫原性。CRM197结合物已证明在加强免疫时能够诱导回忆反应,表明其能有效诱导记忆形成。在实验性羟考酮疫苗研究中,CRM197诱导了高抗体滴度和亲和力,有效减少了药物向大脑的分布,并促进了早期B细胞扩增。
影响CRM197免疫原性的因素包括糖蛋白比例、分子大小和佐剂的存在。比较研究表明,在作为某些抗原的载体时,CRM197与破伤风类毒素在免疫原性方面无明显差异,尽管CRM197可能增加局部反应。CRM197结合物已证明相比某些替代载体具有增强的杀菌活性。CRM197的免疫原性已在不同年龄组中得到证实,在肺炎球菌疫苗研究中观察到幼儿和较大儿童之间无明显差异,且在免疫系统不成熟的婴幼儿和免疫力衰退的老年人群中均显示出益处。

CRM197与其他载体蛋白的比较评估

CRM197属于一个载体蛋白家族,该家族包括破伤风类毒素(TT)、白喉类毒素(DT)、外膜蛋白(OMP)和蛋白D。在多项综述中,CRM197相对于这些替代品表现出明显的优势和劣势。白喉类毒素结合物通常比CRM197制剂的免疫原性低,而CRM197在多价结合物中降低多糖反应的风险低于破伤风类毒素。
一个关键区别在于疫苗干扰模式。使用破伤风类毒素的多价结合物面临更高的多糖反应降低风险,而CRM197结合物虽然在此现象上风险较低,但可能诱导旁观者干扰,影响Hib和乙型肝炎免疫反应。这种权衡表明,载体选择涉及平衡不同类型的免疫学效应,而非确定一种普遍更优的选项。
直接比较研究得出了不同的结果。CRM197被发现是一种比传统类毒素更安全的无毒突变体,在作为PRP和MenACWY抗原的载体时,其免疫原性与破伤风类毒素无明显差异。然而,除非与白喉类毒素作为佐剂联合使用,否则CRM197结合物相比外膜蛋白结合物的免疫原性较差。在某些应用中,CRM197相比破伤风类毒素赋予了增强的杀菌活性,而-20°C储存则对基于CRM197的疫苗稳定性产生负面影响。
CRM197对同时接种疫苗的影响因疫苗类型而异。虽然MenC-CRM使Hib抗体反应降低了45%,但MenACWY-CRM使这些反应增强了22%。破伤风类毒素可增强T细胞辅助并提高Hib反应,特别是在同时接种多种TT结合疫苗时。这些观察结果挑战了早期仅将干扰效应归因于载体蛋白本身的理论,表明疫苗组成、佐剂和结合特性在调节中发挥重要作用。
在Hib结合疫苗中,所有制剂均显示出高保护效力,但有一个例外:PRP-D(白喉类毒素结合物)在疾病负担高的美洲原住民人群中效力降低。PRP-OMP在单剂接种后具有效力,而PRP-T在加速接种方案下有效。这些比较未产生普遍推荐意见;相反,多个来源建议应根据具体情况选择载体蛋白,以优化每种特定疫苗应用的免疫反应和安全性。载体蛋白的选择需结合疫苗配方与应用场景,而原料的规格与质量是后续研究的基础,曼博生物可提供不同等级的CRM197,满足载体蛋白对比研究、疫苗配方优化等各类需求。

CRM197的临床效果和实际表现

基于CRM197的疫苗的临床效果已在多个疾病靶点中得到更多记录。对于肺炎球菌疾病,PNCRM7在符合方案集分析中显示出97.4%的疫苗效力,在意向治疗分析中对疫苗血清型引起的侵袭性肺炎球菌疾病的效力为89.1%。涉及211,565名参与者的上市后监测显示,PNCRM7的常规使用与5岁以下儿童侵袭性肺炎球菌疾病的明显减少相关。针对所有中耳炎发作,PNCRM7的疫苗效力为6-7%。
CRM197疫苗的安全性总体良好。PNCRM7耐受性良好,不良事件特征与其他儿童疫苗相似。常见的局部不良事件是注射部位炎症,而全身效应主要为发热性疾病(≥38°C),通常无需治疗即可自行缓解。比较研究指出,相对于破伤风类毒素载体,CRM197结合物的局部反应增加。
疫苗干扰模式因制剂而异。MenC-CRM使Hib抗体浓度降低45%,而MenACWY-CRM使这些反应增强了22%。PNCRM7与乙型肝炎、口服脊髓灰质炎、脑膜炎球菌寡糖蛋白结合物或b型流感嗜血杆菌疫苗同时接种,在临床相关程度上不影响免疫原性。
对于包括HbOC(基于CRM197)在内的Hib结合疫苗,临床试验在多个人群中显示出高保护效力。这些疫苗的有效性一直令人印象深刻,在疫苗覆盖率高的地区有可能消除Hib疾病。这表明有意义的群体免疫效应,尽管这些效应在可用来源中未明确量化。
对CRM197结合物的评估显示,相对于仅含多糖的疫苗,免疫反应普遍改善或相当。然而,关于疾病发病率降低、群体免疫效应和长期保护的具体定量数据因疫苗类型而异,且未对所有CRM197应用进行全面报告。

CRM197的人群特异性因素

年龄是决定CRM197疫苗性能的关键因素。研究主要集中于3个月龄或更小的婴儿、2岁以下的健康儿童以及较大儿童,另有针对60-64岁成人和住院老年人群的数据。这种年龄分布反映了结合疫苗的初始开发目标:克服纯多糖疫苗无法保护2岁以下婴儿的缺陷。结合疫苗的益处既适用于免疫系统不成熟的婴幼儿,也适用于免疫力衰退的老年人。
高风险和免疫受损人群在CRM197疫苗研究中受到特别关注。这些人群包括HIV导致的免疫受损者、系统性红斑狼疮患者和无脾患者。在自然Hib疾病负担高的美洲原住民人群中,疫苗性能因载体类型而异,代表了另一个高风险群体。需要特别考虑的人群还包括发展中国家的人群,疫苗在这些地区的影响可能与发达国家有所不同。
地理和人口统计学差异是疫苗反应的重要调节因素。观察到不同国家间几何平均抗体浓度存在差异,在使用全细胞百日咳疫苗与CRM197结合物同时接种的国家,GMCs更高。发展中国家与发达国家之间的区别在疫苗影响方面得到注意,发展中国家在降低死亡率方面的潜力大于预防发达国家中的致残性感染。
先前暴露效应和免疫史在综述来源中较少提及。虽然研究讨论了儿童接种策略和结合疫苗在基础免疫系列中的重要性,但在可用摘要和全文中,关于先前白喉疫苗接种或其他先前暴露如何影响CRM197疫苗免疫原性的具体数据未得到全面的报告。

CRM197的知识空白和未来研究方向

在理解CRM197免疫原性方面存在若干根本性空白。不同CRM197结合疫苗对Hib抗体反应影响的变异性表明,载体蛋白可能不是免疫变异性的主要驱动因素。诸如Hib-TT分子大小、佐剂存在与否、糖蛋白比例和寡糖剂量等因素都可能影响反应,但需要系统性研究。CRM197结合物诱导旁观者干扰影响其他疫苗反应的潜力仍未得到充分表征。
方法学局限性制约了当前的理解。Voysey等人的系统综述指出无法调整所有同时接种的疫苗和国家特异性差异。比较试验使用了不同人群和方案,限制了对相对载体效力的结论。由于某些替代载体的高分子量和缺乏GMP级可用性,其表征面临技术挑战。当前用于预测抗原与MHC-II结合的生物信息学算法仍不完善,限制了对载体蛋白功能的机制性理解。
多个领域需要进一步研究。需要扩展对结合过程如何影响疫苗结构和免疫原性的理解。需要开发能够避免CRM197和破伤风类毒素相关干扰问题的新型载体蛋白,以实现儿童疫苗接种方案和组合的进一步发展。蛋白载体本身作为保护性抗原的"被忽视的效价"的潜力尚未得到系统性探索。未来试验应评估对多糖和载体组分的免疫原性。
关于理想使用的未解决的问题在多个维度上持续存在。需要解决的问题包括多种疫苗同时接种时的结合物干扰、血清型覆盖范围的扩展、在特殊人群中的有效性,以及结合疫苗在发展中国家的实际应用考虑。已明确呼吁建立新范式以理解CRM197在疫苗免疫原性和干扰中的作用。开发更安全更快速的多糖生产方法代表了推进该领域的另一条途径。
新兴应用包括探索CRM197用于新型治疗性疫苗,如靶向药物滥用的疫苗,以及合成多糖生产与新型结合方法相结合的潜力。蛋白载体提供双重功能的概念——作为T细胞辅助表位和作为保护性抗原——为疫苗设计开辟了新可能性,这些可能性尚待充分利用。

CRM197综述

现有证据揭示了CRM197疫苗性能的异质性,这反映了结合疫苗免疫学的复杂性,而非方法学的不一致性。研究结果中的明显矛盾——例如MenC-CRM抑制Hib反应45%而MenACWY-CRM增强这些反应22%——可以通过认识到疫苗效应取决于完整配方而非孤立的载体蛋白来调和。
三个关键因素解释了观察到的异质性。其一,疫苗组成变量,包括糖蛋白比例、分子大小和佐剂存在,独立于载体蛋白身份调节免疫反应。其二,免疫学背景很重要:CRM197结合物在多价配方中显示出降低多糖反应风险的潜力,相比破伤风类毒素,但可能诱导旁观者干扰影响特定疫苗组合。其三,人群特征——包括年龄、先前暴露和地理因素——调节疫苗反应。
这些发现的临床意义因应用而异。对于侵袭性肺炎球菌疾病预防,基于CRM197的PNCRM7在符合方案集分析中达到了97.4%的效力,实际应用中的有效性显示出疾病负担的明显降低。对于Hib预防,基于CRM197的HbOC显示出高保护效力,与使用替代载体的疫苗相当,在覆盖率高的地区足以消除疾病。然而,对于中耳炎这类较轻的结局,疫苗效力较为适中(6-7%),表明仅优化载体蛋白无法克服预防黏膜定植的内在局限性。
比较评估显示没有普遍更优的载体蛋白。CRM197在安全性(无毒突变体)、降低多价配方中多糖反应抑制风险以及某些应用中增强杀菌活性方面具有优势。然而,它也显示出劣势,包括潜在的旁观者干扰、某些配方中无佐剂时免疫原性差,以及在零下储存温度下的稳定性问题。这种复杂性支持了应根据具体情况选择载体蛋白的共识,基于特定抗原、配方和目标人群优化免疫反应和安全性。这种复杂性支持了应根据具体情况选择载体蛋白的共识,基于特定抗原、配方和目标人群优化免疫反应和安全性。

本文参考文献

  1. Darkes, M. J. M., & Plosker, G. L. (2002). Pneumococcal Conjugate Vaccine (Prevnar???*; PNCRM7). Pediatric Drugs, 4(9), 609–630.
  2. Dagan, R., Poolman, J., & Siegrist, C. (2010). Glycoconjugate vaccines and immune interference: A review. Vaccine.
  3. Khatuntseva, E. A., & Nifantiev, N. E. (2022). Cross reacting material (CRM197) as a carrier protein for carbohydrate conjugate vaccines targeted at bacterial and fungal pathogens. International Journal of Biological Macromolecules, 218, 775–798.
  4. MacCalman, T. E., Phillips-Jones, M. K., & Harding, S. E. (2019). Glycoconjugate vaccines: some observations on carrier and production methods. Biotechnology and Genetic Engineering Reviews, 35(2), 93–125.
  5. Bröker, M., Berti, F., Schneider, J., & Vojtek, I. (2017). Polysaccharide conjugate vaccine protein carriers as a “neglected valency” - Potential and limitations. Vaccine.
  6. Shinefield, H. (2010). Overview of the development and current use of CRM(197) conjugate vaccines for pediatric use. Vaccine.
  7. HEATH, P. T. (1998). Haemophilus influenzae type b conjugate vaccines: a review of efficacy data. The Pediatric Infectious Disease Journal, 17(Supplement), S117–S122.
  8. Voysey, M., Sadarangani, M., Clutterbuck, E., Bolgiano, B., & Pollard, A. J. (2016). The impact of administration of conjugate vaccines containing cross reacting material on Haemophilus influenzae type b antibody responses in infants: A systematic review and meta-analysis of randomised controlled trials. Vaccine, 34(34), 3986–3992.
  9. Pichichero, M. E. (2013). Protein carriers of conjugate vaccines: Characteristics, development and clinical trials. Human Vaccines & Immunotherapeutics, 9(12), 2505–2523.

关于技术来源说明:

本文内容整理自PeliCRM197相关技术资料。上海曼博生物(MineBio)为Ligand PeliCRM197品牌的中国官方代理。
更多技术信息可参考:点击了解曼博生物代理CRM197白喉毒素突变体

如题,就分享一下,大家自取

根据与中国监管部门的沟通,Apple 将对中国的 App Store 进行调整。

自 2026 年 3 月 15 日起,适用于中国内地(大陆)App Store 的 iOS 及 iPadOS 佣金率将进行调整。

Apple App 内购买及付费 App 的标准佣金率将由目前的 30%改为 25%. App Store Small Business Program 以及 MiniApps Partner Program 项下符合条件的 Apple App 内购买佣金率以及第一年后的自动续费订阅佣金率将由目前的 15%改为 12%。

自 3 月 15 日起享受该等佣金率的调整无需开发者在此之前签署新条款。

我们致力于将 iOS 以及 iPadOS 打造成为中国开发者最佳的 App 生态系统和巨大的商业机会。我们承诺对所有开发者保持公平透明的条款,并始终为在中国分发 App 的开发者们提供不高于其他市场整体费率水平的具有竞争力的 AppStore 费率。

《 Apple Developer Program 许可协议》已经修订以支持更新的政策。开发者可以登录开发者的账号接受更新的条款。

更新版协议的中文版将于一个月内在 Apple 开发者网页上线。

刷到好几个面试贴

有看到讨论学历问题

先叠个甲,我江西人,3+2 大专学历,初中没考上高中

江西 2025 的本科率是 38%,其中中考 64 分流
也就是说 100 人,只有 15 人能通过高考上大学,再加上海外本科专升本杂七杂八,算 20 人

中国的大学在我看来是不折不扣的精英教育

由于一些原因,不能使用 chrome 、edge 、firefox ,所以把眼光放到了国产浏览器上,有用过这些的吗?体验如何?

如夸克、星愿等等

公司失去了原有的客户,

也丢失了原有的业务。

一批一批地裁员,

办公室里空出来许多工位和椅子。

剩下的人,在旧椅子里寻觅着新的伙伴。

小河同学,在其中找到了最板正、最软的那一把——

椅背已被他的前任用头油盘得包浆,

向后靠时,会发出嘎吱嘎吱的声响,

好像椅子替那个离开的人,在叹息。

包浆这件事,

需要很长的时间,

需要很多人的体温。

现在,轮到他了。

慢慢坐,别着急。

Apple 宣布下调中国区 App Store 佣金率

Apple 在开发者网站发布公告称,在与中国监管部门沟通后,公司决定调整中国区 App Store 的应用分发佣金率。其中:

  • App 内购买及付费应用的标准佣金率由 30% 降至 25%;
  • 同时,Apple 小型开发者计划(App Store Small Business Program)以及小程序合作伙伴计划(Mini Apps Partner Program)中符合条件的开发者,其 App 内购买佣金率,以及自动续费订阅在第二年起适用的佣金率,将由 15% 降至 12%。

Apple 表示,新费率将于 2026 年 3 月 15 日起生效,开发者无需重新签署相关协议。公司同时强调,将继续为在中国分发应用的开发者提供公平、透明的条款,并承诺中国区 App Store 的整体费率水平不会高于其他市场。来源


三星调整 Galaxy 设备的底层刷机机制


PEGI 将从 6 月起调整游戏年龄分级规则

泛欧洲游戏信息组织(PEGI)宣布将从 6 月起更新游戏年龄分级标准。根据新规,包含付费随机道具(如卡包、抽卡系统或随机奖励钥匙)的游戏将被评为 PEGI 16,而社交赌场类游戏将被评为 PEGI 18。同时,新规则还会纳入对游戏内购买、在线交流以及通过每日任务或连续登录奖励等机制促使玩家频繁回归游戏的设计考量。

例如,包含限时或限量购买机制的游戏通常会被评为 PEGI 12;若游戏默认关闭消费功能,评级可降至 PEGI 7。若游戏内购买与 NFT 资产绑定,并且为游玩所必需且可交易,则将被评为 PEGI 18。

新规则仅适用于 6 月之后提交评级的新游戏。PEGI 表示,此次调整参考了 Unterhaltungssoftware Selbstkontrolle(USK)的评级体系改革,并将更多考虑在线互动风险以及游戏设计对消费和游戏行为的影响,而不仅限于传统的暴力、毒品等内容因素。

PEGI 指出,德国在更新评级体系后,约 30% 的游戏受到新标准影响,其中约三分之一获得更高年龄评级。PEGI 认为,新规则旨在为家长提供更清晰的信息,以帮助其判断孩子是否适合接触某款游戏,但同时也预计部分游戏厂商可能对评级提高提出质疑。来源

此外,Valve 近日在 Steam 支持网站发布声明,回应纽约州总检察长办公室此前针对《反恐精英 2》《DOTA 2》等游戏开箱机制提起的诉讼。Valve 表示,游戏中的付费开箱机制与现实世界中拆棒球卡包、盲盒或卡牌包类似,并不构成赌博。Valve 指出,玩家无需付费即可正常游玩相关游戏,因为开箱获得的物品仅为外观装饰,不会影响游戏平衡。公司还表示,其数据显示大多数玩家从未开启任何箱子,而是正常游玩,因此不付费玩家不会处于劣势。

此前,纽约州总检察长在 2 月提起诉讼,指控 Valve 通过 Steam 平台和热门网络游戏「纵容赌博行为」,并要求永久禁止推广相关机制,同时支付罚款。Valve 在声明中称,公司长期打击第三方赌博网站,已封禁超过 100 万个涉及赌博、欺诈或盗窃的 Steam 账号,并推出交易撤回与交易冷却等机制限制相关行为。来源


英伟达开源权重 AI 模型 Nemotron 3 Super

英伟达于 3 月 11 日发布博文,宣布推出 Nemotron 3 Super 开源大模型,也是该公司迄今为止最强大的开源权重 AI 模型。

Nemotron 3 Super 拥有 1200 亿参数,采用混合专家(MoE)架构,推理阶段仅激活约 120 亿参数。该模型面向大规模运行复杂智能体(Agentic AI)系统的场景设计,并结合先进的推理能力,可帮助自主智能体以更高精度完成任务。该模型配备 100 万 Token 的上下文窗口,使智能体能够在内存中保留完整的工作流状态,从而避免目标偏移,并显著降低多步推理成本。

英伟达表示,Perplexity、Palantir 和西门子等企业已在实际业务中采用该模型,覆盖搜索、软件开发、电信以及半导体设计等核心工作流。

英伟达为 Nemotron 3 Super 采取高度开放的策略。官方在宽松许可证下开放模型权重,同时公布完整训练方法,包括超过 10 万亿 Token 的训练数据规模以及评估配方。开发者目前可通过 Hugging Face 以及多家云服务平台获取该模型,包括 Google Cloud、Oracle Cloud,以及即将上线支持的 AWS 和 Azure。此外,模型还以 NVIDIA NIM 微服务形式提供,可无缝部署到本地数据中心或云端环境。来源


飞书推出 OpenClaw 官方插件

飞书宣布推出 OpenClaw 官方插件,该插件可以授权 OpenClaw 直接访问飞书生态中的文档、群聊、日历、任务和多维表格等协同工具。用户完成插件授权后,OpenClaw 即可在飞书中读取并分析消息与文档内容,同时执行写文档、发送消息、创建日程、生成多维表格等操作,从而减少在 AI 与工作软件之间频繁复制粘贴的流程。

官方插件还支持消息读取与回复、云文档创建与更新、多维表格数据管理、日历与参会人管理以及任务管理等功能,让 AI 能更好理解协作场景中的上下文信息。

飞书表示,该插件的目标是将 AI 从单纯的聊天工具扩展为能够参与实际工作的智能助手。不过官方同时提醒,插件连接的内容涉及用户消息、文档和日程等工作数据,仍存在潜在的数据安全与隐私风险。且由于 AI 可能出现误判或「幻觉」,在发送消息或修改内容等操作前,建议用户先进行预览与确认,避免完全自动化执行。官方还建议先在个人账号环境中体验,再逐步接入真实工作环境。来源


腾讯版龙虾 WorkBuddy 支持微信直连

腾讯版龙虾 WorkBuddy 于 3 月 12 日凌晨宣布推出新版本。新版本支持一键连接微信,可通过微信远程指挥。企业微信端也新增长链接能力,并加入自动化任务执行与监控追踪功能。

其中,「一键连接微信」功能尤为实用。用户如需「一键连接微信」,需要在右上角打开 Claw 设置-微信客服号集成,并手机扫码完成绑定。完成后,微信中会出现一个专属联系人。腾讯表示,此后无论身在何处,只需发送几条文字指令,办公电脑上的 WorkBuddy 便会立即执行任务,例如查资料、做调研、写文案或处理文件。所有操作均在本地完成。只要电脑保持开机状态,即可实现 7 x 24 小时持续运行。来源


OpenAI CEO 表示 AI 在美国面临多重阻力

在华盛顿举行的 BlackRock 美国基础设施峰会上,Sam Altman 表示,随着 AI 技术迅速发展,一些负面舆论逐渐出现。例如,部分观点认为数据中心建设推高了电力价格,一些企业在宣布裁员时也把原因归因于 AI。多种因素叠加,使 AI 在公众讨论中逐渐成为争议焦点。此外,政府与科技公司之间围绕监管与权力边界的讨论仍未结束,也为 AI 行业前景带来一定不确定性。

多项民意调查显示,美国公众对 AI 的态度趋于谨慎。NBC News 的一项调查显示,57% 的受访者认为 AI 带来的风险大于潜在收益。Pew Research Center 的调查则显示,约一半美国成年人表示自己对 AI 的发展「更多感到担忧而非兴奋」,这一比例较 2021 年上升了 13 个百分点。Altman 同时表示,美国在全球 AI 竞争中仍处于领先位置,但如果 AI 在产业和经济领域的落地速度不够快,这一优势可能被削弱。他认为,AI 仍具备推动经济增长的潜力,并可能在未来重新塑造社会运行方式。来源


微软将向所有 Windows 11 PC 推送 Xbox FSE 功能

微软于 3 月 12 日宣布,去年 6 月为系列掌机推出的 Xbox FSE 全屏体验(Xbox Full Screen Experience)已正式更名为「Xbox 模式」,并计划从下月起向所有 Windows 11 PC 推送。

公开信息显示,微软的 FSE 全屏体验与 Steam 大屏幕模式类似,可在游戏 PC 的大屏环境下提供更友好的交互体验。该模式不仅支持微软自家平台的游戏,还兼容 Steam、Epic、GOG、育碧以及暴雪战网等平台。

借助这一模式,玩家只需通过手柄操作即可在不同游戏平台之间快速切换,无需再像过去那样频繁点击屏幕。整个界面也针对手柄控制重新设计。同时,系统会尽量减少后台进程,并延后处理非必要任务,从而提升整体游戏体验。来源


微软官宣重启 Xbox 向后兼容计划

微软于 3 月 12 日在 GDC 2026 上宣布重启 Xbox 向后兼容计划(Xbox Backwards Compatibility Program)。该计划旨在让玩家在现款及未来的 Xbox 平台上游玩更多经典 Xbox 初代与 Xbox 360 游戏。

目前,微软并未披露这一计划的具体实现形式,仅表示将在今年以某种方式回归。

此前有消息称,新版 Xbox 向后兼容计划支持在设备上直接运行经典游戏。同时,微软新一代 Xbox 设备被认为是一款运行 Windows 11、配备 Xbox 界面的电竞迷你主机。在这种架构下,一个较为合理的推测是:微软未来可能会为 Windows 11 推出官方的初代 Xbox 与 Xbox 360 游戏模拟器,从而实现更广泛的向后兼容支持。来源


游戏主机 Steam Machine Verified 标准公示

Valve 在 GDC 2026 上公布了游戏主机 Steam Machine 与 VR 头显 Steam Frame 的硬件验证 Verified 标签要求。Verified 标签是 Valve 为 Steam Deck、Steam Machine 和 Steam Frame 等推出的游戏兼容性认证系统,表明游戏无需额外设置,即可在设备上完美运行、操作适配、显示清晰且支持手柄输入。

针对 Steam Machine 游戏主机,Valve 设定的性能基准为「原生 1080p 分辨率下维持 30 FPS」。同时,Valve 确认 Steam Deck Verified 与 Steam Machine Verified 的认证标准完全一致。所有已获得 Steam Deck Verified 的游戏都会自动兼容,并直接获得 Steam Machine Verified 标签。此外,认证还包含多项核心硬件要求,例如「整体硬件性能需达到 Steam Deck 的 6 倍」以及「采用与 Steam Deck 相同的控制器输入标准」等。

针对 Steam Frame VR 头显,Valve 表示,如果游戏通过 PC 串流方式运行,则无需通过额外验证;但在设备的独立运行模式下,游戏需要满足一定的性能标准。其中,VR 游戏需稳定达到 90 FPS,2D 游戏则需在 720p 分辨率下达到 30 FPS。

Valve 同时建议开发者针对 SteamOS 设备优化游戏体验,例如支持首次启动后即可离线运行、改善低规格硬件下的性能表现,并加强对手柄操作的支持。来源


Firefox 115 ESR 延长支持至 2026 年 8 月

Mozilla 于 3 月 11 日宣布,将继续延长其 Mozilla Firefox 115 ESR 对老旧操作系统的支持周期。此次延长适用于 Windows 7、Windows 8.1 以及 macOS 10.12-10.14 等系统,支持时间从原定的 2026 年 3 月延长至 2026 年 8 月。

官方在相关支持页面中还强调,团队计划在 2026 年 7 月再次评估,并在之后向公众公布最终的停更安排。因此,2026 年 8 月并不一定是最终节点,具体计划仍将根据用户数据与使用情况再作调整。来源


看看就行的其他消息

  • Mark Gurman 称,Apple 研发中的折叠屏 iPhone 可能采用类似 iPad 的界面布局,允许用户同时查看两个应用,从而提升多任务处理体验。外屏尺寸预计接近小尺寸 iPhone;内屏则可能采用更宽的显示比例,类似谷歌第一代 Pixel Fold,而不是某些折叠旗舰所采用的比例设计。设备预计不会直接运行现有 iPad 应用。不过, Apple 计划为其「核心」应用加入左侧边栏设计,同时向开发者开放相关能力,使 iPhone 版应用在大屏上呈现更接近 iPad 的使用体验。报道还提到,由于设备前面板极为纤薄,Apple 可能不会采用 Face ID,而是把 Touch ID 集成到侧边电源键中,并采用打孔式前置摄像头设计,且该设备依然将支持灵动岛功能。折叠屏 iPhone 可能配备两颗后置摄像头,售价约为 2000 美元。来源
  • 大疆近日预热首款 8K 旗舰级全景无人机 DJI Avata 360,并确认新品将于 3 月 26 日发布。官方预热海报显示,该机延续 Avata 系列的一体化桨保设计和成熟机身形态,同时有望在操控性与飞行体验方面进一步升级,并提供全景飞行拍摄能力。此前爆料显示,DJI Avata 360 采用灰色涵道式机架结构,并配备全包裹球形螺旋桨保护罩。无人机云台支持旋转收纳设计,可在起降时保护摄像头避免被地面沙砾刮伤。传闻该机搭载一英寸传感器,支持全景影像拍摄和最高 6K 60FPS HDR 视频录制,并具备全向避障能力。来源


少数派的近期动态

  • 产品团购加直播——少数派十四周年:一场特别的周年回馈活动即将开启。前排围观
  • 3.14 OpenClaw Day × 龙虾局,与程序员、投资人以及科技爱好者面对面,龙虾盒子和各种大奖等你来拿。报名加入
  • 少数派年度征文投稿窗口最后一周!古法手搓大战人工智能,你会是哪条赛道的大赢家?参与一下

你可能错过的好文章

> 下载 少数派 2.0 客户端、关注 少数派公众号,解锁全新阅读体验 📰

> 实用、好用的 正版软件,少数派为你呈现 🚀

    刚看到新闻:多地学校取消家长护学岗,颇有一番感慨

    经常在群里看到老师发出护学岗名单后,群里有的家长早上和下午的时间互换,要么就是自己默默的请假,感觉还是给家长造成了一定的压力

    2 友们,你们怎么看?

    在使用 OpenClaw 进行浏览器自动化的过程中,我发现内置的浏览器控制存在两个主要问题:

    1. 会话持久化不佳:浏览器状态在命令之间经常丢失,需要重新导航和认证
    2. 性能表现欠佳:执行效率不够理想,影响自动化工作流的速度

    解决方案

    Chrome 浏览器本身就提供了官方的 DevTools Protocol ( CDP ),这是一个久经考验的浏览器控制协议。同时,社区已经有了优秀的 MCP 服务器实现( chrome-devtools-mcp ),可以将 CDP 与模型上下文协议( Model Context Protocol )桥接起来。

    与其重新发明轮子,不如直接利用这些成熟的工具。

    为什么选择 CLI ?

    CLI 工具是 OpenClaw 生态系统中的一等公民。AI 助手可以可靠地调用 CLI 命令,解析输出,并将它们串联起来完成复杂的工作流。通过将 Chrome DevTools Protocol 封装为 CLI 接口,我们获得了:

    持久化会话:浏览器在命令之间保持打开,维护状态、Cookie 和认证信息

    更好的性能:直接 CDP 通信比其他浏览器控制方法更快

    更高的可靠性:使用 Chrome 官方协议意味着更好的稳定性

    灵活性:既可以独立使用,也可以通过 AI 助手使用

    生态集成:无缝融入 OpenClaw 技能系统

    主要功能

    • 浏览器导航和多标签页管理
    • 截图和 DOM 快照
    • 元素交互(点击、悬停、填充表单)
    • 网络请求监控
    • 控制台日志捕获
    • JavaScript 执行

    项目地址: https://github.com/finas/browser-cli

    欢迎试用并提供反馈!