2026年4月

卧槽卧槽……居然收到 A 家的道歉邮件……
半个月前被封了一个 5x max 账户,然后去申诉了,一直没动静,刚半夜收到邮件说账户帮我恢复了,还给我额破了拽了……
那是不是这个账户可以继续用了啊?可以继续充个 max ?

随着娃越来越大,对于车的空间要求也多一些了,而且我经常会两个城市的家里跑,每次都要带一下东西。所以对于空间有一定要求。但又不喜欢大 6 座或者 mpv,所以在这两款中纠结。
目前马自达,很喜欢开,比较喜欢方向盘偏重的车,让人有驾驶欲望。
这两款价格差不多,001 可能上路要便宜 1-2w。
纠结的点是:

  1. 001 从售后、智能化、和一些小的方面不如小米
  2. yu7 看过实车,虽然有前备箱,但是后备箱空间比 001 小,因为我可能会放一些大件(不需要放平后排座椅的那种)
  3. 现在买 001 好像不是最佳时期,也可等下半年改款前买

所以从你的角度,你会怎么考虑,你更喜欢哪辆车,有什么购车降低成本小技巧?

大家好:新人报道 敬礼, 送福利啦!最近自己手搓了个记录倒数的日子 App ,叫「拾光机」。

做这个主要是自己觉得市面上的比较乱我想搞个简单干净就老老实实的能清晰的查看我的排列的倒数日子,比如各种生日,重要日子省的忘。然后自己 vbcoding 了一个
自我感觉 UI 质感打磨得还挺漂亮的哈哈哈哈😄
App Store 直达链接: https://apps.apple.com/cn/app/id6747690375 或搜索 拾光机 (拾光机-桌面倒数日与高定小组件)

然后送 50 个码终身 pro 不白送需要给点建议(最好能再 AppStore 拉点儿票) 谢谢大家

重塑高压降压标杆:无锡市至诚微电子的ZCC12030/E,120V/3.5A极低静态电流非同步降压转换器

在电动汽车、通信电源、工业控制等高压应用场景中,高效、稳定且具备超低待机功耗的电源解决方案一直是工程师追求的目标。德州仪器(TI)的LM5013曾是这一领域广受欢迎的经典之选。如今,无锡市至诚微电子有限公司推出的ZCC12030/E,以其更卓越的性能、更低的功耗和更高的设计灵活性,为工程师提供了一个极具竞争力的高性能替代方案。

核心替代优势:性能全面优化

ZCC12030/E是一款非同步降压转换器,与LM5013的拓扑结构和引脚功能高度兼容,为现有设计的平滑升级和供应链优化提供了便利。它在保留LM5013核心优点的同时,进行了多项关键性能强化:

更宽的输入电压与更高电流能力:

宽压输入:支持6V至115V的宽输入电压范围,能从容应对工业与汽车电子中常见的严苛电压波动。

强劲输出:内部集成低导通电阻(100mΩ)的高侧功率MOSFET,可支持高达3.5A的连续输出电流,为更高功率负载提供动力。

极致的静态电流与轻载效率:

ZCC12030/E系列在静态功耗上实现了重大突破。其中,ZCC12030E型号通过独特的EXT外部偏置引脚技术,在连接至输出电压(VOUT,5-18V)时,静态电流可低至4μA。即使不使用EXT功能,芯片自身静态电流也仅为10μA。这显著降低了系统在待机或轻载模式下的功耗,特别适用于对电池续航或能耗有严格要求的应用。

高精度与快速响应:

采用恒定导通时间(COT)控制模式,实现了优异的负载瞬态响应速度。

内部基准电压精度为±1%,确保了输出电压的稳定与精确。

丰富的集成功能与全面保护:

简化设计:内部集成VCC偏置电源,无需外部VCC电容,简化了PCB布局。

灵活可调:开关频率可通过外部电阻在80kHz至1MHz范围内编程,支持低压差模式(DMAX > 98%)。

多重保护:提供全面的保护机制,包括输入欠压保护、可编程UVLO(通过EN引脚)、带有打嗝模式的输出短路保护、逐周期峰值电流限制以及过热关断保护,保障系统在各种异常条件下的可靠性。

型号选择:ZCC12030 与 ZCC12030E

针对不同应用需求,ZCC12030系列提供两个版本,其区别主要在于第6引脚的功能:

ZCC12030:第6引脚为PG(Power Good)指示器,用于指示输出电压是否处于正常范围。

ZCC12030E:第6引脚为EXT(外部偏置输入),连接至VOUT(5-18V)可进一步将静态电流降至4μA,最大化提升轻载效率。若无需此功能,该引脚可悬空或接地。

典型应用领域

凭借其高输入电压、高效率和超低静态电流的特性,ZCC12030/E是以下应用的理想选择:

高压后级稳压器:在通信、工业电源系统中作为中间总线转换器。

电动出行工具:电动自行车、电动工具、园林工具的电机驱动与控制系统供电。

无人机与机器人:为其飞控、伺服系统提供高效主电源。

汽车电子:车载充电口、信息娱乐系统等12V/24V/48V电池系统降压应用。

工业自动化:PLC、传感器、马达驱动器的辅助电源。

为何选择ZCC12030/E替代LM5013?

无缝替换:引脚兼容与拓扑一致,最大程度降低设计变更风险与验证时间。

性能提升:更高的输出电流(3.5A)、更低的静态电流(最低4μA)以及更全面的保护功能,带来更优的系统性能。

成本与供应优势:作为国产高性能替代方案,ZCC12030/E在保证品质的同时,具备更具竞争力的成本结构和更稳定的供货保障。

本地化支持:无锡市至诚微电子提供及时、高效的技术支持与服务,助力客户加速产品开发与上市进程。

结语

ZCC12030/E不仅是一款可“脚对脚”替代LM5013的芯片,更是在功耗、电流能力和集成度上实现全面超越的升级解决方案。它承载了至诚微电子对高压电源技术的深刻理解,旨在帮助工程师应对更复杂的挑战,打造更高效、更可靠的下一代产品。

📰 今日新闻精选:

  • 广州一季度 GDP 增长 6%,时隔 5 年首次跑赢全国、全省增速;广州存款规模首次突破 10 万亿元,成北上深后第四城
  • 农业农村部:一季度农村居民人均可支配收入增速比城镇居民快 2.2 个百分点
  • A 股又一万亿巨头诞生,中际旭创总市值突破 1 万亿元,近 1 年股价涨幅超 10 倍
  • 广州深圳两条 “通勤高速路” 确认今年免费,水官高速 4 月 25 日结束收费
  • 12306 平台现豪华旅游专列票价超 20 万,运营方回应:前往南北疆 17 天,定位高端,已售出两间套房
  • 海南:外卖骑手在取餐配送时发现食品安全问题,提交查实后给予奖励
  • 全国首例 “职场性侵认定工伤案” 将择期宣判,双方表示不接受调解
  • 2026 年一季度全国自然灾害情况发布:共造成 75.08 万人次受灾,直接经济损失 10.41 亿元
  • 国家卫健委:超 40% 癌症可通过保持健康生活方式、减少接触致癌物等措施预防
  • 特斯拉第三代人形机器人预计年中亮相,2026 年 7-8 月启动正式投产
  • 日媒:日本众议院表决通过设立 “国家情报局” 法案;本田宣布年底前撤出韩国市场,结束 23 年经营
  • 英媒:英国出逾 6 亿英镑与法国达成防偷渡新协议,以阻止非法移民经英吉利海峡偷渡至英国
  • 俄媒:俄罗斯获邀以最高级别参加美国 G20 峰会,佩斯科夫称俄方参会代表尚未确定
  • 外媒:伊朗称收到首笔霍尔木兹海峡通行费;特朗普宣称已彻底封锁霍尔木兹海峡,直至伊朗愿达成协议
  • 外媒:消息称伊美谈判准备工作今晚或明天可能取得突破;美国称在中东部署史上最强大军力;以色列称已准备好重启与伊朗的战争

📅 今日信息:

  • 公历:2026-04-24 星期五 金牛座
  • 农历:二〇二六年三月初八
  • 公历纪念日:中国航天日
  • 下一节气:2026-05-05,立夏
  • 今年进度:31.23%(已过 114 天,剩余 250 天)

🌟 历史上的今天

  • 1792 年:法国里尔战役打响,士兵鲁热·德·利尔谱写《马赛曲》后传唱为法国国歌。
  • 1898 年:西班牙向美国宣战,美西战争正式爆发。
  • 1970 年:中国首颗人造地球卫星“东方红一号”成功发射。
  • 1990 年:哈勃太空望远镜由发现号航天飞机发射升空。
  • 2007 年:俄罗斯前总统叶利钦去世。

🕰️ 今日诞辰

  • 1562 年:明代戏曲作家、文学家汤显祖(代表作《牡丹亭》)。
  • 1942 年:英国女高音歌唱家芭芭拉·史翠珊。
  • 1968 年:美国演员艾丹·奎因。

💡 冷知识

  • 4 月 24 日是“世界实验动物日”,旨在纪念为科学进步牺牲的实验动物。

上一次在 v 站发的贴子在这里 https://v2ex.com/t/1203644

大部分用户给的评价还是比较正面的,同样的倍率我们的确实更耐用一些

一个月运行下来,可用率在 99%左右(包括前几天 openai 自己崩了导致的差不多半小时的不可用)

GPT-5.3-Codex 和 GPT-5.4 的典型 codex 使用大概是 8.5 元/亿 Token ,但 GPT-5.5 还得等用户们实际蹬起来看看效果,但应该会比 5.4 贵一些,后面会更新在这里

现已加入 GPT-5.5 到豪华早餐中,可以享用一下

gpt-image-2 也已加入

https://65535.space/

状态监控: https://status.65535.space/


正确打开方式

充值 1 元-3 元试用,查看实际消耗是否符合预期,然后充值 10 元看几天用完

按需充值

不要一次性冲太多

建议保持 1-3 天用量余额

充值金额支持退款

5.5 价格预警

5.5 价格比 5.4 贵了大概 1.5x ,具体为输入 5$/M ,输出 30$/M ,缓存读取 0.5$/M

回帖福利

留下邮箱前缀名,赠送 2 元试用金

如果是今日之前注册的已在使用用户,赠送 5 元余额(要求截止发帖时余额>0)

大型语言模型可以写代码、起草合同、总结论文,但它有一个致命缺陷:撒谎的时候极其自信。

这就是我们所说的幻觉,它是一个跨层级的问题:推理参数、系统架构、生成策略、生成后验证、模型训练、持续评估,每一层都有份,所以不能把它当成单点问题来处理。

这篇文章会逐层拆开来讲,从最简单的运行时参数一直到生产级的验证管道。

幻觉防御架构

先看全局架构。每一层针对不同的失败模式,真正稳健的系统会把所有层一起部署。

第 1 层:推理时参数

这些是调用模型时在运行时设置的参数。它们是第一道防线,也是最容易被高估的一道。

Temperature

Temperature 控制 token 选择的随机度,取值越低模型越确定,越高则越有创造性——代价是更容易编造。

ValueBehavior

0.0

完全确定——每次都选概率最高的 token

0.1 – 0.3

接近确定——略有波动,仍然受约束

0.7 – 1.0

创造型——波动明显,容易虚构

> 1.0

混乱——不要用在事实性任务上

一个常见的误解:把 temperature 设成 0 并不能消除幻觉,只是让幻觉变成稳定复现的版本。temp=0 的模型如果错了,它会每次都以完全一致的方式错下去。确定性和正确性不是一回事。

Top-P(核采样)

Top-P 把候选 token 限定在累积概率质量达到阈值 P 的范围内。top_p = 0.1 意味着只有处于概率质量前 10% 的 token 才有机会被选中。

反幻觉场景下建议取 0.1 到 0.5。再与低 temperature 搭配使用——temp=0.1, top_p=0.1 ——就能得到相当保守的生成行为。

Top-K

Top-K 用的是硬截断:每一步只保留最可能的 K 个 token 作为候选。top_k=1 等价于贪婪解码(和 temp=0 表现一致)。事实性问答场景里,top_k=5 配低 temperature 通常足够稳定。

频率惩罚和存在惩罚(Frequency / Presence Penalties)

这两个参数微妙但不能忽视:

注意:过高的 presence penalty 反而会增加幻觉——它在逼着模型引入新的、可能是凭空编造的概念。用的时候要克制。

Max Tokens

这是被低估得最厉害的一个参数。幻觉在长输出中出现的比例远高于短输出,原因是模型会逐渐偏离起初的事实依据。根据任务合理限定输出预算——事实检索类任务给 256 到 512 tokens 就足够了——留给模型游离开来的空间就小得多。

参数速查表

下面是两类最常见任务配置的对照:

事实性任务在每个维度上都要求收紧约束,创造性任务则反过来全部放开。两者混用——比如拿创造性参数去做财务数据抽取——基本等同于主动邀请幻觉。

第 2 层:架构策略

推理参数属于缓解手段不是解决方案。它们降低的是输出分布上的噪声,却不触及根本——模型仍然是在从参数化记忆里生成,而不是从已验证的事实里生成。

真正的修复必须在架构层面做。

检索增强生成(RAG)

把 LLM 绑定到事实信息上,RAG 是迄今最具杀伤力的一种技术。思路很直白:不让模型去训练数据里回忆事实,而是从经过验证的知识库中检索相关事实,再直接注入到 prompt 里。

管道看起来简单,魔鬼藏在调参里。每个组件都有直接影响幻觉率的参数:

Chain-of-Thought 与自一致性

CoT prompting 强制模型把推理过程外化出来。模型不能直接跳到答案,而必须一步一步推出来。

这个方法之所以奏效是因为推理一旦外化,错误就变得可见;自一致性投票里,相互矛盾的推理链会彼此抵消。实验数据显示,开启自一致性能把幻觉率降低 10% 到 40%。

受约束解码与结构化输出

这类技术从另一个维度切入:把模型关进一个预定义语法里,它根本吐不出 schema 之外的内容。

Outlines、LMQL、Guidance 这类库把语法级约束直接作用到 token 采样环节。模型从字面上就无法生成允许模式之外的 token,生产系统几乎总需要输出遵守特定结构。

置信度校准与不确定性量化

产生幻觉的 LLM 有一个特别危险的属性:它呈现捏造信息时的自信程度,和呈现事实时完全一样。校准训练针对的就是这一点。

程序化地拿到置信度,靠的是 logprobs:

由此可以搭出一个天然的分级漏斗:高置信度响应走自动通道,置信度不足的被标记并转交人工审核。在金融服务这种高风险领域,这个漏斗不可省略。

第 3 层:生成后验证

架构再好,也总会有幻觉漏过去。生成后验证层的任务,就是把前面几层没拦住的抓回来。

检测器会串行跑四项独立检查:

  1. 事实一致性检查——用一个 NLI(Natural Language Inference)模型判断生成答案是否能被源文档蕴含(entailed)。答案里有源文件支撑不了的说法,这一步就挂。
  2. 引用验证——如果响应里带了引用,这一步会核对被引用的文档里是否真的包含所声称的信息。捏造引用是幻觉里最常见、也最丢脸的一类。
  3. 实体验证——抽出响应中的命名实体(人名、机构、日期、财务数字),在知识库里做交叉比对。编造出来的实体会直接触发失败。
  4. Self-RAG 或 critic model——再发起一次 LLM 调用,用一个聚焦的 prompt 去评估响应:"给定上述上下文,这条响应事实上是否准确?" 这一步相当于系统内部的同行评审。

四项全部通过的响应才返回给用户。任何一项不通过的,要么以更严格的上下文约束重试,要么升级给人工审核员。

第 4 层:微调与训练端的杠杆

面对领域特有的幻觉——模型在某个专业领域根本缺乏知识——光靠推理端的调节已经不够,必须在训练层面干预。

对企业应用最具价值的一条路,是把领域微调和校准训练结合起来。一个既在专有语料上训练过、又被训练成敢于承认不确定性的模型,从根本上比一个靠花哨 prompt 拼凑的通用模型更值得信赖。

第 5 层:评估与测量

度量不到的问题无法修复。先定义指标,再做好仪表化,长期跟踪趋势。

这些指标不是评估一次就能放下的东西,需要在生产环境里作为自动化评估管道的一部分持续运行。随着数据分布漂移、prompt 迭代、模型升级,幻觉率会一直在变。缺了持续监控,上个季度还安全的系统,这个季度就可能在大规模编造。

整合:生产落地手册

把上面几层装配成一个生产就绪的反幻觉栈,大致步骤如下:

  1. 设定保守的推理参数:temp=0.1、top_p=0.2、top_k=5、收紧 max_tokens。这是噪声底线。
  2. 部署带 reranker 的 RAG:从已验证知识库中检索,接上 cross-encoder 重排,配好相似度阈值过滤掉不相关的片段。模型只在已经落地的上下文上作答。
  3. 强制结构化输出:用受约束解码(JSON Schema、Outlines 或 Guidance)挡掉结构性幻觉。每个响应都要求带 confidence 字段和 citations 数组。
  4. 接入生成后验证器:NLI 事实一致性检查、引用验证、实体交叉比对一起上。失败的响应要么重试,要么升级。
  5. 在领域数据上做微调:用专有语料训出真正懂业务的模型,训练样本里要包含"答案应当是我不知道"的校准案例。
  6. 持续测量:在生产中跑 RAGAS 忠实度评分和幻觉率跟踪,配置回归告警,定期复盘被标记的响应。
  7. 铺一条人在回路的升级通道:验证器置信度跌破阈值时,直接转人工。在一条被编造出来的数字可能造成真金白银损失的场景里,这一步不能省。

总结

真正该问的问题从来不是"怎么让我的 LLM 不再产生幻觉"。这个问法本身就错了。LLM 是概率化的文本生成器,幻觉不是 bug而是这门技术的固有属性。

正确的问法是:怎么围绕 LLM 建一套系统,能在幻觉触达用户之前把它检测出来、阻断掉、并恢复过来。

https://avoid.overfit.cn/post/3f6c4bd9219544f5968265181f47c8ed

Dr. Murali Nandigama

本文将从Promise核心知识入手,循序渐进讲解Promise的实现逻辑,包含完整可运行的手写代码,重点解析异步调用、链式调用的核心原理,同时纠正学习过程中容易出现的认知误区(结合自身学习疑惑),帮助彻底吃透Promise底层。

一、Promise核心前置知识(必懂)

1.1 Promise的核心作用

Promise 是JavaScript中用于处理异步操作的对象,核心解决「回调地狱」问题,将异步操作的「成功/失败」结果以统一的方式管理,支持链式调用,让异步代码更简洁、可维护。

1.2 Promise的三大核心状态(不可逆)

Promise有且只有三种状态,状态一旦变更,永久不可修改,这是Promise的核心特性之一:

  • pending(等待态):初始状态,异步操作未完成(如定时器未执行、接口未返回)。
  • fulfilled(成功态):异步操作成功完成,状态从pending → fulfilled,会触发then的成功回调。
  • rejected(失败态):异步操作失败,状态从pending → rejected,会触发then的失败回调或catch回调。

⚠️ 关键:状态只能从「pending」转向「fulfilled」或「rejected」,不能反向,也不能从fulfilled/rejected转向其他状态。

1.3 事件循环与微任务(Promise异步核心)

Promise的then、catch、finally回调均为「微任务」,优先级高于setTimeout等「宏任务」,执行顺序遵循:

同步代码 → 所有微任务 → 一个宏任务 → 所有微任务 → 一个宏任务...(循环)

这也是为什么原生Promise的then回调永远是异步执行,即便同步resolve,也不会立刻执行then回调。

1.4 Promise的核心逻辑梳理

Promise的本质是「状态管理+回调缓存+异步触发」,核心逻辑可总结为3点:

  1. 初始化时,状态为pending,缓存成功/失败回调队列。
  2. 异步操作完成后,调用resolve/reject,变更状态,并触发对应回调队列。
  3. then方法返回新的Promise,实现链式调用,通过手动触发下一个Promise的resolve/reject,传递结果。

二、手写Promise完整版代码(全量可运行)

以下代码包含Promise所有核心功能:状态管理、异步支持、链式调用、微任务、catch/finally、static方法(resolve/reject/all/race),结构严格按照要求组织:

class MyPromise {
  // 三大核心状态(静态常量,所有实例共享)
  static PENDING = 'pending'
  static FULFILLED = 'fulfilled'
  static REJECTED = 'rejected'

  // 构造函数:接收执行器(executor),立即执行
  constructor(executor) {
    // 实例状态、成功结果、失败原因
    this.status = MyPromise.PENDING
    this.value = undefined
    this.reason = undefined

    // 回调队列:缓存pending状态时的then回调(成功/失败)
    this.onFulfilledCallbacks = []
    this.onRejectedCallbacks = []

    // 成功回调:变更状态,触发成功队列
    const resolve = (value) => {
      // 状态不可逆:只有pending才能变更为fulfilled
      if (this.status !== MyPromise.PENDING) return
      this.status = MyPromise.FULFILLED
      this.value = value

      // 微任务:批量执行成功回调队列(对齐原生异步行为)
      queueMicrotask(() => {
        this.onFulfilledCallbacks.forEach(fn => fn())
        this.onFulfilledCallbacks = [] // 执行后清空队列,避免重复执行
      })
    }

    // 失败回调:变更状态,触发失败队列
    const reject = (reason) => {
      // 状态不可逆:只有pending才能变更为rejected
      if (this.status !== MyPromise.PENDING) return
      this.status = MyPromise.REJECTED
      this.reason = reason

      // 微任务:批量执行失败回调队列
      queueMicrotask(() => {
        this.onRejectedCallbacks.forEach(fn => fn())
        this.onRejectedCallbacks = []
      })
    }

    // 执行器异常处理:执行器抛出错误,直接触发reject
    try {
      executor(resolve, reject)
    } catch (err) {
      reject(err)
    }
  }

  // then方法:核心链式调用方法,返回新Promise
  then(onFulfilled, onRejected) {
    // 缺省兜底:实现值穿透、错误穿透(不传回调时,默认传递结果/错误)
    onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : val => val
    onRejected = typeof onRejected === 'function' ? onRejected : err => { throw err }

    // 链式核心:每一个then都返回新的Promise,确保可以连续调用
    return new MyPromise((nextResolve, nextReject) => {
      // 封装成功回调处理逻辑(复用代码)
      const handleFulfilled = () => {
        try {
          // 执行当前then的成功回调,获取返回值
          const res = onFulfilled(this.value)
          // 如果返回值是Promise,等待其完成后,再触发下一个Promise
          if (res instanceof MyPromise) {
            res.then(nextResolve, nextReject)
          } else {
            // 普通值,直接触发下一个Promise的成功
            nextResolve(res)
          }
        } catch (err) {
          // 回调执行出错,触发下一个Promise的失败
          nextReject(err)
        }
      }

      // 封装失败回调处理逻辑(复用代码)
      const handleRejected = () => {
        try {
          // 执行当前then的失败回调,获取返回值
          const res = onRejected(this.reason)
          // 如果返回值是Promise,等待其完成后,再触发下一个Promise
          if (res instanceof MyPromise) {
            res.then(nextResolve, nextReject)
          } else {
            // 普通值,直接触发下一个Promise的成功(错误穿透后,后续then可正常接收)
            nextResolve(res)
          }
        } catch (err) {
          nextReject(err)
        }
      }

      // 根据当前Promise的状态,执行对应逻辑
      if (this.status === MyPromise.FULFILLED) {
        // 已成功:微任务执行成功回调(对齐原生异步)
        queueMicrotask(handleFulfilled)
      } else if (this.status === MyPromise.REJECTED) {
        // 已失败:微任务执行失败回调
        queueMicrotask(handleRejected)
      } else {
        // pending状态:将回调存入队列,等待resolve/reject触发
        this.onFulfilledCallbacks.push(handleFulfilled)
        this.onRejectedCallbacks.push(handleRejected)
      }
    })
  }

  // catch方法:错误捕获,本质是then的语法糖(不传成功回调,只传失败回调)
  catch(onRejected) {
    return this.then(null, onRejected)
  }

  // finally方法:无论成功/失败,都会执行,不改变链式传递的值
  finally(cb) {
    return this.then(
      val => MyPromise.resolve(cb()).then(() => val), // 成功时,执行cb后传递原值
      err => MyPromise.resolve(cb()).then(() => { throw err }) // 失败时,执行cb后抛出原错误
    )
  }

  // 静态resolve方法:快速创建一个已成功的Promise
  static resolve(value) {
    return new MyPromise(resolve => resolve(value))
  }

  // 静态reject方法:快速创建一个已失败的Promise
  static reject(reason) {
    return new MyPromise((_, reject) => reject(reason))
  }

  // 静态all方法:接收数组,所有Promise成功才返回,一个失败则整体失败
  static all(promises) {
    return new MyPromise((resolve, reject) => {
      // 校验参数:必须是数组
      if (!Array.isArray(promises)) {
        return reject(new TypeError('Promise.all() 接收的参数必须是数组'))
      }

      const result = [] // 存储所有成功结果(顺序与传入一致)
      let resolvedCount = 0 // 计数:已成功的Promise数量

      // 空数组直接resolve(原生行为)
      if (promises.length === 0) {
        return resolve(result)
      }

      // 遍历所有Promise,统一处理(普通值会被MyPromise.resolve包装)
      promises.forEach((promise, index) => {
        MyPromise.resolve(promise).then(res => {
          result[index] = res // 按传入顺序存储结果
          resolvedCount++ // 成功计数+1

          // 所有Promise都成功,才resolve结果数组
          if (resolvedCount === promises.length) {
            resolve(result)
          }
        }).catch(err => {
          // 只要有一个失败,立即reject(整体失败)
          reject(err)
        })
      })
    })
  }

  // 静态race方法:接收数组,谁先完成(成功/失败),就返回谁的结果
  static race(promises) {
    return new MyPromise((resolve, reject) => {
      // 校验参数:必须是数组
      if (!Array.isArray(promises)) {
        return reject(new TypeError('Promise.race() 接收的参数必须是数组'))
      }

      // 空数组:永远pending(原生行为)
      if (promises.length === 0) {
        return
      }

      // 遍历所有Promise,谁先完成,就触发对应的resolve/reject
      promises.forEach(promise => {
        MyPromise.resolve(promise).then(resolve).catch(reject)
      })
    })
  }
}

三、循序渐进实现Promise(从基础到完整)

3.1 第一步:实现基础状态管理(同步场景)

最基础的Promise,只实现状态管理和同步resolve/reject,不支持异步和链式调用:

class MyPromise {
  static PENDING = 'pending'
  static FULFILLED = 'fulfilled'
  static REJECTED = 'rejected'

  constructor(executor) {
    this.status = MyPromise.PENDING
    this.value = undefined
    this.reason = undefined

    const resolve = (value) => {
      if (this.status !== MyPromise.PENDING) return
      this.status = MyPromise.FULFILLED
      this.value = value
    }

    const reject = (reason) => {
      if (this.status !== MyPromise.PENDING) return
      this.status = MyPromise.REJECTED
      this.reason = reason
    }

    try {
      executor(resolve, reject)
    } catch (err) {
      reject(err)
    }
  }

  // 基础then方法:只处理同步状态
  then(onFulfilled, onRejected) {
    if (this.status === MyPromise.FULFILLED) {
      onFulfilled(this.value)
    }
    if (this.status === MyPromise.REJECTED) {
      onRejected(this.reason)
    }
    // 此时未处理pending状态(异步场景会失效)
  }
}

⚠️ 问题:异步场景(如setTimeout内resolve)会失效,因为then执行时,状态还是pending,没有缓存回调,回调会丢失。

3.2 第二步:加入回调队列(支持异步场景)

核心解决「异步场景回调丢失」问题:pending状态时,将then回调存入队列,等resolve/reject触发后,批量执行队列:

class MyPromise {
  static PENDING = 'pending'
  static FULFILLED = 'fulfilled'
  static REJECTED = 'rejected'

  constructor(executor) {
    this.status = MyPromise.PENDING
    this.value = undefined
    this.reason = undefined

    // 新增:回调队列,缓存pending状态的then回调
    this.onFulfilledCallbacks = []
    this.onRejectedCallbacks = []

    const resolve = (value) => {
      if (this.status !== MyPromise.PENDING) return
      this.status = MyPromise.FULFILLED
      this.value = value
      // 新增:状态变更后,批量执行成功回调队列
      this.onFulfilledCallbacks.forEach(fn => fn())
    }

    const reject = (reason) => {
      if (this.status !== MyPromise.PENDING) return
      this.status = MyPromise.REJECTED
      this.reason = reason
      // 新增:批量执行失败回调队列
      this.onRejectedCallbacks.forEach(fn => fn())
    }

    try {
      executor(resolve, reject)
    } catch (err) {
      reject(err)
    }
  }

  then(onFulfilled, onRejected) {
    if (this.status === MyPromise.FULFILLED) {
      onFulfilled(this.value)
    }
    if (this.status === MyPromise.REJECTED) {
      onRejected(this.reason)
    }
    // 新增:pending状态,将回调存入队列(关键!)
    if (this.status === MyPromise.PENDING) {
      this.onFulfilledCallbacks.push(() => {
        onFulfilled(this.value)
      })
      this.onRejectedCallbacks.push(() => {
        onRejected(this.reason)
      })
    }
  }
}

✅ 关键理解:此时存入队列的是「匿名函数」,只是「保存函数」,不执行;只有当resolve/reject触发,才会遍历队列执行函数(异步场景生效)。

比如:setTimeout内resolve,then执行时状态是pending,回调被存入队列,1秒后resolve触发,才执行队列中的回调。

3.3 第三步:实现链式调用(核心难点)

链式调用的核心的是「then返回新的Promise」+「手动触发下一个Promise的resolve/reject」,这也是我之前容易误解的点,重点解析:

3.3.1 核心误区纠正(我之前的错误认知)

❌ 错误认知:所有then的this.status都是第一个Promise的状态,链式调用靠第一个Promise的状态驱动。

❌ 错误认知:回调队列是链式调用的核心,没有队列就不能链式。

✅ 正确认知:

  1. 每一个then都返回「全新的Promise实例」,新实例的初始状态都是pending(和第一个Promise无关)。
  2. 链式调用的核心不是队列,而是「nextResolve/resnextReject」(then内部新Promise的resolve/reject)。
  3. 队列的作用是「缓存异步回调」,和链式能不能通无关;链式能通的唯一原因是「上一个then手动触发下一个Promise的resolve/reject」。

3.3.2 链式调用核心代码实现

then(onFulfilled, onRejected) {
  // 缺省兜底(可选,优化体验)
  onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : val => val
  onRejected = typeof onRejected === 'function' ? onRejected : err => { throw err }

  // 链式核心1:返回新的Promise
  return new MyPromise((nextResolve, nextReject) => {
    const handleFulfilled = () => {
      try {
        const res = onFulfilled(this.value)
        // 链式核心2:手动触发下一个Promise的resolve(传递结果)
        nextResolve(res)
      } catch (err) {
        nextReject(err)
      }
    }

    const handleRejected = () => {
      try {
        const res = onRejected(this.reason)
        nextResolve(res)
      } catch (err) {
        nextReject(err)
      }
    }

    if (this.status === MyPromise.FULFILLED) {
      handleFulfilled()
    } else if (this.status === MyPromise.REJECTED) {
      handleRejected()
    } else {
      // pending状态:缓存的是封装后的handleFulfilled/handleRejected
      this.onFulfilledCallbacks.push(handleFulfilled)
      this.onRejectedCallbacks.push(handleRejected)
    }
  })
}

3.3.3 链式调用执行流程(彻底看懂)

以异步场景为例,拆解链式调用的完整流程:

// 1. 创建第一个Promise(p1),异步resolve
const p1 = new MyPromise((resolve) => {
  setTimeout(() => resolve(100), 1000)
})

// 2. p1.then() → 返回新Promise(p2)
const p2 = p1.then(res => {
  console.log('第一层then:', res) // 100
  return res + 10 // 返回普通值,传递给p2
})

// 3. p2.then() → 返回新Promise(p3)
p2.then(res => {
  console.log('第二层then:', res) // 110
})
  1. p1初始化:状态pending,executor中setTimeout异步挂起,then执行时状态pending,将handleFulfilled存入p1的队列。
  2. p2初始化:状态pending(新实例,和p1无关),等待被触发。
  3. 1秒后,p1.resolve(100):状态变为fulfilled,遍历队列执行handleFulfilled。
  4. 执行p1.then的回调,拿到返回值110,手动调用nextResolve(110) → p2的状态变为fulfilled。
  5. p2.then执行:检测到p2已fulfilled,执行回调,打印110,完成链式传递。

✅ 关键:p2的状态不是天生fulfilled,是p1的then回调中,通过nextResolve手动触发的;没有nextResolve,链式会彻底断掉(这是我之前debug发现的核心真相)。

3.4 第四步:加入微任务(对齐原生异步行为)

原生Promise的then回调永远是微任务,即便同步resolve,也不会立刻执行,而是等同步代码执行完再执行。我们通过queueMicrotask实现这一特性:

// resolve中加入微任务
const resolve = (value) => {
  if (this.status !== MyPromise.PENDING) return
  this.status = MyPromise.FULFILLED
  this.value = value
  // 新增:微任务执行回调队列
  queueMicrotask(() => {
    this.onFulfilledCallbacks.forEach(fn => fn())
    this.onFulfilledCallbacks = []
  })
}

// then中,已fulfilled/rejected状态也加入微任务
if (this.status === MyPromise.FULFILLED) {
  queueMicrotask(handleFulfilled)
} else if (this.status === MyPromise.REJECTED) {
  queueMicrotask(handleRejected)
}

测试微任务优先级:

console.log('同步开始')
MyPromise.resolve().then(() => console.log('Promise微任务'))
setTimeout(() => console.log('setTimeout宏任务'), 0)
console.log('同步结束')
// 输出顺序:同步开始 → 同步结束 → Promise微任务 → setTimeout宏任务(和原生一致)

3.5 第五步:补充catch/finally和静态方法

这部分都是基于then的语法糖,难度不大,核心逻辑:

  • catch:本质是then(null, onRejected),专门捕获失败回调。
  • finally:无论成功/失败都执行,不改变链式传递的值,通过MyPromise.resolve(cb())确保cb异步执行。
  • static resolve/reject:快速创建已成功/失败的Promise,简化代码。
  • static all/race:处理多个Promise的批量操作(all等待全部成功,race取最快结果)。

四、核心总结(重中之重)

4.1 Promise核心逻辑

  1. 状态不可逆:pending → fulfilled/rejected,一旦变更,永久不变。
  2. 回调缓存:pending状态时,then回调存入队列,等待resolve/reject触发。
  3. 链式调用:then返回新Promise,通过nextResolve/nextReject传递结果(核心中的核心)。
  4. 异步特性:所有回调均为微任务,优先级高于宏任务。

4.2 最容易踩的误区(我亲身经历)

  1. 误区1:then的this指向第一个Promise → 纠正:谁调用then,this就指向谁(p1.then的this是p1,p2.then的this是p2)。
  2. 误区2:链式调用靠队列 → 纠正:队列只负责缓存异步回调,链式能通的核心是nextResolve/nextReject。
  3. 误区3:新Promise实例初始状态是fulfilled → 纠正:所有new MyPromise的实例,初始状态都是pending,需手动触发resolve/reject。
  4. 误区4:队列中的函数会立即执行 → 纠正:队列中存的是函数引用,只有resolve/reject触发,才会遍历执行。

4.3 最终结论

手写Promise的核心,不在于代码有多复杂,而在于理解「状态管理」「回调缓存」「链式接力」「微任务异步」这四个关键点。其中,链式调用的灵魂是「nextResolve/nextReject」,队列是异步场景的补充,二者结合,才能实现和原生一致的Promise功能。

五、测试用例(验证代码可用性)

// 1. 异步链式 + 错误穿透 + finally
new MyPromise((resolve) => {
  setTimeout(() => resolve(100), 1000)
})
.then(res => {
  console.log('第一层:', res) // 100
  return res + 200
})
.then(res => {
  console.log('第二层:', res) // 300
  throw new Error('手动报错')
})
.catch(err => {
  console.log('捕获错误:', err.message) // 手动报错
})
.finally(() => {
  console.log('finally必定执行')
})

// 2. Promise.all测试(全部成功)
const p1 = MyPromise.resolve(1)
const p2 = new MyPromise(resolve => setTimeout(() => resolve(2), 500))
const p3 = 3 // 普通值会被包装
MyPromise.all([p1, p2, p3]).then(res => {
  console.log('all成功:', res) // [1, 2, 3]
})

// 3. Promise.race测试(取最快结果)
const race1 = new MyPromise(resolve => setTimeout(() => resolve('慢'), 1000))
const race2 = new MyPromise(resolve => setTimeout(() => resolve('快'), 100))
MyPromise.race([race1, race2]).then(res => {
  console.log('race胜利:', res) // 快
})

// 4. 微任务优先级测试
console.log('同步开始')
MyPromise.resolve().then(() => console.log('Promise微任务'))
setTimeout(() => console.log('setTimeout宏任务'), 0)
console.log('同步结束')
(注:文档部分内容可能由 AI 生成)

数据本身并不能产生洞察

在过去几十年里,工业实时数据库在工业系统中扮演了至关重要的角色,它们负责采集并存储时序数据。像 PI System 这样的系统,在从现场设备采集信号,并将其用于可视化和基础分析方面,做得非常出色。

近年来,“工业互联网平台”流行起来,而且数据的可视化相当炫酷。但从本质上看,无论是工业实时数据库,还是工业互联网平台,它们所解决的问题仍然是相同的:数据采集、存储、可视化以及基础分析。名称在变化,但系统的核心能力与边界并没有发生根本性的改变。

这些能力非常重要,但已经不再足够。在今天的工业环境中,用户的期望已经发生了变化,仅仅能够存储和展示数据已经无法满足需求,企业越来越希望系统能够直接生成洞察——检测异常、预测未来趋势、识别模式、解释偏差,甚至完成根因分析。换句话说,目标已经不再只是“看到数据”,而是“理解数据”。

以工业实时数据库为核心的分析能力的局限,为什么分析逐渐外移

无论是传统的工业实时数据库,还是近年来兴起的工业互联网平台,它们在分析能力上的局限,本质上是相同的。这类系统大多围绕数据采集与展示设计,虽然在架构上有所演进,但在分析能力上仍然以规则计算和简单处理为主,并没有真正内生高级分析能力。

虽然很多系统内置了计算引擎和基于规则的处理能力,但这些能力通常范围有限,更适合处理预定义逻辑,而不适合探索式分析、模型驱动分析或 AI 驱动分析。随着工业系统变得越来越复杂,工程师需要的不再只是简单计算,而是能够检测细微异常、预测系统行为、补全缺失数据、分析变量之间的相关性,并构建回归模型或聚类模型。这类分析需要更高的灵活性、持续迭代能力,以及更丰富的算法生态支持。

正是在这样的背景下,以工业实时数据库为核心的分析能力的局限逐渐显现,高级分析也因此开始向系统之外迁移。越来越多的企业开始依赖像 Seeq、TrendMiner 这样的专业工具,来进行基于事件的分析、批次对比、黄金批次分析以及模型驱动的探索型分析。这些工具通过连接器或查询访问数据,而不是复制数据,从而可以复用已有的数据基础设施。

但即使没有数据复制,分离依然存在。分析不再属于核心数据系统的一部分,而是存在于另一个独立的层中,拥有自己的执行环境、逻辑体系和工作流程。工程师在一个系统中定义事件,在另一个系统中分析数据,在第三个系统中管理模型,这种分散带来了明显的系统碎片化问题。逻辑分布在不同系统中,流程难以统一和标准化,而构建在数据之上的“智能”也因此难以复用和规模化。

问题的关键,并不在于数据在哪里,而在于“智能”在哪里。

TDengine 仅需要点击一按钮,就可做批次分析、值搜索、预测、异常检测、缺失数据补齐、相关性、关联、回归、聚类等很多高级分析

从 Python 的灵活性到 SQL 的简洁性

在整个数据与 AI 生态中,Python 已经成为分析与建模的主流语言。它提供了丰富的统计分析、机器学习以及时序分析库,因此像 Seeq 和 TrendMiner 这样的工具也开始支持 Python,使用户能够引入自己的算法,从而突破系统内置能力的限制。

这是一个重要的进步,更重要的是,支持 Python 已经成为一种必然选择。AI 正在以极快的速度发展,每个月都有新的模型和算法出现,没有任何一个厂商可以独立跟上这个节奏。通过支持 Python,系统能够保持开放性,使企业可以持续引入最新技术,而不会被锁定在一套固定能力之中。

但仅有灵活性还不够。当分析通过 Python 脚本实现时,它往往仍然游离在系统之外。脚本需要编写、部署、管理,并嵌入到业务流程中,这使得分析能力虽然强大,但并不“顺手”。它主要服务于少数高级用户,而大多数工程师仍然依赖系统内置功能。

这就形成了能力与可用性之间的鸿沟。要弥合这一鸿沟,分析必须同时具备灵活性与简洁性。

一种有效的方法,是将分析能力以 SQL 函数的形式对外提供。在这种模式下,异常检测、预测、数据补全等高级分析能力可以直接在查询中调用,工程师无需管理脚本或构建复杂流程,而是像访问数据一样使用分析能力。

在系统内部,依然可以使用 Python、机器学习模型或其他先进算法。例如,在 AI 原生的工业数据管理平台TDengine IDMP 中,,可以通过 TDgpt 调度不同类型的模型,包括统计方法、LLM 以及时间序列基础模型,并通过简单的 SQL 接口对外提供结果。这种方式从根本上改变了分析的使用方式,使高级分析真正从“少数人可用”走向“人人可用”。

Python 提供了跟上 AI 发展的开放性,而 SQL 提供了面向规模化使用的简洁性,只有两者结合,高级分析才能真正落地。

TDengine 将复杂的异常检测算法转化为任何人、任何系统都能用的 SQL 函数 anomaly\_detection

从原生分析能力到 AI 原生工业数据底座

要真正释放工业数据的价值,分析能力必须成为数据底座的一部分。这意味着,分析不应该运行在系统之外,而应该与数据的存储、查询和使用过程深度融合,系统本身就应该成为分析发生的地方,而不是将数据导出到外部工具中处理。

现代工业数据平台正在朝这个方向演进。例如,像 TDengine 这样的系统,基于时序数据库 TDengine TSDB 和 AI 原生的工业数据管理平台 TDengine IDMP,将实时流处理、事件生成以及分析能力直接集成到核心系统中,使数据在写入的同时就可以被处理、分析和增强,从而实现真正的实时分析和过程分析,而无需依赖外部数据管道。

与此同时,分析也不再局限于预定义规则。借助内置的 AI 能力以及具备上下文的数据模型,系统可以基于流式数据自动检测异常、生成洞察并触发事件。这种能力不再依赖人工配置规则,而是能够随着数据持续运行并不断产生价值。

这代表了一种根本性的转变。分析不再是一个独立的层,而是成为数据底座的一部分。当分析成为原生能力时,它可以在实时数据、历史数据、事件流程以及资产模型之间一致地应用,洞察不再需要人工请求,而是可以在系统运行过程中持续产生。

这正是 AI 原生工业数据底座的核心特征:不是在系统之上叠加 AI,而是在底座中内生智能。

结语

工业系统已经从“采集数据”发展到“分析数据”,但在很多环境中,无论是工业实时数据库,还是工业互联网平台,分析仍然被当作系统之外的能力。要迈向未来,分析必须成为数据底座的原生能力,它不应该是附加功能,也不应该是独立工具,而必须成为系统的核心能力之一。

与此同时,原生分析能力并不意味着系统是封闭的。现代工业数据底座必须保持开放,能够与外部工具、自定义模型以及不断演进的新技术进行集成,从而在保证灵活性的同时,实现真正的可用性。

开放性保证系统持续演进,原生能力保证系统真正可用。只有在这两者之间取得平衡,工业数据系统才能在 AI 时代真正释放其价值。

很少有人真正谈论的成本问题

在评估工业数据系统时,很多企业首先关注的是软件本身的价格。

这看起来是合理的。无论是工业实时数据库的授权费用,还是平台订阅费用,甚至云资源成本,似乎都构成了系统的主要支出。但事实上,这些只是整体成本中的一小部分。

一个工业数据系统真正的成本,并不在于你“买它花了多少钱”。 而在于你后续为了运行它、集成它、维护它以及真正从中获得价值所付出的持续成本。这,才是总拥有成本(Total Cost of Ownership, TCO)。

传统工业实时数据库:远比想象中昂贵

传统的工业实时数据库(Data Historian)常常被认为是成熟、稳定且“成本可控”的系统,但其真实成本结构要复杂得多。

首先,软件本身只是成本的一部分。这类系统通常运行在 Windows Server 之上,并依赖 SQL Server 等商业数据库,这些都会带来额外的授权费用和基础设施成本。

其次,工业实时数据库本身并不擅长高级分析或现代可视化。企业往往需要额外采购分析工具或接入第三方软件来完成数据分析、报表和可视化工作,甚至还购买Excel插件。

由于这些系统本身并不开放,集成第三方工具往往需要大量定制开发和长期维护。每一次集成,都会带来新的复杂度和成本。

随着时间推移,一个最初看似简单的“数据采集系统”,逐渐演变成一个由多个系统拼接而成的复杂体系,而每一个部分都在不断增加总体成本。

工业互联网平台:更开放,但也更复杂

现代工业互联网平台试图解决传统系统的这些问题。它们通常运行在 Linux 上,采用开源技术栈,并提供更好的开放能力。在理论上,这可以降低基础设施成本,并提升系统灵活性。

但与此同时,它们也引入了另一种成本。这些平台通常架构复杂,包含分布式系统、多种组件、数据管道以及各种集成层,需要精心设计和持续运维。

开放性带来了灵活性,但也将系统搭建和维护的责任转移给了用户。企业需要自己去拼装、配置并管理整个系统。

结果是:基础设施成本可能下降了,但复杂度带来的成本却显著上升。

最大的成本:人

无论是传统工业实时数据库,还是现代工业互联网平台,有一个成本始终存在,而且往往被严重低估。那就是:

这些系统需要高技能人员来设计、运维和使用,包括数据分析师、数据工程师以及具备行业经验的工艺工程师。

要从数据中提取真正有价值的洞察,这些人员不仅需要理解数据,还需要理解设备、工艺以及业务逻辑。他们需要构建模型、定义规则、配置分析流程,并不断优化系统。

这不是一次性的投入,而是一项持续性的成本。对于大多数中小企业来说,这是最大的门槛。即使拥有数据,也缺乏足够的资源将其转化为洞察。

而在大型企业中,这同样会形成瓶颈。当业务决策者需要新的分析或报表时,往往需要依赖专业团队来实现,甚至需要厂商参与开发。这一过程往往周期较长,严重影响决策效率。

工业数据系统的隐形成本

复杂度本身就是成本

从更本质的角度来看,上述问题的根源是同一个:复杂度。

系统越复杂,就意味着更多的基础设施、更多的集成工作、更多的维护成本以及对更高技能人员的依赖。每增加一个组件,就增加一层依赖、一种潜在风险以及额外的运维负担。

在很多工业场景中,数据系统是逐步演进出来的。不同阶段引入不同系统,各自解决问题,但整体却变得越来越割裂、越来越难以维护。

这种成本,不仅仅是技术成本,更是组织成本。

一种新的模式:AI 原生工业数据管理平台 TDengine IDMP

AI 原生的工业数据管理平台 TDengine IDMP 的出现,提供了一种完全不同的思路。

它不再依赖复杂系统和专家团队来“提取价值”,而是将洞察能力直接内置在系统之中,使数据的价值可以被更容易地获取。

这类系统通过将数据接入、数据存储、数据建模、分析能力、可视化以及 AI 能力整合在统一平台中,显著降低系统复杂度。以 TDengine IDMP 为例,它在 TDengine TSDB 的时序数据底座之上整合这些能力,同时更重要的是,它降低了对高技能人员的依赖。

在像 TDengine IDMP 这样的系统中,用户可以通过自然语言获取分析结果,创建可视化面板或实时分析任务,系统还可以基于采集的数据自动生成洞察,自动进行异常检测,而无需人工定义复杂规则或编写分析逻辑。

这改变了人们使用数据的方式。工程师和业务人员可以直接获取洞察,而不再完全依赖专职的数据分析团队。

从“降低成本”到“提升能力”

这种变化不仅仅意味着成本降低,更意味着能力的提升。

当获取洞察的门槛被大幅降低之后,更多的人可以参与数据驱动的决策,组织可以更快地响应变化,发现问题并采取行动。对于中小企业来说,这意味着不再需要建立庞大的数据团队,也可以利用先进的分析能力。对于大型企业来说,这意味着减少内部瓶颈,加快决策速度,让数据真正服务于业务。

在这样的模式下,总拥有成本的下降,不仅来自系统本身的简化,更来自数据价值的提升。

结语

工业数据系统的成本,从来不只是软件价格。真正的成本,来自系统复杂度、集成难度以及对高技能人员的依赖。

无论是传统工业实时数据库,还是现代工业互联网平台,都在一定程度上解决了问题,但也引入了新的成本。

下一代工业数据系统,需要从根本上降低复杂度,并消除获取洞察的门槛。

只有这样,企业才能真正降低总拥有成本,并释放数据的全部价值。这也正是 AI 原生工业数据管理平台 TDengine IDMP 与时序数据库 TDengine TSDB 所代表的方向:以更低复杂度支撑更高价值的工业数据应用。

4 月 28 日,Physical AI 系列活动落地日本东京!

如果拥有哆啦 A 梦,它是解决麻烦的「工具」,还是提供情绪价值的「陪伴」?当 Physical AI 遇见东京,这个问题变得格外真实。

作为机器人与硬件流行的国家,日本是 AI 硬件从业者无法绕开的一站。当大模型与 Conversational AI 正重塑硬件设备的交互角色,日本市场究竟隐藏着哪些新机会?想在日本落地,又有哪些不可不知的避坑指南?

为此,RTE 开发者社区邀请了如 Rokid、Riselink 和 Agora 等前沿硬件初创和基础设施先锋,以及扎根日本本土的 AI 社区 TechTabi 的资深创业者齐聚一堂。

上午探讨下一代计算接口与日本初创生态,下午动手从 0 到 1 部署语音智能体。无论你是产品人、开发者、创业者还是硬件极客,这场动脑又动手的 Physical AI 活动绝对不容错过!

活动信息

地点: 东京都港区新桥(具体地址报名审核通过后通知)

日期: 2026 年 4 月 28 日(周二)

  • 上午场|Physical AI Meetup: AI Hardware, Tool or Companion?

    09:30\~ 12:00(东京时间 GMT+9)

  • 下午场|Physical AI Workshop Tokyo: From 5-Min Voice Agent Build to Hardware Deployment

    14:00\~ 16:30(东京时间 GMT+9)

💡 你可以只参加单场,也可全天参与——动手也动脑,快乐翻倍!

访问链接报名方式

报名通过后,小助手将通过微信/邮件联系你,并告知详细注意事项。

上午:

Physical AI Meetup: AI Hardware, Tool or Companion?

📅 活动详情

  • 时间: 4 月 28 日(周二),09:30 - 12:00(东京时间 GMT+9)
  • 地点: 东京都港区新桥

⏳ 日程安排

  • 09:30 - 10:00|签到 & 自由交流
  • 10:00 - 11:00|🎙 主题演讲:AI Hardware, Tool or Companion?

    • 赵维奇 Weiqi Zhao,Global Senior Director of Product, Engineering & Ecosystem, ROKID
    • Special Guest Speaker, Riselink
    • 陈晓晨 Donnie Chen,Agora Go-to-Market Japan
  • 11:00 - 11:30|🔄 圆桌讨论:Building Real-Time and Physical AI Startups in Japan: Opportunities and Challenges

    • 张乾泽 Qianze Zhang,Agora Agent Platform Lead
    • 白强 Qiang Bai,Co-Founder of KickGPT & AbleGPT, Founder of TechTabi
    • 赵维奇 Weiqi Zhao,Global Senior Director of Product, Engineering & Ecosystem, ROKID
    • Moderator: 杨慧 Cynthia Yang,Initiator, RTE Dev Community
  • 11:30 - 12:00|自由 Networking

👇访问链接报名(审核通过后,我们将通过短信告知详细地址与参会指引。)

https://luma.com/kq31a21p

注:上下午活动需分开报名

下午:

Physical AI Workshop Tokyo: From 5-Min Voice Agent Build to Hardware Deployment

东京站来了,我们把硬件工作坊升级了一下。

这一次,不再从 0 开始搭一整套系统——

你可以用 Agora Skills,在几分钟内组装一个 voice AI agent,并最终部署到真实硬件(Agora R1)上。

📅 活动详情

  • 时间: 4 月 28 日(周二),14:00 PM - 16:30 PM(东京时间 GMT+9)
  • 地点: 东京都港区新桥(具体地址报名审核通过后通知)
  • 人数:20~40 人

    👉 可以 单人成组 或 两人一组

    👉 每组配有一套 R1 硬件

🔍 活动亮点

🔹 用于快速构建智能体的 Agora Skills

https://github.com/AgoraIO/skills

跳过复杂的配置流程——使用模块化的技能,快速组装你的语音 AI 智能体

🔹 Agora R1 是一款集成对话引擎的轻量级 AI 硬件套件

  • 开箱即可操控语音交互
  • 支持 APP 配网连接智能体实现语音交互功能
  • 提供全面开发资料与二次开发支持

📌 在这里,你将亲手完成从硬件配置、编译、运行,到自定义语音 Agent 的完整动手链路。

🧠 你会得到什么

✔ 现场技术分享

✔ R1 设备实操上手

✔ 自定义语音 AI

✔ 团队合作与答疑支持

欢迎对智能硬件、语音交互、Agent 产品有兴趣的朋友报名。

活动流程

  • 13:30–14:00 签到 & 自行组队
  • 14:00-14:20 技术分享
  • 14:20–16:30 现场实操(提供详细流程文档和技术答疑)

📌 准备建议(强烈推荐)

为了让现场体验流畅,请提前准备:

  • 一台笔电
  • GitHub 账号(用于运行 Codespace / 示例仓库)
  • 终端工具与命令行基础(建议提前熟悉)

👇 访问链接报名 (审核通过后,我们将通过微信联系您告知地址与参会指引。)

https://luma.com/tjrotnri

注:上下午活动需分开报名


主办方:RTE Dev Community、Agora

社区伙伴: S 创、脑放电波、Bonjour!、Research AI+、小红书科技、WAIC UP!、启师傅客厅、分子分母、机智流、TechTabi、CreatorLabo、toaru!

阅读更多 Voice Agent 学习笔记:了解最懂 AI 语音的头脑都在思考什么

番茄叶片病害检测数据集分享(适用于YOLO系列深度学习分类检测任务)

源码下载

链接:https://pan.baidu.com/s/196FdQ7RhzgulM0j4-dW0ng?pwd=v59n

提取码:v59n 复制这段内容后打开百度网盘手机App,操作更方便哦

前言

在农业领域,植物病害检测是确保作物健康和提高农业生产效率的关键任务之一。番茄作为全球重要的蔬菜作物之一,其产量和品质直接影响着农民的经济收益和消费者的食品安全。然而,番茄在生长过程中容易受到各种病害的侵袭,这些病害不仅影响作物的生长发育,还可能导致产量的大幅下降,给农业生产带来巨大的经济损失。

随着全球气候变化的加剧,农业病害的发生变得越来越复杂和难以预测。传统的病害识别方法依赖于农业专家的经验和人工检查,但这一过程不仅耗时且容易出错。人工检查需要专业的农业知识,而且需要逐株检查,效率低下。同时,由于人的主观性和疲劳程度,检测结果往往存在较大的差异,难以保证检测的准确性和一致性。

随着计算机视觉技术的快速发展,基于深度学习的目标检测方法成为了病害识别的主流手段。通过采集番茄叶片图像,利用深度学习模型自动识别病害类型,可以大大提高检测效率和准确率,实现病害的早期发现和及时防治。这种智能化的病害检测方式不仅能够减少人工成本,还能够提高检测的准确性和可靠性,为农业生产提供有力的技术支持。

为了推动番茄病害检测技术的发展,我们构建了一个番茄叶片病害检测数据集,共包含10,853张已标注图像,专门用于番茄叶片病害识别的目标检测任务。该数据集涵盖了10种常见的番茄叶片病害类型,支持YOLO等先进的目标检测模型训练,旨在帮助研究人员和开发者提高农作物病害自动化检测的能力。

在这篇文章中,我们将从数据集概述、背景、详细信息、应用场景以及训练指南等多个角度进行全面解析,帮助研究者、开发者和农业专业人员快速理解并应用该数据集。

在这里插入图片描述

一、数据集概述

1. 数据集基本信息

本数据集为番茄叶片病害检测数据集,共包含10,853张高质量标注图像,专门用于番茄叶片病害识别的目标检测任务。数据集来源于真实的农业种植环境,涵盖了番茄植物的多个生长阶段及不同类型的病害。

数据集核心特性

  • 数据规模:10,853张高质量番茄叶片图像
  • 数据划分

    • 训练集(Train):7,842张(72%)
    • 验证集(Val):1,960张(18%)
    • 测试集(Test):1,051张(10%)
  • 目标类别:10类(涵盖病毒、细菌、真菌感染等多种病害类型)
  • 标注类型:目标检测(Bounding Box)
  • 标注格式:YOLO格式
  • 图像分辨率:调整为640×640(拉伸)
  • 适用模型:YOLO系列、Faster R-CNN、SSD等主流检测模型

2. 类别信息

类别ID类别名称英文名称描述
0番茄细菌性斑点病Tomato Bacterial Spot由细菌引起的叶片斑点病害
1番茄早疫病Tomato Early Blight由真菌引起的早期叶片病害
2番茄晚疫病Tomato Late Blight由真菌引起的晚期叶片病害
3番茄叶霉Tomato Leaf Mold由真菌引起的叶片霉变病害
4番茄叶斑病Tomato Leaf Spot由真菌引起的叶片斑点病害
5番茄红蜘蛛(二斑叶螨)Tomato Spider Mites由螨虫引起的叶片损害
6番茄目标点Tomato Target Spot由真菌引起的靶状斑点病害
7番茄黄化卷叶病毒Tomato Yellow Leaf Curl Virus由病毒引起的黄化卷叶病害
8番茄健康Tomato Healthy健康的番茄叶片
9番茄花叶病毒Tomato Mosaic Virus由病毒引起的花叶病害

二、背景与意义

1. 番茄在农业中的重要性

番茄是全球最重要的蔬菜作物之一,其种植面积广、产量高、营养价值丰富,深受消费者喜爱。番茄不仅富含维生素、矿物质和抗氧化物质,还具有多种保健功能,对人类健康具有重要意义。同时,番茄也是农民重要的经济作物,其产量和品质直接影响着农民的经济收益。

然而,番茄在生长过程中容易受到各种病害的侵袭,这些病害不仅影响作物的生长发育,还可能导致产量的大幅下降,给农业生产带来巨大的经济损失。据统计,每年因病害造成的番茄产量损失可达20%~30%,严重时甚至可能导致绝收。

2. 番茄病害的类型与危害

番茄病害主要分为以下几类:

  • 病毒病害:如番茄花叶病毒、番茄黄化卷叶病毒等,由病毒引起,传播速度快,危害严重
  • 细菌病害:如番茄细菌性斑点病,由细菌引起,容易在潮湿环境下发生
  • 真菌病害:如番茄早疫病、番茄晚疫病、番茄叶霉、番茄叶斑病、番茄目标点等,由真菌引起,是最常见的病害类型
  • 虫害:如番茄红蜘蛛(二斑叶螨),由螨虫引起,直接损害叶片

这些病害会导致叶片出现斑点、霉变、卷曲、黄化等症状,严重影响光合作用,导致产量下降、品质降低,甚至植株死亡。

3. 传统病害检测方法的局限

传统番茄病害检测主要依赖以下几种方法:

  • 人工检查:农业专家或农民逐株检查,识别病害
  • 实验室检测:采集样本,在实验室进行病原体检测
  • 经验判断:根据经验判断病害类型

这些方法存在以下局限:

  • 效率低下:人工检查需要大量时间和人力,难以大规模应用
  • 准确性不高:人的主观判断容易受到经验和疲劳的影响
  • 实时性差:无法实时监控病害情况,难以及时发现
  • 成本高昂:需要专业的农业知识和设备,成本较高
  • 覆盖范围有限:难以覆盖所有种植区域
  • 预防能力弱:往往在病害已经发生时才能发现,预防能力弱

4. AI技术在病害检测中的应用价值

人工智能技术,特别是深度学习和计算机视觉技术,为番茄病害检测提供了新的解决方案:

  • 高效检测:可以快速检测番茄叶片病害,提高检测效率
  • 高精度识别:能够精确识别各种病害类型,提高检测准确性
  • 实时监控:可以实时监控病害情况,及时发现病害
  • 自动化管理:实现病害检测的自动化,减少人工干预
  • 早期预警:在病害初期就能发现,及时采取措施
  • 成本效益高:减少人工成本,提高经济效益
  • 可扩展性强:可以扩展到其他作物病害检测

该番茄叶片病害检测数据集的发布,正是为了推动AI技术在农业病害检测领域的应用,为精准农业提供支持。

三、数据集详细信息

1. 数据采集

数据来源于真实的农业种植环境,主要采集自以下场景:

  • 温室大棚:温室大棚种植的番茄叶片
  • 露天种植:露天种植的番茄叶片
  • 不同生长阶段:番茄的不同生长阶段
  • 不同病害程度:轻度、中度、重度病害

在采集过程中,考虑了不同的采集条件和环境因素:

  • 不同光照条件:自然光、人工光照
  • 不同天气条件:晴天、阴天、雨天
  • 不同拍摄角度:俯视、侧视、斜视
  • 不同背景环境:不同背景下的番茄叶片
  • 不同病害类型:10种不同类型的病害

这种多样化的数据采集方式能够帮助模型学习不同条件下的病害特征,从而提升模型的泛化能力。

2. 数据标注

本数据集采用目标检测常见的Bounding Box标注方式对番茄叶片病害区域进行标注。标注过程由农业专家和计算机视觉专业人员共同完成,确保标注的准确性和一致性。

标注规范

  • 标注方法:矩形框(Bounding Box)标注
  • 标注内容:病害位置和类别
  • 标注精度:确保边界框准确覆盖病害区域
  • 标注流程:每张图片均经过专业标注团队标注

标注格式:YOLO标注格式

class x_center y_center width height

示例

0 0.512 0.431 0.214 0.356
1 0.621 0.542 0.187 0.265

其中:

  • class:目标类别编号(0-9,对应10种病害类型)
  • x_center:目标中心点横坐标
  • y_center:目标中心点纵坐标
  • width:目标宽度
  • height:目标高度

所有坐标均为归一化坐标(0~1)

3. 数据结构

数据集采用标准YOLO训练目录组织方式:

dataset/
├── train/
│   ├── images/
│   └── labels/
├── valid/
│   ├── images/
│   └── labels/
└── test/
    ├── images/
    └── labels/

YOLO数据配置文件

train: train/images
val: valid/images
test: test/images

nc: 10
names: ['Tomato Bacterial Spot', 'Tomato Early Blight', 'Tomato Late Blight', 
        'Tomato Leaf Mold', 'Tomato Leaf Spot', 'Tomato Spider Mites', 
        'Tomato Target Spot', 'Tomato Yellow Leaf Curl Virus', 'Tomato Healthy', 
        'Tomato Mosaic Virus']

这种结构完全符合YOLO系列目标检测框架的数据组织规范,用户可以直接将数据集用于模型训练与测试,无需额外处理。

4. 数据特点

本数据集具有以下特点:

1. 数据规模大

数据集包含10,853张高质量图片,在目标检测任务中,这样的数据规模能够有效支撑深度学习模型训练,避免过拟合问题。

2. 病害类型全面

数据集覆盖了10种不同类型的番茄叶片病害:

  • 病毒病害:番茄花叶病毒、番茄黄化卷叶病毒
  • 细菌病害:番茄细菌性斑点病
  • 真菌病害:番茄早疫病、番茄晚疫病、番茄叶霉、番茄叶斑病、番茄目标点
  • 虫害:番茄红蜘蛛(二斑叶螨)
  • 健康叶片:番茄健康

这些病害类型涵盖了番茄叶片的主要病害,能够支持全面的病害监测和诊断。

3. 场景多样

数据集包含多种农业种植场景:

  • 温室大棚:温室大棚种植的番茄叶片
  • 露天种植:露天种植的番茄叶片
  • 不同生长阶段:番茄的不同生长阶段
  • 不同病害程度:轻度、中度、重度病害

这些多样化场景能够帮助模型学习到更加丰富的病害特征,从而提高模型泛化能力。

4. 图像质量高

所有图像清晰,细节丰富,病害部位标注准确,为目标检测模型提供了高质量的训练样本。图像分辨率已调整为640×640,便于YOLOv8等深度学习模型的输入。

5. 标注精准

每张图像都包含多个标签和对应的边界框,这些标签详细描述了图像中的病害类型和位置,标注准确,无遗漏和错误。

在这里插入图片描述

四、数据集应用流程

下面是该数据集的典型应用流程,从数据获取到模型部署的完整过程:

flowchart TD
    A[下载数据集] --> B[数据预处理]
    B --> C[模型选择与配置]
    C --> D[模型训练]
    D --> E[模型评估]
    E --> F[模型优化]
    F --> G[模型部署]
    G --> H[番茄病害检测应用]
    
    subgraph 数据处理
    A
    B
    end
    
    subgraph 模型开发
    C
    D
    E
    F
    end
    
    subgraph 应用部署
    G
    H
    end

五、适用场景

1. 病害自动化检测

应用场景:温室大棚、露天种植基地

功能

  • 自动识别:自动识别番茄叶片的健康状况及病害类型
  • 病害分类:精确分类不同类型的病害
  • 病害定位:定位病害的具体位置
  • 病害评估:评估病害的严重程度

价值:帮助农业从业者通过AI技术自动识别番茄叶片的健康状况及病害类型,提高检测效率和准确性

2. 农作物健康监控

应用场景:智慧农业管理系统

功能

  • 实时监控:实时监控番茄种植区域的病害状况
  • 病害预警:提前预警病害传播
  • 病害追踪:追踪病害的传播路径
  • 数据分析:分析病害的发生规律

价值:利用训练好的AI模型,实时监控番茄种植区域的病害状况,提前预警病害传播

3. 精准农业

应用场景:现代化农业生产

功能

  • 精准防治:根据检测结果进行精准防治
  • 农药减量:减少农药使用量
  • 环境保护:减少对环境的污染
  • 成本控制:降低生产成本

价值:为精准农业提供数据支持,实现高效、节能、低污染的病害防治

4. 科研支持

应用场景:高校、科研机构

功能

  • 算法研究:用于目标检测算法研究
  • 模型对比:用于不同模型的性能对比
  • 方法创新:用于新方法的开发和创新
  • 病害研究:用于病害特征和传播规律的研究

价值:为农业科研提供宝贵的病害检测数据,推动相关领域的技术研究和发展

在这里插入图片描述

六、模型训练指南

1. 训练准备

在开始训练之前,需要做好以下准备工作:

  • 安装必要的依赖库ultralyticsnumpypandasmatplotlib
  • 配置数据集路径:确保数据集路径正确配置
  • 准备训练环境:推荐使用GPU加速训练
  • 设置训练参数:根据硬件条件调整批次大小、学习率等

2. 训练示例(YOLOv8)

使用YOLOv8进行目标检测训练:

数据配置文件(tomato_disease.yaml)

train: train/images
val: valid/images
test: test/images

nc: 10
names: ['Tomato Bacterial Spot', 'Tomato Early Blight', 'Tomato Late Blight', 
        'Tomato Leaf Mold', 'Tomato Leaf Spot', 'Tomato Spider Mites', 
        'Tomato Target Spot', 'Tomato Yellow Leaf Curl Virus', 'Tomato Healthy', 
        'Tomato Mosaic Virus']

训练代码

from ultralytics import YOLO

model = YOLO("yolov8n.pt")

model.train(
    data="tomato_disease.yaml",
    epochs=100,
    imgsz=640,
    batch=16
)

训练完成后即可进行预测:

results = model.predict("test.jpg")
print(results[0].boxes)

3. 训练技巧

为了获得更好的训练效果,建议采用以下技巧:

  • 数据增强:使用Mosaic、随机缩放、随机翻转等增强手段,增强模型泛化能力
  • 多尺度训练:使用不同尺度的输入图像,提高模型对不同大小病害的检测能力
  • 学习率调度:采用余弦退火策略,动态调整学习率
  • 批次大小:根据GPU内存情况调整,一般建议8-16
  • 模型选择:从小模型开始训练,再逐步尝试较大模型
  • 评估指标:关注mAP50和mAP50-95指标,确保模型性能
  • 早停策略:当验证集性能不再提升时停止训练,防止过拟合

4. 数据预处理建议

为了获得更好的训练效果,建议在使用该数据集时进行以下预处理:

  1. 数据增强

    • 随机水平翻转和垂直翻转
    • 随机旋转(-10°到10°)
    • 随机缩放(0.8-1.2倍)
    • 亮度、对比度、饱和度调整
    • 随机裁剪
    • 高斯模糊
  2. 图像标准化

    • 像素值归一化到[0,1]或[-1,1]
    • 调整图像大小到640×640
    • 去除图像噪声
  3. 标注处理

    • 检查标注文件的完整性
    • 确保标注框准确覆盖病害区域
    • 处理标注中的异常值

七、实践案例

案例一:智慧温室病害检测系统

应用场景:现代化温室大棚

实现步骤

  1. 在温室大棚内安装摄像头,实时采集番茄叶片图像
  2. 使用该数据集训练的YOLOv8模型,实时分析图像
  3. 系统自动识别番茄叶片病害
  4. 分类病害类型,评估病害严重程度
  5. 当发现病害时,系统发出预警
  6. 生成病害检测报告,辅助农民决策

效果

  • 病害识别准确率达到90%以上
  • 病害发现时间提前70%
  • 农药使用量减少40%
  • 番茄产量提高30%

案例二:露天种植病害监控系统

应用场景:露天番茄种植基地

实现步骤

  1. 使用无人机采集番茄叶片图像
  2. 使用训练好的模型,分析叶片病害
  3. 实时监控病害状况
  4. 当发现病害时,系统发出预警
  5. 生成病害分布图,辅助防治决策
  6. 记录所有病害数据,用于分析

效果

  • 病害发现率提高80%
  • 病害防治成本降低50%
  • 番茄品质提高40%
  • 农民收入增加35%

八、模型选择建议

根据不同的应用场景和硬件条件,推荐以下模型选择:

场景推荐模型优势
边缘设备部署YOLOv8n、YOLOv8s模型小,推理速度快,适合实时监测
服务器部署YOLOv8m、YOLOv8l精度高,适合复杂场景和大量图像分析
资源受限环境NanoDet、MobileDet计算量小,适合低性能设备
高精度需求YOLOv8x、RT-DETR精度最高,适合对准确率要求高的场景
学术研究Faster R-CNN、Mask R-CNN适合算法研究和对比实验

九、挑战与解决方案

在使用该数据集训练模型时,可能会遇到以下挑战:

1. 病害外观相似

挑战:不同类型的病害可能外观相似,容易混淆

解决方案

  • 数据增强:添加更多不同病害的样本
  • 特征提取:使用更强大的特征提取网络
  • 注意力机制:使用注意力模块,关注病害的关键特征
  • 多尺度特征:使用多尺度特征融合,适应不同病害形态

2. 光照变化

挑战:不同时间、不同环境下光照差异大

解决方案

  • 数据增强:模拟不同光照条件
  • 光照归一化:对图像进行光照归一化处理
  • 模型选择:使用对光照变化鲁棒的模型
  • 自适应阈值:根据光照条件调整检测阈值

3. 背景复杂

挑战:番茄叶片周围可能有复杂的背景

解决方案

  • 数据增强:添加更多复杂背景的样本
  • 背景分离:使用背景分离技术,突出病害区域
  • 特征提取:使用更强大的特征提取网络
  • 后处理:使用上下文信息过滤干扰

4. 小目标检测

挑战:早期的病害在图像中尺寸较小,难以检测

解决方案

  • 多尺度训练:使用不同尺度的特征图
  • 特征金字塔:构建特征金字塔,增强小目标的特征表示
  • 高分辨率输入:使用更高分辨率的输入图像
  • 小目标增强:对小目标区域进行专门处理

十、数据集质量控制

高质量的标注是数据集成功的关键。在构建该数据集时,我们采取了以下质量控制措施:

  1. 专业标注团队:由农业专家和计算机视觉专业人员共同标注
  2. 标注规范:制定详细的标注指南,确保标注一致性
  3. 多轮审核:标注完成后进行多轮审核,确保标注准确性
  4. 交叉验证:通过多人标注和比对,减少标注误差
  5. 质量评估:定期评估标注质量,及时发现和纠正问题
  6. 数据清洗:去除模糊、无效的图片
  7. 多样性保证:确保不同病害类型、不同环境条件的样本都有足够的数量
  8. 类别平衡:确保各类别样本数量相对均衡,避免类别偏置

这些措施确保了数据集的高质量,为模型训练提供了可靠的基础。

在这里插入图片描述

十一、未来发展方向

随着AI技术的不断发展,农业病害检测技术也在不断进步。未来,我们计划在以下方面进一步完善和扩展:

  1. 增加数据规模:扩充数据集规模,覆盖更多病害类型和种植环境
  2. 增加类别:细分类别,识别更多类型的病害
  3. 添加视频数据:引入视频数据,支持时序分析和动态监测
  4. 多模态融合:结合光谱图像、传感器数据等多模态信息
  5. 提供预训练模型:发布基于该数据集的预训练模型,方便研究者直接使用
  6. 开发配套工具:提供数据标注、模型训练和部署的配套工具
  7. 扩展到其他作物:将数据集扩展到其他作物病害检测
  8. 实地验证:在实际农业场景中验证模型性能

十二、总结

随着人工智能技术在农业领域的深入应用,番茄叶片病害检测数据集为AI模型的训练和研究提供了宝贵的资源。通过本数据集,研究人员和开发者可以利用YOLOv8等先进的目标检测算法,快速构建高效的病害检测系统,推动农业科技的发展。

本数据集具有以下特点:

  • 数据规模大:10,853张高质量番茄叶片图像,满足模型训练需求
  • 病害类型全面:覆盖10种不同类型的番茄叶片病害,涵盖病毒、细菌、真菌感染等多种病害类型
  • 场景多样:包含温室大棚、露天种植等多种种植场景
  • 图像质量高:图像清晰,细节丰富,病害部位标注准确
  • 标注精准:由专业人员标注,确保标注质量
  • 格式标准:采用YOLO标准格式,直接适配主流模型
  • 实用性强:可直接用于病害检测系统的开发和应用

无论是农业病害的实时监控,还是精准农业的实施,本数据集都能够为实际应用提供强大的技术支持。通过使用这个数据集,开发者可以训练出具备较高准确度的AI模型,自动识别并分类番茄叶片的病害类型,从而为农业病害管理提供有力支持。

YOLOv8作为当前目标检测领域最先进的深度学习模型之一,具有优异的检测性能和高效的推理速度,尤其适合应用于资源有限的农业领域。利用YOLOv8模型对番茄叶片病害进行检测,能够实现高精度、高速度的病害定位与分类。

借助YOLOv8的优势,可以实现以下目标:

  1. 高精度病害检测:通过YOLOv8对图像中的病害进行精准定位和分类,有效提高农作物病害的诊断准确性
  2. 实时病害预警:基于YOLOv8的高效推理速度,能够在农业生产过程中实时监控并发现潜在病害问题
  3. 大规模应用:借助YOLOv8的高效性能,能够应对大规模农田监控任务,为大面积的番茄种植区提供智能化支持

未来,随着AI技术的不断进步和数据集的不断更新,我们有理由相信,农业病害检测将变得更加智能化、高效化,为全球农业发展带来深远影响。

十三、附录:数据集使用注意事项

  1. 数据使用规范

    • 该数据集仅供学术研究和非商业用途
    • 如需商业使用,请联系数据集提供方
    • 引用该数据集时,请注明来源
  2. 环境要求

    • 建议使用Python 3.8+环境
    • 推荐使用PyTorch 1.8+或TensorFlow 2.0+
    • 训练时建议使用GPU加速
  3. 常见问题解决

    • 数据加载错误:检查数据集路径是否正确
    • 模型过拟合:增加数据增强,使用正则化技术
    • 推理速度慢:使用模型压缩技术,选择轻量化模型
    • 准确率低:检查数据预处理步骤,尝试不同的模型架构
  4. 技术支持

    • 如有技术问题,可通过数据集提供方获取支持
    • 建议加入相关学术社区,与其他研究者交流经验

通过合理使用该数据集,相信您能够在农业病害检测领域取得优异的研究成果,为精准农业的发展做出贡献。

桥梁裂缝检测数据集(4000张)|YOLO训练数据集 结构安全监测 自动巡检 无人机检测 小目标识别


前言

随着交通基础设施建设规模的不断扩大,桥梁作为关键交通枢纽,其安全性与可靠性直接关系到公共安全与经济运行。然而,在长期服役过程中,桥梁结构不可避免地会受到荷载、环境侵蚀及材料老化等多种因素影响,产生不同程度的裂缝损伤。

传统桥梁检测主要依赖人工巡检,不仅效率低、成本高,而且在高空、高风险环境下存在较大安全隐患。近年来,随着计算机视觉与深度学习技术的发展,基于图像的自动裂缝检测逐渐成为桥梁健康监测的重要发展方向。
在这里插入图片描述

而高质量的数据集,是实现高精度裂缝检测模型的核心基础。本桥梁裂缝检测数据集正是在这一背景下构建,旨在为科研与工程应用提供可靠的数据支撑。

数据集下载链接

通过网盘分享的文件:桥梁裂缝检测数据集
链接: https://pan.baidu.com/s/1-aIDtt7JQW4nhhYxY7sRqg?pwd=iu58
提取码: iu58

背景

桥梁裂缝是结构损伤最常见、最直观的表现形式之一,其发展程度直接反映结构安全状况。例如:

  • 细微裂缝:可能预示早期结构疲劳或材料老化
  • 贯穿裂缝:可能影响结构承载能力
  • 多裂缝分布:可能反映整体结构受力异常

在实际工程中,裂缝检测面临以下挑战:

  • 裂缝尺度差异大:从发丝级到宽缝结构
  • 背景复杂:污渍、水渍、阴影等干扰明显
  • 环境多变:光照、天气变化影响图像质量
  • 检测难度高:细小裂缝难以识别

传统人工检测方式难以兼顾效率与精度,而基于深度学习的自动检测方法,能够在复杂环境中实现高效识别。而这一能力的实现,依赖于高质量、多样化的数据支撑。
在这里插入图片描述


一、数据集概述

本数据集为高质量桥梁裂缝检测专用数据集,专为目标检测任务构建,聚焦桥梁结构健康监测核心需求,适配YOLO、Faster R-CNN等主流检测模型。

数据集共包含 4000张高质量标注图像,全部来源于真实桥梁工程场景,具备良好的工程适配性。

数据集目录结构如下:

database/桥梁裂缝检测数据集/
├── train/
│   └── images/
├── valid/
│   └── images/
├── test/
│   └── images/
  • train(训练集):用于模型特征学习
  • valid(验证集):用于模型调参与优化
  • test(测试集):用于模型性能评估
    在这里插入图片描述

结构标准规范,可直接接入主流检测框架,无需额外处理。


二、数据集详情

1. 数据规模与来源

  • 图像数量:4000张
  • 数据来源:真实桥梁工程采集
  • 桥梁类型:梁桥、拱桥等
  • 覆盖部位:桥墩、桥台、梁体、桥面铺装

数据覆盖桥梁关键结构区域,确保模型学习到全面的裂缝特征。


2. 场景覆盖

数据集充分考虑实际巡检环境复杂性,涵盖:

  • 多光照条件(强光、弱光、阴影)
  • 多天气情况(晴天、雨天、雾天)
  • 多拍摄角度(近景、远景、倾斜视角)
  • 多干扰背景(水渍、污渍、施工痕迹)

同时覆盖不同尺度裂缝:

  • 发丝级细裂缝
  • 中等宽度裂缝
  • 宽幅结构裂缝

有效提升模型鲁棒性与泛化能力。


3. 类别定义

本数据集为单类别检测任务

类别ID类别名称
0crack

专注于裂缝目标检测,使模型能够更集中学习裂缝的几何特征与纹理特征。


4. 标注规范

  • 标注格式:YOLO标准格式(归一化坐标)
  • 标注方式:Bounding Box(目标检测框)
  • 标注精度:高精度定位裂缝区域
  • 标注流程:多轮人工复核

标注严格控制误差范围,无明显错标、漏标问题,可直接用于训练。


5. 数据特点

  • 高精度标注:边界框一致性强
  • 多尺度裂缝覆盖:适用于小目标检测
  • 真实环境数据:贴近工程应用
  • 强泛化能力:适应复杂巡检场景

三、数据集优势

1. 工程导向明确

聚焦桥梁裂缝检测核心任务,直接服务结构安全监测需求。

2. 多场景高覆盖

涵盖多桥型、多部位、多环境,提升模型实际应用能力。

3. 高质量标注体系

多轮校验确保标注准确,减少训练噪声。

4. 标准化结构设计

兼容主流检测框架,实现快速部署。

5. 支持小目标检测

包含大量细微裂缝样本,适合高精度检测研究。


四、适用场景

本数据集可广泛应用于以下领域:

1. 桥梁自动巡检系统

用于裂缝检测模型训练,实现自动化巡检

2. 无人机巡检

结合无人机图像,实现大范围桥梁检测

3. 巡检机器人

用于桥梁底部、侧面等复杂区域检测

4. 结构健康监测

用于裂缝识别与发展趋势分析

5. 学术研究

用于小目标检测、模型轻量化等方向研究
在这里插入图片描述


五、心得

从数据集设计角度来看,这套桥梁裂缝数据集体现了典型的工程级数据构建思路。

首先,在类别设计上采用单类别策略,使模型能够专注于裂缝特征学习,避免类别干扰,这对于细粒度检测任务尤为重要。

其次,数据强调多尺度与复杂背景,这正是裂缝检测的难点所在。只有在训练阶段充分覆盖这些情况,模型在实际部署中才能保持稳定性能。

再者,数据来源真实工程场景,而非实验室模拟,这一点直接决定了模型的落地能力。

最后,这类数据集不仅服务于算法研究,更直接服务于基础设施安全。当裂缝能够被自动检测并及时预警时,其带来的社会价值远高于技术本身。


六、结语

桥梁作为重要交通基础设施,其安全监测至关重要。随着AI技术的发展,基于视觉的自动裂缝检测正在成为行业发展趋势。

本桥梁裂缝检测数据集通过高质量数据构建、多场景覆盖与标准化设计,为相关研究与工程应用提供了坚实的数据基础。无论是用于模型训练,还是系统开发,均具备较高价值。

绝缘子位置检测数据集(2000张)|YOLOv8训练数据集 电力巡检 无人机检测 输电线路监测 智能运维


前言

随着电力系统规模的不断扩大与智能电网建设的持续推进,传统依赖人工巡检的运维方式正面临效率与安全性的双重挑战。尤其是在输电线路巡检过程中,绝缘子作为关键电力设备,其状态与位置直接关系到线路运行的安全性与稳定性。

在复杂地形与高空作业环境下,人工巡检不仅成本高、效率低,而且存在较大的安全风险。近年来,基于计算机视觉的自动检测技术逐渐成为电力巡检的重要发展方向,而高质量数据集则是实现高性能检测模型的核心基础。
在这里插入图片描述

本YOLOv8绝缘子位置检测数据集,正是在这一背景下构建,旨在为电力行业智能巡检提供稳定可靠的数据支撑。

数据集下载链接

通过网盘分享的文件:电力行业专用的绝缘子位置检测数据集
链接: https://pan.baidu.com/s/1JjPuSuUTLfBh-YXmo6xoBA?pwd=upf2
提取码: upf2

背景

绝缘子广泛应用于输电线路中,用于支撑导线并保证电气绝缘性能,其分布广泛、数量庞大。在实际巡检过程中,绝缘子检测面临以下挑战:

  • 分布范围广:跨越山区、河流、城市等复杂环境
  • 目标尺度变化大:远距离小目标与近距离大目标并存
  • 背景复杂:天空、植被、建筑物等干扰明显
  • 环境多变:光照、天气变化显著影响图像质量

传统人工巡检难以及时、全面掌握设备状态,而基于YOLO等目标检测模型的自动识别方法,可以实现对绝缘子位置的快速定位与分析。

构建一个高质量、标准化、真实场景驱动的数据集,是提升模型性能与落地能力的关键。
在这里插入图片描述


一、数据集概述

本数据集专为YOLO目标检测模型训练设计,聚焦电力行业绝缘子位置检测任务,提供 2000张高质量标注图像,可直接用于模型训练、验证与测试。

数据集结构严格遵循YOLO系列模型标准,目录如下:

database/电力行业专用的绝缘子位置检测数据集/
├── train/
│   └── images/
├── valid/
│   └── images/
├── test/
│   └── images/
  • train(训练集):用于模型特征学习与参数优化
  • valid(验证集):用于模型调参与性能监控
  • test(测试集):用于评估模型泛化能力
    在这里插入图片描述

标准化结构设计,无需额外配置即可直接启动训练流程。


二、数据集详情

1. 数据规模与来源

  • 图像数量:2000张
  • 数据来源:真实电力巡检场景
  • 场景类型:输电线路、野外环境等
  • 图像质量:清晰、无明显模糊

数据覆盖多种实际巡检环境,具备良好的工程适配性。


2. 场景覆盖

为提升模型鲁棒性,数据集涵盖多种复杂环境:

  • 不同地理环境(山区、平原、城市)
  • 多天气条件(晴天、阴天、雾天)
  • 多光照情况(强光、逆光、阴影)
  • 多拍摄角度(远景、近景、俯视)

这些因素有助于模型适应真实巡检中的复杂工况。


3. 类别定义

本数据集采用单类别检测方式

类别ID类别名称
0绝缘子

类别设计简洁,专注于目标定位任务,避免多类别干扰,提高检测效率。


4. 标注规范

  • 标注格式:YOLO标准TXT格式
  • 标注内容:类别ID + 归一化边界框
  • 标签与图像一一对应
  • 标注精度高、一致性强

所有标注均经过人工校验,确保数据质量可靠,可直接用于监督学习训练。


5. 数据特点

  • 高质量标注:精准定位绝缘子目标
  • 真实场景数据:贴近实际巡检环境
  • 强泛化能力:适应多种复杂条件
  • 标准化结构:即拿即用

三、数据集优势

1. 专注核心检测任务

单类别设计聚焦绝缘子位置检测,提高模型训练效率与稳定性。

2. 高度贴近实际应用

数据来源真实巡检场景,确保模型具备良好落地能力。

3. 标准化数据组织

完全兼容YOLOv5、YOLOv8等主流框架,降低开发门槛。

4. 强鲁棒性支持

多环境、多角度数据分布,提升模型适应能力。

5. 工程价值突出

可直接服务电力巡检系统开发与部署。


四、适用场景

本数据集可广泛应用于电力智能运维相关领域:

1. 无人机巡检系统

用于输电线路巡检,实现绝缘子自动定位

2. 智能监控系统

用于电力设备状态监测与异常检测

3. 输电线路安全管理

辅助设备识别与巡检数据分析

4. 巡检机器人

用于复杂地形下的自动化巡检

5. AI算法研究

用于目标检测模型优化与实验验证
在这里插入图片描述


五、心得

从数据集设计角度来看,这套绝缘子检测数据集具有明显的工程导向。

首先,采用单类别设计,使模型专注于目标定位任务,减少不必要的复杂性,这在实际部署中非常重要。

其次,数据强调真实场景覆盖,而非理想化环境,这一点直接决定了模型在实际应用中的表现。

再者,数据结构完全标准化,极大降低了使用门槛,使开发者可以快速进入模型训练阶段。

最后,这类数据集的价值不仅在于训练模型,更在于推动电力行业智能化转型。当巡检实现自动化后,不仅效率提升,安全性也将显著增强。


六、结语

随着智能电网建设的不断推进,基于计算机视觉的自动巡检技术正成为电力运维的重要支撑手段。绝缘子检测作为关键环节,其数据质量直接影响模型性能与系统可靠性。

本YOLOv8绝缘子位置检测数据集通过高质量数据构建、真实场景覆盖以及标准化设计,为相关研究与工程应用提供了坚实基础。无论是用于模型训练还是系统开发,均具备较高价值。

整理 | 华卫

 

近日,支撑数百万生产部署、默默承载代码与用户之间底层连接的云平台 Vercel 遭到入侵,有威胁行为者宣称攻击了其系统,并试图出售窃取的数据。作为面向开发者提供托管与部署基础设施的云平台,Vercel 尤其专注于 JavaScript 框架生态,因开发广泛使用的 React 框架 Next.js 而知名,同时还提供无服务器函数、边缘计算、CI/CD 流水线等服务,帮助开发者构建、预览和部署应用程序。

 

Vercel 在社交平台 X 上发布声明,确认了这起 “安全事件”,称“有未经授权的人员访问了 Vercel 部分内部系统”。该公司表示,攻击者是通过一个被入侵的第三方 AI 工具实施入侵,与 Google Workspace OAuth 应用相关联。

 

在此之前,一名自称是近期入侵 Rockstar Games 幕后组织 ShinyHunters 成员的人士在一个黑客论坛上发帖,称从 Vercel 窃取了访问密钥、源代码、数据库数据以及内部部署环境访问权限和 API 密钥。他在帖子中写道:“这只是来自 Linear(Vercel 内部的项目管理工具)的证明材料,但我即将给你的访问权限包括多个员工账户,可访问多个内部部署系统、API 密钥(包括部分 NPM 令牌和 GitHub 令牌)。”

 

该威胁行为者还公开了一份包含 Vercel 员工信息的文本文件,共计 580 条数据记录,包括姓名、Vercel 邮箱、账号状态及操作时间戳。此外,他还发布了一张疑似 Vercel 企业版内部管理后台的截图。有报道称,与 ShinyHunters 核心团伙有关联的人员已否认参与此事。

入侵源头是 Context.ai,谷歌 Mandiant 团队正协助调查

在安全公告中,Vercel 表示,此次事件源于一款第三方 AI 工具,该工具的 Google Workspace OAuth 应用被攻破,可能影响数百个机构的大量用户。并且,Vercel 公布了相关威胁指标(IOC),以协助业界排查环境中可能存在的恶意行为,如下:

OAuth 应用:110671459871-30f1spbu0hptbs60cb4vsmv79i7bbvqj.apps.googleusercontent.com

 

随后,Vercel 首席执行官 Guillermo Rauch 在 X 上披露了更多细节,详细说明了攻击者的入侵路径。据称,攻击者最初的突破口是一名 Vercel 员工的 Google Workspace 账号,该员工所使用的 AI 平台 Context.ai 遭到入侵,导致其账号被攻陷。攻击者在获取该员工账号权限后,进一步提升权限渗透进入了 Vercel 自身的系统环境,访问了未被标记为敏感、因此未进行静态加密的环境变量。

 

通常,环境变量中存放着 API 密钥、私有 RPC 端点、部署凭证等机密信息。Rauch 表示,“Vercel 对所有客户环境变量均采用完整静态加密存储,我们拥有多层纵深防御机制保护核心系统与客户数据。但我们确实提供将环境变量标记为‘非敏感’的功能,不幸的是,攻击者正是通过枚举这些非敏感变量,获得了更高权限的访问。”

 

“我们认为该攻击组织技术水平极高,并且我高度怀疑,AI 极大地提升了他们的攻击效率。Rauch 补充道,攻击者行动 “速度惊人,且对 Vercel 有着深入的了解”。据了解,Context.ai 由前谷歌高管创办,专注于 AI 模型评估与分析,其核心产品为模型数据洞察仪表板。

 

但 Vercel 称,其服务未受影响,仅有少量客户受到此次数据泄露影响,目前正与受影响客户协同处理。同时,该公司已对其供应链进行排查,确认 Next.js、Turbopack 及其他开源项目均未受影响,保持安全。Vercel 已对管理后台推送更新,包括新增环境变量总览页面,以及优化敏感环境变量的管理界面。

 

“我们正在展开积极调查,并已聘请事件响应专家协助调查与修复工作。我们已通报执法部门,并将随着调查进展更新本页面信息。”据悉,谷歌 Mandiant 团队正协助调查,Vercel 也已联系 Context.ai,以确定此次事件的完整影响范围。

 

Vercel 正采取措施保护用户,并强烈建议开发者检查环境变量中是否包含敏感信息,并启用平台敏感环境变量功能,在必要时轮换密钥等敏感凭证,确保相关数据实现静态加密。同时,Vercel 提醒所有 Google Workspace 管理员及谷歌账号用户,立即检查该应用的使用情况,排查可疑行为。

影响范围太广,可能引发连锁式暴露

针对此次事件,软件开发社区知名开发者 Theo Browne 在 X 上表示,据其消息源透露,Vercel 内部集成的 Linear 和 GitHub 系统是受影响最严重的部分。他指出,Vercel 中标注为敏感的环境变量均受到安全保护;未被标记的其他变量则必须进行轮换,以防遭遇相同风险。该建议也与 Vercel 官方给出的指引一致,即建议客户检查环境变量并启用平台的敏感变量功能。

 

“这种方式很可能被用来打击除 Vercel 以外的多家公司。”Browne 称。

 

从数据规模也能看出这次事故带来的影响之大。Vercel 为数千家企业托管应用,涵盖个人开发者、初创公司和世界 500 强企业,他们利用该平台在全球边缘网络部署 Next.js 应用、静态站点和无服务器功能。这类基础设施一旦被攻破,就会引发连锁式的安全暴露。根据发表在 IEEE Xplore 上的研究,开发者基础设施的安全漏洞会在多个系统中对消费者数据造成连锁风险。研究强调,平台层面的泄露可能导致敏感信息在初始目标之外的广泛暴露。

 

使用 Vercel Pro 和 Enterprise 套餐的企业客户可能面临最高风险,因为这些账户通常包含更敏感的项目数据、自定义域配置以及第三方服务的集成凭证。那些将 GitHub、GitLab 或 Bitbucket 仓库连接到 Vercel 进行自动化部署的组织,如果攻击者获得了存储的认证令牌,其源代码仓库可能会被暴露。

 

在 Vercel 平台上存储环境变量、API 密钥和数据库连接字符串的开发团队尤其值得关注。对许多开发团队来说,这些数据代表了他们生产系统的关键。如果这些凭证被泄露,攻击者可能获得远超 Vercel 平台的后端系统、数据库和外部服务访问权限,篡改构建流程、注入恶意代码,进而实施更广泛的攻击。

 

使用 Vercel 免费套餐的个人开发者虽然可能目标更少,但仍面临个人项目暴露和账号被接管的风险。该平台与流行的开发工具和服务的集成意味着被攻破的账户可能成为针对开发者生态系统更广泛攻击的跳板。

 

但更深远的影响不止于 Vercel 本身,所有使用第三方 AI 工具进行代码生成、数据分析或自动化运营的公司,现在都必须面对同一个问题:哪些服务商可以访问哪些系统,对应的安全验证机制又是什么?

 

目前尚不清楚此次入侵的渗透深度,也不确定是否有客户部署的应用遭到篡改。Vercel 表示调查仍在持续,将在获取更多信息后向相关方通报,并会直接联系受影响客户。

IPO 前夕被攻击,200 万美元赎金谈判未果?

值得一提的是,这次入侵发生在 Vercel 的关键时刻。据外媒报道,在营收激增 240% 后,该公司正准备进行首次公开募股 (IPO)。

 

Vercel 一直将自身定位为面向开发者的 “AI 云平台”,大力推广深度 AI 集成能力。而或许正是这一定位,让它沦为了攻击目标。这起事件在云开发领域引发高度担忧,因为 Vercel 凭借其广受欢迎的前端部署平台,服务着全球数百万开发者。Vercel 在开发流程中处于特殊位置,是许多初创公司和成熟公司用来构建、测试和部署应用的基础设施层。这种级别的泄露不仅暴露了 Vercel 自己的数据,这可能会暴露成千上万信任该平台部署流程的开发团队的下游应用和服务。

 

更重要的是,此次泄露事件也引发了对 Vercel 安全措施和监控能力的质疑。在安全研究人员发现黑客在试图兜售据称窃取的数据、并出现可疑活动后,Vercel 才意识到系统可能已遭入侵。并且,从该公司最初披露的消息来看,攻击者在被发现前维持访问权限的时间尚不明确。入侵发生与被发现之间的间隔至关重要:攻击者访问时间越长,能泄露的数据越多,对下游系统造成的损害也越大。网络安全事件响应研究表明,消除安全漏洞的长期后果需要立即采取行动,以防止连锁反应在连接系统中蔓延。

 

不过需要说明的是,攻击者并未直接攻击 Vercel,而是利用了关联 Google Workspace 的 OAuth 访问权限。这类供应链漏洞的确更难被察觉,因为它依托的是受信任的集成服务,而非明显的系统漏洞。近期也有多起域名劫持事件导致用户被跳转至仿冒恶意网站,造成钱包资产被盗。但这类攻击通常发生在 DNS 或域名注册商层面,一般可通过监控工具快速发现异常。托管层入侵则截然不同。攻击者不会将用户导向钓鱼网站,而是直接修改真实的前端代码。用户访问的是合法域名,却加载了恶意代码,对此毫无察觉。

 

在 Telegram 上分享的信息中,威胁行为者声称已就此事与 Vercel 方接触,双方曾就 200 万美元赎金进行过谈判。无论之后此事如何发展,该公司当前都迫切需要转入防御姿态向投资者展示其稳定性。据传,Netlify 和 Render 等竞争对手正在联系 Vercel 的客户,将其平台定位为更安全的选择。

 

参考链接:

https://vercel.com/kb/bulletin/vercel-april-2026-security-incident

Midjourney 工程师、前 React 核心团队成员Cheng Lou近期发布了Pretext,这是一个仅 15KB 的开源 TypeScript 库,可以在不触及 DOM 的情况下完成文本测量与布局计算。这种方式避免了昂贵的浏览器布局重排(reflow),从而使无限列表、瀑布流布局以及滚动位置锚定等高级 UI/UX 模式能够以 60 至 120 FPS(帧率)运行。Pretext 通过一个 AI 循环构建,该过程对 DOM 的布局计算机制进行了逆向分析。

 

对于面向消费者的应用(如 B2C),终端用户体验是实现差异化和推动采用的关键因素。Web 应用长期以来依赖多种高级 UI/UX 模式,例如瀑布流布局(如PinterestTumblr)、虚拟列表滚动(如 X,即原推特)以及滚动位置锚定。其中一些模式正在逐步被纳入 CSS 标准,例如用于瀑布流的 CSS Grid以及overflow-anchor属性,但浏览器支持情况仍不一致。任何基于 JavaScript 的自定义实现,都容易受到布局抖动及其带来的性能开销影响。

 

当应用需要计算文本高度时——例如在包含数千条数据的虚拟列表、瀑布流网格或持续流式的 AI 聊天界面中——通常会通过getBoundingClientRectoffsetHeight等方式查询 DOM。浏览器随后会触发布局重排,强制渲染引擎重新计算页面中所有元素的几何信息和位置。在页面复杂或渲染预算紧张的情况下,这类重排会导致帧率下降和界面卡顿。

 

Pretext.js则完全绕开了重排机制。该工具分为两个阶段运行。首先是prepare()阶段,利用 Canvas API 的measureText()对文本进行分析,根据字体、间距以及 Unicode 规则,计算每一段文本的像素宽度,并将结果缓存下来。这一阶段的成本只需支付一次。随后是layout()阶段,它基于这些缓存宽度,通过纯数学计算得出在特定容器尺寸下的行数和最终高度。layout()是高频调用路径,可以根据容器尺寸变化反复执行。由于两个阶段都不读取 DOM,因此不会触发任何昂贵的重排操作。

 

根据社区分享的多项性能测试,在 500 个文本块上执行一次布局计算,Pretext 仅需约 0.09 毫秒,性能相比传统基于 DOM 的方法最高可提升约 600 倍。这使得应用即使在用户实时操作、需要动态文本换行的场景下,也更容易维持 120 帧的流畅表现。

 

有趣的是,Lou表示AI 在该库实现多语言支持方面发挥了关键作用:

这个引擎体积很小(仅几 KB),能够处理浏览器中的各种细节差异,并支持你所需的所有语言,包括韩语与从右到左书写的阿拉伯语混排,以及平台特定的表情符号。我们的方法是将浏览器的真实渲染结果作为基准,交给 Claude 和 Codex,在不同容器宽度下反复测量与迭代,这一过程持续了数周。

 

这种以现有软件作为“判定标准”进行验证的方法,展示了自主 AI 循环的潜力。近期还有一个案例:16 个 Claude 代理在仅两周内构建了一个通过 99% gcc 测试的 C 编译器。虽然该编译器尚未达到生产级别,但几乎不需要人工干预。

 

开发者社区对该项目的发布反响极为积极。该仓库在发布后的 24 小时内获得了 1.6 万个 GitHub Star。开发者已经开始将其应用于此前被认为在 Web 上过于“沉重”的界面场景。Simon Willison 在其博客中就提到,该库能够在 Web 上实现接近专业印刷级别的排版效果。

 

一位设计师表示

印刷设计师与网页设计师之间一直存在差距,很大程度上体现在文本处理上。我对这些精美的 Pretext 演示非常着迷,也收藏了一些我最喜欢的案例

 

……对于平面设计师来说,这意味着在 Web 上使用文本时,可以获得与印刷领域相同的灵活性。

 

感兴趣的开发者可以查看丰富的演示和使用案例,例如可变高度的虚拟滚动动态 AI 聊天气泡以及多语言内容流。此外,对数学排版感兴趣的读者,还可以体验一个交互式对比工具,将 Pretext 与 Web 标准方案以及 Knuth–Plass 算法(用于著名的 TeX/LaTeX 排版系统)进行比较。

整理 | 华卫

近日,工业具身智能领域的新锐力量星工聚将(XGSynBot)正式宣布完成数千万元天使轮融资,本轮融资由天空工场创投基金独家投资。星工聚将总经理李梓正表示:"这轮融资不仅是对我们技术路线的认可,更是对'工业场景优先'战略的肯定。我们始终相信,能在工业场景走通的具身智能,才具备真正走向全场景通用化的资格。"

 

作为一支融合清华和产业基因的创业团队,星工聚将从成立之初就选择了一条"更远"的路。2025 年深入产线、扎根车间,用工程能力而非 Demo 能力定义具身智能并持续迭代到今年 3 月二代 XG Z1 上线。团队核心成员来自清华大学、上海交通大学、麻省理工、卡内基梅隆等全球知名学府,并拥有丰富的工业机器人研发与落地经验。

天空工场创投基金表示:"具身智能的商业化落地需要的不是参数的堆砌,而是对真实场景的深刻理解和系统级的工程能力。星工聚将团队展现出的全栈自研能力、场景洞察力以及快速迭代能力,让我们看到了工业具身智能规模化落地的确定性。"

据悉,星工聚将本轮融资将主要用于核心技术的持续研发、产品量产能力建设,以及重点行业的商业化拓展。

从 POC 到规模化部署

在 3 月刚刚结束的 AWE2026 和德国 LogiMAT 2026(欧洲最大的内部物流展会)上,XG Z1 轮式机器人作为全球唯一与现有产品线无缝衔接的具身智能产品,在现场展示了一套完整的物流场景中处理“非标、多变、长尾”问题的闭环能力,引发了全球物流与制造业界的高度关注。

 

· 语义任务拆解:XGZ1 能够自主读取屏幕指令,理解复杂的生产顺序,而非执行预设程序。

· 非结构化环境自适应:当演示中的组件条码被故意遮挡或翻转时,XGZ1 可以做到自主判断并翻转物体,直到识别成功。一位来自德国本土分拣中心的集成商在现场表示:"这种非结构化环境自适应能力,可以帮助解决我们仓储物流中很多麻烦。"

· 多目标柔性投放:XGZ1 控精准地将易碎组件投放到动态移动的小车中,其动作流畅度让观众席发出赞叹。

目前,星工聚将已与多家头部智能制造企业达成亿级订单合作,并联合包括京东、灵心巧手、珞石机器人、领益机器人、亦庄机器人等在内的产业链伙伴发起“星火计划”,构建起具身智能的生态协同网络。

 

在与蚂蚁集团的合作中,双方将依托星工聚将的机器人本体能力、真实场景数据积累构建高价值的具身智能真机数据集,开展联合模型训练、优化迭代与本体深度适配。共同沉淀可复制的行业解决方案与标杆案例,加速推动具身智能从技术验证走向规模化商用落地。

全栈自研技术体系

支撑上述场景能力的背后来自星工聚将的全栈自研技术体系:

· 星工聚将的核心竞争力首先在于其全球首创的末端快换系统。这一创新技术让 XG Z1 轮式机器人能够在 6 秒内完成不同末端执行器工具的切换,使同一台机器人可以无缝完成搬运、装配、打磨、质检、焊接等多种任务,真正实现"一机多用"的通用性能力。

· 物理认知引擎 CPE:CPE 由"快慢双系统"中央脑和数字风洞共同组成。慢系统负责理解任务,快系统实现更高更稳的动作反馈;而数字风洞平台是在仿真与真实之间引入可测量、可校正的中间层,通过构建关键物理场景让机器人在"接近真实"的环境中反复交互,实现偏差校准,从而机器可以越用越好用,越用越智能。

· XG 系列一体化关节模组:从自研高精度关节模组到 7 自由度机械臂和 4 自由度可折叠躯干,操作范围提升至约 2400 毫米可以覆盖多数工业作业空间,星工聚将实现了本体模块定制化确保产品在复杂工业环境中的稳定性和高响应速度。

这套技术体系为企业提供了三大确定性:成本确定性(通过复用降低边际成本)、落地确定性(全栈能力保障项目成功)、演进确定性(系统能力持续增长)。

用确定性对抗不确定性

在具身智能赛道从"估值泡沫"向"价值创造"转折的关键时刻,星工聚将选择了一条更务实的路径:以工业场景锤炼通用智能能力;以确定性的商业闭环滋养技术的持续进化。

除了工业制造和物流场景,星工聚将还在积极探索关键技术在泛化场景下的拓展应用。例如我们与某外资头部企业共同探索黑灯工厂,嵌入研发侧实现研发样品的自动试验等,进一步验证技术的通用性和商业化潜力,持续探索“向场景再进一步”。

从国内展台到世界舞台,从头部工厂到泛化场景,星工聚将未来还将从清华实验室到斯坦福伯克利行深度拜访和交流,用"全球首创末端快换系统"和"物理认知引擎",重写工业具身智能的落地逻辑,为具身智能的未来提供"不止一种答案"。

谷歌在 Gemini CLI 中引入了子代理(subagents)功能,这是一项新能力,旨在帮助开发者将复杂或重复性的任务委派给在主会话旁协同运行的专用 AI 代理。

 

该功能允许主代理充当“协调者”,将代码分析、调研或测试等子任务分配给不同的专用子代理。每个子代理都在隔离环境中运行,并将汇总后的结果返回主会话,从而减少上下文负载,并在长时间交互过程中提升性能。

 

据谷歌介绍,这种方式旨在解决代理工作流中的常见问题,尤其是中间步骤不断累积所带来的响应变慢和成本上升。通过将细粒度操作下放给子代理,主代理可以专注于更高层级的推理和最终结果输出。

 

子代理还支持并行运行,使多个任务能够同时执行。例如,开发者可以让系统同时分析代码库的不同部分,或并行开展多项调研任务。虽然这有助于缩短整体执行时间,但谷歌也指出,并行执行可能带来一些风险,例如代码修改冲突,以及由于并发请求导致的使用额度增加。

 

该功能的一个重要特点是高度可定制化。开发者可以通过带有 YAML 配置的 Markdown 文件创建自定义子代理,从而定义其角色、可用工具以及行为规范。这些代理可以保存在本地或代码仓库中,使团队能够在项目间统一工作流或规范编码实践。此外,谷歌还提供了一些内置子代理,例如通用助手、命令行(CLI)助手以及代码库分析代理。

 

系统还支持通过提示语语法进行显式任务委派,允许用户直接将任务分配给特定代理。这使开发者能够更精细地控制任务分发,而不必完全依赖自动路由机制。

 

这一发布凸显了多代理架构的发展趋势,即通过多个组件分别处理特定任务,而不是依赖单一模型,从而在复杂开发流程中提升系统的可扩展性和可维护性。

 

不过,早期用户的反馈显示,整体开发者体验仍有改进空间。有评论指出当前存在的一些问题:

谷歌应当在 gemini-cli 的稳定性以及 UI/UX 上投入更多精力。目前即使是 Pro 版本,整体体验也相当一般。模型本身表现不错,但工具链还需要进一步打磨。

 

尽管子代理的引入拓展了 Gemini CLI 的能力,其实际普及程度仍将取决于在功能迭代的同时,相关可用性和稳定性问题能否得到及时解决。

今天,腾讯正式发布了新模型 Hy3 preview,这是姚顺雨加入腾讯后带领团队发布的首个模型。

姚顺雨团队没有从千亿规模模型入手。Hy3 preview 是一个快慢思考融合的 MoE 语言模型,总参数 295B,激活参数 21B,最大支持 256K 上下文长度,主打性价比。Hy3 preview 的模型能力提升,适用于 Coding 和智能体(例如龙虾)类场景,是一个在实际应用中具备实用性和高性价比的基础模型。

Hy3 preview 是腾讯尝试解决真实世界复杂工程问题的开端。腾讯希望将 Hy3 preview 置于真实的业务场景中,通过 WorkBuddy 这一面向知识工作者的智能体(Agent)生产力框架,让 AI 与用户共同完成能力的持续进化。

腾讯表示,这是混元重建后训练的第一个模型,也是混元迄今最智能的模型,在复杂推理、指令遵循、上下文学习、代码、智能体等能力及推理性能上实现了大幅的提升。

2026 年 2 月,腾讯混元重建了预训练和强化学习的基础设施,以及模型追求实用性的三个原则:

  • 能力体系化: 不推崇“偏科”,因为即使是代码智能体的单一应用,也涉及推理、长文、指令、对话、代码、工具等多种能力的深度协同。

  • 评测真实性: 主动跳出易被“刷榜”的公开榜单,通过自建题目、最新考试、人工评测、产品众测等多种方式评估和改进模型的“真实战斗力”。

  • 性价比追求:实用性离不开商业合理性,深度协同模型架构和推理框架的设计,大幅降低任务成本,让智能用得起、用得好。

模型发布的同时,腾讯官方也给混元系列换了新的 logo,俨然一副“重新出发”的感觉:

腾讯首席 AI 科学家姚顺雨表示,Hy3 preview 是混元大模型重建的第一步。“我们希望通过这次开源和发布,获得来自开源社区和用户的真实反馈,帮助我们提升 Hy3 正式版的实用性。与此同时,我们也在继续扩大预训练和强化学习的规模,提升模型的智能上限,并通过与腾讯众多产品的深度 Co-Design,持续提升模型在真实场景中的综合表现,并开始探索特色模型能力。”

今年初,在 AGI-NEXT 会议上,姚顺雨就坦言,腾讯仍然是一家 To C 基因更强的公司。因此,腾讯更关心的问题是:如何让今天的大模型真正为用户创造更多实际价值。

他认为,To C 场景里,很多问题的关键并不只是模型变得更大、更强,而是能否拿到更多上下文信息。姚顺雨举例说,像“我今天该吃什么”这样的问题,看似简单,但如果没有足够的上下文,模型很难给出真正贴近用户当下需求的答案。比如天气是否很冷、活动范围在哪里、是否需要考虑伴侣的安排,这些额外信息往往比继续做更大模型、更强强化学习或者更强搜索更重要。

值得注意的是,姚顺雨加入腾讯后的首次署名研究论文也是关于上下文。腾讯混元官网在 2 月发布了姚顺雨团队加入后的首个公开成果 CL-bench,专门测模型能不能从上下文中学到新知识并正确应用。姚顺雨强调不要只盯榜单,更重要的是把系统放进真实世界约束中评估。

腾讯在集团层面也在加速将 AI 融入游戏、广告和社交等核心业务,这体现在了最新财报中:增值服务收入同比增长 14% 至 899.2 亿元;营销服务收入同比增长 17% 至 411.2 亿元;金融科技及企业服务业务收入同比增长 8% 至 608.2 亿元。

公司还围绕大模型能力和 AI 产品矩阵持续推进,WorkBuddy、QClaw 等“小龙虾”系列 Agent 陆续上线。但更让人关注的是财报媒体会上,腾讯宣布混元 3.0 计划于 4 月陆续向外开放。自引入姚顺雨后,腾讯围绕 AI 组织与人才体系进行了一系列密集调整,而这一系列动作的效果一定程度会反映在最新的模型上。

很明显,Hy3 preview 既是符合姚顺雨和腾讯业务理念的模型,也是大众对腾讯的一次检验。

主打全面实用性,Agent 能力大幅提升

根据官方多个测评结果,Hy3 preview 模型能力全面提升。

上下文学习和指令遵循能力

在各种真实的生产与生活场景,理解杂乱冗长的上下文并遵从复杂多变的规则是模型的首要挑战。基于腾讯业务场景的灵感,腾讯混元提出了 CL-bench 和 CL-bench-Life 来创新性地评估模型的上下文学习能力,并在 Hy3 preview 显著地提升了模型上下文学习和指令遵循能力。

复杂推理能力突出,清华数学博士资格考试国内分数最高

复杂推理能力是模型解决各种问题的基础。Hy3 preview 在 FrontierScience-Olympiad、IMOAnswerBench 等高难度理工科推理任务中表现突出,并在最新的清华大学求真书院数学博资考 (26 春)  和 全国中学生生物学联赛 (CHSBO 2025) 中取得优异成绩,展现了可泛化的强推理能力。

代码与智能体提升最为显著,展现出高性价比

代码和智能体是 Hy3 preview 提升最为显著的方向。得益于预训练及强化学习框架的重建和强化学习任务规模的提升,腾讯混元以较快的速度在 SWE-Bench Verified、Terminal-Bench 2.0 等主流代码智能体基准以及 BrowseComp、WideSearch 等主流搜索智能体基准中取得了有竞争力的结果。

在数字世界中,代码关注的是模型在开发环境中的执行能力,搜索则聚焦于开放信息空间中的检索、筛选与整合能力,两者共同决定了模型在复杂智能体场景(例如 OpenClaw)中是否真正具备可用性。Hy3 preview 在 ClawEval 和 WildClawBench 等评测中表现突出,表明我们的智能体能力正在稳步走向全面与实用。

除了公开榜单,腾讯混元还进一步构建了多个内部的评测集,对模型在真实开发场景中的表现进行评估。结果表明,无论是在后端工程任务集 Hy-Backend,贴近真实用户开发交互的 Hy-Vibe Bench,还是高难度软件工程开发任务集 Hy-SWE Max 上,Hy3 preview 均体现出了强竞争力。

比较各个开源模型的大小与智能体综合表现,Hy3 preview 展现出高性价比。

成本大幅降低,腾讯核心业务全面接入

得益于模型和推理框架上的深度协同,以及在推理框架、算子性能、量化算法等全方面优化,整体推理效率提升 40%,Hy3 preview 的成本相比上一代模型大幅下降。

在腾讯云大模型服务平台 TokenHub 上,Hy3 preview 输入价格最低 1.2 元 / 百万 tokens,输入命中缓存价格 0.4 元 / 百万 tokens,输出价格最低 4 元 / 百万 tokens。同时,腾讯云联合混元推出定制的 Hy3 preview Token Plan 套餐,个人版定价最低 28 元 / 月,为 Agent 开发和打造“龙虾”应用的提供更具性价比选择。

而在正式上线之前,Hy3 preview 在腾讯主要 AI 业务进行了产品测试,获得明显正收益。

比如在元宝端,混元与元宝进行了深度 Co-Design。一方面,针对性地提升了模型在意图理解精准度、文本创作质量、深度搜索等硬核指标上的表现;另一方面,对文风、文笔、情商、内容组织和内容专业度上进行了精细化调优。模型与产品的深度协同,为用户带来了更智能且更具“活人感”的交互体验。

在 ima 知识库问答和通用问答两个场景下,Hy3 preview 处理长文的能力出色,特别是检索类任务,在回答信息的准确性、覆盖度和全面性上表现较好。

在 CodeBuddy、WorkBuddy 产品上,Hy3 preview 首 token 延迟降低 54%、端到端时长降低 47%、成功率提升至 99.99%+。实际用户环境中,Hy3 preview 已稳定驱动最长 495 步的复杂 Agent 工作流,覆盖文档处理、数据分析、知识检索、MCP 工具链编排等多样化办公场景。

而在公众号 AI 分身和 AI 客服的场景专项评测中,Hy3 preview 展现出相比 Hy2 更全面的能力升级。新模型在用户意图理解、复杂上下文承接和知识信息组织方面表现更成熟,面对模糊提问、短句追问和多轮对话时,能够更准确地把握用户诉求,并输出更清晰、更稳定的回复。结合知识库、用户记忆与上下文生成回答时更贴合 AI 分身和 AI 客服的角色,过度脑补、主观代入和情绪化表达显著减少,使整体交互体验更贴近“可信、自然、高效”的回复目标。

另外在和平精英 AI NPC 场景评测中,和平精英团队第一时间在 Hy3 preview 上线后基于 AI NPC 场景中完成接入并开展评测,整体表现令人印象深刻。在游戏局外的人设扮演场景中,Hy3 Preview 不仅能够精准理解角色设定,还能针对开放性问题输出高度关联、富有增量价值的内容,带来了更加真实、自然、沉浸的对话体验。而在游戏局内的复杂对战场景中,模型回复节奏贴近真实玩家聊天体验,展现出优秀的稳定性与出色的拟人化扮演能力,整体效果表现亮眼。

在腾讯文档 AI PPT 场景,较上一版本(Hy2)取得了显著进步:生成成功率提升 20%,评测得分提升 10%,同时生成耗时缩短 20%。整体而言,新模型在评测场景中表现优异,在模版选择,色彩匹配,生成大纲,补充内容多个阶段,均体现出优秀的表现,无幻觉,契合主题,视觉效果好。

在 QQ AI 助手小 Q 产品评测中,较上一版本,在长文本首字节时延、整体响应速度与流式输出效率方面显著优化;核心能力上,数学推理表现提升尤为明显,多场景指令遵循与泛化能力进一步增强;在工具调用推理及多轮指代消解方面表现更稳定高效,在 OpenClaw 官方 PinchBench QQ 智能体场景测试中取得突出效果,综合体验实现明显跃升。

目前,Hy3 preview 已在腾讯云、元宝、ima、CodeBuddy、WorkBuddy、QQ、QQ 浏览器、腾讯文档、腾讯乐享等首发上线,微信公众号、和平精英、腾讯新闻、腾讯自选股、腾讯客服、微信读书等多个主线产品也在陆续上线。另外,Hy3 preview 支持接入流行的开源智能体产品,如 OpenClaw、OpenCode、KiloCode 等,并已上架腾讯云大模型服务平台 TokenHub。

InfoQ 有幸提前进行了测试,整体使用下来,一句话总结就是:这是个用理性解决问题的帮手。下面是我们做的五个小测试,包括国外播客整理翻译、研究报告、前端网站搭建、物理理解和 Skill 测试,期间 Hy3 preview 做得好的地方、不好的地方,都非常明显。

InfoQ 实测

英文视频提炼亮点和翻译

第一个小任务,尝试让 Hy3 preview 给英文采访视频提炼核心内容和亮点。这也是我们的日常工作场景之一。

下面是思考过程:

Hy3 preview 无法直接访问我给的链接,于是先尝试了用浏览器自动化工具来访问,过程中会自己尝试安装缺少的工具 agent-browser ,不过安装失败了。于是它改为使用 Python 脚本来获取视频信息,这一次获取成功了。最后基于获取到的视频基础信息,它进一步搜索到了这期播客的 newsletter 页面,并获取到了更详细的介绍。

我让它根据视频内容提炼 10 个关键亮点,它实际是从 newsletter 页面上总结的亮点中选取了一些给我(分别是页面里的第 1-8、10 和 12)。整体来说 Hy3 preview 比较顺利地完成了任务,虽然它和其他模型一样无法直接通过视频链接抓取到内容,但它很务实,不会凭空瞎编一些亮点(我在骂谁我不说🤐)。

下一步,让 Hy3 preview 提取视频字幕文件。

它花了一点时间(差不多 10 分钟),反复尝试多次,最终成功获取到了这个视频的英文字幕文件。中间尝试了不同方法,自动安装所需工具。

思考过程:

我问它获取字幕文件花了多长时间,它混淆成了从一开始给它视频链接到刚才完成获取字幕文件整个过程的总用时,所以给到了 40 分钟的答案。但实际获取字幕文件这一步的时间差不多是 10 来分钟。总体而言反思态度很好,也很会总结经验、给自己打气。

接下来尝试让它将字幕文件中第一段 10 分钟的内容翻译成中文,它耗时 5 分钟后完成翻译,并生成了 markdown 格式的文件可以直接下载。

它这一步依然是通过 Python 脚本的方式来完成的,这一步的思考过程:

不过它的翻译成果不算特别理想,存在几个问题:部分英语词汇可以翻译成中文但它没翻译;前后技术术语不一致;说话人识别还是存在错位情况。

不过平心而论,使用其他模型翻译视频播客的时候我们也经常会遇到类似问题,最终要达到可发布状态都需要进一步人工精调。而且这次由于时间有限,没有对 Hy3 preview 做更多更精细的调教,这也会在一定程度上影响最终效果。

这里附上这个视频访谈开始的第一段 QA,大家可以对比一下。一个是基于 GPT-5.4(Instant)翻译并经过人工润色的结果,一个是混元 3 初步翻译的结果。

  • 混元 3 初步翻译版本:

有一个地方是 GPT-5.4(Instant)明显优于混元 3 的,比如上面那段出现的技术名词 Ormachy,在原版英文字幕文件中就是前后不一致的,同时存在几个不同的错误拼写,但是 GPT-5.4(Instant)可以自动把出现的不同写法全部调整成正确写法 Ormachy,但混元 3 只是忠实地把错词翻译过来了。

“一人公司”报告:全而不细

然后,我们给出了一个 调研“AI 一人公司趋势”并输出一份报告的任务,要求其必须调用浏览器(搜索)、文档整理、数据总结。

提示词如下:

你现在是一个具备真实工作能力的研究型 Agent。你的目标不是基于已有知识生成内容,而是通过主动调用工具,完成一次完整的“AI 一人公司(One Person Company, OPC)趋势调研”,并交付一份结构清晰、信息可靠的研究报告。

任务目标:

调研“AI 一人公司趋势”,并输出一份可直接阅读和使用的分析报告。

强制要求(必须遵守):

1. 必须使用浏览器进行真实搜索,获取最新信息(不可仅依赖已有知识)

2. 必须对多来源信息进行整理、对比与归纳

3. 必须对关键数据进行提取和总结(如比例变化、融资情况、案例数据等)

4. 最终输出一份结构化报告,而不是零散内容

执行流程(必须按顺序执行):

第一步:调研规划

- 明确本次调研的核心问题(例如:OPC 是否趋势性增长、哪些人群受益、商业模式是什么等)

- 给出搜索关键词(中英文)

- 说明你将重点查找的信息类型(数据、案例、观点、公司实践等)

第二步:信息搜索(必须调用浏览器)

- 至少进行 3-5 轮不同角度的搜索

- 覆盖:行业数据、真实案例、公司/平台观点、投资/融资信息

- 每次搜索需说明:为什么搜、搜到了什么、是否可信

第三步:信息筛选与整理

- 去除重复或低质量信息

- 标记关键信息来源(例如报告、公司、媒体、个人观点)

- 将信息按主题归类(如:趋势、案例、商业模式、风险等)

第四步:数据与结论提取

- 提取关键数据(如占比变化、增长趋势、变现情况)

- 总结至少 3-5 个“可被验证的事实”

- 总结至少 3 个“趋势判断”

第五步:结构化报告输出

最终报告必须包含以下结构:

1. 背景与现象(AI 一人公司为何出现)

2. 核心趋势(是否在增长、增长逻辑是什么)

3. 典型案例(真实个人/公司案例)

4. 商业模式与赚钱路径

5. 谁在受益(人群分层)

6. 风险与限制(如平台依赖、可复制性问题)

7. 未来判断(短期红利 vs 长期结构)

执行要求:

- 每一步都要说明“你在做什么”和“为什么这么做”

- 不允许跳过搜索直接总结

- 不允许只给观点,必须有事实或案例支撑

- 如果信息存在冲突,需要指出并分析原因

- 优先使用最近 1-2 年的信息

输出要求:

- 语言清晰、逻辑连贯

- 信息密度高,但不要堆砌

- 可以直接作为一篇行业分析报告阅读

现在开始执行:先输出第一步【调研规划】,不要跳步。

输出报告如下:

读者可以复制链接查看完整版:https://codebuddy.work/agents/share/viukYMtcJxAjBEi3N8E3dPmVO4Dqv43uZ17RjtKCOHMkCbCeu0bPptrbzVbE6Mb_?platform=workbuddy

整体给人感觉:这是非常全面的一份报告,只是细节展开不够,但对于想要大概了解“一人公司”情况的读者来说是可以快速掌握相关信息的。

在准确性方面,我们随机抽检了两组数据,第一组数据:“2023-2024 年澳大利亚无雇员企业同比增长 4.9%,新增 78144 家”,在搜索后可以找到出处,数值引用也正确。

再随机抽检这个案例:“动画领域创业者可单人统筹 42 分钟动画,28 天完成传统 10 人团队的工作量”,结果也正确。

顺便让它把 md 格式转成 PDF,它也顺利完成了任务。

可见,在研究报告这块,Hy3 preview 信息搜集处理的准确度是不错的。不过,现在深度报告这块的竞争力或在数据上,近期 Kimi、千问等都添加了专业数据库来生成报告。

AI 新闻聚合网站:基本可用,细节待完善

接下来再给它一个任务:从零做一个“AI 新闻聚合网站”。在调用了 31 个工具、产生了 63 条过程消息后,Hy3 preview 成功生成了一个 AI 新闻聚合平台,如下图:

这是 Hy3 preview 自主选择的技术栈,还附了相关解释,告诉用户为什么这样选。在将逻辑和开发步骤讲清楚后,模型才开始正式执行。

期间,我们上传了一个 Excel 表格,让它读取各 sheet 里的新闻源,它成功读取并给出了一些意见,比如全是英文网站可能错过国内企业消息(然后自己在抓取时候加入了国内网站)。不过,读取也出现了一些问题,比如一个子 sheet 里的 31 条新闻源,其显示只读取了 3 个,数量差有些大,也导致新闻抓取过度依赖某一单一网站。

这次测试中,Hy3 preview 也展现了自己的 debug 能力。在任务完成后,打开网页出现了下面问题,告诉它后,它开始检查问题,最后顺利修复。

成品检验

首先是抓取时间问题,点击一个显示“4 分钟前”的新闻,打开原链接后新闻显示的时间是 2025 年 1 月 31 日。

当然生成的聚合网站上也有最新的消息(如下),但在明确要求“最新新闻优先展示”的情况下,整个排序依然错乱。

时间排序问题它自己在测试网页中也发现了,但最后呈现还是出现了问题。这种无法准确修改后呈现的问题,还包括在要求去掉某一个新闻源后其依然引用等。

另外,打开阅读的整个视觉效果也不太好,这可能也是为什么在任务完成后,提示下一步可以做视觉优化的原因吧。

整体下来,现在生成网页的效果已经比去年好了很多,但要符合用户者心意、做到产品级别性能,比如实时刷新、话题精准、抓取新闻量更大等,还需要更多投入精力。但可以预想,企业官网等要求不高的场景完全可以用,完成程度会不错。

高难度 STEM 仿真模拟

接下来的任务是通过调用 terminal 技能、使用 uv 管理虚拟环境,在本地编写 Python 脚本求解 Lorentz 力方程,并产出 3D 轨迹图。这是官方给的一个案例,我们进行了复现。最终,在经过 22 个工具调用、产生 55 条过程消息后,产出下图:

这次,我们附上模型的思考过程:

可以看出,Hy3 preview 具有一定抽象通用方法的能力,在基本物理实验处理上,知道带电粒子轨道问题需先处理尺度分离、可视化之前要检查能量守恒和周期,理解视觉好看不等于物理上可信。不过,目前 WorkBuddy 还未像爱马仕 Hermes 那样会自动沉淀未来可复用的 skill。

Skill 测试

接下来我们再来测测它加载和执行 skill 的能力如何。我们把已经写好的一个文案 Skill,丢给它学习,并通过这篇文章的内容让它写一下传播文案,看看效果如何,过程如下:

完整思考过程如下,Hy3 Preview 先快速总结了文章的内容和我的诉求,然后抓取文章的核心信息和关键字(甚至包含了传播转化动作与品牌露出),并按照 Skill 的规范去生成文案。生成之后先检查字数、符号使用规范等,最后有重新对照了一下原文内容去确保生成的文案信息准确,验证之后给我交付了结果。

最终生成的传播文案如下:

结果来看,关键信息基本都抓取到了,也符合 Skill 预设的风格和字数要求,唯一欠缺的可能是不同风格版本文案内容的多样性不太够。但是如果每类文案只选取 1 条使用,倒也没啥毛病。尤其是给完文案后它还自查并展示了标签使用规则、字数以及版本风格,这一点好评。

小结

整体体验下来,我们能感觉到,当前 Hy3 Preview 在任务执行过程中,对于用户需求的实施非常精准且务实,不会存在超出需求之外的“瞎编”,并且遇到问题会主动寻找其他解决方法,自动调用各种工具,直到解决问题。

好处是当我们把明确且具体的需求发送给它后,大概率能获得一个不太出错的答案,一致性也相对更好;坏处是如果当你给到一些抽象、需要发散和创意的需求时,可能会获得一份让人觉得有点“一板一眼”的内容,缺乏多样性和想象力,也不太能进入灵感碰撞的“心流时刻”,但这或许也是 Hy3 下一步会重点增强的地方,毕竟它现在说到底还只是个语言模型,而非多模态。当你有一个需要严谨执行的任务时,你能够第一时间想到 Hy3,这本身也是一种认可。

*InfoQ 策划编辑 Potatooo 对本文亦有贡献。

鸿蒙智行发布多款车型

4 月 22 日,华为鸿蒙智行召开春季新品发布会,推出了多款新车或升级版。

其中,问界 M6 定位新锐智慧 SUV,起售价 25.98 万元。新车标配 896 线激光雷达,提供七种外观配色和多种内饰方案,车身尺寸为 4960×1985×1736mm,轴距 2950mm,风阻系数 0.239cd。

车内采用全新人机工学座椅,前排支持零重力模式,二排配备通风、加热及电动调节功能,并搭载 17.3 英寸娱乐屏。纯电版配 100kWh 电池包,CLTC 续航最高 760km;增程版综合续航最高 1605km。全系搭载华为乾崑智驾 ADS 4.1、高阶底盘系统及多项安全结构设计,提供 35 处收纳空间和 202L 前备箱等配置。来源

产品外观图,图片来自新闻源

尚界 Z7 与 Z7T 正式推出,两款车型起售价分别为 21.98 万元和 22.98 万元。新车提供多种车色、轮毂与内饰组合,车身尺寸为 5036×1976×1465mm,轴距 3000mm,配备随动屏、鸿蒙 ALPS 健康座舱 2.0 及主副驾零重力座椅等配置。

两款车型均搭载华为巨鲸 800V 电池平台,提供单电机与双电机版本,最高时速可达 242km/h,续航最长 905km。新车标配 896 线双光路激光雷达及全维防碰撞 4.0 系统,支持多场景感知与避障能力。后备箱容积最高可扩展至 1694L,并配备前备箱与多项储物设计。来源

产品外观图,图片来自新闻源

智界 V9 在鸿蒙智行春季发布会上宣布开启小订,预售价格 39.98 万元起,支付 5000 元意向金可抵扣 10000 元尾款。

该车型基于华为途灵 MPV 定制平台打造,采用前双叉臂与后 H 臂多连杆悬架,全系标配后轮转向,最小转弯半径 5.35 米。车内配备 12.3 英寸仪表、双 17.2 英寸中控屏及 21.4 英寸吸顶屏,并提供全域 NFC、静音玻璃及独立音区技术。二排零重力座椅支持多种模式,车内共设 52 处储物空间。车辆搭载恒冷智能冰箱与车载制氧机,支持多温区调节。

安全方面,全系标配 13 个安全气囊及多项结构强化设计。首批展车已陆续到店。来源

拓展观看:老麦提前体验智界 V9

大型豪华 SUV 问界 M9 也正式开启预订,提供标准版与 Ultimate 领世加长版两款车型,预售价分别为 49.98 万元起和 66.98 万元起。

标准版车身尺寸为 5285/2026/1845mm,轴距 3125mm;加长版为 5402/2026/1845mm,轴距 3236mm。

新车提供 4 座、5 座及 6 座布局,支持 360° 观影系统。车辆基于最新途灵全主动底盘平台打造,采用双子座全冗余架构及 30 余项冗余设计。动力系统为华为智擎双碳化硅电驱,最大功率超 900 马力,并首发华为巨鲸电池平台。

智能驾驶方面搭载 6 激光雷达矩阵及 ADS 5 系统,同时配备全彩智能灯光投影、车语系统 3.0 与「天地网联」通信能力。来源

产品外观图,图片来自鸿蒙智行


Framework 推出多款新品

4 月 22 日,模块化电脑制造商 Framework 推出了多款新硬件。

新款的 Framework Laptop 13 Pro 笔记本电脑延续了该企业产品的模块化设计,拥有完整的 Linux 支持(提供预装 Ubuntu 选项),定位「为 Linux 用户打造的 MacBook Pro」。处理器核心是第三代英特尔酷睿 Ultra Panther Lake 处理器,可选 Ultra 5 325、Ultra X7 358H和Ultra X9 388H(此外还有 AMD 锐龙 AI 300 可选)。上述三款处理器中的后两款仅支持 LPDDR5X,而为了兼顾内存的可更换性,Framework 在新机型上导入了 LPCAMM2 内存模组,运行在 7467MT/s 上。同时,Framework Laptop 13 Pro 提供 PCIe Gen5 M.2 2280 SSD 盘位;搭载一块性能优化的 13.5" 2880 × 1920 30~120Hz 的 LTPS LCD 哑光触控屏,色域覆盖 100% sRGB,亮度可达 700nits。该机拥有全 CNC 铝合金机身、1.5mm 键程键盘、触觉触控板、侧置杜比全景声扬声器系统、1000 循环寿命 74Wh 电池、100W GaN 电源适配器。价格方面,准系统 1199 美元起。来源

产品外观图,图片来自新闻源

另一项新品是针对 Laptop 16 推出 OCuLink 8i 开发套件,该套件可将 PCIe Gen4 ×8 DGFF 转换为标准的 OCuLink 8i 接口,外接高速 PCIe 外设(如外置显卡)时无需承担借助雷电等协议产生的性能损失。Framework Laptop 16 也因此成为首款可提供 OCuLink 8i 的笔记本电脑。开发套件包括 OCuLink 适配器板、图形模块 OCuLink 底座、PCIe OCuLink 扩展坞,方便用户加装各种扩展卡、复用现有 Framework 独立显卡模块。

此外 Framework 还在发布会上预览了无线触控板键盘,这款产品由该企业与其长期键盘合作伙伴光宝 (Lite-On) 联手打造,以单体同时提供键盘和光标输入功能。这款键盘整体纤薄强韧,底部为「透明探索」透视设计。键盘部分键距 19mm、键程 1.5mm;集成 68.8×85.6 (mm) 精准触控板,支持多指手势。其基于 Nordic nRF54LM20A 主控,搭载开源 ZMK 固件,支持 USB-C 有线连接并可通过蓝牙和 2.4GHz 无线连接至 4 款设备。来源

产品外观图,图片来自新闻源


海信发布小墨 E5S 系列电视新品

4 月 22 日,海信发布小墨 E5S 系列电视新品,包括主打 RGB-Mini LED 技术的小墨 E5S Pro,以及定位 Mini LED 电视升级款的小墨 E5S。两款产品重点升级了显示、控光、抗反光、音响和智能等方面的交互能力。

其中,小墨 E5S Pro 采用 RGB-Mini LED 显示技术,支持 RGB 三原色直出,官方称可实现 100% BT.2020 色域、100% 色纯度和 89% 色彩体积,并从发光源头降低 42% 有害蓝光波段,整机功耗下降 30%。新机最高配备 4680 个玲珑控色分区,亮度达到 XDR Pro 3000nits,并搭载信芯光色同控 AI 画质芯片,支持三维光色同控、自然光晕优化和低清片源接近 4K 的重构显示。

屏幕方面,小墨 E5S Pro 采用墨晶屏 2.0,整机反射率低至 2.6%,支持原生 4K 180Hz 刷新率和 330Hz 倍频模式,并配备 HDMI 2.1。音响部分与帝瓦雷联合打造 2.1.2 声道系统,峰值功率 165W,内置独立低音炮。小墨 E5S 则配备 1560 个背光分区、4200nits 峰值亮度,同样搭载墨晶屏 2.0、信芯 AI 画质芯片、帝瓦雷音响和原生 4K 180Hz 高刷。

产品外观图,图片来自海信

价格方面,小墨 E5S Pro 补贴后售价为 55 英寸 4499 元、65 英寸 5999 元、75 英寸 7799 元、85 英寸 8999 元、100 英寸 14999 元;小墨 E5S 补贴后售价为 55 英寸 3999 元、65 英寸 4999 元、75 英寸 6499 元、85 英寸 7799 元、100 英寸 12999 元。两款新品均可享受以旧换新补贴及首发期安装、质保等权益。来源


雷蛇推出帝王蝶 Atlas Pro 玻璃鼠标垫

4 月 22 日,Razer 公司宣布推出帝王蝶 Atlas Pro 专业版玻璃鼠标垫。这一产品率先将玻璃游戏鼠标垫的整体厚度降低到 2mm 以内,其中玻璃层厚度为 1.1mm。帝王蝶 Atlas Pro 专业版长宽为 500mm × 400mm,拥有全覆盖防滑橡胶底座和 CNC 精铣圆角。其玻璃表面摩擦低,覆盖耐脏保护涂层,莫氏硬度达到 9H,经过 2μm 微纹理蚀刻,能更好满足鼠标光学传感器的追踪需求。产品售价为 1199 元。来源

产品外观图,图片来自新闻源


SpaceX 获得收购 Cursor 的优先权

近期,SpaceX、人工智能公司 xAI 和社交媒体平台 X 的业务组合即将进行首次公开募股(IPO),且正在和 Cursor 目前正紧密合作,致力于打造全球顶尖的代码开发与知识工作类人工智能。与此同时,Cursor 将授予 SpaceX 权利,允许其在今年晚些时候以 600 亿美元收购 Cursor,或就双方合作支付 100 亿美元。来源


少数派的近期动态

你可能错过的好文章

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

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

    Matrix 首页推荐 

    Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。

    文章代表作者个人观点,少数派仅对标题和排版略作修改。


    作为一个经常跟视频打交道的人,我一直有一个小烦恼:想快速确认一个视频帧率是 25 还是 60,却没有顺手的方法。

    macOS 自带的「显示简介」(Cmd+I)能看分辨率,但没有帧率。VLC、IINA 要先把视频打开才能看到信息。MediaInfo 信息很全,但界面全英文、打开慢,为了看个帧率要走好几步。

    这个需求很小,但每次都让我停下来。于是我做了这个工具。

    效果是这样的: 在 Finder 里右键任意视频文件 → 快速操作 → 查看视频信息,立刻弹出:

    右键——快速操作
    视频的常见信息

    分辨率、帧率、编码格式、色彩信息、时长、文件大小,一次全出来。

    安装方法

    1. 前往 GitHub Release 页面,下载 查看视频信息.pkg
    2. 双击安装,输入管理员密码
    3. 完成,不需要任何其他软件

    工具基于 macOS 内置的 AVFoundation 框架读取视频信息,零外部依赖,不需要安装 ffmpeg 或任何命令行工具。

    设置快捷键(强烈推荐)

    设置完之后,选中视频按一个快捷键就能看信息,几乎可以替代原生 Cmd+I。

    1. 系统设置 → 键盘 → 键盘快捷键 → 服务
    2. 在「文件和文件夹」下找到查看视频信息
    3. 双击右侧,按下快捷键(推荐 Cmd+Shift+I,不与系统冲突)

    支持格式

    MP4、MOV、MKV、AVI 等主流格式均支持。编码识别包括 H.264、H.265/HEVC、AV1、Apple ProRes 全系列。有色彩元数据的视频(如 HDR、Log 素材)还会额外显示色域和动态范围信息。

    系统要求

    macOS 13 或更高;仅支持 Apple silicon 设备。

    工具完全免费,代码开源在 GitHub,有问题或建议欢迎提 issue。

    作者注:App 与文章全部由 Claude 完成。

    > 关注 少数派小红书,感受精彩数字生活 🍃

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