2026年2月

VMware Fusion 25H2u1 OEM BIOS 2.7 - 在 macOS 中运行 Windows 虚拟机的最佳方式

VMware Fusion 25H2u1 原版 App 中集成 OEM BIOS

请访问原文链接:https://sysin.org/blog/vmware-fusion-oem/ 查看最新版。原创作品,转载请保留出处。

作者主页:sysin.org


2026 年 2 月 27 日 25H2u1 版本发布。

VMware Fusion 25H2

2024 年 11 月 11 日,VMware by Broadcom 宣布 VMware Fusion 和 Workstation 现在对所有用户免费。

适用于 Mac 的桌面 Hypervisors

在您喜欢的环境中自由地提高生产力、敏捷性和安全性。IT 专业人士、开发人员和企业选择 VMware Fusion 桌面管理程序以获得无与伦比的操作系统支持、坚如磐石的稳定性和高级功能 (sysin)。借助 Fusion Player 和 Fusion Pro,可以在 Mac 上将几乎任何操作系统作为 VM 运行,以在本地桌面上进行开发、测试、游戏甚至模拟生产云。

  • 在 Mac 上运行几乎任何操作系统

    在 Mac 上运行 Windows 仅仅是个开始。从数百种受支持的操作系统中进行选择,从云就绪 Linux 发行版到 Intel 或 Apple silicon Mac 上的最新 Windows 11,所有这些都无需重新启动。

  • 改进 vSphere 连接

    连接到远程 vSphere 和 ESXi 服务器以启动、控制和管理 VM 和物理主机 (sysin),提高对数据中心和主机拓扑的可见性。通过拖放操作轻松传输 VM。

  • 设计和演示软件解决方案

    凭借在单个 Mac 上运行整个虚拟云堆栈的能力,您可以实时演示完整的解决方案,并通过安全回滚点返回到有用的配置。

此版本特性说明

VMware Fusion 25H2u1 原版 App 中集成 OEM BIOS

VMware Dell 2.7 BIOS EFI64 ROM

💡 特别提示:这里的 OEM BIOS 是软件技术,并非硬件的 BIOS,可适用于任何品牌的计算机以及任意兼容机。标题中的 Dell 只是采用了最流行的 Dell 产品技术方案。

来自上游最新的 OEM BIOS/EFI64,现已更新支持 Windows Server 2025。

BIOS.440 & EFI64 - Dell 2.7 OEM BIOS: NT 6.0 (Vista/Server 2008), NT 6.1 (7/Server 2008 R2), NT 6.2 (Server 2012), NT 6.3 (Server 2012 R2), NT 10.0 (Server 2016/Server 2019/Server 2022/Server 2025)

Windows Server OVF 系列:

其他 OVF:Rocky Linux 9.5 x86_64 OVF (sysin) - VMware 虚拟机模板Ubuntu 24.04 LTS x86_64 OVF (sysin) - VMware 虚拟机模板,更多请在本站搜索 “OVF”。

利用 VMware Fusion®,无需重新引导,即可最方便、最快捷和最可靠地在 Mac 上运行 Windows 及其他基于 x86/ARM 的操作系统。

系统要求

  • 硬件

    Intel 或 Apple silicon Mac 机型。

    • 支持 macOS 15 Sequoia 或更高版本的 Mac 机型。
  • 软件

    • macOS 15 Sequoia
    • macOS 26 Tahoe

VMware Fusion 25H2u1 新增功能

VMware Fusion Pro 25H2u1 | 26 FEB 2026 | Build 25219963

VMware Fusion Pro 25H2u1 包含安全修复和缺陷修复。

  • 重新启用了 “Check for updates” 选项,用于检查是否有新版本发布。
  • 此版本修复了 CVE-2026-22715。有关该漏洞及其对 Broadcom 产品影响的更多信息,请参阅 VMSA-2026-0002

已解决的问题

运行虚拟机会随着时间推移增加内存占用

长时间运行虚拟机可能会逐渐增加其内存占用。此外,调整窗口大小以及在屏幕上绘制内容 (sysin),也可能会逐步增加用于渲染的预留内存。本版本已解决该问题。

在虚拟机显示设置中切换“为 Retina 显示器使用完整分辨率”选项时,鼠标指针尺寸变大

该问题已在本版本中解决。

在使用 Retina 与非 Retina 显示器的多个来宾操作系统中观察到鼠标指针像素偏移

该问题已在本版本中解决。

下载地址

VMware Fusion 25H2u1 OEM BIOS Version


官方版本:VMware Fusion 25H2u1 for Mac - 领先的免费桌面虚拟化软件

更多:VMware 产品下载汇总

🎉 新年开工享好礼 · 懒猫微服送给你 🎉

参与活动,即可把 懒猫微服 和开年好礼带回家!

全球硬盘内存涨价,懒猫微服有备货,超值最低价格购买:

加 v: 17820700354 , 13986165101 , 18696164198 , 18627819467 , 18272119304


懒猫微服,自带内网穿透和沙箱 100% 隔离!畅玩 OpenClaw ,新年超值 0 元购!!!


🎁 抽奖活动详情

🗓 活动时间

共两轮活动
时间:2 月 27 日 - 3 月 6 日

奖品总价值约 11300 元


🏆 奖项设置

一等奖

  • 价值 5499 元
  • 7 盘位新款「懒猫微服 LC-03 」 × 1

二等奖

  • 价值 300 元「公牛小电舱插座」
  • 「懒猫微服 LC-03 」 499 元优惠券 × 3

三等奖

  • 价值 99 元懒猫文化 T 恤
  • 「懒猫微服 LC-03 」 499 元优惠券 × 6


📌 分轮活动说明

第一轮

  • 活动时间:2 月 27 日 - 3 月 3 日
  • 开奖时间:3 月 3 日 20:00

奖品:

  • 二等奖:


    • 价值 235 元「公牛小电舱插座」
    • 「懒猫微服 LC-03 」 499 元优惠券 × 2
  • 三等奖:


    • 价值 99 元懒猫文化 T 恤
    • 「懒猫微服 LC-03 」 499 元优惠券 × 3


第二轮

  • 活动时间:3 月 3 日 - 3 月 6 日
  • 开奖时间:3 月 6 日 20:00

奖品:

  • 一等奖:


    • 价值 5499 元 7 盘位新款「懒猫微服 LC-03 」 × 1
  • 二等奖:


    • 价值 235 元「公牛小电舱插座」
    • 「懒猫微服 LC-03 」 499 元优惠券 × 1
  • 三等奖:


    • 价值 99 元懒猫文化 T 恤
    • 「懒猫微服 LC-03 」 499 元优惠券 × 3


📜 抽奖规则(必看)

1.在评论区评论

懒猫微服,自带内网穿透和沙箱 100%隔离,畅玩 OpenClaw ,新年超值 0 元购!!!

2.扫二维码进入懒猫微服交流群


🎯 抽奖方式

  • 根据名单统计
  • 使用懒猫微服商店抽奖工具开奖
  • 公平公正
  • 结果第一时间公布在微信群

(需扫码进群)


🎁 领奖方式

  • 通过微信群联系工作人员领奖
  • 中奖后进群无效
  • 需提前进入任意懒猫微服交流群

(需扫码进群)


⚠️ 特别提醒

  1. 必须进入交流群才具备中奖资格
  2. 中奖用户需提交:
    • 推特参与活动截图
    • 推特主页截图
  3. 优惠券仅限小程序购买
  4. 不与京东分期优惠叠加
  5. 不适用于 LC-03 基础款

另外:

  • 仅剩最后 5 台老款「懒猫微服 LC-02 」秒杀价
  • 评论区或私信扣 1 获取优惠价格


🛒 购买渠道与优惠

1️⃣ 京东购买

搜索「懒猫微服」享受京东免息分期:

  • 32G + 2T:6 期免息
  • 48G 无盘:6 期免息


2️⃣ 全新系列上线

懒猫 AI 算力舱已上线
评论区或私信扣 1 获取优惠价格


3️⃣ 懒猫零元购计划

  • 每移植一款应用到懒猫商店:奖励 100 元红包
  • 原创应用奖励翻倍
  • 撰写一篇攻略:奖励 50 元红包
  • 多移多得,无上限


🔥产品亮点

最近懒猫商店的 OpenClaw 已经被大家玩出花样,真正的 7 × 24 小时个人 AI 助手

  • 睡觉时帮你整理收件箱
  • 喝咖啡时帮你调研竞品
  • 灵感枯竭时帮你搜集素材

🧩 应用生态

  • 懒猫商店拥有 3200+ 应用开箱即用
  • 提供 1000+ 详细攻略
  • 满足娱乐与办公的全方位需求

这些应用与攻略绝大多数来自用户共创:

  • 上传应用即可获得现金红包奖励
  • 原创应用奖励加倍
  • 撰写攻略可获得现金奖励

截至目前:

  • 已有 100+ 用户上传应用
  • 排名最高用户累计获得 6w+ 现金奖励

诚邀您加入懒猫社区,实现双赢:

  • 轻松实现零元购
  • 可作为日常兼职增加额外收入

坐标江西,
记得小时候大多数时候都是 9 ,10 点到亲戚家,会先吃个点心,聊到中午吃午饭,下午一般会呆到三四点才陆续回去,现在去拜年基本上都是 11 点多到,吃过午饭不到半小时就陆续回去了。
你们那里也是这样吗。

今日速览

  1. Koidex:快速检查代码包和 AI 模型是否安全。
  2. ChatPal:用 AI 对话练习口语,轻松提升流利度。
  3. Rover:一键嵌入脚本,让网站变身智能助手。
  4. gpt-realtime-1.5:语音助手更听话,执行指令更可靠。
  5. Tessl:优化 AI 代理技能,写代码效率翻三倍。
  6. IronClaw:开源安全方案,保护 API 密钥免遭泄露。
  7. Zavi AI:语音直接操控应用,打字编辑全搞定。
  8. OpenClawCity:AI 代理的虚拟城市,在这里创作生活。
  9. Hush:屏幕分享时一键模糊桌面,保护隐私不尴尬。
  10. RankingSuperior:分析搜索空白,帮你产出权威内容。


1. Koidex

担心安装的代码包或 AI 模型有风险?Koidex 就是你的安全卫士,能在 IDE 里实时扫描,确保一切安心。

  • 支持 VS Code、JetBrains、npm 和 Hugging Face 平台
  • 提供实时背景扫描,无需复杂设置
  • 完全免费使用,覆盖扩展、代码包和 AI 模型
  • 集成 Cursor 和 Windsurf,提升开发体验

热度:🔺384

Koidex

访问官网 Product Hunt 详情


2. ChatPal

想练口语却找不到陪练?ChatPal 用 AI 模拟真实对话,帮你告别哑巴英语,越说越自信。

  • 提供真实场景的对话练习,贴近实际使用
  • 给予个性化反馈,针对性提升流利度
  • 与 AI 助手自然交流,增强语言自信心
  • 专注于口语技能,简化学习过程

热度:🔺381

ChatPal

访问官网 Product Hunt 详情


3. Rover by rtrvr.ai

网站访客转化率低?Rover 就像个虚拟助手,嵌入脚本就能自动引导用户,轻松完成注册、购物等操作。

  • 通过简单脚本标签集成到网站
  • 自动化工作流程,如填写表单和点击按钮
  • 用对话方式将访客转化为客户
  • 支持语音交互,提升用户体验

热度:🔺313

Rover by rtrvr.ai

访问官网 Product Hunt 详情


4. gpt-realtime-1.5 by OpenAI

语音助手老是听错指令?这个升级版模型更严格遵循命令,让实时 API 工作流更顺畅。

  • 增强指令执行能力,减少错误率
  • 支持工具调用,扩展应用场景
  • 提升多语言准确性,覆盖更广用户
  • 优化语音工作流程,提高可靠性

热度:🔺281

gpt-realtime-1.5 by OpenAI

访问官网 Product Hunt 详情


5. Tessl

开发 AI 代理总被 bug 困扰?Tessl 帮你评估和优化技能,专注构建智能体,效率直接拉满。

  • 评估智能体技能,快速定位问题
  • 优化代码质量,减少错误和幻觉
  • 无需注册,直接在线使用
  • 专注于开发者效率提升

热度:🔺232

Tessl

访问官网 Product Hunt 详情


6. IronClaw

用 OpenClaw 担心安全漏洞?IronClaw 作为开源替代,把凭证锁进加密保险库,AI 根本碰不到。

  • 提供开源安全方案,替代 OpenClaw
  • 凭证存储在加密 TEE 内,防止泄露
  • 仅批准端点能在网络边界注入凭证
  • 工具在 Wasm 沙箱运行,扫描出站流量

热度:🔺166

IronClaw

访问官网 Product Hunt 详情


7. Zavi AI - Voice to Action OS

厌倦了打字?Zavi 让你用语音直接操控应用,从编辑文本到发邮件,一句话搞定。

  • 支持多平台,包括 iOS、Android、Mac、Windows 和 Linux
  • 免费使用,超越简单转录,能执行操作
  • 自然对话处理,语法规范无填充词
  • 集成 20 多个平台,如 Gmail、Slack、GitHub

热度:🔺165

Zavi AI - Voice to Action OS

访问官网 Product Hunt 详情


8. OpenClawCity

AI 代理也能有“生活”?在这个持久 2D 城市里,它们创作艺术、合作发展,打造独特文化。

  • 为 AI 代理提供持续性虚拟城市环境
  • 通过 API 调用注册,获得角色和 JWT
  • 代理可以漫步、进入工作室创作内容
  • 支持合作与身份发展,全天候运营

热度:🔺151

OpenClawCity

访问官网 Product Hunt 详情


9. Hush

屏幕分享时桌面太乱?Hush 一键模糊背景,保护隐私的同时让演示更专业。

  • Mac 菜单栏应用,快速隐藏桌面杂乱
  • 按热键模糊图标、Dock 和壁纸
  • 提供桌面模式和专注模式两种选项
  • 保持应用窗口可见,确保演示流畅

热度:🔺131

Hush

访问官网 Product Hunt 详情


10. RankingSuperior

内容产出难抓重点?这个工具分析搜索空白,帮你打造专业内容,轻松提升排名。

  • 分析顶尖结果,找出内容遗漏点
  • 将空白转化为问题,指导文章创作
  • 从 PDF、邮件等多渠道丰富内容
  • 提供关键词数据、内容日历和一键发布

热度:🔺122

RankingSuperior

访问官网 Product Hunt 详情

最近深度使用 CC / Codex / Gemini 这类 code agent/CLI ,经常同时跑好几个任务。现在的瓶颈不是 Agent 不够聪明,而是在人,具体的:

  • 任务分散在多个 terminal 窗口/标签里
  • 我经常忘了“我开了哪些任务、在哪个窗口开”的
  • 为了找任务要不停切窗口,上下文切换很累

我想要的工具很简单:

  • 有一个地方能看到我现在跑的所有会话/任务(最好是 Web UI ,这样可以在移动设备操作,但不是必须)
  • 能快速切回某个任务继续操作
  • 不需要队列/审计/沙箱/编排,不需要接管 agent ,只要帮我“集中管理会话/任务”就行
  • 开源优先

大家有推荐的工具/工作流吗?或者更适合管理多任务终端会话的方案。

问题背景

Java 的 8 种基本数据类型是语言基础中的基础,但实际开发中的很多诡异 Bug 恰恰来源于对基本类型细节的忽视——浮点精度误差、整数静默溢出、类型自动提升等。本文整理了最常见的问题和对应的解决方案。

8 种基本类型一览

整数: byte(1B) → short(2B) → int(4B) → long(8B)
浮点: float(4B) → double(8B)
其他: boolean(?B)   char(2B)

选型原则:整数默认 int,超 21 亿用 long;小数默认 double,金额用 BigDecimal

问题 1:浮点运算不精确

现象

System.out.println(0.1 + 0.2);        // 0.30000000000000004
System.out.println(0.1 + 0.2 == 0.3); // false

原因

IEEE 754 标准下,0.1 在二进制中是无限循环小数,存储时被截断产生误差。

解决方案

方案 A:BigDecimal(推荐用于金额)

BigDecimal a = new BigDecimal("0.1"); // 必须用 String 构造
BigDecimal b = new BigDecimal("0.2");
System.out.println(a.add(b)); // 0.3

⚠️ new BigDecimal(0.1) 会引入 double 的误差,不要用。

方案 B:epsilon 比较(科学计算场景)

double a = 0.1 + 0.2;
double b = 0.3;
System.out.println(Math.abs(a - b) < 1e-9); // true

方案 C:long 存分(电商常用)

long priceInCents = 1999; // 19.99 元 = 1999 分
long total = priceInCents * 3; // 5997 分 = 59.97 元

问题 2:整数溢出无异常

现象

int max = Integer.MAX_VALUE; // 2147483647
System.out.println(max + 1); // -2147483648
// 没有任何异常!

原因

Java 整数运算遵循二进制补码的环绕语义。溢出时高位截断,不抛异常。

解决方案

// Math.xxxExact 系列方法,溢出时抛 ArithmeticException
int result = Math.addExact(Integer.MAX_VALUE, 1); // 抛异常
int product = Math.multiplyExact(100000, 100000); // 抛异常

// 或提前用 long
long safe = (long) 100000 * 100000; // 10000000000L

问题 3:字面量类型不匹配

现象

float f = 3.14;           // ❌ 编译错误
long n = 10000000000;     // ❌ 编译错误

原因

  • 小数字面量默认是 double,赋给 float 是窄化
  • 整数字面量默认是 int,超 int 范围编译器不认

解决方案

float f = 3.14f;               // 加 f 后缀
long n = 10_000_000_000L;      // 加 L 后缀(推荐大写)

问题 4:byte/short 运算提升

现象

byte a = 50, b = 60;
byte c = a + b; // ❌ 编译错误:incompatible types

原因

JLS 规定 byteshortchar 参与算术运算时自动提升为 int

解决方案

int c = a + b;            // 用 int 接收
byte d = (byte)(a + b);   // 或强制转换(注意溢出风险)

问题 5:局部变量未初始化

现象

int x;
System.out.println(x); // ❌ 编译错误

原因

字段(实例变量/类变量)有默认值(数值 0,boolean false,引用 null),但局部变量没有。

解决方案

声明时或使用前赋值:

int x = 0;
System.out.println(x); // ✅

问题 6:数组打印和比较

现象

int[] a = {1, 2, 3};
System.out.println(a);       // [I@6d06d69c
System.out.println(a == b);  // false(即使内容相同)

解决方案

System.out.println(Arrays.toString(a));  // [1, 2, 3]
System.out.println(Arrays.equals(a, b)); // true

默认值速查

类型默认值类型默认值
byte0float0.0f
short0double0.0d
int0booleanfalse
long0Lchar'\u0000'
引用类型null

仅限字段。局部变量无默认值。

Arrays 工具类速查

import java.util.Arrays;

int[] arr = {5, 3, 8, 1};

Arrays.sort(arr);                            // 升序排序(原地)
Arrays.binarySearch(arr, 5);                 // 二分搜索(需已排序)
Arrays.equals(arr1, arr2);                   // 比较内容
Arrays.fill(arr, 0);                         // 填充
Arrays.copyOf(arr, 10);                      // 复制(可扩展)
Arrays.copyOfRange(arr, 1, 3);               // 子数组 [1,3)
Arrays.toString(arr);                        // 转字符串
Arrays.stream(arr).sum();                    // 转流操作

以上覆盖了 Java 基本数据类型最常见的 6 类问题。打好这个基础,后续学习面向对象、集合框架时会顺利很多。

作者:IT探险家

对于大型企业而言,曾经被视为“标配”的跨国CRM巨头Salesforce,正面临着前所未有的挑战:数据跨境流动的严格监管、本地化服务响应速度的滞后、以及逐年攀升的订阅成本,让CFO和CIO们不得不重新审视这张账单。

“去Salesforce化”不再是一句口号,而是关乎企业数据安全、业务敏捷性及成本控制的战略级任务。

然而,替代不是简单的“搬家”。大型企业的业务复杂,特别是对于B2B长销售周期行业(如工业品制造、医疗器械、高科技),流程冗长、角色众多、合规性要求严苛。寻找一款既能具备Salesforce的灵活性,又能扎根中国本土生态的CRM,成为了2026年选型的核心痛点。

本文将基于当前市场格局,为您深度剖析10款能够代表中国力量、足以在高端市场替代Salesforce的CRM产品,帮助您在复杂的选型迷宫中找到方向。

3.jpg

第一阵营:深度垂直型(最适合复杂B2B业务)

这类厂商不追求大而全,而是专注于特定行业或业务模式,在功能和逻辑深度上往往比Salesforce的标准模块更懂中国业务。

1. 八骏CRM 推荐指数:★★★★★

定位: 专注 B2B 长销售周期行业,深耕CRM软件、DMS软件 12 年+。

核心优势:

  • L2C(Leads to Cash)全流程智能化管理: 不同于只管售前的CRM,八骏打通了从线索、商机、技术交流、报价、合同、订单,再到生产交付、回款的全流程。对于医疗器械和工业品制造企业来说,这意味着不再需要在CRM和ERP之间手动“搬运”数据。

    • 灵活的低代码/自定义开发平台: 这是替代Salesforce的核心能力。八骏允许大型企业像搭乐高一样,根据业务变化随时调整字段、对象和审批流,无需依赖原厂开发,完美解决Salesforce曾经引以为傲的“定制性”问题。
  • 私有化部署: 满足大型企业对数据资产物理隔离的极致安全需求。

适合谁: 工业品制造、医疗器械、高科技、装备制造等客单价高、决策链长、销售过程复杂的B2B企业。

一句话总结: 用12年深耕B2B长周期赛道的经验,为中国复杂制造企业打造了一台既能“开得稳”又能“自己改”的业务发动机。

image.png

△八骏CRM产品截图:门户 示例

​2. 销售易  推荐指数:★★★★☆

定位: 依托融合社交、移动的云技术,重塑企业与客户的连接。

核心优势:

  • 原生PaaS平台: 国内最早宣称对标Salesforce的厂商之一,其PaaS平台成熟度较高,支持复杂租户的定制开发。
  • 移动体验: 继承了移动互联网基因,在移动端审批、数据录入和协作体验上优于海外产品。
  • 一体化SCRM: 在B2C领域也有布局,适合同时拥有B2B和B2C业务的集团型企业。

适合谁: 需要强大移动办公能力,且业务线复杂、需要大量定制开发的中大型企业。

一句话总结: 中国版Salesforce的有力竞争者,在PaaS能力和移动端体验上找到了自己的平衡点。

3. 纷享销客 推荐指数:★★★★☆

定位: 连接型CRM,赋能企业数字化未来。

核心优势:

  • PaaS平台+行业解决方案: 近年来在制造、高科技、快消等行业深耕,推出了针对性的行业版本。
  • 业务协同: 强调对内连接员工,对外连接伙伴与客户。在渠道管理方面具有显著优势,适合以渠道分销为主的大型厂商。
  • 开放平台: 拥有丰富的API接口,便于与企业的ERP、OA等存量系统打通。

适合谁: 高科技、现代服务业以及渠道分销模式为主的大型企业。

一句话总结: 不仅是销售管理工具,更是打通上下游的“连接器”,尤其适合生态复杂的渠道型B2B企业。

第二阵营:互联网生态型(最适合C端/B2C联动)

背靠互联网巨头,拥有强大的AI、大数据分析和流量获取能力。

4. 腾讯企点  推荐指数:★★★☆☆

定位: 构建以客户为中心的智能营销与服务平台。

核心优势:

  • 社交基因: 天然打通企业微信、公众号、小程序,触达终端客户能力极强。
  • AI与大数据: 依托腾讯云的技术,在智能客服、语音识别和用户画像分析上表现出色。

    • 连接C端: 对于需要直接服务终端消费者的“伪B2B”或服务型制造业,能极大提升客户体验。

适合谁: 强依赖微信生态、注重客户服务体验的汽车、消费电子、教育机构等。

一句话总结: 腾讯生态的“亲儿子”,如果你需要极致的社交化连接能力,它是首选。

5. 销氪  推荐指数:★★★☆☆

定位: 以AI赋能的智能销售CRM。

核心优势:

  • 智能呼叫与线索挖掘: 依托百度AI技术,在电话销售场景下提供智能外呼、号码检测等功能,极大提升电销效率。
  • 线索自动清洗: 利用算法自动清洗和更新线索数据,降低人工维护成本。

适合谁: 电销驱动型、海量线索处理需求的大型企业(如企业服务、互联网保险、招商加盟)。

一句话总结: 将AI技术落地到最苦最累的线索清洗和触达环节,是电销团队的效率神器。

第三阵营:老牌软件与集成型(最适合稳定与合规)

这类厂商脱胎于传统软件或协同办公领域,以稳定、安全和系统集成见长。

6. 用友 推荐指数:★★★☆☆

定位: 企业数智化软件与服务提供商,CRM是其整体解决方案的一部分。

核心优势:

  • ERP基因: 与后端财务、供应链系统无缝集成是最大优势。数据从CRM流入用友ERP几乎零误差,适合财务合规性极高的上市国企或大型集团。
  • 集团管控: 擅长处理多组织、多层级的大型集团管控架构。

适合谁: 已经深度使用用友ERP系统,需要CRM与财务、供应链实现数据闭环的大型制造业或流通业集团。

一句话总结: 与其说是选CRM,不如说是选企业数字化总包,它能让你“后台”不乱。

7. 金蝶 推荐指数:★★★☆☆

定位: 赋能成长型企业,陪伴大型企业成长。

核心优势:

  • 苍穹平台: 金蝶的云原生PaaS平台,具备高扩展性,能与金蝶云·星空等产品形成一体化方案。

    • 中产阶级审美: 界面交互设计相对清爽,产品理念先进,尤其受到快速成长的高科技企业的青睐。

适合谁: 正在从中型向大型跨越,且核心系统构建在金蝶云上的企业。

一句话总结: 与用友类似,金蝶CRM的最大价值在于与金蝶生态的无缝共生。

8. 微软Dynamics 365 推荐指数:★★★☆☆

定位: 能够适应中国市场且灵活部署的国际化智能商业应用。

核心优势:

  • 国际化基因: 对于有出海业务或仍需要与海外总部系统对接的大型企业,Dynamics 365是比Salesforce更“亲华”的替代品,因为它由世纪互联运营,符合合规要求。
  • Office全家桶集成: 与Outlook、Teams的深度融合,办公体验流畅。

适合谁: 有大量海外业务、或总部强制要求使用微软全家桶的大型跨国集团中国分部。

一句话总结: 在“数据主权”和“国际接轨”之间,它提供了一条折中的、相对稳妥的路径。

第四阵营:垂直赛道新锐(最适合特定场景)

9. 励销云 推荐指数:★★☆☆☆

定位: B2B主动式获客智能销售系统。

核心优势:

  • 大数据获客: 拥有海量企业工商信息库,结合AI算法推荐潜在客户,解决B2B企业“线索枯竭”的痛点。

适合谁: 处于市场扩张期,急需扩充销售漏斗顶端线索量的B2B中小企业或大企业的独立事业部。

一句话总结: 从“找客户”开始帮你,是销售漏斗顶端的引流器。

10. 神州云动 推荐指数:★★☆☆☆

定位: 完全基于PaaS平台的SaaS CRM。

核心优势:

  • 高开放性: 被称为“中国版的Salesforce”,其PaaS平台的灵活性极高,适合做二次开发。

适合谁: 拥有极强自研团队,只需要一个底层数据模型框架,其余全部自己“搭建”的大型企业。

一句话总结: 给你一张白纸和一套画笔,画出你想要的一切。

    • *

2026年,大型企业CRM选型的终极建议

面对琳琅满目的选项,如果您的企业正计划从Salesforce迁移,或是在2026年构建全新的客户管理系统,我们提供以下几点“避坑”与“选优”建议:

1. 审视您的业务本质:B2B还是B2C?长周期还是短周期?

  • 如果您是工业品制造、医疗器械、高科技装备这类B2B长周期企业,请务必优先考虑八骏CRM。这类企业最大的痛点是“流程断档”和“定制僵化”。Salesforce之所以强,是因为它的SaaS层灵活,而八骏作为深耕此领域12年的老兵,其L2C全流程不仅覆盖了售前,更深入到了交付环节,这是标准SaaS难以复制的壁垒。数据私有化+流程自定义,是替代Salesforce最坚固的护城河。

2. 评估您的系统生态:存量系统的集成难度

  • 如果您是用友或金蝶的深度用户,且业务流程标准化程度极高,那么选择用友(或金蝶)的CRM虽然功能可能不够惊艳,但数据接口的稳定性是最好的。
  • 如果您需要打通企业微信,触达终端消费者,腾讯企点将提供开箱即用的便利。

3. 警惕“大而全”的陷阱,拥抱“专而精”

  • Salesforce在海外成功是因为有庞大的生态服务商为其做定制。在中国,通用型CRM往往难以解决行业深水区的痛点。2026年的趋势是行业云。像八骏CRM这样专精于B2B长周期的厂商,实际上比大而全的平台更能深入理解“技术交流”、“样机测试”、“招标参数”等具体业务场景。

4. 合规与自主是第一要义

  • 选择私有化部署或专属云版本,是大型企业规避数据风险的底线。在八骏、销售易等头部厂商均支持私有化部署的背景下,不要为了每年几十万的SaaS费差价,将企业的核心客户资产置于不可控的风险中。

结语

2026年,告别Salesforce不是终点,而是企业构建自主可控、灵活敏捷的数字化能力的起点。

如果您是追求极致销售效率、需要快速连接客户的高科技或现代服务业销售易纷享销客是不错的平替选项。
但如果您身处工业制造、医疗器械等实体经济主战场,需要一套真正懂长周期、重流程、高安全性的系统,那么八骏CRM将是您最值得深入考察的“接棒者”。

毕竟,在这个时代,最懂中国复杂生意的,还是那些深耕本土、陪伴行业走过十余年风雨的实干者。

整理|华卫

 

AI 对下一代来说,是最好的事、还是最坏的事?问不同的人,可能会得到完全不同的答案,但很少听到来自身处其中的年轻人自己的声音。

 

在近日的一场播客中,曾做出 5 款产品的 AI 创业公司 Every 创始人兼 CEO Dan Shipper 采访了一位特别的年轻人 Alex Mathew。这个来自美国得克萨斯州奥斯汀 Alpha 高中的 17 岁高三学生,同时也是一名 AI 硬件创业者。对话中,他们聊到了 Mathew 完全充满 AI 的高中生活、 如何在 AI 无处不在的环境里防止学生作弊以及 Z 世代们对 AI 和大学的真实看法。

 

Mathew 在 Alpha 高中的学习时光,没有传统意义上的老师,所有学术内容都通过 AI 平台交付。教室里的成年人被称为 “引导师”,只负责在情感上支持学生、保持他们的学习动力。学生每天上午有 2 到 3 小时的集中学习时段,剩下的时间全部用来深耕自己感兴趣的项目,涵盖艺术、体育、生活技能和创业等领域。

 

“这里的模式是 90%靠激励,10%靠教育科技。”作为一所正在快速扩张的 K‑12 私立学校, 这所高中的体系可谓争议满满。“据 Mathew 称,在 Alpha 高中,大家是根据性格、项目进度之类的标准被分到不同学院。刚入学时,学生会和导师一起锁定一个细分领域,开始做产品、做服务、建受众、做传播,直到其成为这个领域世界最顶尖的专家,产出真正的洞见。

 

而 Mathew 的项目是一家名为 Berry 的创业公司,核心产品是一只 AI 毛绒玩具,旨在帮助青少年应对心理健康问题。他的设想是,让青少年每天和这只毛绒玩偶聊 5 到 10 分钟,并在这个过程中学会正确觉察、面对并处理自己的问题。

 

“未来会出现巨大的人类 vs AI 对立。”Mathew 的认为对的思路是,把那些无聊的工作都交给 AI,让人去创作、去爱、去生活。

 

以下是详细对话内容,我们在不改变原意的基础上进行了翻译和删减,以飨读者。

 

高中一个老师也没有,教学由 AI 负责

Dan Shipper:Alex,欢迎来到节目。

 

Alex Mathew:谢谢,很高兴能来。

 

Dan Shipper:你是一位非常特别的嘉宾,因为你是我们节目迄今为止最年轻的嘉宾。你今年 17 岁,就读于得克萨斯州奥斯汀的 Alpha 高中。你还是我们节目的忠实听众,也是播客爱好者。我们之前聊过,我当时就想,一定要邀请你上节目。跟你聊天的时候我就在想,“哇,我真是老了”。我总是听到各种关于 Z 世代、阿尔法一代还有更年轻一代人的说法,有人说现在的孩子讨厌科技、讨厌 AI,有人说他们很喜欢,还有人说 AI 正在毁掉他们的大脑之类的。

 

我其实非常关心你这个年纪,还有比你年长、甚至更年轻的人,到底是如何和这些技术互动的。对我来说,这是一个非常有意思的问题。所以我想请你过来,聊聊你平时是怎么使用 AI 的,你怎么看待它,你身边的人又怎么看待它。显然,Alpha 学校最近也是个非常热门的话题,你想跟我们分享的任何内容,我觉得都会很有意思。那我们就开始吧。先跟我说说,你在日常生活中是怎么使用 AI 的?

 

Alex Mathew:这是个好问题。我现在最大的使用场景,就是在 Alpha 高中上学,我们这里没有传统的老师,所有学术内容都是通过一个 AI 驱动的平台学习的。大多数人听到这儿都会觉得,哦,你就是在跟 ChatGPT 或者某个聊天机器人对话。但其实我们早上根本没有 AI 聊天 tutor。因为我们测试过发现,如果限制太严,怕学生作弊,AI 就没什么帮助;如果限制不够松,学生就会直接用它来作弊。

 

所以我们的平台后台有一套 AI 系统,它会为我们定制所有学习内容,找出我们学习上的薄弱点。学校有自己专属的 Alpha 应用,不过我没在用那些,因为它们不是大学先修课程(AP),而我现在是高三,基本上只上 AP 课。学习内容就是学校自研应用和第三方应用的结合,全都由 AI 驱动,针对每个学生个性化定制。

 

Dan Shipper:等一下,那你跟我说说你一天的流程吧,我有点没听懂。你说“我们”,你是参与了 Alpha 学校的运营,还是只是在这里上学?

 

Alex Mathew:我只是学生,但我会说“我们”,因为每个季度我们都会收到调查问卷,对所有事情提意见。我每天也会给导师们反馈,所以学生参与度非常高。

 

Dan Shipper:明白。那学校几点开始上课?

 

Alex Mathew:早上 8 点半。

 

Dan Shipper:8 点半到学校,第一小时一般做什么?

 

Alex Mathew:其实最开始 15 分钟,我们称之为“给孩子的托尼·罗宾斯时间”,就是振奋精神、做做谜题之类的,帮大家从家庭生活切换到学校状态。

 

Dan Shipper:你是在一个班级里,大概多少人?

 

Alex Mathew:整个高中大概 50 个人,我这届高三只有 8 个人,规模很小。

 

Dan Shipper:你说的班级,就是你和另外七个人在一个教室里,早上一起做那个“激励环节”?你给我描述一下场景。

 

Alex Mathew:没问题。有意思的是,在 Alpha,我们有类似《哈利·波特》里霍格沃茨那样的“学院”,一共有五个学院,还有一个正在试验的特殊学院。大家是根据性格、项目进度之类的标准被分到不同学院。我之后可以讲讲 Alpha X 项目,那是 Alpha 高中很重要的一部分。这个特殊学院叫斯巴达,就像斯巴达勇士;还有一个竞争学院叫雅典。斯巴达对雅典,专门给那些在 Alpha X 项目上非常努力的学生。Alpha X 是奥运级别的项目,大家都想做到世界顶尖,做出超酷的产品或服务,适合真心想冲刺的人。我会和我的斯巴达伙伴们坐在一起,他们各个年级都有。

 

Dan Shipper:各个年级?有高三、高二、高一?

 

Alex Mathew:对,就是混龄的。我们要么一起参加全校的开场活动,因为我们也就 50 个人,在一个大的开放空间里;要么就在各自的学院里,聊聊读过的书之类的。

 

Dan Shipper:很酷。那这 15 分钟是谁在引导?是老师、学生,还是 AI?

 

Alex Mathew:三种都有可能,看当天安排。有时候我们会和 AI 进行专业辩论,会有导师或老师带着我们;有时候完全由学生主导,比如“我们今天就想聊聊这个”,比如看到一条很有意思的推文,就想一起讨论。有时候在斯巴达学院,我们会一起读书,然后交流。完全看情况。

 

Dan Shipper:那老师是怎么参与的?你们叫他们“导师”而不是“老师”?

 

Alex Mathew:对,我们叫他们导师,不叫老师。传统老师现在要同时做五件事:和家长沟通、讲课、批改作业、激励学生、处理行政工作,杂事非常多。而 Alpha 的目标,就是把这些职责拆分,每个角色只专注一件事。比如有专门负责家长的院长,教学内容则由 AI 负责。而导师的角色非常重要,他们只专注于:激励学生、提供情感支持、帮学生想清楚自己想做什么、该怎么做。他们负责统筹一切,确保我们按进度完成目标。

 

Dan Shipper:他们是学科专家型导师吗?比如上法语课,就有法语老师来指导?还是一个学院配一个导师,不管你学什么,他主要提供情感支持,专业内容靠 AI?

 

Alex Mathew:问得很好。情况不一定,我们也在不断摸索。至于导师的背景,他们通常需要参加智商测试等考核,和学生相处。我们甚至有权聘用和解雇导师,之前也确实这么做过。我对导师挑选非常挑剔,大部分都被我否决了。我们的导师里有前律师、前创业者、前文案撰稿人,各有所长。我有一个学院专属导师 Cameron,他很懂创业,也在帮学校搭建创业相关项目,我遇到创业相关问题就会找他。如果我想找人倾诉,我会找另一位导师。每个人都有自己独特的专长。

 

Dan Shipper:那继续说说你的一天。15 分钟的学院环节之后呢?

 

Alex Mathew:高中生接下来是三个小时,低年级孩子是两个小时,专门用应用学习。我们用番茄钟计时:27 分钟学习,5 分钟休息,中间还有一次长休息,可以出去买咖啡、去超市之类的。那 27 分钟里,你通常专注一门科目,看视频、记笔记、读文章、做测验。不是和聊天机器人聊天,而是真正阅读、吸收知识、学习。

90%靠激励、10%靠教育科技,学生从不作弊

Dan Shipper:那谁决定你该学什么?

 

Alex Mathew:每周你都会和导师开一次会,告诉他你各科的进度。比如我数学学得不错,已经完成 88%,但离年底还早;而阅读很差,AP 文学才刚起步。然后我们会一起设定自定义的经验值(XP)或者目标,这是我们的衡量标准,用来确保每周达到进度,顺利完成课程。

 

Dan Shipper:有意思。是你们自己定目标,然后 AI 会根据“你需要提高阅读”来安排番茄钟内容吗?还是你自己知道目标,然后打开阅读应用?我不太清楚具体机制。

 

Alex Mathew:其实比这更顺畅。仪表板上会列出所有课程,包括学校自研应用和外部资源。

比如我现在打开的是 AP 心理学,第一章完成了一部分,系统会直接告诉你下一步该做什么。回看已完成项目,就能看到我做过的阅读、测验。测验设计也很有意思,从 0%开始,一直练到精通为止,这是非常重要的精通式学习。内容就是视频、阅读、测验、视频这样循环。比如我现在还有一个 AP 心理学的视频要看。AP 课程主要是精选资源,我们的学术团队会挑选最好的资源,找那种融入了学习科学、讲课很有活力的老师的视频。

 

社会科学等科目也是类似模式:视频、课程、测验。你可以看到这个测验,我们叫它“能力通过分”,从 0 分到 100 分。每答对一题、答错一题,分数和准确率都会变化。我们认为达到 80%以上就算精通,可以进入下一阶段,之后真有问题再补。

 

Dan Shipper:这很有意思。我看着觉得很像可汗学院,也是视频加测验,跟着进度走,但可汗学院比较松散,你想学就学。我就在想,我高中的时候,如果有 AI,我完全可以让 AI 代我搞定这些阅读、视频之类的。你有过这种想法吗?你是被迫这样学习的吗?当然 AP 文学里有些内容你可能感兴趣,有些就是为了考试不得不学。跟我聊聊这种体验。

 

Alex Mathew:我再多说一点背景。这是我在 Alpha 的第二年,我之前上过一所非常严格的特色 magnet 学校,每天要花 12 个小时在学业上,而且全是讲课式教学。就像你说的,不管感不感兴趣,都得硬着头皮听完。有意思的是,我刚和学术部门的人开完会,他们让我定目标、说痛点。我当时就说,我太爱 AP 心理学了,学起来毫不费力,因为它和我的项目高度相关,他们就说,那你就多学。但我也说,AP 文学是我这辈子最讨厌的东西,我宁愿做任何事也不想学它。他们就说,那我们设置一个激励机制来推动你。

 

所以,对于那些你很抵触的科目,学校会有激励措施,比如给项目经费、食物奖励。我们还有叫 FOMO 的活动,上次大家一起去屋顶圣诞活动,喝热巧克力、玩游戏。用这些好玩的事激励你学习。从技术层面说,系统能看到你在每节课上花的时间,如果你退出,就会显示“课程暂停”,所以想作弊是能被发现的。

 

Dan Shipper:我还是觉得,我完全可以把这些丢给 ChatGPT 之类的,让它帮我刷视频、点按钮,我自己去干别的。你从来没这么干过?

 

Alex Mathew:完全没有,因为他们也能监测到。我们的学校电脑有屏幕共享功能,导师能看到我们所有屏幕内容,还有行为监测工具,观察我们是不是在和同学聊天、干别的。他们非常精准。Alpha 的核心就是量化一切,确保你真的在收获应有的学习体验。老实说,这里的模式是 90%靠激励,10%靠教育科技。学习科学很棒,交叉学科学习之类的设计也很科学,我也明白这对学习效率最优。

 

但最关键的是,20 天后我要飞去旧金山,全职做我的项目。我可以和导师协商,如果现在完成上学期课程,旅行回来再拿下学期,照样能拿到高中学分,申请梦想的大学。就是这种灵活性和契约感。而且 Alpha 高中和别的学校很不一样,我们这个年纪的青少年本来就处在叛逆期,想要更多自主权,这里就有更多弹性。低年级孩子就是每天两小时用应用练习阅读、写作等四大核心技能,下午参加工作坊,激励模式相对更直接。

 

Dan Shipper:你们在进行番茄钟学习的时候,是坐在教室里,大家都安安静静看自己的内容,五分钟休息时一下子热闹起来,然后再恢复安静吗?还是学习的时候也会有人聊天?真实环境是什么样的?

 

Alex Mathew:这个问题很好,而且这一点也很灵活。大多数人会和自己学院的同学坐在一起,和好朋友们安安静静学习,五分钟休息时可以聊天。有时候我会像现在这样,单独在一个房间里录播客,你也可以去小隔间或独立房间自学,如果需要和别人见面也可以去别的地方。总体来说,番茄钟时段整个空间都非常安静。

“可选的路多了很多”,创业也是出路

Dan Shipper:好的,那这就是你一天里最开始的几个小时。之后呢?有课间休息吗?虽然你们是高中生,可能没有课间休息,但有自由活动时间吗?跟我说说接下来做什么。

 

Alex Mathew:因为有番茄钟,加上下午时间比较自由,所以不需要传统意义上的休息。至少高中生是这样。对低年级孩子来说,番茄钟的五分钟休息就是他们的课间。我们还可以聊聊一些工作坊,高中生的安排特别有意思。大概有三条不同的发展路线,虽然没有正式命名:第一条是 Alpha 常规路线,学生主要想考好 SAT、AP 课程等。第二条是常春藤路线,目标是冲进世界顶尖大学。

 

Dan Shipper:这两条是一样的吗?

 

Alex Mathew:不太一样。Alpha 荣誉路线的学生,可能想当飞行员,或者走一些非传统道路,和申请理想大学的路径不太匹配,所以有不同的培养方案。第三条是创业路线,学生全身心投入商业、创办公司、融资等。

 

Dan Shipper:你们这个年纪的人在乎上大学这件事吗?

 

Alex Mathew:就像我之前说的,我待过两个完全不同的圈子,所以我会尽量客观看待。以前的学校里,氛围和从众思维都是:你上高中唯一的目的就是考个好大学。而这里的氛围更细致,大家会想:上大学对你来说真的有意义吗?我可以跟你说说我自己的想法,也和别人聊过这个。我目前能看到三条明确的出路,我的目标是保留所有选择,到时候再做最优决定。

第一条路:去顶尖大学,我现在最心仪的两所是哈佛和伯克利。第二条路:去另类大学,比如 Minerva 或者奥斯汀大学,就在本地。我还以为它关停了,其实他们改版了,现在可能免学费等,和 Alpha 有不错的衔接通道,还有奖学金覆盖生活费,基本等于免费上大学。第三条路:拿到蒂尔奖学金,全身心投入我的项目。我现在还不知道哪个选择正确,因为我正处在把校内项目变成现实世界项目的阶段:融资、组建团队等等。我和身边的人都相信我能做到,只是要判断在合适的时间做合适的事。

 

Dan Shipper:很有意思。那你身边的人呢?

 

Alex Mathew:我给你举几个例子。我有个朋友,TikTok 有 200 万粉丝,每个品牌合作能赚 1 万到 1.5 万美元。她内容很棒,有正能量、有使命感,她想把影响力变成所有权。之前她的想法是做面向女性网红的孵化器,因为现在流量为王。她还在尝试不同方向,但她被录取到了斯坦福,想去斯坦福,再决定下一步怎么走。

 

Dan Shipper:她已经这么成功了,为什么还想去斯坦福?

 

Alex Mathew:据我了解,她喜欢做网红,但也非常想要大学生活体验:和最好的朋友在一起、参加派对等等,她想好好享受。我另一个朋友,做了一个 AI 青少年恋爱教练产品,有 7 万用户。她同时在做好几个项目,走自己的路。她也被斯坦福录取了,也想去体验大学生活。她姐姐在斯坦福,她很喜欢那里。之后一两年会发生什么,谁也不知道。

 

Dan Shipper:我像你这么大的时候,大概是 15 年前,已经有人开始说“你不必上大学”,但主流观念还是:想过好人生就必须上大学。现在我从你这里听到的是,上大学依然有吸引力,但可选的路多了很多。有时候选择太多也会很痛苦,尤其是年纪还小,还不清楚自己是谁、想要什么。你有时候会有这种感觉吗?

 

Alex Mathew:非常不知所措。我一直刻意让自己接触拥有不同观点的人。比如我的家人非常传统,父母都是牙医,人生路径就是:上学、拿学位、找工作,我哥哥也是一样。另一方面,我也认识 1517 基金的 Danielle,他们全力支持辍学者,认为现有体制在扼杀年轻人的好奇心。

 

所以,这种感觉既让人不知所措,又超级兴奋。我能接触到各种各样的人,去学习、去判断什么适合自己。我觉得有些事必须亲自尝试,不能只听别人怎么说,要自己找到适合的路。这是我最大的体会。

一边讨厌 AI,一边又天天用?

Dan Shipper:很有意思。那再说说你们这一代人,包括你身边的人,还有你在社交媒体上接触到的同龄人。他们对 AI 是什么看法?

 

Alex Mathew:这个很难准确判断,因为算法会带来偏见。但我可以猜猜看:我觉得 Z 世代里,一半人对 AI 持悲观态度,四分之一不确定,剩下四分之一比较乐观。即使有一半人在吐槽 AI,大概仍有 70%–75%的人至少用过一次 AI。我可以深入说说这些点。我看过不少数据,比如有个数据和我的项目高度相关:72%的青少年至少用过 AI 来陪伴自己52%几乎每天都用 AI 陪伴。我完全相信这是真的。这个时代非常有意思。

 

Dan Shipper:等一下,你属于 Z 世代还是阿尔法世代?

 

Alex Mathew:Z 世代。Z 世代现在大概是 16 岁到 24 岁左右。

 

Dan Shipper:懂了。那很有意思的一点是:一边说讨厌 AI,一边又天天用。这是为什么?

 

Alex Mathew:大家讨厌 AI 有不同原因。我昨晚还和朋友聊过。Z 世代最大的担忧,第一是环境问题,能源消耗、水资源消耗等。第二大担忧可能更普遍,是工作不稳定。第三,那些更有反思能力的人会担心 AI 取代人类、侵蚀人性,比如 AI 绘画之类的。据我观察,大部分 Z 世代对未来非常悲观,尤其是那些经常上网、信息很灵通的人。但人们还是会用 AI,因为用来作弊、写大学申请文书很方便。另外,现在孤独感危机很严重,人们想把 AI 当作陪伴,它简单、无缝、无压力。

 

Dan Shipper:你觉得社交媒体毁了你们这一代人的大脑吗?

 

Alex Mathew:百分百是的。但我也要为社交媒体说句公道话,因为大家总说它不好。过去两周寒假,我做了个小实验,我训练自己的算法多推送教育类内容。我对一个新兴领域很感兴趣,我暂且叫它人文学科/人类研究。我对 AI 悲观论的假设是:未来会出现巨大的人类 vs AI 对立。

 

我几乎在用所有社交媒体,只为学习。我的 YouTube 主要看播客;Instagram 现在只推那些追求人文质感的品牌,或是对 AI 感到焦虑的内容。你只要多点几次相关内容,再点“不感兴趣”屏蔽掉其他,算法就会被训练出来。话说回来,社交媒体值得肯定的一点是思想的交流与碰撞,作家马特·里德利称之为“观念交配”,创造新知识。这很有价值。但你必须小心信息过载,而不是真正消化信息。这是我提醒自己的地方。

 

第二点,社交媒体是我们这代人交流的方式。比如我那个做 AI 恋爱教练的朋友,她和一位心理学家合作研究发现:现在的约会有一套清晰流程:认识别人、拿到对方 Snapchat,互发照片、聊天、打电话、视频通话,最后才线下见面。我们和有些人的联系方式,就是互相发一条 Instagram 短视频,这就是我们的联结。有人可能觉得不好,催产素分泌变少了,我也看过相关研究。但这也是我们彼此联结的方式,一起笑,这是我们生活里乐观和快乐的一部分。我觉得这很有意思。

 

Dan Shipper:你描绘得很生动。我问这个问题,也是觉得应该有个平衡点。现在主流叙事都偏负面。对你和你身边的同龄人来说,社交媒体最负面的地方是什么?

 

Alex Mathew:我见过最严重的两点:第一,过度刺激,注意力变差,一直追求多巴胺,非常上瘾。我自己也会忍不住刷。第二,大脑变得迟钝,认知能力下降。第三,和网上的人盲目比较。比如那些自然博主,其实是摆拍;还有 24 岁纽约女生的完美生活日常之类的内容。比较带来大量内耗。这是最主要的两个问题。

 

用 AI 陪读书,是为了对抗 AI

Dan Shipper:你看书吗?

 

Alex Mathew:说实话,不怎么看。我不是个爱读书的人,从来都不是,从小就讨厌阅读。我确实有不少朋友仍然为了乐趣而读书,但比四五年前少太多了。我看书唯一的目的,是想了解别人有趣的思想,不是为了故事,而是为了内容。我现在觉得,有些书确实值得一读。比如我可能今年夏天会读《圣经》《理想国》这类经典哲学书,纯属兴趣。也会读一些比如迈克尔·吉布森的《Paper Belt on Fire》,只想了解他的观点,然后再去问他问题,加深理解。

 

但现在,你能在推特上看到所有人的观点,可以让 ChatGPT 总结要点,可以拍张书的照片让 AI 展开讲解。书本只是静态知识,不是生成式、动态的。我个人能从中获得的价值只有内容本身,不是文笔、不是锻炼专注力,这些我可以用别的方式练。我现在至少会开着 Grok 的语音模式边听边“读”。

 

Dan Shipper:对了,我也会这么做,我超喜欢这样。我还自己写了个自定义小工具来干这事。

 

Alex Mathew:哇,我好想试试。

 

Dan Shipper:我把测试版链接发给你。

 

Dan Shipper:你那些爱读书的朋友,他们为什么读书?他们和别人有什么不一样?

 

Alex Mathew:我有各种类型的读书朋友。有的读书是为了对抗 AI,不想变成被算法控制的人有的就是单纯喜欢故事。有的是从小养成的习惯。还有的包括我自己,会用读书优化睡眠,比如睡前读一页。这些是主要原因。其实大家并不会想得很深,就是要么读,要么不读。

 

而且在 Alpha,我们下午是有阅读要求的。我们必须阅读自己领域的研究,还要在研究之上形成自己的见解。所以阅读依然很重要。在课上我也必须读《了不起的盖茨比》这类书。我之前说不怎么看书,是因为大家印象里的“阅读”是坐在树下看书那种,现在基本不存在了。区别就是,现在你是和 AI 一起阅读。至少我个人是这样。大多数年轻人还不会用 AI 陪读,他们就是单纯喜欢读。

 

Dan Shipper:那完全不读书的人,用什么替代阅读?是游戏、社交媒体、和 AI 聊天吗?我可以这么分:一类是消费故事、参与故事;另一类是钻研自己感兴趣的话题。阅读的替代品到底是什么?我本人很爱书,所以看到年轻人读书变少会有点心痛。

 

Alex Mathew:这个话题能聊很多。娱乐层面,替代阅读的显然是电视剧、游戏、和朋友八卦。还有很多好玩的 AI 娱乐应用,比如那首爆红的 AI 版 Charlie Kirk 歌曲。大家很喜欢拥抱流行文化、讨论文化,这很大程度是社交媒体带来的。很多人觉得这不好,确实有负面成分,但我觉得很有意思、很酷。

 

还有大家用 AI 娱乐的方式也很有趣。一年前 Sesame 模型刚出来的时候我就发现了,觉得超酷。我给一个朋友看,她特别好玩,开始“忽悠”那个 Sesame AI,让它以为自己是奥巴马。我们就跟它聊天、逗它玩,特别开心。她还为此做了 YouTube 视频和 TikTok,小火了一把。

 

AI 能玩出的花样特别多。这是娱乐层面替代阅读的一部分。至于学习、获取知识层面,据我观察:你对什么好奇,直接去问 AI 就行。我几乎每天都用深度研究功能学习东西。

 

Dan Shipper:有意思。你为什么要用深度研究?我现在不太用了,因为我觉得开了思考模式的回答已经够好了。你用深度研究来做什么?

 

Alex Mathew:昨天我和朋友散步,聊到 AI 和气候,我发现自己不太了解水资源相关的内容,只看过 Hank Green 的一个视频。我就直接打开深度研究,边走它边生成。我基本每天都用。我在自己的领域已经做过很多研究,但我想往非常具体的细节里钻。我的使用方式就是:让它跑着,等我当天要做研究时再看,哪些有意思、哪些没用,然后再用大模型深挖。

入学就定创业项目,全员目标:成为领域顶尖专家

Dan Shipper:你用 ChatGPT、Claude、Gemini 还是 Grok?主力是哪个?

 

Alex Mathew:就在两天前我刚全部测过一遍,各有优劣。Grok 的深度研究比较烂,所以我不用。但它的语音模式很棒,我会根据不同场景全都用。Notebook LM 是我最近用过最厉害的东西之一,我觉得它会在学校里疯狂普及,功能太强了。

 

Dan Shipper:这我很感兴趣。按你的使用习惯,如果你把 ChatGPT、Claude、Gemini、Grok、Notebook LM 这些 AI 从 S 级排到 F 级,你会怎么排?

 

Alex Mathew:好,我先从基础大模型开始,再到 AI 应用。基础模型的第一名是 Claude,我的整个项目就是做不会刻意迎合、有稳定立场的模型。我还给 Dario 冷发过邮件,他给了我建议。我对 Anthropic 的团队非常信任,看过他们的创始人访谈,非常尊重他们的研究方向。而且我超爱 Artifacts 功能,这是我最喜欢的大模型特性。

 

第二名是 ChatGPT,它的深度研究对我来说是最好的,而且有先发优势。我有问题通常第一个找它。第三名是 Gemini 和 Grok 差不多,Gemini 略高 因为我喜欢 Demis Hassabis,而且 Gemini 3 很厉害,TPU 也很酷,谷歌数据量大,我相信谷歌。但我目前用得不多。 Grok 很酷,因为他们很敢试、很疯狂,但我用得最少。

 

应用层面,我们在 Alpha 也办黑客松,第一次用 Cursor 和 Vercel 做了游戏。我不是特别硬核的码农,但 Cursor 真的很强。我用过的 AI 应用太多了,现在最喜欢的是 Granola、Whisper Flow。还有个新应用叫 Sublime,我买了终身版,跟创始人聊过之后直接入手。我在 Sublime 里建了个文件夹,放所有我试过的 AI 工具,这些是最留得住人的。

 

我还超痴迷 AI 硬件:试过 Limitless 胸针、Pocket 等几乎所有产品。我特别期待 Stream 那款新戒指,已经预定了,应该会成为我的主力。我也期待 Tilia 项链,不太喜欢 Friend。太多了,我肯定说漏了很多,但这些是我常用且真心喜欢的。

 

Dan Shipper:我喜欢 Claude 排 S 级这个结果。太有意思了。Dario 如果你在听,你干得很棒。

 

Alex Mathew:必须的。

 

Dan Shipper:那有没有什么比较小众、奇怪的应用或互联网角落,是你们这个年纪在用、我大概率没听过的?

 

Alex Mathew:这个问题超好。倒不是特定的应用,有个很有意思的案例是 Finch。它是习惯养成、自我关怀类 App,有点像电子宠物。你有一只小动物,你养成好习惯就能给它买衣服之类的。观察青少年的趋势你会发现,他们很痴迷这种角色养成类的东西,比如 Labubu、Squishy、Jellycat 这类。这也是我项目相关的趋势。

 

至于小众互联网角落,基本都在社交媒体里。比如 BookTok,图书类 TikTok,依然很火。但你要更小众、更奇怪的……其实就是各种随机潮流,没有粘性,变得超快,很难跟上。

 

Dan Shipper:你们这代人的梗、流行语非常去中心化,不再是卡戴珊那种名人定义文化了。

 

Alex Mathew:对。很多行为背后的驱动力其实是不安全感,最终都归结到文化和身份。我们在 Alpha 被要求读过一本书叫《10 to 25》,非常棒。书里说,10 到 25 岁的人,核心动机是地位和尊重,他们在寻找自己在世界上的位置,想知道要取悦谁。几乎所有决定都围绕这个。我觉得 2026 年文化会迎来爆发,因为创作者极度去中心化,无数小创作者在 YouTube 等平台有几万、几十万粉丝,文化非常细分、因人而异。

 

Dan Shipper:你一定要给我推荐几个这种小体量但你超爱、正在崛起的创作者。我也想让你问问你朋友。

 

Alex Mathew:没问题,我肯定会。

 

Dan Shipper:你刚才提到毛绒玩具趋势,和你的项目有关。你愿意跟我们说说你在做的项目吗?先给我们讲讲,在 Alpha 学校里,一个“项目”到底是什么?

 

Alex Mathew:这其实是我转来 Alpha 的原因。 我 11 年级转来,九年级和十年级时,在 ChatGPT 出现之前,因为一位很棒的老师,我早就接触过 AI,比如 MidJourney、OpenAI 的 Playground。我对 AI 非常有热情,一直在做项目。然后我听说了 Alpha,听说了 Alpha X 项目。

 

简单说,它是一个奥运级别的超大型项目,要做到:你在这个领域做到世界顶尖,基于你对世界的独特洞察,服务某一类人群通常是创业项目,但也有朋友做音乐剧、各种形式。刚入学时,你会和导师一起,用那个 IKIGAI 模型:你擅长什么、世界需要什么、你能靠什么谋生、你热爱什么。然后锁定一个细分领域,找到洞察、解决问题的方式,开始做产品、做服务、建受众、做传播,成为这个领域世界最顶尖的专家,产出真正的洞见。

 

Dan Shipper:那你的项目是什么?

 

Alex Mathew:我是个非常以问题为导向的人,我想解决大问题。我的判断是:如果要在未来 10 年解决一个大问题,它必须和我有极强的情感连接。我想解决的有两个大问题:一是教育危机,这也是我转学的原因。我可以全职帮助 Alpha,或者做教育创业。顺便说一句,我是头号教育科技黑,每个月都有新教育科技公司出来,然后全都死掉。 二是心理健康,这对我个人非常重要。很多家人因为心理问题住过院,我以前的学校里自己也有过心理困扰,很多朋友凌晨两三点发消息给我,我都是那个回消息、帮他们走出来的人。

 

我看到一个巨大的缺口,青少年、年轻人每天都有不安全感、日常小困扰,这些问题积累起来会变成大问题。他们要么找朋友,朋友只会附和;要么找父母、咨询师,建议很好,但不共鸣;现在他们开始找 AI 陪伴。就像我之前说的,52%的人每天都用。我们已经见过两起和 AI 相关的悲剧。我刚收到一个新闻,某个 AI 玩具给 8 岁孩子输出错误信息。我当时就想:这不该是 AI 的样子,必须有真正懂这代文化、这代人的人来做这件事。

 

所以我决定做 Barry:一个面向青少年的 AI 毛绒玩具,帮他们解决日常心理困扰。每天和它聊 5 到 10 分钟,目标是培养自我觉察的能力,而不是让人依赖它。让你更了解自己、学会应对、用健康的方式处理问题。同时它又很好玩。我的目标是成为下一个 Build-A-Bear。我正在和网红合作做定制款,它超级软,有重力感,有凉感材质。我对它的未来超级兴奋。

 

Dan Shipper:我怎么才能买到?

 

Alex Mathew:可以预定。

Dan Shipper:发我。

 

Dan Shipper:我们只剩几分钟了。在今天的话题里,你还有什么最想说、大家必须知道的话?

 

Alex Mathew:我觉得最核心的是,人们为什么对 AI 悲观?因为不确定,不知道未来会怎样、人类还剩下什么、AI 会不会取代人类、取代个体。

但我认为最重要的是保持理性乐观,去想未来应该是什么样的?我们应该构建一个怎样的世界?我之前说过,我极度痴迷一个方向:人类研究。

在 AI 时代,什么是人类独有的?我认为有几样核心的东西:人类的联结,脆弱与真诚,情商,欣赏、感恩、热爱自然。这些是 AI 至少在目前阶段永远无法替代的、最珍贵的人性。我很希望我能投天使钱,因为现在有很多工具都在深入这些方向。比如 Sublime 做的就是人类精选。我让 AI 给我做 Spotify 歌单、列出领域内前十专家,结果都很差。AI 抓不住那种叫“品味”的东西,而这会是人类独有的价值。

 

对我的产品来说,AI 永远替代不了真人对话,但它可以帮你练习表达脆弱,帮你获得正确的信息,照顾你的心理健康。我极度痴迷一个命题:什么是独属于人类的?我们如何让人类去做人类最擅长的事?把那些无聊的工作都交给 AI,让人去创作、去爱、去生活。昨天我朋友还跟我说,她对未来特别悲观,觉得一切都完了。我很难用语言表达,但我始终抱着理性乐观。我对未来超级乐观,我也希望能把这种乐观传递给更多人,因为这个时代真的太激动人心了。 我超级庆幸自己活在现在。

 

Dan Shipper:我太爱这段了。太棒了。你让我也变得兴奋起来。我们很幸运,下一代有你这样的人带路。

 

参考链接:

https://m.youtube.com/watch?v=n-xBQE8A-3E

在当代制造业的浪潮中,汽车零部件行业正经历着一场前所未有的智能化变革。这不仅仅是技术的演进,更是企业生存模式的重构。随着电动化、智能化和网联化的趋势日益明显,传统汽车零部件企业面临着效率瓶颈、市场压力和供应链挑战。试想一下,过去那种依赖人工和固定生产线的模式,已经难以应对多变的客户需求和激烈的全球竞争。因此,探索如何实现汽车零部件的智能制造,成为了一个关键议题。
智能制造的行业背景与驱动力
首先,我们需要理解汽车零部件智能制造的背景和驱动力。汽车行业正快速向电动化和智能化方向转型,这要求零部件企业具备更高的灵活性和创新能力。例如,新能源汽车的兴起,带来了电池管理系统、电机控制器等新型零部件的需求,这些产品往往需要定制化生产,而非传统的批量制造。与此同时,全球供应链的不稳定性,如疫情或芯片短缺事件,进一步凸显了智能化升级的必要性。
中国如Geega工业互联网平台,已经在这一领域取得了显著进展,通过AI视觉检测技术,实现了生产过程的实时优化。但从整体来看,智能制造的核心目标是提升效率、降低成本并改善质量。这不仅仅是口号,而是通过数据驱动和系统集成,逐步实现的转型。
智能制造的关键技术与实施路径
那么,如何实现汽车零部件的智能制造呢?关键技术的突破是关键所在。其中,自动化生产线是基础,它通过机器人技术(如焊接机器人或装配机器人)替代人工操作,提高生产的一致性和速度。但光有自动化还不够,企业必须整合信息化系统,如ERP和MES,以实现数据的实时采集和共享。
如果生产数据不能无缝连接,整个智能制造就失去了灵魂。大数据分析则扮演了“大脑”的角色,它帮助企业从海量数据中提取有价值的洞察,优化工艺流程。例如,通过分析能耗数据,企业可以识别浪费点,从而减少单位产品的能源消耗。此外,工业互联网平台的建设,让设备互联互通成为可能,而人工智能的应用,则进一步提升了决策的智能化水平。
这些技术的融合并非易事,往往需要企业进行战略规划和投资,但它们共同构成了智能制造的支撑体系。总体而言,实现智能制造的关键在于构建一个以数据为核心的生态系统,而不是孤立地追求某一项技术。企业需要从短期自动化改造到长期智能化布局逐步推进,这不仅仅是技术更新,还涉及到组织和文化的变革。
智能制造的案例实践与全球视野
在关键技术的发展路径上,企业需要从短期自动化改造到长期智能化布局逐步推进。这不仅仅是技术更新,还涉及到组织和文化的变革。例如,培养既懂制造又懂数据的复合型人才,成为许多企业面临的挑战。然而,路径清晰:先从设备智能化入手,再扩展到数据集成和AI应用。
中国政策如《汽车行业数字化转型实施方案》,就为这一进程提供了有力的引导和资金支持,帮助企业降低转型门槛。展望未来,智能制造的趋势是向更柔性、更绿色的方向发展,技术如数字孪生和边缘计算将进一步深化应用。
现在,让我们通过一些实践案例来验证这些理论。国内企业广域铭岛的转型之路就是一个生动的例子。他们在AI视觉检测方面投入了大量资源,利用深度学习算法对零部件进行高精度质量控制,准确率达到99.8%以上。这不仅减少了人为错误,还提高了整体生产效率。
而在国外,博世集团和通用电气(GE)的案例同样值得关注。博世通过建立高度自动化的生产线和工业互联网平台,实现了生产计划的实时调整,显著提升了供应链响应能力。通用电气则在机器人技术和数字孪生领域大放异彩,他们的数字孪生工厂能够让企业模拟和优化生产过程,缩短调试周期。
这些案例表明,智能制造不是空谈,而是能带来实际效益的实践。广域铭岛、博世和通用电气的成功经验,不仅为国内企业提供了借鉴,也展示了全球制造业智能化升级的共同趋势。

Matrix 首页推荐 

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

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


25 年 12 月,我制作了一组音乐可视化播放器,有「飞天小女警」「方块蹦床」「兔兔滑冰」和「封面粒子」4 个主题。在社媒上获得了不错的反馈,某音发了两篇共计 10w+ 播放,2w+ 互动,也在留言区收到很多好评:

可以在这里体验:https://njzneverdie.wystudio.zone。也可以直接看录屏,这是 4 个主题:

制作初衷是因为萌生了结合 Newjeans 品牌来做音乐可视化的灵感,这不是一个盈利性质的项目,仅作为个人在设计 + AI Coding 方面的探索(内置的歌曲和歌词来源网络)。

这篇文章会分享「飞天小女警」播放器的整体制作流程:如何利用设计工具 + AI Coding 实现音乐可视化和角色动画,回顾踩坑经验,及分享提示词(Vibe Coding 工具为 Cursor)。

创意起点:像素风游戏概念

11 月的某天,好友「三口饼子」突然发我一支 Newjeans 的 MV,说特别喜欢,作为 Newjeans 的资深粉丝,我是看过的,借此我又重温了一遍。

没有看过的朋友,可以搜歌名《New Jeans》观看,这支 MV 的动画设计融合了多种风格,情节俏皮灵动。5 位成员化身飞天小女警解救小兔,穿梭在不同画风的「平行宇宙」:如古典油画,千禧年卡通, 现代 3D 潮玩……

我的灵感来源是其中的像素风游戏这个概念,飞天小女警在类似超级玛丽的横版游戏界面里升级打怪:

NewJeans MV 截图

作为 Newjeans 的忠实乐迷,我在想,是否可以二创一个小女警「随着音乐飞行」的音乐播放器?听歌的时候,让五位成员化身的小女警陪伴着我。我平时用的音乐播放器大多是静态的画面,而这种音画同步效果自带「卡点」,律动感加倍;同时通过 IP 素材二创,让场景更沉浸,也能强化乐迷的情感体验。

那天是 12 月 1 日,刚好迈进圣诞月。我就想,不如把整个场景设定为圣诞氛围感的夜晚?五位飞天小女警穿着圣诞装扮,飞过飘着雪的城市夜空,城市里的建筑被白雪覆盖,明亮温暖的圣诞装饰透过夜幕发着光...

想象了下,我真的很喜欢这个构想,希望能把它实现出来。因为已经做了方块蹦床等其他3个主题,web 的框架(歌曲列表/主题列表/播控)已经有了,现在只需要专注于小女警主题内部的设计和实现。

这里的关键挑战是音频驱动角色飞行的效果,所以第一步,我打算验证这个效果,先做出最小可行产品(MVP),再逐步迭代。

音乐驱动:做出角色跟着音乐动起来的MVP

阶段 1:实现随着音乐冲出去的运动效果

我最初的设想是角色在画面左侧竖向排列,背景向左移动来体现角色向右飞。角色身后有拖尾来展示飞行痕迹,随音乐冲出去越远,拖尾就越长。

根据设想中的画面效果,我从 MV 里提取了角色静帧和背景图,加上我想要的飞行拖尾,拼了张参考图给 AI:

示意图有了,现在要让 AI 通过代码来实现角色随音乐运动,但我不太了解如何设计音乐和运动的对应关系。不过这个拖尾,让我想起了最常见的一类效果即柱状频谱图,每个立柱随着音乐高低变化,是否可以把拖尾当做频谱柱来实现效果呢?

我向 AI 传递了音乐频谱图的想法,并探讨了在此基础上如何实现:

AI 的解答概括来说就是每个角色有自己代表的频谱范围,拖尾/飞多远,是频段当下的能量值决定的:

虽然不确定这个策略是否可行,但 AI 提供了小成本试错的便利先运行出来看看,不行就再指挥它改进。于是我就把 5 个角色的静帧以及歌曲放入文件夹,按照这个策略先动工试试。

很快,完工了。我打开网页观察到的最大问题是,由于「频谱柱」的逻辑就是实时连续伸缩变化,套用这个逻辑会导致角色随音乐一直在连续、高频地前后运动,很抽搐不自然:

而我希望的效果是大部分情况角色是在平稳飞,只在某些时候能随音乐重拍「冲出去一下」。于是把问题反馈给 AI 修改,不断优化,回看了下聊天记录,一共经过了 5 轮迭代。

在第 5 次迭代,我让 AI「全面,深刻地复盘这个问题」之后,它意识到,我其实是想要实现一种随音乐的重拍「冲出去」的感觉,应该计算的是「能量相对变化」,而不是「能量绝对值」:

AI 重新调整了策略,是我想要的那种随着音乐「冲出去一下」的效果了:

回顾了下这里修改多次才找对方向的原因,一方面因为我不了解音乐驱动的方式都有哪些(只知道「频谱」那种)一开始的指令就偏了;另一方面 AI 也没能更快地在我后续的反馈里意识到更换策略(一直在频谱逻辑里微调参数)。

写到这里,我也和 AI 探讨总结了下视觉表现及其适合的驱动方式

阶段 2:让运动效果更真实自然

找到了合适的音乐驱动方式,但运动效果还非常生硬。和 AI 反馈后,它建议可以让运动模拟真实的物理弹簧,加上惯性和阻力,又经过 4 次参数微调,达到了比较自然的效果。

考虑到不想遮挡住背景里的元素,以及希望视觉更加平衡,我又把角色的排版改成了居中,还给拖尾增加了爱心效果,最终效果是:

赋予生命:给角色加上飞行序列帧

参考静帧延展飞行组图

当前,是用「静帧」来测试效果,虽然调好了音乐驱动的逻辑,但角色本身像「贴纸」在移动。为了让角色有生命力,需要让角色做出飞行的姿态和动作,且能无缝循环,最终效果:

我是利用一套序列帧来达到这个效果。想到毕竟是像素风,动画应该不用很多帧数,打算用5张素材图来做循环动画。

做法是利用之前生成的静帧,作为「参考图」,让AI延展成一套动作,模型用 Nano Banano 3 Pro,在 Figma、Lovart 或 Gemini 里都可以制作

提示词(用蓝色角色举例):

这个 8bit 像素风格的角色正在摆出「飞行」的姿态,两个肉色的是手臂,两个白色的是脚。衣服和眼睛有蓝色的部分,头发是灰色。请你帮我修改它手脚的动作以拓展成一套连续飞行动作的序列帧,一共 6 张图片。

要求:

1、保持角色形象一致性,角色朝向一致性。

2、动作首尾相接不断循环,我给你的图作为动作 1,最后的动作 6 也循环回动作1。

3、只稍微修改手脚的动作,不要增加任何新元素。

4、背景必须是纯白色。

实际生成后,常见的问题如角色不同部位配色错位、生成了多余的肢体、肢体比例不合理等问题:

只能多次抽卡并不断调整提示词,并且需要人工微调细节。因为我是在 Figma 和 Gemini 官网制作,这两个工具无法像 Lovart 那样生成多张图片,所以我还需要把一张大图里的 6 张小图分别裁切出来(不方便,但我发现生成在 1 张大图里的角色一致性比生成多张单独图片要好)。

小细节是,在裁切单图的时候要确保单独图片采用同一个画布尺寸,同一条对齐基线,以避免帧动画产生抖动、闪烁。

序列帧效果:

此后,我还生成了一些 8bit 的圣诞装扮比如圣诞帽、围巾和蝴蝶结,给角色穿戴上就完成了最终效果:

之前我们已经完成了静帧运动,现在序列帧素材全都准备好了就可以让 AI 把静帧换成序列帧了:

首次运行后,动作太快太闪烁,我就让AI把动画放慢了些达到了比较自然的动态。

没想到 AI 在这里还埋下了一个隐患:对于多久切换一张动作图,它写的策略是基于「设备画面渲染间隔」,逻辑是:设备渲染 6 张画面的时候,角色换一次动作图。(和设备屏幕自己的刷新率有关)

在 60fps 的设备下是 0.1s 换一次动作,但是在 120fps 下,就是0.05s换一个动作,每个设备上看到的角色动作快慢是不同的。有一次我电脑快没电了,系统开启了节能模式,帧率下降了,然后整个网站所有的动画都变得非常缓慢。后来在一次优化中,才改成了写定 0.1s 换一次动作图而不是基于设备渲染画面,这样才能保证无论什么设备帧率都不影响飞行动作速度。

画布式设计Agent让素材制作提效

如「序列帧」这种美术素材制作或者前期的灵感发散,更推荐画布式设计 Agent 工具(如 Lovart),区别于对话式 AI 的线性呈现(如 Gemini),画布能让灵感和创意自由地组合和延伸,同时也方便直接在图片上编辑。其实即梦,海螺,可灵,也都支持画布交互了,但只有 Lovart 有 Nano Banano,其他的生图模型都没有香蕉好用。

由于当时我只有 Figma 会员,因此所有素材设计都在 Figma 完成,但 Figma 的 AI 生图不是 agent 的形态,能力还很有限,我的制作效率也受限了。

Figma 的 AI 生图改图是单次编辑的交互方式,没有对话上下文,提示词无法保留和复用。我经历了很多次因为没有提前把提示词保存一份,导致生成后提示词全部消失,要重新输入。Lovart 支持一次生成「多张」独立的图片,Figma 只能把多图片生成在「一个图片」里,要分开只能自己一张张手动裁切。

Figma 里改图,新生成的图会替换原图,如果需要用原图进行多次创作,就需要提前复制一份不然原图就找不到了。不过在图片素材已经生成完毕,需要精调细节或排版布局的时候,Figma 丰富的各种编辑功能则更能胜任。比如角色序列帧的人工精修,就需要制作一些高斯模糊的小矩形来修补细节。

搭建场景:三层视差滚动背景

生成首尾无缝循环的图片

最后一大任务,就是场景设计。

我是先用原 MV 里的截图和AI探讨,才了解到:要分别生成 3 张无缝循环的背景图,再让它们以不同的速度往左移动,如果不做视差,就会感觉像一张「贴纸」在移动。

了解了整体方案,下面重点就是制作 3 层首尾相连无缝循环的背景。

我心里最没底的地方,就是让图片可以「首尾无缝衔接」,这是方案能推进的关键。于是我让 AI 帮忙写生图提示词,提供了原 MV 截图作为参考图,并说明要改成「夜晚」、「下雪」、「圣诞」的氛围。

AI 输出提示词后,用 Nano Banano 试了下,原来确实只要在提示词里直接指明「水平无缝循环」就能生成首尾相接的图片:

根据 AI 提供的提示词,我先把较为简单的远景和前景生成好。这两层图片画面内容构成比较简单重复,不是视觉重心,分别只需要生成一张图来无限循环就足够了

远景提示词:

像素艺术游戏背景纹理,2D 横版游戏。深蓝色的夜空渐变,天空中有乌云漂浮。远处是非常模糊的摩天大楼剪影,使用深海军蓝和紫色调来表现深度。极简细节,强调氛围感,8 位复古风格。水平无缝循环,比例是 16:9。

复制了两张图前后拼了下,确实做到了无缝相连。前景提示词:

像素艺术游戏背景纹理,2D 横版游戏。沿着画面底部水平排列的雪,白色,带有冷蓝色的夜间阴影。极简细节,强调氛围感,8 位复古风格,纯白背景。水平无缝循环,比例是 16:9。

最棘手的是中景,因为它承载了视觉的重心,需要展示出丰富多样、错落有致的城市建筑,圣诞装饰。如果中景也只用一张图来循环,很快就会循环到同一个元素,观感上会很单调重复。所以我打算让中景的内容铺得更长一些,因为 AI 目前没法生成比例很细长的图,所以我打算为中景制作 3 张图,图 123 顺序衔接,图1的左侧再和图 3 的右侧无缝衔接:

之前的方式只能做单张图的首尾衔接,无法做到让图1的右侧和图2的左侧无缝衔接。最后我选择了最「传统」也最「可控」的方式:先制作出建筑单体「零件」,然后像搭积木一样,手动把一个个建筑排布组合出图 1、2、3。只需要在图片的接缝处(如图 1 结尾和图 2 开头)放置同一个建筑即可保证无缝循环。

但我发现 AI 提供的提示词无法直接生成MV里那种形状多样、带有各式窗户纹理的建筑风格,最后我决定,先让 AI 把 MV 里的建筑拆成单个建筑,然后做风格参考,来生成类似风格的建筑再拼起来:

MV 画面拆分建筑的提示词:

把这张图里的建筑,拆分成单独的一个个建筑,彼此之间要有留白,背景纯白。

参考拆分后的建筑生成更多类似建筑:

参考这张图的设计风格,生成一系列类似设计风格和色调的 2D,8bit 复古风格的建筑素材,每个建筑之间留有足够的空隙以便我之后单独取用。 请注意,不要添加任何深色描边,保持这种简约色块的风格。建筑也不要太复杂了,就类似参考图例这种简单的构成。

手动排布组合成图 1、图 2、图 3,这个过程还挺有趣的,有种拼图的感觉:

继续用 nano banano 编辑图片,让雪覆盖在建筑上,然后把 3 层背景都放上后的效果:

看起来还不错。

既然设定是圣诞夜,那就再生成一些圣诞元素添加到场景里,氛围感更浓了:

接着就把所有图片依次导出,尤其注意中景和前景都必须是透明底png图片。

让图片向左做视差移动

这部分是整个项目最轻松的,描述需求好后,一次成功:微调了下滚动速度,以及修复了接缝处的一条细线。

彩蛋、歌词和氛围感

一些乐迷们心领神会的细节

作为 Newjeans 的乐迷,我想在场景里增加更多艺人相关的元素,有点小彩蛋的感觉,让乐迷能在发现后会心一笑。

最喜欢的细节设计:我把东方明珠塔的尖顶和Newjeans应援棒的兔子形状结合,让艺人的元素悄悄藏在了建筑里。灵感来自于 Newjeans《Supernatural》的 MV,这支 MV 特别奇幻充满想象力,画风很 City Pop。

除此之外,我还在一些建筑的外墙增加了带有「NJZ」字样的灯牌,并让一栋摩天大楼外墙亮起的灯组成爱心形状。在远景里,我安排了巨型氛围组成员兔子、姜饼人和麋鹿。

氛围组角色运动也是用序列帧的方式,这个兔子滑冰后期修了很久,因为 AI 没法生成这种「顺拐」的动作。

下一场充满氛围感的雪

圣诞夜似乎总和雪有关,雪是提升氛围感的关键。直接让 AI 开始生成:

让歌词漂浮在场景里

如果希望和歌词能跟着歌曲的进度同步展示,是需要准备「带时间戳的歌词的,这个挺不好找,最后是 Manus 帮我搜到的。大部分歌曲的时间戳歌词很难找,只能给 TA 歌曲视频让 TA 边听边记(这个效果就不是非常精准,后面还做了一些人工校准)。

对于歌词的展示,我期望的感觉是:歌词不应该僵硬地贴着, 而是要像在水里一样自由漂浮。一开始我提供了一张示意图并描述了想法让AI先开始做,我也完全没底 AI 是否能理解并实现我要的「漂浮感」。不过一次就实现了,后续就迭代一些动画细节,比如漂浮的位移和抖动频率、防重叠最小间距、渐隐渐显、最大宽度及折行等:

以上就是这个项目所有重点部分了。测试完 4 个主题的可视化效果、UI 控件交互和自适应效果后,终于到了部署上线这一步。

部署上线

对于这类非商业项目,GitHub 托管 + 云平台(Vercel/Cloudflare/Netlify)部署是最高效的方案。代码同步到 GitHub 后,云平台关联 GitHub 仓库,之后每次提交代码到 GitHub,网页都会全自动重新部署上线

不过直接用这些平台提供的默认二级域名(xxx.netlify.app/xxx.pages.dev),由于墙的存在会导致国内访问不稳定。

比如我最初部署在 Cloudflare,域名是 njzneverdie.pages.dev,时常加载不出内容,解决办法是绑定一个自定义域名,我在腾讯云买了一个域名后访问稳定了很多。

如果是商业化项目且用户都在国内,按规定必须走 ICP 备案且部署在境内云服务器(腾讯云/阿里云),否则有合规风险。如果项目是面向海外,那就完全没有访问不稳定的问题了。

性能优化

之前都是在本地直接打开网站,体验非常丝滑。但是部署后从网址上打开,能感觉到加载速度极慢,尤其是小女警主题,角色、场景需几十秒才缓慢加载出来。

和 AI 探讨了下原因,它找到了 11 个性能问题,还按照优先级梳理了给我:

用户反馈

在抖音宣布上线后,收到了非常非常多反馈,能感受到我通过这个赠品想传递出去的心意,乐迷们全都收到了:

也收到很多意见建议和 bug 反馈,我梳理了下:

最近太忙了一直没处理,空了一定先把浏览器问题解决。到这里这篇文章的所有内容就结束了,回顾了下 4 个主题整体时间周期如下:(注:时间仅为下班后晚间时段)

一点表白

3 年前跟着小麦老师学跳《Hype Boy》这支舞开始,我就对这个组合深深着迷,五位成员更新了KPOP文化以往给我留下的印象,如歌词描述的那样:「So Fresh So Clean」。后来我没有错过她们任何一支舞的教学,反复听了每首歌,仔细看了许多 MV,甚至还认真拉过片。她们音乐里那些对异想天开世界的构建,对热烈青春的描绘,带给了我许多共鸣和启发,让我充满创作的欲望。

很难想象如果没有 AI,非视觉和技术专业的普通人要如何去实现各种天马行空的想法。未来的工具一定会更好用,剩下的就是对需求的洞察和去创造的动力。

在创造的路上,我们还有很长的路要走。用海辛&阿文的话来结尾吧:

只要在行动

就是在向前走

Every step, however small,
Is a step forward

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

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

    现在形势不好, 周围很多“毕业”的中年程序员, 多少有点存款. 工作不好找, 都开始研究理财. 大家算算手里的钱, 有两三百个的, 稳健做做配置, 基本可以躺平了. 但这有个前提, 就是单身. 如果结婚了, 并且有孩子了. 房子、 车子、 学区, 各种体面的生活, 开销真是两三倍往上翻.

    比如说日常消费. 一个人的话, 租不起大房子, 可以组单间,一个人出门甚至可以住青旅, 一家人出门可以吗? 吃穿上可以省点, 如果生活中发生其它情绪, 难道和生活质量下降没关系吗?

    别说什么压力是两个人的. 就看婚恋市场多少要求男方有房子的.

    账这么一算, 很多人就开始后悔了. 在今天的社会, 组建一个家庭, 到底需要多大爱情的力量?

    通过阿里云 PolarDB 数据库,我们首次实现了对平台全域公开互动数据的高效结构化处理。在严格遵循隐私保护原则、所有数据均经过去标识化、匿名化处理的前提下,系统可对群体层面的反馈趋势进行分析,辅助品牌更科学地评估内容传播效果,并为营销策略优化提供数据支撑,提升商业决策的确定性。

    <p align=right>——强朔 哔哩哔哩资深数据科学家</p>

    一、客户背景

    哔哩哔哩(B站) 是国内领先的文化社区和视频平台。平台内容生态高度多元化,涵盖视频、图文、直播、音频、互动内容、搜索、动态等多种体裁。作为以“内容种草”为核心心智的平台,B站已成为品牌营销的重要阵地,尤其在汽车、3C数码、美妆、快消、教育培训、游戏等行业具备显著影响力。

    二、业务场景与核心痛点

    与传统电商平台不同,B站用户的消费决策往往源于内容互动所形成的品牌认知与兴趣积累,而非站内直接转化。这一特点对营销效果评估提出了更高要求。为此,平台基于经过去标识化、匿名化处理的海量公开互动数据,开展群体层面的数据趋势分析,以支持内容生态优化与商业服务能力的持续提升。例如,通过分析洞察辅助评估品牌内容的传播广度与用户反馈方向,为广告主提供更科学的效果参考。

    B站内容平台营销商业化路径

    B站商业化团队在服务品牌客户过程中,面临三大核心挑战:

    1. 营销效果难以量化:品牌在B站投放内容(如UP主种草视频)后,缺乏有效手段衡量用户群体是否被“种草”。例如,某汽车品牌发布新车测评视频后,需从去标识化的互动内容中识别用户群体对续航、外观、价格等属性的评价,以评估内容传播效果。

    2. 内容资产难以结构化:B站内容体裁丰富、语义复杂,视频中包含大量视觉、语音、文本信息,互动区则充斥高信息密度的长文本。传统关键词匹配或规则引擎难以准确提取商业实体(如品牌、类目、SPU)及其关联语义。

    3. 营销策略缺乏数据支撑:品牌希望基于B站真实讨论内容,反向指导新品定义、传播策略与创意方向。例如,某美妆品牌需了解用户群体在讨论粉底液时最关注“持妆度”“遮瑕力”还是“肤感”,但缺乏系统性内容洞察工具。

    为解决上述问题,B站商业化数据科学团队联合阿里云,构建了一套面向全域内容的结构化洞察框架,实现从“内容感知”到“商业洞察”的数据闭环。

    三、解决方案:“大模型+小模型”协同的全域内容洞察新框架

    PolarDB for AI 是阿里云瑶池旗下云原生数据库PolarDB内部的分布式机器学习组件,支持在数据不出库的前提下,高效调用轻量化小模型进行实时推理,同时可联动千问等大模型处理复杂语义任务,实现大模型与小模型协同一体化架构。

    PolarDB for AI一站式方案

    • PolarDB for AI 可以通过调用千问大模型,对经过去标识化、匿名化处理的用户互动内容进行批量分析,辅助洞察群体层面的兴趣趋势与反馈倾向,为产品优化与内容策略提供数据支持。
    • PolarDB for AI通过定制化的电商领域大模型,结合阿里电商领域的商品知识图谱,大大提升B站对类目、品牌、SPU等多个标签的识别能力,实现品牌高精准匹配,促进内容资产结构化。


    B站全域内容洞察矩阵

    B站采用“大模型+小模型”融合的技术路径,依托DeepSeek、阿里千问(Qwen)系列大模型、B站自研的Index模型与PolarDB for AI能力,构建覆盖M×N矩阵的全域内容洞察体系——M为商业化标签维度,N为内容体裁维度。

    整体技术架构分为三层:

    • AI基建层:基于阿里云百炼平台、PAI、GPU资源及B站自研Agent平台,提供模型训练、推理与调度能力。
    • 数据与模型层:结合通用大模型(如Qwen、Qwen-VL、Qwen-Audio)与PolarDB for AI提供的领域小模型(经SFT、强化学习微调),实现高效、低成本的内容洞察。
    • 应用服务层:通过PolarDB for AI节点,提供模型算子能力,实现“数据不出库”的高效挂靠与推理,且提供稳定独享的模型实时在线服务能力。

    该方案兼顾效果与成本:通用大模型用于标签体系挖掘与复杂语义分析,领域小模型则在特定任务(如实体抽取)上实现更高精度与更低延迟。

    四、关键技术实现与难点突破

    1. 视频稿件内容提取:从非结构化到结构化

    视频内容提取过程

    视频是B站核心内容载体,但其信息分散于画面、语音与字幕中。B站采用多模态融合策略:

    • 中间层构建:通过ASR(语音转文本)与关键帧OCR(图像文字识别)提取原始文本,再利用Qwen-VL、Qwen-Audio等多模态大模型生成语义中间表示。
    • CPV体系构建:基于大模型挖掘与行业维护,建立“类目-属性-属性值”体系。例如,识别出视频中“相机”类目下的“防抖技术”属性及其值“IBIS”。
    • 实体三元组抽取与挂靠:通过大模型抽取<类目, 品牌, SPU>三元组,但原始抽取结果存在与标准产品库里的命名不一致的问题(如“尼康Z5” vs “尼康Z5微单相机”)。

    技术难点:如何将非标准化抽取结果精准挂靠至标准产品库?

    解决方案:B站与阿里云PolarDB团队合作,在PolarDB for AI节点中部署定制化挂靠模型。通过SQL,在数据库内直接调用精调后的大模型进行实体对齐。例如,我们来预测一个稿件的类目。执行如下SQL:

    /*polar4ai*/ 
    SELECT * FROM PREDICT(
      MODEL _polar4ai_cpv_agent,   
      SELECT '{"商品名称":"尼康Z5","品牌名称":"尼康","类目属性模板":{"类目":""},"类目属性限定":{"类目":["数码-摄影摄像-传统相机-相机","数码-数码配件",...]}}'
    ) WITH ();
    

    得到{"类目":"数码-摄影摄像-传统相机-相机"}

    该方案实现“数据不出库”的高并发挂靠,解决抽取结果与标准产品命名的一致性问题,既保障数据安全,又显著降低工程复杂度。同时,结合BGE+RoBERTa等NLP模型进行匹配,进一步提升挂靠准确率。

    2. 互动内容分析:从海量数据中挖掘高价值线索


    互动内容分析过程

    B站评论区信息密度很高,但90%以上为非商业化内容。直接使用大模型全量处理成本高昂。

    技术难点:如何在成本可控的前提下,利用匿名化互动数据实现多实体群体反馈的细粒度分析,支撑内容与商业服务的持续优化?

    解决方案:采用“过滤-分析-挖掘”三级流水线:

    • 第一级:商业化过滤:使用轻量级NLP模型,如BGE+BiLSTM模型快速筛除无关内容,仅保留可能涉及品牌、产品讨论的内容。
    • 第二级:实体与予以关联分析:对过滤后文本,利用PolarDB for AI提供的商品大模型识别类目、品牌、SPU,并建立不同实体间的语义关联关系。
    • 第三级:意图与属性挖掘:进一步识别“种草”“购买意愿”等高阶语义,并提取用户群体关注的具体属性(如“续航达成率高”“价格贵”),形成结构化洞察。

    五、总结

    通过与阿里千问大模型及PolarDB for AI的深度协同,B站成功构建了一套高效、可扩展的全域内容洞察体系。该体系不仅解决了品牌营销效果度量难、内容资产结构化难等核心痛点,更将B站独特的社区公开互动数据转化为可行动的商业洞察,显著提升了广告主的投放确定性与ROI。目前,该全域内容洞察体系已应用于B站的哔哩指数、花火平台AI选UP主、哔哩必达洞察报告、引力计划爆文投放、经营号线索挖掘及品牌广告搜索词包等商业化场景,实现从内容洞察到营销转化的全链路提效。未来,B站将持续优化模型能力,拓展至更多内容体裁与商业场景,进一步释放内容平台的营销价值。

    了解原生数据库PolarDB:https://www.aliyun.com/product/polardb

    图片

    文末有源码下载链接!

     Go语言里面最常用的并发模型有10种,今天我们继续讲剩下的5种常用并发模式。

    1、预先占位结果模式(Future/Promise)

        常用于在未来获取某一个结果的场景。例如麻将胡牌后,要计算倍数,这个计算比较耗时,所以就让这个计算放在后面异步去计算,同时要通知客户端播放胡牌的音乐和胡牌的特效。直到倍数计算完成后,再通知客户端显示详细的结果。

    //futurepromise.go
    package futurepromise
    import (
        "fmt"
        "time"
    )
    // 异步计算的最终结果
    type FanResult struct {
        // 总倍数
        TotalScore int
        // 详情
        Details string
        Err     error
    }
    // 结果占位符
    type Future chan FanResult
    // Get方法:阻塞等待并获取最终结果
    func (f Future) Get() (FanResult, error) {
        result := <-f
        return result, result.Err
    }
    type Tile struct {
        // 牌名
        Name string
        // 牌值
        No int
    }
    // 胡牌结构体
    type Hand struct {
        // 牌
        Tiles []Tile
        // 是否自摸
        IsSelfDraw bool
    }
    // CalcFanScore 是Promise函数,它接受胡牌信息,启动一个Goroutine异步任务,并立即返回Future占位符
    func CalcFanScore(hand Hand) Future {
        resultCh := make(chan FanResult, 1)
        go func() {
            fmt.Println("[Promise] 计算倍数开始...")
            time.Sleep(2 * time.Second)
            totalScore := 11
            details := "清一色(6)倍+7对(5)倍=11倍"
            resultCh <- FanResult{
                TotalScore: totalScore,
                Details:    details,
                Err:        nil,
            }
            fmt.Println("[Promise] 计算倍数结束,并发送结果")
            close(resultCh)
        }()
        // 立即返回Future占位符
        return resultCh
    }
    //futurepromise_test.go
    package futurepromise
    import (
        "fmt"
        "testing"
        "time"
    )
    func TestFuturePromise(t *testing.T) {
        hand := Hand{
            Tiles: []Tile{
                {Name: "万", No: 1},
                {Name: "万", No: 2},
                {Name: "万", No: 3},
                {Name: "万", No: 4},
                {Name: "万", No: 5},
                {Name: "万", No: 6},
                {Name: "万", No: 7},
                {Name: "万", No: 7},
                {Name: "万", No: 8},
                {Name: "万", No: 8},
                {Name: "万", No: 8},
                {Name: "万", No: 9},
                {Name: "万", No: 9},
                {Name: "万", No: 9},
            },
            IsSelfDraw: false,
        }
        fmt.Println("---end---")
        fmt.Println("玩家胡牌了!")
        fanFuture := CalcFanScore(hand)
        fmt.Println("启动异步计算倍数")
        time.Sleep(time.Millisecond * 500)
        fmt.Println("播放玩家胡牌音乐,通知其他玩家XXX胡牌了")
        time.Sleep(time.Millisecond * 500)
        //最后,调用fanFuture.Get来获取最终结果,知道结果计算出来为止
        finalRes, err := fanFuture.Get()
        if err != nil {
            fmt.Printf("倍数计算出错:%v\n", err)
            return
        }
        fmt.Println("倍数计算结果出来了")
        fmt.Println("总倍数是", finalRes.TotalScore)
        fmt.Println("详情:", finalRes.Details)
        fmt.Println("---end---")
    }

    测试结果:

    图片

    2、Context可控并发模式

        这个模式比较熟悉了,我们用麻将游戏里,超时自动打一张牌来举例。

    //context.go
    package contextdemo
    import (
        "context"
        "fmt"
        "time"
    )
    
    // 等待玩家打牌
    func waitPlayerAction(ctx context.Context, player string) (string, error) {
        select {
        case <-time.After(5 * time.Second): //模拟玩家5秒都没有出牌
            return "", fmt.Errorf("玩家%s5秒内没有任何动作", player)
        case <-ctx.Done():
            return "", ctx.Err()
        }
    }
    //context_test.go
    package contextdemo
    import (
        "context"
        "fmt"
        "testing"
        "time"
    )
    func TestContext(t *testing.T) {
        ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
        defer cancel()
        actionCh := make(chan string, 1)
        go func() {
            if act, err := waitPlayerAction(context.Background(), "张三"); err == nil {
                actionCh <- act
            } else {
                //没有动作
            }
        }()
        select {
        case act := <-actionCh:
            fmt.Println("玩家动作", act)
        case <-ctx.Done():
            fmt.Println("超时,自动打一张牌")
        }
    }

    测试结果:

    图片

    3、信号量控制并发模式

        信号量适用于限制资源使用(比如一台服务器只能并发开多少个麻将房间)。

    // semaphore.go
    package semaphore
    const MAX_ROOMS = 10
    type RoomManager struct {
        roomSlots   chan struct{}
        activeRooms map[int]bool
        mu          sync.Mutex
        nextRoomID  int
    }
    func NewRoomManager() *RoomManager {
        return &RoomManager{
            roomSlots:   make(chan struct{}, MAX_ROOMS),
            activeRooms: make(map[int]bool),
            nextRoomID:  100,
        }
    }
    func (rm *RoomManager) OpenRoom() int {
        fmt.Println("[请求]房间创建请求到达,等待空闲槽位...")
        // 如果roomSlots已满,就在这儿等待
        rm.roomSlots <- struct{}{}
        rm.mu.Lock()
        roomid := rm.nextRoomID
        rm.nextRoomID++
        rm.activeRooms[roomid] = true
        currentLoad := len(rm.roomSlots)
        rm.mu.Unlock()
        fmt.Printf("[创建] 房间%d成功创建。当前房间数是:%d/%d\n", roomid, currentLoad, MAX_ROOMS)
        time.Sleep(time.Duration(roomid%3) * time.Second)
        return roomid
    }
    func (rm *RoomManager) CloseRoom(roomId int) {
        rm.mu.Lock()
        if !rm.activeRooms[roomId] {
            rm.mu.Unlock()
            return
        }
        delete(rm.activeRooms, roomId)
        rm.mu.Unlock()
        // 释放信号量
        <-rm.roomSlots
        currentLoad := len(rm.roomSlots)
        fmt.Printf("[释放] 房间%d成功释放。当前房间数是:%d/%d\n", roomId, currentLoad, MAX_ROOMS)
    }
    // semaphore_test.go
    package semaphore
    import (
        "fmt"
        "sync"
        "testing"
        "time"
    )
    func TestSemaphore(t *testing.T) {
        manager := NewRoomManager()
        var wg sync.WaitGroup
        const totalRequests = 12
        fmt.Printf("服务器最大容量:%d个房间。\n", MAX_ROOMS)
        for i := 0; i < totalRequests; i++ {
            wg.Add(1)
            go func(requestNum int) {
                defer wg.Done()
                roomId := manager.OpenRoom()
                //模拟房间正在打牌耗时1秒
                time.Sleep(time.Second)
                manager.CloseRoom(roomId)
            }(i + 1)
        }
        wg.Wait()
        fmt.Println("所有房间任务已经处理完毕。")
    }

    测试结果:

    图片

    4、工作池自动扩容模式

    //workerpool.go
    package dynamicworkerpool
    func worker(id int, jobs <-chan int, quit <-chan struct{}, wg *sync.WaitGroup) {
        defer wg.Done()
        for {
            select {
            case j, ok := <-jobs:
                if !ok {
                    return
                }
                fmt.Println("工人", id, "处理任务", j)
                time.Sleep(time.Duration(rand.Intn(200)+50) * time.Millisecond)
            case <-quit:
                fmt.Println("工人", id, "收到结束信号")
                return
            }
        }
    }
    //workerpool_test.go
    package dynamicworkerpool
    func TestDynamicWorkerPool(t *testing.T) {
        jobs := make(chan int, 1000)
        var workerQuits []chan struct{}
        stop := make(chan struct{})
        maxWorkers := 10
        var wg sync.WaitGroup
        // 调度器:根据 jobs 队列长度调整 worker 数量(非常简单的策略)
        go func() {
            workers := 0
            for {
                select {
                case <-stop:
                    // 停止调度器时,关闭剩余的 worker quit 通道以确保 worker 退出
                    for _, q := range workerQuits {
                        close(q)
                    }
                    return
                default:
                }
                log.Println("检测jobs长度")
                l := len(jobs)
                target := 1
                switch {
                case l > 20:
                    target = 10
                case l > 10:
                    target = 3
                case l > 5:
                    target = 2
                }
                target = min(target, maxWorkers)
                if target > workers {
                    // 启动更多 worker(为每个 worker 创建独立 quit 通道)
                    add := target - workers
                    for i := 0; i < add; i++ {
                        wg.Add(1)
                        q := make(chan struct{})
                        workerQuits = append(workerQuits, q)
                        go worker(workers+i+1, jobs, q, &wg)
                    }
                    workers = target
                    fmt.Println("扩容 ->", workers, "个工人")
                } else if target < workers {
                    // 精确缩容:关闭最近创建的 worker 的 quit 通道,并从列表移除
                    for i := 0; i < workers-target; i++ {
                        last := len(workerQuits) - 1
                        if last >= 0 {
                            close(workerQuits[last])
                            workerQuits = workerQuits[:last]
                        }
                    }
                    workers = target
                    fmt.Println("缩容 ->", workers, "个工人")
                }
                time.Sleep(200 * time.Millisecond)
            }
        }()
        // 产生任务(模拟高峰 / 低谷)
        go func() {
            for i := 1; i <= 600; i++ {
                jobs <- i
                time.Sleep(time.Duration(rand.Intn(80)) * time.Millisecond)
            }
            close(jobs)
        }()
        // 等待所有 workers 结束(注意:简化版,这里睡一会儿以等待)
        time.Sleep(6 * time.Second)
        // 停止调度器(它会关闭剩余的 worker quit 通道)
        close(stop)
        wg.Wait()
        fmt.Println("结束")
    }

    测试结果:

    图片

    5、并发任务分组模式(ErrGroup)

    来自golang.org/x/sync/errgroup,多任务并发执行,自动管理错误和退出。以麻将计算倍数为例,清一色、七对、大对子等。

    //errgroup.go
    package errgroupdemo
    import (
        "context"
        "fmt"
        "math/rand"
        "time"
    )
    func compute(ctx context.Context, name string, delay time.Duration) error {
        select {
        case <-time.After(delay):
            if rand.Intn(10) < 2 {
                fmt.Println(name, "失败")
                return fmt.Errorf("计算%s失败", name)
            }
            fmt.Println("计算", name, "成功")
            return nil
        case <-ctx.Done():
            fmt.Println("计算", name, "取消")
            return ctx.Err()
        }
    }
    //errgroup_test.go
    package errgroupdemo
    import (
        "context"
        "fmt"
        "testing"
        "time"
        "golang.org/x/sync/errgroup"
    )
    func TestErrGroup(t *testing.T) {
        ctx := context.Background()
        g, ctx := errgroup.WithContext(ctx)
        methods := []struct {
            name  string
            delay time.Duration
        }{
            {"平胡", 100 * time.Millisecond},
            {"七对", 200 * time.Millisecond},
            {"清一色", 150 * time.Millisecond},
        }
        for _, m := range methods {
            m := m //核心:创建循环变量 m 的局部副本
            g.Go(func() error {
                return compute(ctx, m.name, m.delay)
            })
        }
        if err := g.Wait(); err != nil {
            fmt.Println("有计算失败了:", err)
            return
        }
        fmt.Println("所有计算都成功了")
    }

    测试结果:

    图片

    6、源码地址

    https://pan.baidu.com/s/1B6pgLWfSgMngVeFfSTcPdg?pwd=jc1s


    如果您喜欢这篇文章,请点赞、推荐+分享给更多朋友,万分感谢!

    春节 vibe 了个 Android 小玩具,核心理念跟传统 TodoList 相反:帮用户学会拒绝,而非做更多。

    为什么做这个?来源于我自身。
    我是深度 todo 用户,但因为日常事项实在太繁杂,最后变成焦虑来源。我的 TodoList 曾累积 200+任务,每次打开都有压力。

    核心设计:

    • 专注列表强制上限 3 个任务,不可配置
    • 每个任务进入审视区,用 3 个问题引导你决定:保留/删除/搁置
    • 周统计展示删除率,"删除也是成就"
    • 零配置:无标签、无优先级、无提醒、无日历

    技术栈:
    Jetpack Compose + Room + Clean Architecture ,纯本地存储,无需网络权限。

    落地页:
    www.undolist.app

    欢迎建议和吐槽

    最近 Apple 悄悄开源了一个王炸项目:针对 macOS 内置基础大模型的 Python SDK ( https://github.com/apple/python-apple-fm-sdk )。这意味着我们可以直接调用系统原生自带的 Apple Intelligence 算力了!

    借着这波东风,我马上搓了一个项目,把系统底层的苹果模型包装成大家最熟悉的标准 OpenAI API 。

    🔗 项目在此: https://github.com/ZPVIP/apple-to-openai (欢迎老哥们点个 Star ⭐ 支持下!)

    🎯 为什么需要它?(核心解决隐私和数据脱敏问题)
    大家在用各种 AI 客户端帮忙分析工作日志、敏感代码或是业务数据时,多多少少会有“数据传到云端会不会泄漏”的顾虑。

    这时候 apple-to-openai 的优势就出来了:

    • 纯粹的隐私安全(数据脱敏利器):100% 在你的 Mac 本地运行。断网也能跑,数据绝不出你的电脑。
    • 极轻量、免折腾:你不需要去下载 Ollama ,也不用去 Hugging Face 拖几 GB 的第三方开源模型权重。Mac 系统自带什么,我们就用什么。
    • 万物皆可缝合:直接提供 OpenAI 兼容规范的 /v1/chat/completions 。只要你会改 baseURL 和随便填个 API Key ,你的小龙虾客户端( OpenClaw )、Chatbox 、Open WebUI 甚至所有 IDE 插件全部一秒无缝接入!
      👉 项目的 README 里有保姆级的配置说明,直接用 uv run apple-to-openai 就能丝滑启动。

    🌟 夹带私货时间:绝配的周边工具
    既然有了免费、本地的原生 AI 接口不用白不用。顺便安利我安利了几次的另一个懒人神器:

    🛠️ CommitGPT —— 帮你自动写完 Git Commit 的 CLI 工具!

    • 极其丝滑的安装:支持原生 brew 安装,告别复杂的环境依赖!
    • 本地大模型的绝佳拍档:把后端的 Provider 切换到刚才配置的 apple-to-openai ,从此以后你项目里的所有 git commit 都由 Apple Intelligence 帮你按常规标准免费写好,不用担心任何敏感代码提交时泄漏。

    两个项目都已开源,用爱发电! 欢迎大家去搞事、提 Issue ,如果觉得让你用得顺手,别忘了去 Github 给楼主点个 Star 🌟 充值信仰!你们的 Star 绝对是我更新的最大动力!🙏🏼

    2026 年,AI 编程已成为行业标配。据统计,全球超过 40% 的代码已由 AI 生成或辅助完成。然而,在研发华为云码道(CodeArts)代码智能体的过程中,我们观察到一个明确的技术瓶颈:AI 在处理小工具、小程序、单文件逻辑时表现出色,但在面对百万行级代码的企业级软件时,落地效果往往受限于工程复杂度。

    企业级软件开发与“小规模编程”的本质区别

    在讨论工具能力之前,我们需要明确企业级开发的三个工程现实:

    • 代码规模与语义断层:企业级软件工程通常代码规模巨大,分布在数百个模块中。即便模型上下文窗口已达同样数量级,面对海量代码库依然只能读取极小片段。缺乏全局语义索引的 AI,很难理解跨模块的复杂调用和依赖拓扑。

    • 长周期的可维护性:企业软件生命周期通常跨越 10 年,经历无数次技术升级与人员更替。AI 生成的代码如果缺乏明确的架构意图,会迅速堆积成技术债。在多人协作环境下,没人能长期维护一段“AI 凭感觉写出来、但人类看不懂”(Vibe Coding)的代码。

    • 极高的故障代价:对于电商、金融等核心系统,一个由 AI 引入的逻辑空指针或并发死锁,可能导致数亿元的损失。企业级开发对可靠性的要求,远高于对单纯生成速度的追求。

    AI 编程落地企业的核心挑战

    在企业级软件规模的 Java 工程中,AI 编程面临三个实质性的“确定性”难题:

    • 上下文断层:AI 无法感知大型工程深层的领域模型和复杂的私有库规则,导致生成的片段难以兼容现有的业务逻辑。

    • 重构风险:手动修改核心接口极易出错,AI 亦难以保障跨模块引用的同步更新,在大工程中极易遗漏调用点(Call Sites),引发回归风险。

    • 调试成本:在复杂的分布式环境下,定位 AI 生成逻辑中的隐性 Bug 或并发问题,其排查成本远高于手动编写代码。

    华为云码道的五大基础编码“托底”能力

    企业级 AI 编程工具的核心不在于生成量和生成速度,而在于能否通过底层能力吸收工程复杂性。为此,华为云码道为企业级 Java 开发者构建了一套“托底机制”,这套机制深度整合了 ML 驱动的代码补全、确定性重构、语义巡检、全局导航及高阶调试能力,通过底层索引与静态分析引擎,确保人类工程师能够高效地对 AI 生成的代码进行逻辑审核、架构调整与代码调优。

    ML 驱动的建议排序与补全 (Code Completion)

    • ML 驱动的建议排序 (ML-driven Sorting):当键入字符时,系统并非简单按字母排序,而是利用 ML 模型实时分析工程上下文、类加载环境及开发者习惯,将最高频、最合理的候选词(如 System)智能置顶。这种高置信度排序确保了在复杂的依赖关系中,最契合业务逻辑的 API 始终处于首选位置。

    • 全场景行内逻辑预测 (Smart Single & Multiline Proposals):行内补全(Inline Completion)能力在处理如 ide.features().stream() 这种链式调用时,系统能预判并以淡灰色字体呈现整行甚至多行的逻辑构造(如 Stream API 的后续操作)。这种全场景预测将繁琐的语法构造自动化,显著降低了手动输入带来的错误,在源头保证了工程的一致性。

    在企业级软件开发中,“确定性”远比“生成速度”更重要,华为云码道通过底层索引与 ML 模型的协同,将庞大工程的跨模块依赖、私有库规范及长周期维护的复杂性吸收在工具内部,从而稳住代码质量下限,让开发者从机械的语法对齐与风险对抗中解脱,专注于高价值的架构决策。

    确定性重构 (Deterministic Refactoring)

    • 依赖感知的全局重构:华为云码道将高风险的代码重构转化为受控的自动化过程。通过右键菜单,开发者可以一键发起重命名、方法提取或变量提取。不同于简单的文本替换,系统会自动追踪该符号在整个工程中的所有引用点(包括跨模块调用),并同步完成确定性的更新,确保代码演进过程中逻辑始终自洽。

    在企业级软件开发中,“跨文件确定性重构”是保障企业级软件工程长期可维护性的“安全护栏”,它通过底层索引感知跨模块依赖,将高风险的手动修改转化为具备依赖校验的自动化同步,确保复杂的业务架构能随着需求安全演进。

    语义巡检 (Code Inspection)

    • 语义风险拦截 (Semantic Risk Interception):巡检引擎会基于深度语义理解进行扫描。它能敏锐地发现变量定义中的逻辑缺陷、非标准命名或潜在的空指针风险。相比通用工具,它提供了更细粒度、更具行业针对性的规则,在代码提交前即精准拦截各类语义缺陷。

    • 企业级框架语义感知 (Framework Awareness):华为云码道多语言内核集成企业级常用框架(如 Spring/Spring Boot),它能实时识别 @Autowired 注入的语义状态(如 injected (1) 标识),确保依赖关系的准确性。这种框架感知能力解决了大型工程中因 Bean 注入错误、配置冲突导致的运行时崩溃问题,显著降低了后期排错的沉没成本。

    在企业级软件开发中,语义巡检是确保软件健壮性与可维护性的核心技术防线,它通过自动化、标准化的实时校验,在代码提交前即精准拦截各类语义缺陷与框架层面的隐患,在降低后期调试成本的同时,强制确保所有生成的代码均严丝合缝地对齐项目既定的质量基准。内置了远超通用工具的规则集(显著优于开源方案)。它能在代码落地前检测出冗余块、潜在空指针、性能瓶颈等问题。对于代码智能体而言,这是一层实时的合规性校验,强制其生成的代码符合项目标准。

    全量索引导航 (Code Navigation)

    • 跨模块引用感知 (Cross-Module Reference Insight):基于全量索引实现的语义导航在处理如 UserService 这种核心业务类时,代码上方自动浮现出 bean definitions (1)、injected into (5) 等信息。这让开发者无需在数百个模块间手动全局搜索,即可直观确认当前服务在 Spring 容器中的定义状态及其被下游业务方调用的详细链路。

    • 复杂依赖与继承拓扑追踪 (Dependency & Hierarchy Tracking):深度语义导航可以理解复杂的数据结构及其继承关系。如图所示,针对 UserRepository,系统实时呈现了 superclasses(7)(父类拓扑)以及 injected into(2)(注入点)。这种语义悬浮能力,让开发者在阅读代码的瞬间即可掌握其在整个复杂工程体系中的地位与影响范围。

    全量索引导航通过实时呈现跨模块的 Bean 注入链路与继承拓扑,解决了大型工程中手动梳理依赖关系的效率瓶颈,确保了在高度解耦、大规模的企业级软件开发环境中,每一处逻辑改动的影响面始终清晰透明。

    高阶调试 (Advanced Debugging)

    • 表达式实时求值 (Expression Evaluation):如图所示,程序停在 UserController 的加密逻辑处。开发者在变量观测窗口输入时,系统提供了精准的代码补全(涵盖 password 变量及 passwordEncoder 对象),允许开发者在不重启应用的情况下,直接在当前执行上下文中运行代码片段,甚至能穿透检查私有(Private)成员状态。

    • 代码热替换 (Hot Code Replace):对运行中应用的动态修改能力。即便涉及 Lambda 表达式等复杂语法改动,开发者修改代码后只需点击替换,变更即可在毫秒级注入运行中的 JVM 进程,且保持当前的执行状态和断点不丢失。

    高阶调试特性解决了大型分布式系统在本地开发时重启成本极高(动辄数分钟)的技术痛点。它通过提供具备补全能力的实时实验场与覆盖 Lambda 等复杂场景的代码热替换,将原本冗长的“改动 - 打包 - 重启”循环缩短为瞬时的反馈闭环,在确保企业级软件工程逻辑演进连续性的同时,显著降低了复杂业务 Bug 的排查与验证周期。

    结语:AI 编程落地企业级软件开发的务实范式

    企业级软件的开发逻辑——百万行规模、长周期维护及高可靠性要求——决定了 AI 必须在受控的工程环境下运行。一套严密的“托底机制”是吸收 AI 随机性、保障系统确定性的关键。目前的务实路径是:由 AI 承担代码生成、测试用例编写、重复性问题修复等高频次劳动;人类工程师则转向架构设计、代码审查及核心决策。在这种协作模式下,开发者的职能正在从“代码编写”向“逻辑审核”与“质量把控”转型。华为云码道希望在这个转型过程中,成为开发者可靠的工程助手。

    最后,工具的打磨需要真实生产场景的反馈。 华为云码道致力于解决企业级开发中的确定性难题,但面对超大规模代码库的极端边缘场景,目前仍可能存在不完善之处。

    我们诚挚邀请所有开发者们试用并向我们提交 Issue。每一个来自真实工程的报错或建议,都是我们迭代工具“托底”精度、推动 AI 编程在企业级软件开发中真正扎根的关键。

    作者简介:

    王亚伟,华为云开发工具效率首席技术专家,华为云码道首席架构师

    Eclipse 基金会 OpenVSX 指导委员会(Steering Committee)成员,前微软开发者事业部资深研发主管。主导了华为云码道多语言内核与 AI 融合架构的研发。在智能代码补全、全库索引检索、自动化重构等领域拥有 30 余项全球专利(其中中国、美国、欧盟已授权 16 项),致力于通过底层内核技术与 AI 的深度融合,提升大规模企业级软件的交付质量与效率。

    今日好文推荐

    DeepSeek V4 压顶,Anthropic CEO 先动手了:一场漏洞百出的舆论战,从构陷到翻车

    全行业盯了两年的编程能力榜,今天退役!OpenAI 停用 SWE-bench Verified:未来标准将看 AI 能顶替多少程序员?

    收购不成便带头封杀?!Meta 痛下狠手,OpenClaw 彻底失控:被拒后竟“人肉”网暴人类,实锤无人操控

    “软件工程师”头衔要没了?Claude Code之父YC访谈:一个月后不再用plan mode,多Agent开始自己组队干活

    更新了 idea 之后打开同事的代码。idea 一直在把原来大写的变量名识别成类名。原来是

    A A = new A();
    A.setXXXX();
    

    现在 idea 一直认为这个 A 是一个类名,所以一直自动修改成

    packageA.A.setXXX();
    

    导致本来编译没问题的类一直在自动修改,现在编译过不了了。这个是 idea 本地配置的问题吗?