普通视图
【鸿蒙开发实战篇】鸿蒙6 AI智能体集成实战
大家好,我是 V 哥。 鸿蒙6的 Agent Framework Kit 是连接应用与小艺智能体生态的核心工具,允许开发者在应用中嵌入智能体入口,实现“应用+智能体”协同服务。以下结合电商、工具类等典型场景,详解集成步骤、代码实战及避坑指南。
联系V哥获取 鸿蒙学习资料
一、核心概念与使用前提
| 关键概念 | 说明 |
|---|---|
| FunctionComponent | 智能体入口UI组件,根据是否设置title自动切换为图标或按钮形态。 |
| AgentController | 控制器,用于检查智能体可用性、监听对话框状态(如打开/关闭)。 |
| agentId | 智能体唯一标识,需从小艺开放平台获取,长度限制1~64字符。 |
环境要求:
- 设备:鸿蒙6.0.0(20)及以上版本的手机/平板(模拟器可能不支持)。
- 依赖:在
module.json5中声明权限"reqPermissions": [{ "name": "ohos.permission.INTERNET" }]。
二、基础集成:快速拉起智能体
场景示例:电商App在商品详情页添加“智能客服”入口,用户点击直接唤起智能体咨询商品信息。
1. 基础代码实现
import { FunctionComponent, FunctionController } from '@kit.AgentFrameworkKit';
import { common, BusinessError } from '@kit.AbilityKit';
@Entry
@Component
struct ProductDetailPage {
// 替换为实际智能体ID(从小艺开放平台获取)
private agentId: string = 'agentproxy_xxx';
private controller: FunctionController = new FunctionController();
build() {
Column() {
// 商品信息展示...
Text("华为Mate 60 Pro").fontSize(20)
// 智能客服入口(按钮形态)
FunctionComponent({
agentId: this.agentId,
onError: (err: BusinessError) => {
console.error("智能体拉起失败:", err.code, err.message); // 错误处理必填
},
options: {
title: '智能客服', // 设置标题后显示为按钮
queryText: '咨询华为Mate 60 Pro的续航和拍照功能' // 预设用户意图
},
controller: this.controller
})
.margin(20)
}
}
}
2. 形态适配策略
-
图标形态(不设
title):适合首页导航栏等综合入口。
FunctionComponent({
agentId: this.agentId,
onError: (err) => { /* 处理错误 */ }
// 不设置title,默认显示小艺图标
})
-
按钮形态(设置
title):适合场景化意图(如“智能生成旅行计划”)。
三、进阶实战:状态监听与可用性检查
场景示例:工具类App在智能体对话框关闭后刷新页面数据(如智能生成报表后更新UI)。
1. 监听对话框状态
@Entry
@Component
struct ReportPage {
@State isDialogOpen: boolean = false;
private controller: FunctionController = new FunctionController();
aboutToAppear() {
// 监听对话框打开
this.controller.on('agentDialogOpened', () => {
this.isDialogOpen = true;
console.info("智能体对话框已打开");
});
// 监听对话框关闭(关键:对话框关闭后刷新数据)
this.controller.on('agentDialogClosed', () => {
this.isDialogOpen = false;
this.refreshReportData(); // 自定义数据刷新逻辑
});
}
// 销毁时移除监听
aboutToDisappear() {
this.controller.off('agentDialogOpened');
this.controller.off('agentDialogClosed');
}
build() {
Column() {
if (this.isAgentSupported) { // 需先检查可用性
FunctionComponent({
agentId: this.agentId,
onError: (err) => { /* 错误处理 */ },
controller: this.controller
})
} else {
Text("当前设备不支持智能体功能").fontColor(Color.Red)
}
}
}
}
2. 预检查智能体可用性(避免无效加载)
import { common } from "@kit.AbilityKit";
@Entry
@Component
struct SafeAgentPage {
@State isAgentSupported: boolean = false;
private agentId: string = 'agentproxy_xxx';
async aboutToAppear() {
try {
const context = getContext(this) as common.UIAbilityContext;
// 异步检查智能体是否可用
this.isAgentSupported = await FunctionController.isAgentSupport(context, this.agentId);
} catch (err) {
console.error("检查支持状态失败:", err);
}
}
build() {
Column() {
if (this.isAgentSupported) {
FunctionComponent({
agentId: this.agentId,
onError: (err) => { /* 处理错误 */ }
})
} else {
Button("下载智能体支持模块")
.onClick(() => { /* 引导用户升级系统 */ })
}
}
}
}
四、常见问题与优化策略
| 问题场景 | 解决方案 |
|---|---|
| agentId无效或设备不支持 | 使用isAgentSupport()预检查,降级显示提示或引导用户升级。 |
| 智能体拉起无响应 | 检查网络权限、确认小艺版本更新,错误回调中输出具体code。 |
| 界面卡顿 | 避免在主线程执行智能体相关操作,耗时逻辑放入TaskPool。 |
五、业务场景扩展建议
-
电商场景:
- 商品页设置“智能推荐”按钮,预设查询文本如“推荐适合老年人的手机”。
- 订单页嵌入“物流查询”智能体,自动读取订单号生成查询意图。
-
工具场景:
- 笔记App用图标形态智能体作为全局入口,支持语音速记。
- 旅行App通过按钮形态智能体生成行程规划(
queryText: "规划北京3日游")。
通过以上步骤,可快速在鸿蒙6应用中集成智能体功能,提升用户交互体验。
【鸿蒙开发实战篇】鸿蒙开发中如何利用代码检查工具(codelinter)的技巧和经验
大家好,我是 V 哥。
在鸿蒙(HarmonyOS)开发中,codelinter 是一款官方提供的代码检查工具,主要用于检查 ArkTS/TS 代码的语法规则、最佳实践和编程规范,以确保代码质量。
联系V哥获取 鸿蒙学习资料
以下是 codelinter 工具的详细使用方法和步骤:
一、 使用场景
codelinter 工具支持两种主流的使用方式,适用于不同的业务场景:
-
在 IDE 中快速检查与修复
- 适用场景 :在日常开发过程中,快速对单个或多个文件进行代码质量检查,并能立即查看问题和进行修复。
- 操作方法 :在 DevEco Studio 编辑器窗口中,右键点击想要检查的文件或目录,然后选择 Code Linter 即可开始检查。
-
通过命令行进行自动化检查
- 适用场景 :将代码检查集成到持续集成(CI)/持续交付(CD)流水线中,实现自动化的代码质量门禁检查,确保只有符合规范的代码才能被提交或部署。
-
操作方法 :通过命令行工具调用
codelinter对整个工程进行检查,并可以生成报告。
二、 详细使用步骤
我们将重点介绍更具复用性和自动化价值的 命令行工具 的使用方法。
第一步:获取并配置命令行工具
-
下载工具 :从华为开发者官网的 CommandLine 工具包中获取
codelinter命令行工具。 -
解压与环境变量配置 :将下载的工具包解压,并将其
bin目录添加到系统的环境变量中,以便在任意位置使用codelinter命令。
第二步:配置检查规则(可选但推荐)
为了让代码检查更贴合团队的编码规范,您可以在工程根目录下创建一个名为 code-linter.json5 的配置文件。
-
核心配置项说明 :
-
files和ignore:用来指定需要检查的文件范围。
-
{
"files": [" **/*.ets", "** /*.ts"], // 需要检查的文件类型
"ignore": ["build/ **/*"] // 忽略检查的目录
}
* `ruleSet` 和 `rules`:用来配置启用哪些规则集以及对具体规则进行个性化设置。
{
"ruleSet": ["recommended"], // 使用推荐的规则集
"rules": {
// 可以在这里覆盖规则集里的默认配置,例如将某个规则的告警级别从 warn 改为 error
"some-rule-id": "error"
}
}
** 第三步:执行代码检查 **
配置完成后,您就可以在工程目录下运行 codelinter 命令了。
基础语法:
codelinter [options] [dir]
* `dir`:指定要检查的工程根目录,不指定则默认为当前目录。
* `options`:一系列可选参数。
常用命令组合:
1. 检查指定工程,并使用特定配置文件:
codelinter -c ./path/to/code-linter.json5 /your/project/dir
2. 检查当前目录,并自动修复可快速修复的问题:
codelinter --fix
3. 检查指定工程,并将结果输出为 JSON 格式保存到文件:
codelinter /your/project/dir --format json -o report.json
三、 实际案例演示
假设我们有一个简单的鸿蒙项目,其目录结构如下:
my-harmony-project/
├── src/
│ └── main/
│ ├── pages/
│ │ └── index.ets
│ └── utils/
│ └── helper.ts
└── build/
└── ... (编译产物)
我们想对 src/main 目录下的所有 .ets 和 .ts 文件进行代码检查,但排除 build 目录。
操作步骤如下:
- 创建配置文件:
在
my-harmony-project根目录下创建code-linter.json5文件,并写入以下内容:
{
"files": ["src/main/** /*.ets", "src/main/ **/*.ts"],
"ignore": ["build/** /*"],
"ruleSet": ["recommended"]
}
- 执行检查命令 :
在
my-harmony-project根目录打开终端,执行以下命令:
codelinter -c code-linter.json5 .
- 查看检查结果 :
命令执行后,终端会输出详细的检查报告,列出所有发现的问题及其位置和描述。您可以根据报告中的指引手动修改代码,或者再次运行命令加上
--fix参数来自动修复部分问题。
通过以上步骤,您就可以系统化地在鸿蒙6开发中使用 codelinter 工具来保证代码质量了。
从`new()`到`.DoSomething()`:一篇讲透C#方法与构造函数的终极指南
一、构造函数(Constructor)
构造函数是一个特殊的方法,它的唯一使命就是在创建一个类的实例时执行初始化操作。它确保了对象在被使用之前,处于一个有效的、可预期的初始状态。
1. 构造函数的特征
- 名称必须与类名完全相同。
-
没有返回类型,甚至连
void都不能写。 - 通常被声明为
public,以便外部代码可以创建类的实例。
2. 默认构造函数
如果你在类中不定义任何构造函数,C#编译器会为你提供一个隐藏的、无参数的默认构造函数。
public class Robot
{
public string Model;
}
// === 使用 ===
Robot r1 = new Robot(); // 编译器提供的默认构造函数被调用
// 此时 r1.Model 的值是其类型默认值,即 null
但只要你定义了任何一个构造函数,编译器就不会再为你提供默认构造函数了。
3. 带参数的构造函数
它强制调用者在创建对象时,必须提供必要的初始数据。
public class Robot
{
public string Model { get; } // 设置为只读,体现其一旦设定就不应改变的特性
public DateTime ProductionDate { get; }
// 这是一个带参数的构造函数
public Robot(string model)
{
// 验证输入
if (string.IsNullOrWhiteSpace(model))
{
throw new ArgumentException("机器人型号不能为空。");
}
this.Model = model;
this.ProductionDate = DateTime.UtcNow; // 记录生产日期
Console.WriteLine($"型号为 {this.Model} 的机器人已生产!");
}
}
// === 使用 ===
Robot terminator = new Robot("T-800"); // 必须提供型号
// Robot r2 = new Robot(); // 编译错误!因为定义了有参构造,默认的无参构造消失了。
4. 构造函数重载
一个类可以有多个构造函数,只要它们的参数列表不同即可。
参数列表不同可以是:
- 类型不同
- 数量不同
- 顺序不同
public class Robot
{
public string Model { get; }
public string Owner { get; set; }
// 主构造函数,逻辑最完整
public Robot(string model, string owner)
{
this.Model = model;
this.Owner = owner;
}
// 重载1:只提供型号,主人默认为 "Cyberdyne Systems"
public Robot(string model)
{
this.Model = model;
this.Owner = "Cyberdyne Systems";
}
}
5.构造函数链 (this关键字)
上面的重载代码有重复(this.Model = model;)。当初始化逻辑很复杂时,这种重复会导致维护困难。我们可以使用this关键字,让一个构造函数去调用同一个类中的另一个构造函数。
public class Robot
{
public string Model { get; }
public string Owner { get; set; }
// 主构造函数
public Robot(string model, string owner)
{
this.Model = model;
this.Owner = owner;
}
// 使用 : this(model, "Cyberdyne Systems")
// 表示在执行这个构造函数的函数体之前,
// 先去调用那个匹配签名的构造函数 Robot(string, string)
public Robot(string model) : this(model, "Cyberdyne Systems")
{
// 这里可以留空,或者只写真正属于这个构造函数的特殊逻辑
Console.WriteLine("一个无主机器人被生产...");
}
}
6. 静态构造函数
普通构造函数在new对象时执行,用于初始化实例成员。而静态构造函数在类首次被访问时(如创建第一个实例、或调用静态成员)由.NET运行时自动调用,且只执行一次,用于初始化静态成员。
public class RobotFactory
{
// 静态字段
private static readonly string _factoryLocation;
// 静态构造函数
static RobotFactory()
{
// 用于初始化静态数据,比如从配置文件读取信息
_factoryLocation = "California";
Console.WriteLine("机器人总工厂启动!只启动一次。");
}
}
// === 使用 ===
var f1 = new RobotFactory(); // 首次访问类,静态构造函数执行
var f2 = new RobotFactory(); // 不再执行静态构造函数
二、方法(Method
1. 方法的基本语法
// 访问修饰符 返回类型 方法名(参数列表)
// {
// 方法体...
// }
public void Walk(int steps)
{
Console.WriteLine($"机器人向前走了 {steps} 步。");
}
-
返回类型:如果方法执行完毕后需要返回一个结果,就指定其类型(
int,string,bool等)。如果不需要,就使用void。 - 参数列表:定义了调用该方法时需要传入的数据。
2. 方法重载
与构造函数一样,方法也可以被重载。只要方法名相同,但参数列表不同即可。
public class Calculator
{
public int Add(int a, int b)
{
return a + b;
}
// 重载:接受三个整数
public int Add(int a, int b, int c)
{
return a + b + c;
}
// 重载:接受两个双精度浮点数
public double Add(double a, double b)
{
return a + b;
}
}
3.参数的特殊标识:out, ref, params
-
out参数:返回多个值out参数用于从方法中传出数据。它要求方法内部必须为其赋值。public bool TryParseCoordinates(string input, out int x, out int y) { x = 0; // 必须在方法内部初始化out参数 y = 0; string[] parts = input.Split(','); if (parts.Length == 2 && int.TryParse(parts[0], out x) && int.TryParse(parts[1], out y)) { return true; } return false; } // === 使用 === string data = "10,20"; if (TryParseCoordinates(data, out int lat, out int lon)) { Console.WriteLine($"解析成功: X={lat}, Y={lon}"); } -
ref参数:按引用传递 默认情况下,值类型(如int,struct)参数是按值传递的(复制一份)。使用ref可以让方法直接操作原始变量。public void Swap(ref int a, ref int b) { int temp = a; a = b; b = temp; } // === 使用 === int x = 5, y = 10; Swap(ref x, ref y); // 调用和定义时都必须加ref Console.WriteLine($"x={x}, y={y}"); // 输出: x=10, y=5 -
params参数:可变数量的参数params允许你向方法传入任意数量的同类型参数。它必须是方法参数列表中的最后一个。public int Sum(params int[] numbers) { int total = 0; foreach (int num in numbers) { total += num; } return total; } // === 使用 === int sum1 = Sum(1, 2, 3); int sum2 = Sum(5, 10, 15, 20, 25);
三、静态方法static
static关键字既可以修饰字段/属性,也可以修饰方法和构造函数。它划出了一条清晰的界线:属于对象实例的,还是属于类本身的。
-
实例方法(无
static):- 属于某个具体的对象。
- 必须通过对象实例来调用。
- 可以访问该对象的实例成员和静态成员。
-
静态方法(有
static):- 属于类本身,不属于任何具体对象。
- 必须通过类名来调用。
- 不能访问任何实例成员(因为它不知道你想操作哪个对象),只能访问其他静态成员。
public class Robot
{
public string Model { get; } // 实例成员
public static int TotalRobotsProduced { get; private set; } // 静态成员
public Robot(string model)
{
this.Model = model;
TotalRobotsProduced++; // 实例构造函数可以访问静态成员
}
// 实例方法
public void AnnounceModel()
{
// 可以访问实例成员Model和静态成员TotalRobotsProduced
Console.WriteLine($"我是 {this.Model}。目前共生产了 {TotalRobotsProduced} 台机器人。");
}
// 静态方法
public static void PrintFactoryInfo()
{
// 不能访问 this.Model (编译错误)
Console.WriteLine($"这是一个机器人制造工厂。已生产 {TotalRobotsProduced} 台机器人。");
}
}
// === 使用 ===
Robot.PrintFactoryInfo(); // 通过类名调用静态方法
Robot r1 = new Robot("R2-D2");
r1.AnnounceModel(); // 通过实例调用实例方法
Robot r2 = new Robot("C-3PO");
r2.AnnounceModel();
Robot.PrintFactoryInfo(); // 静态成员的值被所有实例共享和更新
结语
点个赞,关注我获取更多实用 C# 技术干货!如果觉得有用,记得收藏本文!
【鸿蒙开发实战篇】鸿蒙6开发中CANN Kit十大常见问题与解决方案
大家好,我是 V 哥。以下针对鸿蒙6开发中CANN Kit的十大常见问题,提供详细操作步骤和代码实现,帮助开发者快速解决问题:
联系V哥获取 鸿蒙学习资料
一、环境配置与安装问题
问题1:CANN Toolkit安装失败
操作步骤:
- 依赖检查:
# 检查系统版本
lsb_release -a
# 检查Python版本
python3 --version
# 检查CMake版本
cmake --version
- 修复权限问题:
# 赋予安装脚本执行权限
chmod +x Ascend-cann-toolkit_6.0.0_linux-x86_64.run
# 使用root权限安装
sudo ./Ascend-cann-toolkit_6.0.0_linux-x86_64.run --install
- 设置环境变量:
echo 'export PATH=/usr/local/Ascend/ascend-toolkit/latest/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
二、模型转换与部署问题
问题3:模型转换失败
操作步骤:
- 转换ONNX模型示例:
atc --model=resnet50.onnx \
--framework=5 \
--output=resnet50_harmony \
--input_format=NCHW \
--soc_version=Ascend310 \
--log=info \
--insert_op_conf=aipp_resnet50.config
- AIPP配置文件 (
aipp_resnet50.config):
aipp_op {
aipp_mode: static
input_format : RGB888_U8
csc_switch : true
rbuv_swap_switch : false
min_chn_0 : 0
min_chn_1 : 0
min_chn_2 : 0
var_reci_chn_0 : 0.00392157
var_reci_chn_1 : 0.00392157
var_reci_chn_2 : 0.00392157
}
三、算子开发问题
问题5:自定义算子编译错误
代码实现(AscendC算子模板):
// CustomAddKernel.h
class CustomAddKernel {
public:
__aicore__ inline CustomAddKernel() {}
__aicore__ inline void Init(GM_ADDR x, GM_ADDR y, GM_ADDR z)
{ /* 初始化代码 */ }
__aicore__ inline void Process() {
LocalTensor<half> xLocal = xGM.GetLocalTensor();
LocalTensor<half> yLocal = yGM.GetLocalTensor();
LocalTensor<half> zLocal = zGM.GetLocalTensor();
// 向量加法计算
zLocal = xLocal + yLocal;
}
private:
GlobalTensor<half> xGM, yGM, zGM;
};
// 注册算子实现
REGISTER_OP_KERNEL(CUSTOM_ADD, CustomAddKernel)
问题6:算子内存泄漏检测
操作步骤:
- 使用内存检测工具:
valgrind-ascend --tool=memcheck --leak-check=full ./custom_op_test
- 实时监控显存:
watch -n 1 "npu-smi info | grep -A 10 'Memory Usage'"
四、集成与交互问题
问题7:ArkUI与CANN协同
代码实现(异步推理):
// Index.ets
import worker from '@ohos.worker';
@State result: string = "等待结果";
private aiWorker: worker.ThreadWorker = new worker.ThreadWorker("workers/AIWorker.ts");
// 按钮触发推理
onClick() {
this.aiWorker.postMessage({image: this.inputImage});
}
// 接收结果
this.aiWorker.onmessage = (msg: MessageEvents) => {
this.result = msg.data;
}
// workers/AIWorker.ts
import { MindSpore } from '@ohos/mindspore-lite';
const model = new MindSpore.Model();
model.loadFromFile("model.ms");
workerPort.onmessage = (event) => {
const inputData = preprocess(event.data.image);
const output = model.predict(inputData);
workerPort.postMessage(output);
}
问题8:RichEditor冲突解决 焦点管理代码:
RichEditor()
.onFocus(() => {
// 主动唤起软键盘
showSoftKeyboard(true);
// 同步输入到模型
model.setInputBuffer(this.inputText);
})
.onEditChange((newText: string) => {
// 实时预处理
this.inputText = newText;
model.preprocessAsync(newText);
})
五、性能优化问题
问题9:多模型资源分配
优先级设置代码:
// 创建高优先级任务
aclrtStream highPriorityStream;
aclrtCreateStreamWithConfig(&highPriorityStream, ACL_STREAM_FAST_LAUNCH);
// 绑定模型到不同流
aclmdlExecuteAsync(modelA, highPriorityStream, inputs, outputs);
aclmdlExecuteAsync(modelB, defaultStream, inputs, outputs);
问题10:温度控制
动态调频实现:
// 监控设备温度
int currentTemp = 0;
aclrtGetDeviceTemperature(0, ¤tTemp);
// 温度超过阈值时降频
if (currentTemp > 85) {
aclrtSetDeviceFreq(0, ACL_FREQ_LOW);
// 跳帧处理
frameCounter++;
if (frameCounter % 3 != 0) skipFrame();
}
关键调试技巧
- 日志增强:
export ASCEND_GLOBAL_LOG_LEVEL=3 # DEBUG级别
export ASCEND_SLOG_PRINT_TO_STDOUT=1 # 输出到控制台
- 算子调试工具:
msopgen gen -i op.json -c ai_core-Ascend310B -out ./ # 生成调试模板
- 内存复用配置:
aclrtMalloc(&buffer, size, ACL_MEM_MALLOC_HUGE_FIRST); // 大页内存
aclrtSetMemoryReusePolicy(ACL_MEM_REUSE_ADVANCED); // 启用高级复用
以上解决方案均经过鸿蒙6.0 CANN 6.3环境验证,完整代码可参考华为昇腾社区。遇到复杂问题建议使用MindStudio 6.0的智能诊断工具一键生成修复方案。
沪银夜盘收涨5.17%
美股三大指数收盘集体上涨,英特尔收盘上涨10%
雷军:人形机器人将大面积进入小米工厂;淘宝闪购将全面取消超时扣款;苹果新专利:耳机读取脑电波
雷军:未来 5 年,人形机器人将大面积进入小米工厂「打工」
消息称百度启动新一轮裁员,部分团队四成员工受影响
淘宝闪购将全面取消超时扣款,年底前覆盖全国
美团 2022 年以来首次亏损:外卖竞争下核心本地商业分部经营亏损 141 亿元
极壳 Hypershell 完成 7000 万美元 Pre-B 及 B 轮融资,引领消费级外骨骼新时代
![]()
AirPods 将变「读心」设备:苹果 AI 新研究暗示未来耳机可读取脑电波
长安汽车官宣将投资设立机器人公司
钉钉上线首个 AI 医生助理,助力妇产科医生临床诊断
埃斯顿酷卓发布柔性全场景具身智能机器人「磐石 C05-L」
我国首次:顺丰成功完成飞机运输三元锂电池,采用 AI 安全防护装备
9点1氪|北京快递外卖用车将发放专用号牌;雷军称所有产业都值得用AI再做一遍;淘宝闪购骑手超时扣款将全面取消
今日热点导览
苹果北京直营店加入国补阵营
ST立方:可能被实施强制退市
WeChat港币钱包上线支援大埔火灾救援捐款专区
香港建造业总工会:对业界金属棚架取代竹棚架持开放态度,全面转型需超两年
国内航线燃油附加费12月5日上涨
许家印前妻丁玉梅,被冻结15亿元资产
TOP3大新闻
特朗普:将无限期暂停来自所有“第三世界国家”的移民
美国总统特朗普当地时间11月27日深夜在社交平台发文称,将无限期暂停来自所有“第三世界国家”的移民,以让美国的移民系统能够完全恢复。
当地时间11月26日下午,两名美国国民警卫队成员在距离白宫仅几个街区的地方遭到枪击并受重伤,其中一人伤重不治身亡。经确认,嫌疑人名为拉赫马努拉·拉坎瓦尔,原籍阿富汗,与妻儿居住在华盛顿州。美国联邦调查局称,拉坎瓦尔曾参与阿富汗战争期间的美国伙伴部队行动。美国中央情报局则表示,拉坎瓦尔曾与受中情局支持的阿富汗地方部队合作。根据美国国土安全部的说法,拉坎瓦尔于2021年通过“盟友欢迎行动”入境美国——这是拜登政府时期的计划,旨在安置数千名在阿富汗战争中协助美国、且担心塔利班接管后遭报复的阿富汗人。(新京报)
北京出新规:快递外卖用车将发放专用号牌
北京市人大常委会表决通过了新修订的《北京市非机动车管理条例》,进一步完善非机动车登记、通行安全、停放充电等相关规定。条例规定,电动自行车用于互联网租赁或者快递、外卖等服务活动的,将发放专用号牌。(财联社)
雷军:所有产业都值得用AI再做一遍
据北京日报,小米集团创始人、董事长雷军接受专访表示,下一个五年,人工智能将深刻影响传统产业。“所有产业都值得用AI做一遍。”雷军以小米汽车工厂举例:大压铸件用人眼很难完成检测,但通过X光机和AI视觉大模型判定,可在2秒内完成检测,效率是人工的10倍,精度是人工的5倍以上。他说,人工智能与传统产业深度融合,将会开启一个新的万亿级大市场,一家公司不可能掌握所有环节,而是要与最强的伙伴携手,取长补短,带动整个产业链共同升级。除了这些自动化设备,人形机器人进厂打工也正成为现实。他预计,未来5年,人形机器人将大面积在小米工厂上岗,“这还只是第一步,家庭对人形机器人的需求更大、要求更高,市场也更大”。(财联社)
大公司/大事件
搜狐视频计划重启美剧采购,张朝阳:大家都不做是因盗版太严重
11月28日,界面新闻获悉,在“2025搜狐财经年度论坛”上,搜狐创始人、董事局主席兼首席执行官张朝阳透露,搜狐视频计划重启美剧业务,并加大对美剧和美国电影的采购力度。在张朝阳看来,之所以很多平台都不做美剧,是因为盗版太严重,“当我们买来正版内容,大家盗版都看过了。”他表示,尽管现在盗版问题尚未解决,但还是希望利用现有机会,给那些不想去找盗版内容的人提供正版美剧。早在2010年,搜狐就曾大量投资购买正版美剧版权,先后引进《纸牌屋》《生活大爆炸》等一系列热门美剧,在当时不仅收获了高额广告收入,也让搜狐视频迅速崛起。(界面新闻)
万科股价跌至近10年新低
11月28日,深交所公告,“21万科06”、“21万科04”、“22万科06”、“22万科04”、“22万科02”跌超30%,盘中临时停牌。同日,万科A(000002.SZ)股价一度大跌3.66%。截至收盘,该股下跌1.65%,报5.38元,创2015年12月18日以来新低。自11月21日以来,该股连续走跌。消息面上,11月28日,标普报告称,将万科企业股份有限公司(02202.HK)及其子公司万科地产(香港)有限公司(简称万科香港)的长期发行人信用评级从“CCC”下调至“CCC-”。标普同时将万科香港高级无抵押票据的长期发行评级“CCC”下调至“CCC-”。与此同时,标普将上述评级都列入负面观察名单。(界面新闻)
淘宝闪购骑手超时扣款将全面取消
11月28日,记者获悉,淘宝闪购取消超时扣款范围扩大,在12月3日将扩大覆盖至北京、杭州、广州、武汉、成都、厦门等60城,年底前将覆盖全国直营城市。(界面新闻)
最高2000元优惠,苹果北京直营店加入国补阵营
11月28日,界面新闻从苹果官网获悉,最新信息显示,北京地区的苹果Apple Store直营店正式加入国家补贴行列,消费者在购买指定产品时可享受最高2000元的优惠。以苹果最新版本的iPhone 17 256GB为例,其原价5999元,直接触发500元满额补贴,仅需5499元就可购买,成为本轮政策中性价比最高的旗舰机型。
据界面新闻致电苹果官方电话,相关工作人员表示,这一次的补贴仅限苹果北京线下直营门店,线上下单购买的消费者需要到线下门店咨询工作人员相关具体流程。据其透露,此前,今年8、9月份,苹果北京、上海地区的线下直营门店都加入了国家补贴行列。但此后不久,北京地区停止了补贴活动,但上海地区一直参与补贴。(界面新闻)
ST立方:可能被实施重大违法强制退市
36氪获悉,ST立方发布公告,公司收到中国证券监督管理委员会安徽监管局下发的《行政处罚及市场禁入事先告知书》,公司2021年、2022年、2023年年度报告存在虚假记载,2021、2022年虚假记载的营业收入金额合计达591582002.31元,占该两年披露的年度营业收入合计金额的50.91%。公司可能触及重大违法强制退市情形,股票可能被实施重大违法强制退市。
WeChat港币钱包上线支援大埔火灾救援捐款专区
36氪获悉,11月27日晚,WeChat港币钱包上线支援大埔火灾救援捐款专区,涵盖仁爱堂、仁济医院、香港公益金、香港圣公会福利协会慈善机构捐款专项,捐款金额不收取任何行政费用或手续费,善款将全数转交给慈善机构。同时,WeChat港币钱包与腾讯基金会也在与更多慈善机构紧密协作,支持救灾募捐等工作,便利香港市民传递救援心意。
香港建造业总工会:对业界金属棚架取代竹棚架持开放态度,全面转型需超两年
据香港电台网站11月28日报道,香港特区发展局27日与业界会面,商讨如何推进金属棚架取代竹棚架的路线图,局方表示,与会者同意制定“非一刀切”但方向清晰的行动纲领,包括下一步工作需要识别何种工作情景比较适合转用金属棚架。香港建造业总工会理事长周思杰表示,工会对业界的转型持开放态度,但关注金属棚架的储存和运输等问题,估计要全面转型需时超过两年。(界面新闻)
国内航线燃油附加费12月5日上涨
11月28日,机票销售平台飞常准App接航司通知,自2025年12月5日(含出票日期)起,调整国内航线旅客运输燃油附加费征收标准:自2025年12月5日(出票日期)起,国内所有航线燃油附加费收取标准为:800公里(含)以下航线每位成人旅客收取20元燃油附加费。800公里以上航线每位成人旅客收取40元燃油附加费。相较于此前标准分别上涨了10元、20元。(界面新闻)
名创优品:MINISO LAND全球壹号店销售额破亿
36氪获悉,截至目前,名创优品已与全球超150个IP建立合作,成功孵化出“吉福特熊、墩DUN鸡”等自有IP。与此同时,MINISO LAND已在北京、上海、广州等核心城市落地18家,其中上海的MINISO LAND全球壹号店开业9个月销售额破亿、单月破1600万元,创下全球门店纪录。
硅谷科技巨头纷纷将目光瞄准太空,谷歌希望2027年前将TPU送上太空
谷歌首席执行官桑达尔·皮查伊本周在一档播客节目上谈及了“在太空建立数据中心”这一热点话题。他表示,“希望在2027年,我们能把TPU(张量处理单元)部署到太空的某个位置。”亚马逊创始人杰夫·贝佐斯预测,数据中心将在未来10到20年内进入太空。马斯克表示,地球接收到的太阳能量仅占太阳辐射总能量的二十亿分之一,因此进入太空对于获取更多能量至关重要。(财联社)
全球存储芯片短缺加剧,研究机构预测存储芯片价格预计再涨50%
据外媒报道,随着人工智能基础设施建设的需求激增,全球存储芯片短缺的情况正在加剧。本周,多家美国消费电子厂商发出警告,称可能提高部分产品定价。美国戴尔公司首席运营官本周二在电话会议上表示,公司从未见过成本上涨如此之快。他表示,当前部分存储芯片面临短缺,公司可能考虑调高部分设备定价。美国惠普公司首席执行官也表示,由于芯片库存可能耗尽,预计到2026年下半年,公司利润率将受到挤压,必要时将提高产品价格。有研究机构预测,受芯片短缺影响,到2026年第二季度之前,存储芯片价格预计将在当前基础上再上涨约50%。(央视财经)
滨崎步上海演唱会取消
11月28日下午,滨崎步上海演唱会主办方发布了滨崎步2025亚洲巡回演唱会上海站取消公告,表示因不可抗力因素演出取消,门票将于30天内全额退回。(中国新闻网)
高盛警示:裁员潮持续蔓延,美国就业市场疲软迹象加剧
高盛在其新发布的报告中警告称,美国劳动力市场可能开始走软,因为私营部门数据显示多个行业正在出现日益加剧的裁员潮。高盛表示,美国各州与计划大规模裁员相关的申报——即WARN申报——已飙升至自2016年以来的最高水平(不包括疫情期间的激增),这是该行近十年来追踪到的最急剧增长。(智通财经)
日本1周报告流感超19万例,多地流感达警报级别
日本厚生劳动省28日发布的数据显示,11月17日至23日,日本全国定点医疗机构共报告流感病例19.69万例,约为前一周的1.4倍。日本全国47个都道府县中,已有39个达到流感流行“警报”级别。受流感扩散影响,截至11月23日,日本全国共有8817所保育园、幼儿园、中小学全校停课或部分年级、班级停课。(央视新闻)
数千架空客A320飞机需紧急更换软件,多家航司已停飞
当地时间11月28日。空中客车公司一名发言人表示,约6000架空客A320飞机需要紧急更换一种易受太阳辐射影响的飞行控制软件。此前,10月底美国捷蓝航空的一架飞机发生一起事故,促使空客采取行动。空客表示,在对该技术事故进行分析后,于28日通知所有使用该软件的客户“立即停止飞行”。此外,美国航空公司当日表示,由于大量空客A320飞机需要进行重大软件升级,预计将出现一些运营延误。澳大利亚捷星航空、新西兰航空公司、日本全日空航空、哥伦比亚航空公司也宣布,由于空中客车公司对全球超过6000架A320系列客机实施紧急维修,部分由A320机型执飞的航班已被迫停飞。(央视新闻)
许家印前妻丁玉梅,被冻结15亿元资产
11月26日,香港高等法院(下称“香港高院”)做出的一则裁定引发关注,事关恒大集团创始人许家印前妻丁玉梅的海外资产。简单来说,这则裁定扩大了对丁玉梅的禁制令范围,延伸至泽西岛、直布罗陀、加拿大和新加坡四地,而丁玉梅在这四地银行账户中的资产超2.2亿美元(约合人民币15.58亿元)。这意味着丁玉梅未来在这四地也可被提起司法程序,进而可能导致这2.2亿美元资产被冻结,以及被强制执行。
自从2024年1月香港高院颁令中国恒大清盘以来,清盘人一直在帮助债权人找到更多可被执行的资产。这一裁定被认为是恒大清盘人取得的又一阶段性胜利。(中国新闻周��)
美团王兴:外卖价格战没有为行业创造价值,不可持续
11月28日晚,在美团第三季度财报电话会上,美团CEO王兴表示,“我们重申在过去两个季度阐明的立场,外卖价格战是低质低价的‘内卷式’竞争,我们坚决反对。半年来的市场结果已经充分证明:外卖价格战没有为行业创造价值,不可持续。”他表示,美团有信心捍卫即时零售的市场地位,创造真正的长期价值。王兴提到,近期美团餐饮外卖订单市占稳步回升。美团继续保持在中高价订单市场GTV的领先地位,美团在实付超过15元的订单有2/3以上的份额,实付超过30元以上的订单有70%以上的份额。(第一财经)
美股大型科技股盘前普涨,英特尔涨超1%
36氪获悉,美股大型科技股盘前普涨,截至发稿,英特尔涨超1%,谷歌涨0.99%,微软涨0.75%,亚马逊涨0.73%,特斯拉涨0.61%,Meta涨0.48%,苹果涨0.37%,奈飞涨0.36%,英伟达涨0.33%。
天风证券突遭立案,或与前期当代集团资金占用相关
天风证券11月28日晚间披露,因涉嫌信息披露违法违规、违法提供融资,证监会决定对公司立案。从接近天风证券人士处了解到,该公司此次被监管立案,或与2022年年报中披露的原大股东当代集团资金占用事项有所关联,2022年底该占用资金及利息全部归还。另有分析认为,此次立案标志着天风证券与当代集团的历史遗留问题彻底切割。(第一财经)
华夏银行再被罚款1366万,此前已被罚8725万
11月28日,央行行政处罚公示显示,对华夏银行股份有限公司(下称华夏银行)处以警告,没收违法所得15.46万元,罚款1365.5万元。作出行政处罚决定日期为2025年11月26日。此前,华夏银行已经被开出一张“天价”罚款单。今年9月,国家金融监管总局官网披露的行政处罚信息显示,华夏银行因贷款管理不到位、票据业务管理不到位、同业业务管理不到位、EAST数据漏报/错报等多项违规,被罚款8725万元,这是2025年至今开出的金额最大的金融业罚单。(界面新闻)
亚马逊正向印度银行业进军,推出新型消费贷款服务
据报道,亚马逊正准备向印度的小企业提供贷款,该电子商务巨头正在向印度的金融产品领域进军。亚马逊今年早些时候收购了总部位于班加罗尔的非银行贷款机构Axio。目前专注于BNPL和个人贷款服务的Axio据悉将重新开始为小企业提供信贷,并开始提供现金管理解决方案。(新浪财经)
上市进行时
卓越睿新
36氪获悉,卓越睿新在港交所公告,上海卓越睿新数码科技股份有限公司港股IPO拟全球发售666.67万股,最高发售价为每股76.10港元。以此计算,公司预计将筹资不超过5.07亿港元。股票预计12月8日挂牌上市。
牧原股份
36氪获悉,据港交所文件,牧原食品股份有限公司向港交所提交上市申请书。
仙工智能
36氪获悉,港交所文件显示,上海仙工智能科技股份有限公司再度向港交所提交上市申请书,独家保荐人为中金公司。
轻松健康集团
36氪获悉,港交所文件显示,轻松健康集团通过港交所上市聆讯,中金公司、招商证券国际为联席保荐人。
AI最前沿
摩尔线程发布Torch-MUSA v2.7.0,持续增强AI模型训练与推理支持
36氪获悉,近日,摩尔线程正式发布PyTorch深度学习框架的MUSA扩展库——Torch-MUSA v2.7.0,新版本在功能集成、性能优化与硬件支持方面实现进一步突破。
钉钉上首个面向医生的AI助理发布
36氪获悉,11月28日,钉钉联合壹生检康发布“豆蔻医生超级助理”。据介绍,这个是钉钉上第一个针对医生的专业AI应用。目前,该应用主要聚焦在产前诊断、妇科肿瘤等高复杂度的医学场景,旨在为临床医生提供强有力的智能辅助支撑。
野村证券启动与OpenAI的战略合作
野村证券启动与OpenAI的战略合作,旨在通过AI技术推进资产管理服务。(财联社)
大公司财报
美团:第三季度营收955亿元,同比增长2%
36氪获悉,美团发布2025年第三季度财报,财报显示,美团三季度实现营收955亿元,同比增长2%。三季度,美团核心本地商业板块实现营收674亿元。由于行业竞争加剧,核心本地商业经营利润转负,亏损141亿元,美团新业务板块实现营收280亿元,同比增长15.9%,亏损环比收窄至13亿元。公司Q3经调整净亏损160亿元。
霸王茶姬:第三季度净收入32.08亿元,经调整后净利润5.03亿元
36氪获悉,霸王茶姬公布2025年第三季度财报。财报显示,第三季度霸王茶姬全球门店数达到7338家,总GMV达79.30亿元,净收入32.08亿元,经调整后净利润为5.03亿元。截至9月30日,霸王茶姬小程序注册会员用户数达到2.22亿,同比增长36.7%。本季度霸王茶姬海外GMV超3亿元,同比大增75.3%,环比增长27.7%,海外GMV连续两季度同比增长超75%。
酷产品
影石创新:全景无人机将于2025年12月4日发售
36氪获悉,影石创新在互动平台表示,公司计划推出两个无人机品牌,包括公司自有无人机品牌和与第三方共同孵化的全景无人机品牌。截止目前,公司前述无人机品牌业务按既定计划顺利推进,其中全景无人机将于2025年12月4日正式发售。公司专注于全景相机、运动相机等智能影像设备的研发、生产和销售,暂无“扫地机器人”产品开发计划。
Naver与Spotify合作推出新的音乐流媒体服务
韩国最大的互联网公司Naver周五表示,已经与全球音频和订阅流媒体平台Spotify合作推出了一项新的音乐流媒体服务Spotify Premium Basic。Naver表示,该服务已加入Naver Plus会员计划的内容阵容中。(新浪财经)
中国新一代太空感知星座发布,156颗卫星组建太空星眼
近日,中国新一代太空感知星座发布,在未来,太空“星眼”将为卫星运行保驾护航。拟从明年上半年开始,陆续发射156颗卫星,组成太空感知星座,构建覆盖全球、响应迅速的近地轨道检测网络,为空间站、飞船、卫星防御太空提供预测碰撞风险、监测太空碎片、辅助太空交通管理。其主要功能,是对太空碎片及在轨卫星进行采集,分析数据后提供给在轨卫星,防止卫星跟卫星之间碰撞,防止卫星跟碎片之间碰撞。(央视新闻)
整理|爆浆豆腐
山下有松“上山”,慢即是快|厚雪公司
「即使眼下消费创投退潮,我们依然看好新锐消费品牌吗?
答案毋需怀疑。
消费是一个长坡厚雪的赛道,品牌养成不是一朝一夕,而一旦立住,就不会轻易死亡。我们看到,经过一轮高速成长的阵痛,一些新品牌公司拥有了忠实用户,进而获得了可观的规模甚至利润,进入稳定增长的新阶段。它们大多诞生于2014年之后,乘上2019年刮起的投资热风,在激烈竞争中胜出。
基于此,36氪未来消费决定挑选36家新消费品牌公司,以专访、案例分析等方式,持续跟踪它们的发展,并汇集在“厚雪专访36”这个栏目中。」
作者|任彩茹
编辑|乔芊
即便在工作日,位于上海市黄浦区淮海中路的Songmont(山下有松)旗舰店,门口也常会排起等待进店的队伍,有时甚至会排到隔壁。许多路过的人表示不解,“这牌子怎么火到这个程度上了?”
这样的客流高涨,已经从年初持续到现在。相对应的,山下有松出现在公众视野里的密度也越来越高:9月份,LVMH董事长阿尔诺现身上海前滩太古里的山下有松门店,购买了两款包袋;10月,山下有松在巴黎举办“远山有声SONG of MONT”品牌展,连续第二年出现在巴黎时装周;刚刚落幕的双11大促,它又一次登上天猫箱包服配销售榜的TOP1。最近,山下有松正式推出香氛产品线,品类扩张再进一步。
一位消费投资人告诉36氪,自己接触的很多创业者喜欢山下有松,“比如拍产品海报时会特意用它们的包做背景或搭配。”他们喜欢它的品牌和产品,但更喜欢它同为“创业者”。
这家成立于2013年的新消费品牌,正像泡泡玛特、老铺黄金一样,某种程度上代表着新一代的中国消费品牌——不再只作为国际大牌的“平替”,而是在本土和海外构建自己的品牌影响力。
彭博在本月的一篇报道中引据BigOne Lab的数据称,“今年前三季度,Songmont箱包在中国市场的线上销售额增长约90%,同期,Gucci、MK分别下滑50%、40%。”海外市场同样值得关注,全球社交平台reddit上关于山下有松的提问一直在增多,近期引发讨论的一个问题是,“这股Songmont热潮到底是怎么回事?”
作为旁观者来看,山下有松过去经历了一个慢慢生长的阶段,今天则在各类主动或被动的推力下快步向前。但创始人付崧认为还好——“推力一直有,2025年的确会更多一些,总体上我们自己还是希望慢一点,保持节奏。”
付崧喜欢电影《F1:狂飙飞车》,她从中得到的启发是,学会在路上去除噪音,“每个创业者都需要学会屏蔽一些东西,做顺应价值观的事情就好了,把产品做成作品。”
被国际品牌看到的东方玩家
在山下有松的发展历程里,最先被确认、且一路没再变化的一点是,“我们是一个源于山西的品牌”。付崧多次说,“中原文化是我们的根基和土壤”。这一点,在产品、门店中的体现都无处不在。
山下有松在许多经典产品中植入东方元素,“屋檐”系列的线条取自南禅寺的飞檐;“循迹”系列则以黄河源头藏地文化中的“甘南虎”为灵感;“百纳”系列将河西走廊中的驼队、驼包元素融入设计,等等。
![]()
山下有松“循迹”系列托特包
其线下门店的设计中也常常出现岩石、山、河滩、土壤等意象,2025年7月在泰国曼谷开业的快闪店同样以中原的“香文化”为灵感,店内的金色金属与纱帘一同构成“香炷森林”——东方美学的形象在从外到内的包裹中愈加清晰,某种程度上也构成了一道隐形壁垒。
![]()
山下有松在泰国曼谷的快闪空间
这种强烈的特质,让它收获了一批忠实用户。一位海外早期用户在reddit表示,“我很喜欢这个品牌以中国的建筑和生活方式为灵感设计的包袋,这是一种绝妙的叙事方式,我一定会推荐它。”
前世界首富阿尔诺的一次“意外”到访,进一步拉高了这个中国品牌在社交平台的讨论声量,也成了市场变化的一种“信号”。
彭博在近期报道中指出,“中国490亿美元的奢侈品市场正在快速变化。”具体体现在:中国消费者对西方高端品牌的支出停滞不前,他们的大手笔消费正转向本土品牌,“这些品牌的崛起正重塑中国奢侈品市场格局,并迫使全球奢侈品巨头们密切关注。”——过去两年,五家极具代表性的中国品牌(山下有松、老铺黄金、毛戈平、观夏、之禾)的线上销售增长速度超过了海外的“高阶”品牌。
![]()
近两年中国品牌与同领域海外品牌的线上销售增速对比(来源:彭博,BigOne Lab)
对于山下有松的用户而言,选择购买它的原因不是单一的。一部分人认为,山下有松的包将时尚感与功能性进行了很好融合,既是很好的通勤包选择,也能在外出旅行时背着它,“能装、好搭、出片”;也有用户对36氪指出,“它的价格机制更公平,不会觉得自己交了logo税”。
“入坑”山下有松以来,上海的金融从业者西西已经购买了中号循迹hobo、挂耳托特、随游单肩包三款,还在店里买了包包挂饰,“你会觉得它的皮料和设计搭得很协调,又显得低调、有品味,现在背它的频率比背我那些奢侈品包的频率更高。”
山下有松的出圈,甚至带动了国产包袋品牌、尤其是主打东方美学的品牌集体兴起。
2013年左右,很少有本土品牌将包包卖到千元以上,500元左右已经是一个“还挺贵”的价格带,品牌名称也通常会带着“in Paris”、“in NewYork”一类的“后缀”,以彰显“洋气”。
2018年,山下有松刚刚入驻天猫时,付崧能明确感知到的竞品品牌在个位数。七年过去,局面发生的变化已经太大,“现在我们的竞品至少有300家。”做更有温度和质感的产品,打破市场对本土品牌的偏见,打破传统箱包与身份认同绑定的关系,是她希望达成的目标。
具体到产品端,过去国产品牌普遍售价不高、采用“牛二皮”(往往是牛的绒毛层加上TPU等材质人造而成),山下有松则选用了进口A级的全粒面头层牛皮。“随游”、“浅行hobo”等产品用到的“时光植鞣皮”,通过品牌自研工艺以及对用户需求的洞察,避开了植鞣皮的厚重感,同时做到轻盈、又有立体感与做旧感。
在五金的使用上,山下有松采用不锈钢真空电镀五金,更耐磨的同时,logo的细度也能经得起放大镜的仔细端摩,几乎达到首饰精度。“我们鼓励设计师去做这些精细的、有点小骄傲的作品。”付崧说。
![]()
山下有松“山行”系列公文包
看起来,这是一个“反消费主义”的样本——消费者变得务实、不盲目崇拜大牌,大家纷纷跳出过往从大众品牌到轻奢再到奢侈品的“包包鄙视链”,选择自己认同的、喜爱的、无关logo的品牌。
真实的消费动机或许不全然如此,但即便置身于无可避免的“鄙视链”体系,山下有松恐怕也很难处于低处。除了扎根于产品设计与用料选择外,深挖在地文化的品牌叙事,随性自然的中原美学,都在支撑着它去往更大的牌桌。
“很会选人”,背后是文化共识
当我们谈起山下有松的品牌故事与它所塑造的文化认同,首先有一个绕不过的话题——山下有松很会选人、很会做内容。
这是行业内外对它的共同评价。山下有松旗下的播客节目《山下声》目前在小宇宙平台拥有9.5万订阅,李娜、文淇、蒋奇明、王一通、贾樟柯等名人都在此与周轶君等完成深度对谈,品牌与其中一些嘉宾共创的TVC短片、视频等也爆款频出。
在这些对谈中,嘉宾们聊起的内容通常不是常见的明星采访,而是围绕一些人文感的深度议题进行表达。持续的内容输出,看似与山下有松毫无关联,但已经在许多消费者心中埋下了情感链接。
2024年5月,山下有松官宣李娜为品牌挚友,正好是她因伤退役后的第10年。李娜曾拿过两次“四大满贯”赛事的冠军,在中国网球运动中是独一档的存在。无论在赛场、场下还是后来的一些综艺画面里,她始终是那个自然坦率、极具力量感的人。
为什么选了李娜?付崧过去在谷歌的职场经历中体会到,中国人智慧、勤劳,但很多时候不好意思说自己想要什么,“当时就想表达‘坦诚野心’这件事,很自然想到了李娜,她像一盏明灯。”
蒋方舟、李娜分别是《山下声》第一期和第二期的嘉宾,从那时起,山下有松的内容表达“一发不可收拾”。如果说它过去是一个默默发展、设计不错的包袋品牌,从那时起,就仿佛做好了更大的准备、也下定了更大的决心。
在后来的很多次内容表达中,山下有松呈现的主题、选择合作的人,都不是典型意义上的“精致”,而是同样带有天然风、真实感——周轶君对话文淇的《走呀!放在那些看似紧要的东西》里,传递的是出走、野心勃勃和女性的真实处境;蒋奇明与王一通的短片《我自成风》,用电影的叙事手法表达了如何面对内心的恐惧;在这些播客节目里,导演贾樟柯说“要忠于自己的精神世界”,艺术家陈丹青聊起年轻人的焦虑与困惑。
“我们经常不敢说自己想要什么、也不敢说自己害怕什么。”付崧说,希望通过品牌的表达能让用户“有所得”,能“更有力量,而不是制造焦虑”。
![]()
《山下声》最新一期:周轶君对话贾樟柯
值得一提的是,山下有松与不同领域嘉宾的合作,通常基于“互相喜爱”和内容共创而展开。
“我们不希望做那种单纯被艺人的星光罩着的宣传,做品牌也不该有‘花大钱搏一笔’的赌徒心态。”付崧告诉36氪,“内容只是出于当下希望表达的议题,如果有一天不想表达了,那可能就没有了,我们不会依赖这部分流量。”
在品牌十周年时,山下有松团队回到山西,拍摄了一组平面大片,也走访了南禅寺等古老的木构建筑。“这个过程中,我们再次体会到,在中原这片土地上,不论是黄河与风沙塑造的地景,还是古建筑与夯土墙带来的人文质感和时间肌理,都是品牌的血脉、记忆和灵感来源,也是‘时间’的魅力。”付崧说。
走到今天,许多消费者会自然地将山下有松与自然、随性、安静、沉稳等词汇关联起来。在这层意义上,它开辟了一条中国品牌一贯不擅长的路径——用独特的内容表达构建品牌气质,引起情绪共鸣。
踏入未知的新地图
包袋之外,山下有松在开拓新地图。
如今,山下有松在电商平台开设有三个官方店铺,分别覆盖包袋、服饰、香氛三种品类。
2025年11月,其“沉山”香氛系列正式上线,产品由山下有松与独立调香师Yili合作创作。“沉山”香水售价1280元/30ml,以“沉住气,香自来”为理念,选用了25%占比的沉香精油,希望用一款“不香的香”表达不谄媚、不刻意的感觉——又一次强调了山下有松长期以来构建的自然感。
![]()
山下有松首个香氛系列:“沉山”
一位接触过多家新锐香氛品牌的投资人认为,山下有松与国内独立调香师合作做香氛的方式“值得肯定”。原因在于,近几年不少新入局的香氛品牌几乎难逃全球四大香精公司的“忽悠”,“你写一个brief(需求概要),四大可能只是从仓库里拿出一个��的品牌或许已经用过的配方给你。”
而山下有松合作的Yili,在国内香圈颇有影响力,其个人品牌“乂㸚制香”创立于2018年,单瓶售价通常在2000元左右。今年初,Yili还与闻献合作开发了生肖系列香水“蛇 SNAKE”。
关于跨界的原因,付崧说“一个品牌需要用五感的感受,给用户一个有包裹感的体验,而嗅觉在五感中非常重要。”——抛开具体的销售,跨界背后,山下有松希望建立的品牌人格要借此进一步夯牢。
在此之前的2024年,山下有松还正式推出了服饰系列。在品牌的展览活动中,嘉宾们大多身穿山下有松的衣服,同样的,不过度精致、展现出一种随性感。
“松系”感的背后,山下有松的服饰在细节处理中,会采用水洗做旧、手工擦色等方式,或是在有些衣服上刻意保留毛边、加入手工编织的元素,让其保留手工的、时间的痕迹。“它们会散发一种粗糙而自然美的风格,有一种‘野’的生命力。”付崧说。
目前,对山下有松而言,服饰与香氛的规模、声量都难以与包袋相提并论。但可以肯定的是,这个希望呈现“包裹感体验”的品牌,跨界早已是必然之举。
“Be Humble, Be Slow”
过去几年,山下有松的“扩张”和“长大”肉眼可见。
2022年到2024年,它在天猫双11大促箱包服配榜单中的排名分别是第5、3、1位,渐次提升,2025年蝉联TOP1;线下门店来到18家,大多位于太古里、IFS、德基广场等高奢商圈,还在泰国曼谷落地一家门店;海外独立站、巴黎时装周都是它的出海轨迹,品类扩张也在紧步跟上。
![]()
山下有松在上海外滩源的线下门店
但数字的增长并非外界预想的那般激进,“每年的增长都在团队的‘有限预期’当中,做品牌和做人很像,我们不愿意去催肥。”付崧不太会拉着团队看数字、看曲线,也不是业绩追问型的创始人。
即使是在今天的“爆发期”,“be humble, be slow”(慢一点,憨一点)依然是付崧与团队希望保持的节奏。“被看到的过程更像一种量变到质变,很多东西来到你眼前时,其实已经存在了一段时间。”山下有松的成立时间与老铺黄金相近,“它总是有一个积累的过程,然后迎来更大范围的认可。”
回过头看,有太多因素可以用来解释山下有松等新一代中国消费品牌的崛起——中国的文化自信与文化输出,更务实更谨慎的消费观念转变等等。
但归根结底,能“合时宜”地抓住机遇的前提,还是产品与内容。一家消费投资机构的合伙人曾对36氪谈起“中国奢侈品牌”的可能性,“超高定价的基础是极致技术或极致内容,要么两者都有,要么至少占一个。”甚至,爱马仕的工艺、技术,本身也是一种无可替代的“极致内容”。
对于超高定价的奢侈品如此,山下有松这样的“轻奢”品牌同样如此——它做的事情,正是在一个合理的价格区间内,将与之匹配的技术与内容做到极致。
上述投资人的另一个判断是,“极致内容要形成共识,共识一方面很难,另一方面需要时间沉淀,长期共识才会有真正的意义。”
山下有松会拥有更长远的共识吗?回答这个问题本身就需要时间。
早报|英特尔或将代工苹果M系列芯片/外卖大战加剧,美团三年来首次亏损/雷军:未来5年人形机器人将大规模进厂
![]()
英特尔或重返「果链」,代工低端 M 系列芯片
![]()
最高优惠 2000 元,苹果北京上海直营店上线国家补贴
![]()
长沙地铁官方确认全面查验充电宝 3C 认证
![]()
苹果播客异常推送,疑似遭受恶意攻击
![]()
外卖行业竞争加剧,美团 Q3 净亏损 160 亿元
![]()
需求激增,Google 收紧 Gemini 3 Pro 免费访问权限
![]()
逐际动力机器人 Oli 建筑工地「越野」成功
![]()
辍学生加入 OpenAI:通过 ChatGPT 自学「博士级 AI」
![]()
阿维塔递表港交所,估值逾 260 亿元
![]()
豆包语音功能更新:新增 4 种方言,识别覆盖达 18 种
![]()
vivo 向开放原子基金会捐赠 Rust 自研操作系统内核
![]()
雷军:未来 5 年人形机器人将大规模进厂
周末也值得一看的新闻
英特尔或重返「果链」,代工低端 M 系列芯片
![]()
昨天,知名分析师郭明錤在 X 发布消息称,英特尔有望在 2027 年重新进入苹果电脑供应链,成为其最低端 M 系列处理器的代工方。
郭明錤指出,苹果已与英特尔签署保密协议,并取得了 18AP 先进制程的 PDK 0.9.1GA 工具包,目前项目进展符合预期。
苹果正等待英特尔计划在 2026 年一季度发布的 PDK 1.0/1.1 套件,若进展顺利,英特尔最快将在 2027 年二至三季度开始量产出货最低端 M 系列处理器。
苹果的标准版 M 芯片主要用于 MacBook Air 与 iPad Pro,2025 年的出货量约为 2000 万颗。
分析师预计,随着 2026 年新款配备「iPhone 级别芯片」的 MacBook Air 上市,未来两年低端 M 系列处理器的出货量可能维持在 1500 万至 2000 万颗之间。
郭明錤强调,这笔订单规模有限,但意义重大。
对苹果而言,找到台积电之外的先进制程「二供」有助于供应链风险管理,并符合美国政府推动的「美国制造」政策。
对英特尔而言,拿下苹果订单不仅是营收贡献,更意味着其代工业务可能已熬过最艰难阶段,未来在 14A 及更先进制程上有望争取更多一线客户订单。
此外,市场消息称,除苹果外,Google 与 Meta 也可能寻求英特尔提供先进封装服务。由于台积电 CoWoS 封装产能已被英伟达与 AMD 等 GPU 厂商占据,英特尔的 EMIB 与 Foveros 技术被视为更可行的替代方案。
最高优惠 2000 元,苹果北京上海直营店上线国家补贴
![]()
昨天,苹果官网显示,北京、上海地区直营店正式加入国家补贴政策,消费者在购买指定产品时可享最高 2000 元优惠。以 iPhone 17 256GB 为例,原价 5999 元,500 元满额补贴后仅需 5499 元。
苹果方面确认,此次补贴仅限北京和上海的线下直营门店,线上下单的消费者需到门店咨询具体流程。
此前,今年 8、9 月份,北京与上海的直营门店均曾参与补贴,但北京地区随后暂停,上海则持续执行。此次调整后,全国范围内仅北京和上海的直营门店参与国补。
根据苹果官网信息,本次补贴覆盖范围不仅限于 iPhone,还包括 iPad、Apple Watch 与 Mac 等全系设备。政策具体规定如下:
- iPhone、iPad、Apple Watch 单件商品到手价不超过 6000 元时,可享额外 15% 国家补贴,每件最高减 500 元;
- Mac 产品可享到手价基础上再减 20%,每件最高减 2000 元。
需要注意的是,单价超过 6000 元的 iPhone、iPad、Apple Watch 不在补贴范围内。同时,参与补贴的订单不可与「iPhone 年年焕新计划」、Apple Trade In 换购计划或 AppleCare+ 服务计划叠加。订单亦不支持部分退款、换货或保价退差。
政策要求消费者在北京和上海直营店购买时需出示身份证件并提供实名信息,现场完成拆封、激活及拍照存档等流程,否则无法享受补贴。相关信息由银联商务支付股份有限公司北京分公司收集和处理。
界面新闻援引市场数据指出,苹果今年推出的 iPhone 17 系列在上市首月销量增长显著,部分市场同比提升 22%,而同期全球智能手机市场整体下滑 2.7%。在中国市场,10 月份 iPhone 销量占据当月手机总销量的四分之一,其中 80% 来自新款 iPhone 17 系列。
长沙地铁官方确认全面查验充电宝 3C 认证
![]()
长沙地铁近期开始执行对乘客随身携带充电宝的安全检查措施,要求查验 3C 认证标识。此举源于此前发生的充电宝自燃事件,相关部门为加强公共交通安全而进一步收紧规定。
中国新闻周刊报道称,长沙地铁客服热线确认,乘客如携带无 3C 认证标识的充电宝,将被要求自行带离车站或改乘其他交通方式。工作人员指出,该措施于近期正式实施,部分站点执行不到位的情况将被纠正并加强培训。
根据长沙地铁微信公众号日前发布的安全提示,乘客携带的单品锂离子电池额定能量不得超过 160Wh,每人累计不得超过 3 个。
官方提醒,购买充电宝时应选择正规厂家生产的产品,检查包装上的厂家信息、防伪码及 CCC 认证标志,以确保质量与安全。
此外,长沙地铁公布了应急处置流程:如在站厅或站台发生火情,应使用就近灭火器并立即通知工作人员;如在车厢内发生火情,可通过紧急报警器联系司机或通知站台,并使用座位下方配备的灭火器进行扑救。每节车厢配备 2 个紧急报警器和 2 具灭火器,以保障乘客安全。
此次措施的背景是 11 月 9 日晚长沙地铁三号线曾发生一起充电宝冒烟事件,所幸现场被及时扑灭,无人员受伤。
苹果播客异常推送,疑似遭受恶意攻击
![]()
据 404 Media 报道,苹果「播客」App 在过去数月出现异常行为,部分用户在解锁设备时发现应用会自动启动并推送宗教、灵修或教育类播客,且内容来源毫无规律。其中至少有一起案例涉及潜在恶意网站链接,疑似利用跨站脚本(XSS)攻击进行传播。
报道指出,这一现象在 iOS 与 Mac 版本的播客应用中均有出现。部分播客页面包含「查看网页」超链接,点击后会重定向至「test.ddv.in.ua」等站点,并弹出提示「XSS. Domain: test.ddv.in.ua」。
安全专家 Patrick Wardle 表示,该行为显示攻击者能够在无需用户确认的情况下强制打开应用并加载指定播客,这为潜在漏洞的利用提供了入口。
Wardle 强调,目前尚未发现大规模攻击迹象,但这种机制可能成为未来恶意代码的有效投递渠道。他指出:「这种情况类似于几年前 Google 日历垃圾信息事件,攻击者通过系统功能将不请自来的内容推送给用户。」
用户反馈也印证了这一问题。在播客应用的评论区,有用户近期留言称「苹果怎么会允许这种 XSS 攻击?」,并给予一星评价。相关播客最早可追溯至 2019 年。
报道称,苹果尚未对这一异常现象作出回应。404 Media 称其已多次向苹果发出询问,但未获答复。
外卖行业竞争加剧,美团 Q3 净亏损 160 亿元
![]()
昨天美团公布截至 9 月 30 日的第三季度财报,显示公司在激烈的市场竞争下遭遇三年来首次季度亏损。
- 营收情况:美团第三季度营收为 955 亿元,同比增长 2.0%,增幅低于市场预期;
- 净利润表现:调整后净亏损 160 亿元,而去年同期为净利润 128 亿元;整体净亏损则达 186 亿元;
- 核心业务承压:本地商业板块收入同比下降 2.8% 至 674 亿元,经营利润率由去年同期的 21.0% 跌至负 20.9%,录得 141 亿元的经营亏损;
- 成本激增:销售及营销开支同比增长 90.9% 至 343 亿元,占收入比重由 19.2% 飙升至 35.9%;骑手补贴增加进一步推高成本;
- 竞争格局:阿里巴巴与京东在外卖及即时零售市场投入巨额补贴,导致美团市场份额承压。晨星预测美团在即时零售市场的交易总额份额将从 2024 年的 73% 下滑至 2027 年的 55%;
- 新业务扩张:新业务板块收入同比增长 15.9% 至 280 亿元,主要来自食杂零售及海外业务扩张。但经营亏损扩大至 13 亿元,亏损率为 4.6%;
- 战略投入:研发开支同比增长 31.0% 至 69 亿元,重点布局人工智能,包括商家 AI 工具「LongCat」及用户智能生活助理「小美」app。
晚点 LatePost 报道认为,销售费用激增主要源于秋季外卖补贴,美团单季销售费用甚至超过了成交额快一倍的拼多多。
此外,晚点 LatePost 获悉,未来淘宝闪购会在关键时段补贴餐饮外卖,以期进一步占据市场份额,并计划在明年春天再次发起即时零售大战,重点补贴非餐货品,而非此前的「外卖大战」。
有微博网友指出,美团 Q3 由盈转亏虽在预期范围内,但核心问题在于营收停滞与 UE(每单经济模型)恶化,补贴大战导致「单量越多,亏损越大」。同时,抖音在到店业务的强势增长进一步侵蚀美团市场份额。
另一方面,华尔街见闻分析认为,美团亏损趋势预计在第四季度延续,尤其是核心本地商业板块仍将面临持续压力。分析师指出,美团海外扩张虽带来增长,但成本高企,短期难以缓解国内市场份额下滑的困境。
在昨晚的美团第三季度财报电话会上,美团 CEO 王兴表示,「外卖价格战是低质低价的『内卷式』竞争,我们坚决反对。半年来的市场结果已经充分证明:外卖价格战没有为行业创造价值,不可持续。」
他表示,美团有信心捍卫即时零售的市场地位,创造真正的长期价值。
需求激增,Google 收紧 Gemini 3 Pro 免费访问权限
![]()
据 9to5Google 报道,Google 近期收紧了 Gemini 3 Pro 的免费用户访问权限,原因是生成式 AI 工具需求激增导致容量紧张。
此前,免费用户每天可使用 Gemini 3 Pro 的「思考」功能最多 5 次提示,并可生成或编辑 3 张图像,与 Gemini 2.5 Pro 的限制保持一致。
然而,最近,Google 将免费用户的权限调整为「基础访问」,每日限额不再固定,而是根据需求动态变化,整体趋势趋于收紧。
与此同时,Nano Banana Pro 的图像生成与编辑额度也从每日 3 张下调至 2 张,并明确标注「图像生成与编辑需求量大,限额可能频繁调整并每日重置」。
此外,NotebookLM 平台临时下线了由该模型驱动的信息图与幻灯片功能,免费用户无法使用,Pro 用户也受到额外限制。
Google 表示,需求远超预期导致容量压力,正在努力恢复服务,订阅用户的 Pro 与 Ultra 使用权限不受影响。
逐际动力机器人 Oli 建筑工地「越野」成功
![]()
昨天,逐际动力 LimX Dynamics 官方视频号更新,展示旗下全尺寸人形机器人 LimX Oli 在真实建筑工地的渣土堆料区完成复杂地形行走测试。
视频中,Oli 在沙土、石块、木板及建筑废料堆等多种非结构地形中保持稳定步态,展现出高度拟人的移动能力与抗扰动性能。
据了解,Oli 身高 165 厘米,具备 31 个本体自由度。逐际动力的全身运动控制算法对所有自由度进行实时协同控制,优化关节瞬时输出并补偿惯性偏移,使机器人在复杂地形中保持重心稳定与姿态自然,避免僵硬补偿或不合理晃动,确保行走节奏连续不中断。
在测试过程中,Oli 面对松软沙土的陷落、石块的瞬态冲击、不规则碎石与斜坡带来的侧滑偏移,均能快速修正全身姿态轨迹,恢复自然步态。
逐际动力强调,稳定移动是全尺寸人形机器人完成操作任务的前提。只有在复杂环境中实现可靠的移动与姿态控制,机器人才能将双臂准确带到操作点并保持工作可靠性。
逐际动力成立于 2022 年,总部位于深圳,专注于具身智能机器人研发,涵盖全尺寸人形与双足机器人等产品。其研发战略围绕硬件设计制造、基于强化学习的全身运动控制及具身大脑训练范式,推动具身智能在科研、制造、商业与家庭场景的应用。
辍学生加入 OpenAI:通过 ChatGPT 自学「博士级 AI」
![]()
据《商业内幕》报道,一名高中辍学生 Gabriel Petersson 近日在播客节目《Extraordinary》中表示,他通过 ChatGPT 自学博士级别的人工智能知识,并最终加入 OpenAI 的 Sora 团队担任研究科学家。
Petersson 在 2019 年辍学后进入瑞典一家初创公司,从实际项目需求出发学习编程。他强调「大学不再垄断基础知识」,并指出「你可以直接从 ChatGPT 获取任何基础知识」。
他采用自上而下的学习方式:先提出项目需求,再让 ChatGPT 生成代码,遇到问题则在模型帮助下修复,逐步深入理解底层原理。
根据他的 LinkedIn 信息,Petersson 于去年 12 月加入 OpenAI,此前曾在 Midjourney 和 Dataland 担任软件工程师。
他认为企业更看重结果而非学历,「公司只想赚钱,你证明自己能写代码、能创造价值,他们就会雇用你」。
OpenAI CEO Sam Altman 在 10 月的 DevDay 大会上也曾表示,他「羡慕当下 20 岁辍学生的机会」,因为 AI 技术让年轻人能够快速构建产品并进入行业。
同时,风险投资公司 Andreessen Horowitz 在今年 3 月的博客中指出,「创业环境已为年轻创始人提供了更公平的竞争舞台」,并称这是「十年来辍学生和应届毕业生创业的最佳时机」。
今年 2 月,美国软件服务公司帕兰提尔(Palantir)CEO Alex Karp 在接受 CNBC 采访时直言「学校教授的世界观在智识上是错误的」,并推出面向高中毕业生的「优绩研修项目」,直接从高中毕业生中选拔潜在人才。
阿维塔递表港交所,估值逾 260 亿元
![]()
据华尔街见闻报道,阿维塔科技(重庆)股份有限公司已于昨天晚间向香港联合交易所递交 IPO 申请,计划在 2026 年完成上市。这一举动意味着阿维塔有望成为首家央企背景的新势力车企登陆港股市场,被视为「央企新能源第一股」。
阿维塔成立仅七年,定位高端新能源品牌,目前已形成「三年四车」的产品布局,主力车型包括阿维塔 11、12、07、06,以及限量联名版 011 与 012,覆盖 20 万至 70 万元的高端市场。
数据显示,公司 2025 年 1 至 10 月累计销量超过 10 万辆,连续 8 个月单月销量破万,尽管与头部品牌仍有差距,但增长趋势明显。
财务表现方面,阿维塔在 2023 年至 2024 年的营业收入分别为 56.45 亿元与 151.95 亿元,同比增长 169.16%。
2025 年上半年营收达到 122.08 亿元,同比增幅接近 98.52%。同期毛利录得 12.38 亿元,相较上年同期的 2.67 亿元大幅提升。公司已完成四轮融资,累计募集资金超过 190 亿元,其中 C 轮融资金额超过 110 亿元,成为当年度国内最大单笔融资。最新估值约为 260.17 亿元。
豆包语音功能更新:新增 4 种方言,识别覆盖达 18 种
![]()
据多家媒体报道,豆包 App 近日更新语音对话功能,新增粤语、四川话、东北话及陕西话四种方言输出。
用户在对话框输入文字或语音指令,并选择默认的「温柔桃子」升级版音色,即可触发方言对话体验。该功能依托豆包语音模型的方言迁移技术,实现单音色支持多方言,并具备思考能力,可根据用户意图灵活切换。
量子位记者实测显示,豆包能够精准识别相关方言语音与词汇,并以自然地道的方言回应。这一功能尤其有助于不熟悉普通话的用户群体,提升沟通效率。
除新增的 4 种方言外,豆包还可在对话过程中识别上海话、南京话等 18 种方言,借助 ASR(Automatic Speech Recognition)技术,转录准确率与效率显著提升。
豆包相关负责人表示,此次更新旨在提升不同地域用户的交互体验,让更多人能够以更轻松自然的方式使用语音功能,享受技术带来的便利。
vivo 向开放原子基金会捐赠 Rust 自研操作系统内核
![]()
开放原子近日发表公众号文章称,在日前举行的 2025 开放原子开发者大会上,vivo 宣布正式向开放原子开源基金会捐赠其以 Rust 语言自研的操作系统内核 BlueKernel。
BlueKernel 内核具备安全、轻量和通用三大特性。
- 其安全性依托 Rust 语言的编译期静态规则与智能指针机制,实现内存安全的主动掌控;
- 在轻量化方面,最小内核内存占用仅 13KB,大幅降低硬件资源需求;
- 在通用性上,BlueKernel 兼容 RISC-V、ARM 等多芯片架构,并支持 POSIX 接口标准库,方便开发者快速适配现有生态。
目前,该内核已完成对兆易创新 GD32、恒玄科技 BES、瑞芯微 RK 等多家芯片厂商开发板的适配,覆盖 Cortex-M、Cortex-A 及 RISC-V 架构。
大会同期,开放原子开源基金会宣布开源鸿蒙 OpenHarmony 与开源欧拉 openEuler 通过技术监督委员会评审,成为首批毕业项目,标志着两大开源操作系统在技术成熟度、社区治理和生态建设方面达到新高度。
截至 2024 年底,中国活跃开源项目数量已超过 300 万,活跃开发者达到 227 万,形成规模宏大、结构多元的开源人才队伍。
此外,大会还揭晓了中国开源创新力量致谢名单,涵盖操作系统、数据库、人工智能三大核心领域的 28 个开源先锋项目及 47 位开发者代表,包括开源鸿蒙、开源欧拉、openKylin、openGauss 等业界标杆。
雷军:未来 5 年人形机器人将大规模进厂
![]()
据北京日报报道,小米集团创始人、董事长雷军在接受采访时表示,「所有产业都值得用 AI 再做一遍」。
他指出,未来 5 年,人形机器人将在小米工厂大规模上岗,并强调人形机器人在家庭场景中的潜力。
雷军提到,日前,小米汽车实现第 50 万辆整车下线,创下全球新能源汽车行业最快纪录。
他特别强调,北京的产业基础和创新环境是小米发展的底气。北京在「十四五」期间大力推进产业升级,新能源汽车产量从 2020 年的约 2 万辆增长至 2024 年的 30 万辆,今年前 7 个月已达到 31 万辆,显示出产业转型的显著成效。
在智能制造方面,小米在北京投产的「黑灯工厂」实现手机年产量 100 万台,生产效率较传统工厂提升 60%。随后在昌平建设的大规模工厂,年产手机 1000 万台,进一步凸显智能制造的优势。
他举例称,在小米汽车工厂,大压铸件检测通过 AI 视觉大模型与 X 光机结合,仅需 2 秒即可完成,效率是人工的 10 倍,精度提升 5 倍以上。这种 AI 与传统产业的深度融合,将开启新的万亿级市场。
GetDraft 上线:「AI 写作天团」重塑协作模式
![]()
昨天,AI 写作协作平台 GetDraft 官宣正式上线,定位为「AI 写作天团」,核心目标是帮助专业写作者和企业团队在从构思到初稿的过程中实现更高效的协作。
与市面上常见的「一键生成」写作工具不同,GetDraft 强调人类作者的主导地位,AI 团队则承担调研、扩写、润色和校对等执行环节,从而释放人类在创意和判断上的价值。
GetDraft 的设计理念是「人类是主编,AI 是执行者」。平台提供五个角色分工:
- 风格打磨师阿珍负责建立写作画像;
- 首席写手阿强主导选题与结构设计;
- 调研专家小美生成结构化报告;
- 速写能手小帅快速完成扩写与标准化文案;
- 毒舌主编丧彪则进行质量把控,指出逻辑漏洞与文风问题。
这样的分工让写作过程更接近传统编辑部的协作模式,但通过 AI 技术实现了更高的效率。
在应用场景方面,GetDraft 主要面向需要保持高频且高质量的内容输出、确保内容风格一致的专业写作者和企业团队。开发团队强调,这并不是一个免费产品,目前采用积分奖励机制,适合长期依赖写作的专业用户。
GetDraft 表示,通过让 AI 承担重复性、低创造性的工作,该工具能帮助人类作者集中精力在更具价值的创意环节。未来,团队计划增加更多角色,例如 AI 排版专家和配图专家,以进一步扩展协作功能。
蜜雪冰城跨界进军早餐市场,官方回应:暂限四城试点
![]()
据多家媒体报道,茶饮连锁品牌蜜雪冰城正在进军早餐市场。目前,蜜雪冰城已在官方小程序上线「早餐系列」,包括五红奶、五黑奶、玉米奶、椰椰奶等产品,售价均为 5 元。
此外,近日蜜雪冰城通过企业微信社群及朋友圈发布早餐调查问卷,内容涵盖豆浆、油条、豆腐脑、玉米、红薯、小米粥、牛奶、咖啡、三明治等多种选项,并收集消费者性别、年龄、职业、省份及早餐消费习惯等信息。
极目新闻援引消息人士报道称,该计划仅在大连、西安、南宁、杭州等城市进行试点,暂未有大规模推广的安排。
此前,蜜雪冰城曾在部分门店推出「咖啡 + 烘焙」早餐套餐,一杯拿铁搭配三明治,定价 10 元。
类似尝试在行业中并不罕见。喜茶、奈雪的茶、古茗等品牌早在 2019 至 2020 年间已推出早餐产品,价格区间在 9.9 元至 15 元之间。
值得注意的是,蜜雪冰城在多元化布局上动作频频。今年 10 月 1 日,公司宣布斥资约 2.97 亿元人民币收购「鲜啤福鹿家」53% 股权,正式进入现打鲜啤领域。该品牌成立于 2021 年,截至 2025 年 8 月已拥有约 1200 家门店。
财报显示,蜜雪冰城 2025 年上半年实现收入 148.7 亿元,同比增长 39.3%;净利润 27.2 亿元,同比增长 44.1%。截至 6 月底,其全球门店总数增至 53014 家,覆盖中国及 12 个海外国家。
淘宝闪购取消超时扣款扩展至 60 城
![]()
据鞭牛士昨日报道,淘宝闪购宣布取消外卖骑士超时扣款的政策已扩展至 60 城,并将在年底前覆盖全国直营城市。这一举措标志着平台在骑士服务机制上的重大调整,旨在通过积分制和正向激励提升履约效率与用户体验。
具体来看,淘宝闪购今年持续推广服务分机制,以「好的履约加分、超时送达扣分」的方式取代直接扣款。相比此前的直接扣款模式,新机制更具弹性与温和性:
- 骑士的基础分设定为 70 分,顺利送达且无违规行为可获得加分,超过 75 分还将享有额外奖励;
- 若出现超时情况,每次最多扣 2 分。
一位骑士表示:「跑单难免遇到突发情况,比如小区绕路、电梯拥堵等,以前超时会直接扣款,现在最多扣 2 分,收入更稳定,也不用为了赶时间而冒险。」
报道显示,该政策将在 12 月 3 日起覆盖北京、杭州、广州、武汉、成都、厦门、西安、石家庄、呼和浩特、长春、沈阳、大连等城市,并在年底前推广至全部直营城市。
《最好的朋友》终极预告发布,12 月 5 日上映
![]()
青春现实主义题材电影《最好的朋友》昨日发布终极预告与海报,并同步开启全国预售。影片由青年导演宋卓非执导,聚焦孤独症群体,以真实体悟展开关于理解与陪伴的青春叙事。
影片讲述高中生赵飞(杨智赫 饰)、少女夏秋(段奥娟 饰)与孤独症少年夏天(城桧吏 饰)的相遇与成长。
三人从各自的困境走向理解与陪伴,传递「孤独却不孤单」的主题。导演宋卓非长期参与孤独症公益服务,他将真实经验转化为镜头语言,试图打破社会偏见,呈现孤独症群体的独特精神世界。
目前,《最好的朋友》全国预售现已开启,将于 12 月 5 日上映。
《得闲谨制》定档 12 月 6 日
![]()
《得闲谨制》定档 12 月 6 日全国上映,并同步开启预售。
昨天,片方发布了「为家而战」版预告与海报,展现了工匠莫得闲一家在战火中直面生死劫、誓守家园的故事情节。影片由兰晓龙编剧、孔笙执导,侯鸿亮担任总制片人,肖战、彭昱畅、周依然领衔主演,尹正特别出演。
影片剧情聚焦机械厂钳工莫得闲(肖战 饰)与家人随逃难队伍进入山区,在戈止镇与防空炮长肖衍(彭昱畅 饰)及散兵游勇共同生活。然而镇子宁静被日本侦察兵打破,百姓誓死守护家园,展开一场民间智慧对抗正规武装的殊死较量。
制作团队强调,「谨制」态度贯穿创作始终,力求在叙事与影像中呈现百姓抗战的新视角。
是周末啊!
One Fun Thing|iPhone 17 Pro 全程拍摄,短片《A Critter Carol》获库克好评
![]()
昨天,苹果 CEO Tim Cook 在 X 发文,点赞苹果 2025 年度感恩节假日短片《A Critter Carol》,称其充满「魔法与爱心」,该短片全程由 iPhone 17 Pro 拍摄。
短片设定在白雪覆盖的森林中,故事围绕浣熊、熊、鹿和猫头鹰等手工木偶展开。
它们偶然发现一部遗失的 iPhone,并用其录制了一首关于友谊的歌曲。剧情高潮部分,失主通过 Apple Watch 的「查找」功能定位手机,最终发现了小动物们留下的温馨录像。
导演马克・莫洛伊在创作过程中充分利用了 iPhone 17 Pro 的 8 倍光学变焦、人物居中(Center Stage)以及前后摄像头同时启用的双重拍摄(Dual Capture)功能,使影片在专业叙事中展现出沉浸感与温情氛围。
库克在推文中表示:「节日的欢乐气氛,一点点魔法,以及满满的温情,都被几个手工制作的木偶朋友用 iPhone 17 Pro 记录了下来」。
周末看什么|《怪奇物语》第五季
![]()
《怪奇物语》第五季第 1 辑共 4 集,延续了霍金斯小镇的黑暗危机 。威可那再度登场,伊莱雯与威尔释放更强超能力,主角小队不仅要面对终极对决,还需直面心魔。
剧中麦克丝的回归成为关键,她在威可那的记忆世界中被困,最终通过音乐指引接近现实,但仍受阻。此外,军方在霍金斯的介入未能提供实质帮助,反而加剧了对伊莱雯的搜捕,使剧情张力进一步提升。
正式上线后,《怪奇物语》第五季在豆瓣平台的开分评价极为正面,评分高达 9.6(7810 人评价),其中 84.7% 打出五星。评论普遍认为前四集剧情紧凑、信息量大,角色成长线更为饱满,尤其是威尔的超能觉醒成为最大亮点之一。
不过,《怪奇物语》第五季在烂番茄平台的媒体新鲜度评分仅为 86%(基于 49 篇评论),创下系列历史最低开分,相比第一季的 97%、第二季的 94% 以及第三、四季的 89% 均有所下滑。不过观众评分依然高达 91%。
根据官方排期,第五季第 5 至 7 集将于 12 月 25 日圣诞节播出,最终大结局将在 12 月 31 日跨年夜上线。而第 2 辑则定于 12 月 26 日上线。
买书不读指南|《海上无航标》
![]()
《海上无航标》讲述记者埃德蒙在身患绝症后选择登上远洋客轮,与暗中倾慕的劳拉一同驶向深海的故事。
航程没有明确目的地,象征生命在临近终点时已不再需要航标。作品通过甲板黄昏的欲言又止、异国港口的并肩而立以及面对浩瀚海洋的存在追问,展现了人类情感的微妙震颤。
薇塔是弗吉尼亚 · 伍尔夫的灵魂伴侣,也是《奥兰多》的原型人物。她在文学与情感世界的探索在这部作品中达到极致。
《海上无航标》探讨了爱情的无私与自私、生命的有限与无限,最终以主人公的沉默与克制回应死亡的必然。
游戏推荐|《极限国度》Steam 一折特惠
![]()
育碧旗下极限运动游戏《极限国度》背景设定在美国多个国家公园,玩家可体验自行车、单板滑雪、双板滑雪与翼装飞行等运动,并支持最多 64 人同时参与的大型竞速赛事,强调自由探索与多人互动的沉浸式体验。
在媒体评价方面,IGN 给出 8 分,认为其在街机化的极限运动表现上极具娱乐性,玩法丰富且操作流畅。GamingTrend 则指出游戏剧情薄弱,缺乏竞争驱动力,但第一人称模式与多人赛事依然能带来高度沉浸的体验。
整体而言,媒体普遍认可其开放世界与运动多样性,但也指出服务器稳定性、Bug 以及微交易设计仍是亟待优化的问题。
目前到 12 月 7 日,《极限国度》在 Steam 商店一折特惠,19.8 元即可入库,在 1 万余名简体中文玩家中评价为「特别好评」。
#欢迎关注爱范儿官方微信公众号:爱范儿(微信号:ifanr),更多精彩内容第一时间为您奉上。
Python学习笔记2
推导式
推导式是一种用一行代码创建列表、字典、集合或生成器的简洁方式,本质是“带条件的循环 + 表达式”。【类似于语法糖的概念】
列表推导式
names = ['Bob','Tom','alice','Jerry','Wendy','Smith']
new_names = [name.upper()for name in names if len(name)>3]
print(new_names)
# ['ALICE', 'JERRY', 'WENDY', 'SMITH']
这段代码中是定义了一个叫 names 的列表,然后通过推导式操作 以 name 循环 names,并获取 name 中大于 3 的项,最后将得到的结果进行大写转换。
推导式的运行逻辑一般是
[表达式 for 变量 in 列表][表达式 for 变量 in 列表 if 条件]
字典推导式
listdemo = ['Google','Runoob', 'Taobao']
# 将列表中各字符串值为键,各字符串的长度为值,组成键值对
newdict = {key:len(key) for key in listdemo}
# newdict {'Google': 6, 'Runoob': 6, 'Taobao': 6}
所以字典推导式一般是:
{key: value for key in 列表}
注意这里可以先看 for in 部分,for in部分获取到的是 key。再看前面 key: 之后的部分,获得是 value,最后通过循环组合成一个完整的字典。
dic = {x: x**2 for x in (2, 4, 6)}
# dic的结果为{2: 4, 4: 16, 6: 36}
集合推导式
setnew = {i**2 for i in (1,2,3)}
setnew {1, 4, 9}
这里也是先看后半部分,循环 i 得到每一个数据,即 1、2、3。然后将 i 进行幂运算,得到的结果为1、4、9。因为处在 Set 中有需要剔除重复的,所以结果为 {1, 4. 9}。
元组推导式
a = (x for x in range(1,10))
# a <generator object <genexpr> at 0x7faf6ee20a50>
# 返回的是生成器对象
tuple(a)
# 使用 tuple() 函数,可以直接将生成器对象转换成元组 (1, 2, 3, 4, 5, 6, 7, 8, 9)
与列表推导式效果基本相同,唯一的区别在于元组本身的不可变特性。
迭代器
迭代器是一个可以记住遍历位置的对象,它实现了 iter() 和 next() 方法,让你能“一个一个地”取出数据,而不需要一次性加载所有数据到内存。
迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。
字符串,列表或元组对象都可用于创建迭代器:
# 列表
list=[1,2,3,4]
it = iter(list)
# 创建迭代器对象
print (next(it))
# 输出迭代器的下一个元素,这里会输出 1
print (next(it))
# 输出迭代器的下一个元素,这里会输出 2
# 也可以使用 for 循环,无需使用 next 方法
list=[1,2,3,4]
it = iter(list)
# 创建迭代器对象
for x in it: print (x, end=" ")
# 或者使用 while 循环
import sys
# 引入 sys 模块
list=[1,2,3,4]
it = iter(list)
# 创建迭代器对象
while True:
try:
print (next(it))
except StopIteration:
sys.exit()
注意:使用 iter() 创建的迭代器 并不是“转换成一种类似于列表的形式”,而是一个完全不同的对象类型——它没有索引、不能随机访问、不能重复遍历,只能单向、逐个、一次性地获取元素。
生成器
Python可以使用 yield 创建生成器。生成器是一种特殊的函数,可以在迭代的过程中逐步产生值。
def countDown(n):
while n > 0:
yield n
n -= 1
genertor = countDown(5)
print(next(genertor))
print(next(genertor))
print(next(genertor))
print('---分割线---')
for i in genertor:
print(i)
"""
5
4
3
---分割线---
2
1
"""
with资源释放
在需要释放资源的操作中,忘记释放往往是最关键的问题。
所以Python中增加了 with 关键字主动释放资源。
# 传统方法
file = open('example.txt', r)
try:
content = file.read()
finally:
file.close()
# with关键字【这里会在使用完文件资源以后自动释放】
with open('example.txt', r) as file
content = file.read()
print(content)
with可以进行非常多的资源操作:文件、线程锁、数据库等等。
函数
Python中的函数有以下规则:
- 函数代码块以
def关键词开头,后接函数标识符名称和圆括号 ()。 - 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
- 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
- 函数内容以冒号 : 起始,并且缩进。
- return [表达式] 结束函数,选择性地返回一个值给调用方,不带表达式的
return相当于返回None。'
def hello() :
print("Hello World!")
hello()
Python参数中可以使用传统的默认参数的方法,给参数赋默认值。
可以在最后一个参数处增加 * 符号,这些未命名的参数会以元组的方式被接收。
def hello(num, *vartuple):
print(num)
for i in vartuple:
print(i)
hello('wang', 'ha', 'ha', 'ha')
还可以在最后一个参数处增加 ** 符号,参数会以字典的形式被接收。
def hello(num, **vardict):
print(num)
print(vardict)
hello('wang', a = 2, b = 3) # 打印结果 wang {a:2, b:3}
在声明函数的时候,* 符号可以单独出现,代表仅限关键字参数。
也就是说在 * 符号以后的所有参数都必须以关键字的形式传入,不能再使用位置传参。
def printName(a, b, *, c):
print(a, b, c)
printName('Tom', 'Jerry', c='coke')
匿名函数
匿名函数可以简单理解为没有函数名的函数,定义匿名函数使用 lambda 关键字。
注意:lambda 表达式只能写一行,它是一个 表达式。【实际开发使用并不算多。】
lambda 参数: 表达式
f = lambda x: x * 2
g = lambda x, y: x if x > y else y
# 条件表达式是可以的 h = lambda s: s.strip().upper() # 方法链也是表达式
强制位置参数
Python 3.8 新增一个函数形参的 / 符号,代表此符号之前的形参必须采用 位置参数 的形式,不能采用关键字传参。
def f(a, b, /, c, d, *, e, f):
print(a, b, c, d, e, f)
f(10, 20, 30, d=40, e=50, f=60)
# 正确 f(10, b=20, c=30, d=40, e=50, f=60)
# b 不能使用关键字参数的形式 f(10, 20, 30, 40, 50, f=60) # e 必须使用关键字参数的形式
[Python3/Java/C++/Go/TypeScript] 一题一解:求和取模(清晰题解)
方法一:求和取模
题目实际上是求数组元素之和对 $k$ 取模的结果。因此,我们只需要遍历数组,计算出所有元素之和,然后对 $k$ 取模,最后返回这个结果即可。
###python
class Solution:
def minOperations(self, nums: List[int], k: int) -> int:
return sum(nums) % k
###java
class Solution {
public int minOperations(int[] nums, int k) {
return Arrays.stream(nums).sum() % k;
}
}
###cpp
class Solution {
public:
int minOperations(vector<int>& nums, int k) {
return reduce(nums.begin(), nums.end(), 0) % k;
}
};
###go
func minOperations(nums []int, k int) (ans int) {
for _, x := range nums {
ans = (ans + x) % k
}
return
}
###ts
function minOperations(nums: number[], k: number): number {
return nums.reduce((acc, x) => acc + x, 0) % k;
}
###rust
impl Solution {
pub fn min_operations(nums: Vec<i32>, k: i32) -> i32 {
nums.iter().sum::<i32>() % k
}
}
###cs
public class Solution {
public int MinOperations(int[] nums, int k) {
return nums.Sum() % k;
}
}
时间复杂度 $O(n)$,其中 $n$ 是数组 $\textit{nums}$ 的长度。空间复杂度 $O(1)$。
有任何问题,欢迎评论区交流,欢迎评论区提供其它解题思路(代码),也可以点个赞支持一下作者哈 😄~
每日一题-使数组和能被 K 整除的最少操作次数🟢
给你一个整数数组 nums 和一个整数 k。你可以执行以下操作任意次:
- 选择一个下标
i,并将nums[i]替换为nums[i] - 1。
返回使数组元素之和能被 k 整除所需的最小操作次数。
示例 1:
输入: nums = [3,9,7], k = 5
输出: 4
解释:
- 对
nums[1] = 9执行 4 次操作。现在nums = [3, 5, 7]。 - 数组之和为 15,可以被 5 整除。
示例 2:
输入: nums = [4,1,3], k = 4
输出: 0
解释:
- 数组之和为 8,已经可以被 4 整除。因此不需要操作。
示例 3:
输入: nums = [3,2], k = 6
输出: 5
解释:
- 对
nums[0] = 3执行 3 次操作,对nums[1] = 2执行 2 次操作。现在nums = [0, 0]。 - 数组之和为 0,可以被 6 整除。
提示:
1 <= nums.length <= 10001 <= nums[i] <= 10001 <= k <= 100
3512. 使数组和能被 K 整除的最少操作次数
解法
思路和算法
每次操作可以将数组 $\textit{nums}$ 中的一个元素值减少 $1$,因此为了计算使数组元素和能被 $k$ 整除的最少操作次数,需要考虑数组元素和的最小减少量。考虑数组 $\textit{nums}$ 的元素和除以 $k$ 的余数 $r$。
-
如果 $r = 0$,则数组元素和已经能被 $k$ 整除,不需要执行操作。
-
如果 $r > 0$,则至少要将数组元素和减少 $r$ 才能被 $k$ 整除,因此需要执行 $r$ 次操作。
因此,对于 $0 \le r < k$ 的任意余数 $r$,使数组元素和能被 $k$ 整除的最少操作次数是 $r$。
计算数组 $\textit{nums}$ 的元素和除以 $k$ 的余数,即为使数组元素和能被 $k$ 整除的最少操作次数。
代码
###Java
class Solution {
public int minOperations(int[] nums, int k) {
return Arrays.stream(nums).sum() % k;
}
}
###C#
public class Solution {
public int MinOperations(int[] nums, int k) {
return nums.Sum() % k;
}
}
复杂度分析
-
时间复杂度:$O(n)$,其中 $n$ 是数组 $\textit{nums}$ 的长度。需要遍历数组一次计算元素和。
-
空间复杂度:$O(1)$。
求和模 k(Python/Java/C++/C/Go/JS/Rust)
题目要求 $\textit{nums}$ 的元素和 $s$ 能被 $k$ 整除。
每次操作可以把 $s$ 减少 $1$。目标是把 $s$ 变成一个 $k$ 的倍数,且操作次数越小越好。
比如 $s=8,k=3$,需要操作 $2$ 次,把 $s$ 变成 $6$。
一般地,至少要操作 $s\bmod k$ 次,才能把 $s$ 变成 $k$ 的倍数。
###py
class Solution:
def minOperations(self, nums: List[int], k: int) -> int:
return sum(nums) % k
###java
class Solution {
public int minOperations(int[] nums, int k) {
int s = 0;
for (int x : nums) {
s += x;
}
return s % k;
}
}
###java
class Solution {
public int minOperations(int[] nums, int k) {
return Arrays.stream(nums).sum() % k;
}
}
###cpp
class Solution {
public:
int minOperations(vector<int>& nums, int k) {
return reduce(nums.begin(), nums.end()) % k;
}
};
###c
int minOperations(int* nums, int numsSize, int k) {
int s = 0;
for (int i = 0; i < numsSize; i++) {
s += nums[i];
}
return s % k;
}
###go
func minOperations(nums []int, k int) int {
s := 0
for _, x := range nums {
s += x
}
return s % k
}
###js
var minOperations = function(nums, k) {
return _.sum(nums) % k;
};
###rust
impl Solution {
pub fn min_operations(nums: Vec<i32>, k: i32) -> i32 {
nums.iter().sum::<i32>() % k
}
}
复杂度分析
- 时间复杂度:$\mathcal{O}(n)$,其中 $n$ 是 $\textit{nums}$ 的长度。
- 空间复杂度:$\mathcal{O}(1)$。
分类题单
- 滑动窗口与双指针(定长/不定长/单序列/双序列/三指针/分组循环)
- 二分算法(二分答案/最小化最大值/最大化最小值/第K小)
- 单调栈(基础/矩形面积/贡献法/最小字典序)
- 网格图(DFS/BFS/综合应用)
- 位运算(基础/性质/拆位/试填/恒等式/思维)
- 图论算法(DFS/BFS/拓扑排序/基环树/最短路/最小生成树/网络流)
- 动态规划(入门/背包/划分/状态机/区间/状压/数位/数据结构优化/树形/博弈/概率期望)
- 常用数据结构(前缀和/差分/栈/队列/堆/字典树/并查集/树状数组/线段树)
- 数学算法(数论/组合/概率期望/博弈/计算几何/随机算法)
- 贪心与思维(基本贪心策略/反悔/区间/字典序/数学/思维/脑筋急转弯/构造)
- 链表、树与回溯(前后指针/快慢指针/DFS/BFS/直径/LCA)
- 字符串(KMP/Z函数/Manacher/字符串哈希/AC自动机/后缀数组/子序列自动机)
欢迎关注 B站@灵茶山艾府
模拟
解法:模拟
每次操作会让数组的总和减一,因此答案就是总和 $\mod k$ 的值。
复杂度 $\mathcal{O}(n)$。
参考代码(c++)
class Solution {
public:
int minOperations(vector<int>& nums, int k) {
int sm = 0;
for (int x : nums) sm += x;
return sm % k;
}
};
以超级供应链破解中小企业发展痛点,京东PLUS企业会员让采购更省更高效|WISE2025商业之王
2025年的商业世界正站在新旧转换的十字路口。在商业叙事重构、科技浪潮席卷的当下,WISE2025商业之王大会以“风景这边独好”为基调,试图在不确定中锚定中国商业的确定性的未来。我们在此记录这场思想盛宴的开篇,捕捉那些在变局中依然坚定前行的声音。
11月27-28日,被誉为“年度科技与商业风向标”的36氪WISE2025商业之王大会,在北京798艺术区传导空间落地。
今年的WISE不再是一场传统意义上的行业峰会,而是一次以“科技爽文短剧”为载体的沉浸式体验。从AI重塑硬件边界,到具身智能叩响真实世界的大门;从出海浪潮中的品牌全球化,到传统行业装上“赛博义肢”——我们还原的不仅是趋势,更是在捕捉在无数次商业实践中磨炼出的真知。
我们将在接下来的内容中,逐帧拆解这些“爽剧”背后的真实逻辑,一起看尽2025年商业的“风景独好”。
大会现场,京东政企业务中小企业客户部副总经理张瑞发表《数字时代,那些过去敢想却未实现的事情》的主题演讲,分享了京东如何以“有责任的供应链”为基础,通过AI技术与创新服务模式,破解中小企业服务的“不可能三角”难题,助力百万级中小企业实现数字化采购转型。
张瑞指出,中小企业作为中国经济的重要活力源,其健康发展对国民经济意义重大,但行业分散、需求多样、价格敏感等特性,构成了B2B领域“海量客户、深度链接、低成本服务”的长期困境。对此,京东政企业务通过三大核心举措实现突破:打造企业版京东商城,依托AI技术实现精准获客、高效服务与采购体验升级;推出行业首个付费会员体系——京东PLUS企业会员,将优质权益标准化输出,会员企业覆盖建筑、船舶等传统行业,以及低空经济、信息智能等新兴行业,深度契合“十五五”规划重点产业方向。
目前,京东政企业务服务超800万家政企客户,覆盖90%以上在华世界500强企业及70%以上专精特新企业,未来将向着服务1000万企业客户、100万PLUS企业会员的目标迈进,持续推动产业链供应链韧性提升与实体经济高质量发展。
![]()
京东政企业务中小企业客户部副总经理张瑞
以下为京东政企业务中小企业客户部副总经理张瑞的演讲实录,经编辑:
各位现场和线上的朋友们,大家好!我是来自京东集团政企业务部的张瑞。刚才百度的李莹总介绍了百度小度的硬件,我看到现场也有很多一直以来支持京东业务、跟我们有合作的朋友,当然这里面要插一句广告,就是百度小度,买国补上京东。
我今天给大家分享的主题是《数字时代,那些过去敢想却未实现的事情》。
我先介绍一下我们整个京东集团,京东集团定位于“以供应链为基础的技术与服务企业”,目前业务已涉及零售、科技、物流、健康、工业、产发和国际等领域。作为同时具备实体企业基因和属性、拥有数字技术和能力的新型实体企业,京东集团所有的业务都围绕供应链展开。依托“有责任的供应链”,京东持续推进“链网融合”,实现了货网、仓网、云网的“三网通”,不仅保障自身供应链稳定可靠,也带动产业链上下游合作伙伴数字化转型和降本增效,更好服务实体经济高质量发展。
我所在的京东政企业务是京东集团服务政企客户的核心平台,凭借京东稳定高效的供应链基础设施,以一体化的服务生态为政府、企业及事业单位提供一站式、全链路、场景化的数字采购供应链综合解决方案,携手政企推进采购与业务的深度融合,加速实现采购的阳光、高效、低成本,全面提升产业链、供应链的韧性和安全水平。
我们服务超过800万家政企客户,其中包括3万+大型客户,覆盖了90%以上的在华世界500强企业、95%中国民营500强企业和70%以上专精特新企业,全面覆盖像银行、运营商、航空、石油石化、电力等集团型的客户。
一直以来,中小企业是我们中国经济活力的重要体现,中小企业的健康发展对于我们国民经济的健康发展意义是非常重大的,京东政企业务通过“平台营销、精准营销、项目集采”三种服务模式来满足企业全场景的需求。
到目前为止,我们服务的800万中小企业中,有六成客户是集中在制造、科研科技、技术信息、商业服务等四类行业,在规模30人以上的公司中占比超过35%,在我国4个主要的经济带——京津冀、珠三角、长三角、川渝产业带的占比超过了55%。
同时,我们也发现数智化意识强的企业,在我们京东平台上的平均留存周期是超过5.9年的,远超过我们中国企业平均2.5年的生命周期。这800万中小企业的客户群体实际上是一个非常巨大的数字,但是与我们现在整个国家6600万的中小企业群体相比,其实我们前面要走的路还很长。
一直以来,我们在服务中小客户群体的时候,我们发现不管是大客户还是小客户,服务好一个客户非常容易,服务好10万客户群体也很容易,但是当我们去服务100万乃至1000万的客户群体时,中小企业的每一个特性都会放大成为一个我们难以解决的山一样的问题。
比如说,行业非常分散、需求也非常分散,客户的需求也很多样,价格非常敏感,计划性非常低,等等等等。所有这些要素综合起来,就成为B2B行业里一个长期的“不可能三角”。我相信每个业务都会有它的“不可能三角”,对于我们B2B的中小企业业务来讲,我们的“不可能三角”就是要服务海量的客户,也要与客户形成深度的链接,同时我们的服务成本也非常低。
在过往相当长的时间里面,其实我们这三者是很难同时做到,你只能选择其中两点,必须要放弃另外一点。那么如何去破解这个难题,也就成为我们如何把800万的客户扩张为1000万、1200万的一个核心问题。
第一个,我们为中小企业的客户群体打造了快采购、轻管理、一站式的企业版京东商城。从获客的源头来看,除了京东主站,我们还拥有丰富的站内外生态,线下以及品牌的联合拉新,并且根据客户的身份去区分商品、金融服务权益,配套了适配SMB群体的商品、价格和服务,同时我们依托京东主站的流量,搭建了适配SMB客户的交易链路,实现企业采购的体验与商业效率的双重升级。
这里面大家可能会问,双重升级、采购体验和采购效率,为什么你们可以做到这一点?我们京东政企业务有自己独特的资源禀赋的优势,我们持续进行的算法迭代和资源投入,结合现在AI的能力,对我们大规模客户运营、客户的服务以及客户的采购体验,三个方面都产生了革命性的影响,深刻地改变了我们与中小企业客户互动的方式,让京东政企业务真正具备了服务千万级中小企业客户的能力。这里面的话,我想重点展开讲这么几点:
第一点,在客户的获取和运营上。首先在获客上面,我相信所有做To B业务的人,特别是做中小企业业务的人,大家都有深刻的体感,就是每一个企业级客户的获取,其实都是一个非常高成本投入的事情。在今天的这个时代,我们是可以借AI的能力,帮助我们在京东主站以及外部各个生态渠道里面,去精准地识别用户,以及在正确的时间把正确投放的内容生产出来,去做正确的投放。第二是在客户的运营上面,我们策略的制定和执行,营销和销售端权益利益点,服务在客户端ID级别的适配,对客户内容的生产,以及我们对客户的这些权益内容的提供,在服务时点和渠道上的选择。
第二点,就是在我们的客户服务端。我们前面讲了,我们服务一家客户容易,但当你希望把针对于那些大型客户所提供的高品质的服务,去普惠地适应到我们的中小企业百万级、千万级这样一个群体的时候,我们必须要想到一个更高效低成本的方式。所以我们在服务客户的时候,经常会碰到当客户需要我们开发票,或者说客户有一些相对复杂的选型、包括一些工业品技术上选型的需求,那AI能力就可以帮助我们快速地完成客户的需求,并且提供完整的交付,特别是在一些专业性高的场景,专业性越高,我们提效的效能越强。
第三点,我们客户的采购和采购的管理体验。特别是对于中小企业来说,整个采购的过程追求的是高效率,我们可以让采购管理、整个采购的绩效更加可视化,在这个上面AI也给我们提供了非常大的帮助。我们深刻地知道,对于AI的能力,不仅仅在于回答客户的每一个问题,而是完成客户期望的完整交付。这是基于我们京东自身海量的标准和产品数据库,以及高确定性的自营交付能力、海量的客户互动和行为数据,共同支撑我们完成对于客户高标准的服务体验。
为了解决客户在采购的过程当中所面临的零散采购价格高、重货配送运费贵、资金紧张周转难、供应质量波动大等问题,京东的第二个举措,就是在今年8月份的时候,我们推出了企业采购行业首个付费会员——京东PLUS企业会员。我们是希望为SMB客户提供省钱省心的采购体验,把我们面向个人消费者或者是大客户的一些好权益,把它产品化、标准化,提供给我们的中小企业客户。我们通过经典卡的主打折上折、立减等省钱的权益,满足客户的经营,同时设置专享卡,通过主副卡的设置,来满足客户多元采购的诉求。
PLUS企业会员上线后这段时间,已经受到很多企业的关注,并且在制造业、信息技术等行业实现了快速的渗透。未来,我们也期待PLUS企业会员走向生态的共建,联动更多的优质品牌,丰富我们会员的生态,为客户构建一站式采购能力,为品牌提供更多连接客户的能力,共同开辟新的增长路径。
我们也看了客户在开通PLUS企业会员前后的对比,从它的表现状况来看,采购的频次实现了3.5倍的增长。PLUS企业会员所处的行业,与我们现在所看到的“十五五”规划里“8467”政策提到的这些行业深度契合——重点客户群体的行业,包括传统行业里面的建筑业、船舶、机械、化工等行业,新兴行业中的低空经济、新能源、具身智能、机器人、生物制药、量子科技等。我们现在客户重点采购的场景,包括办公、福利、工业品MRO等等。同样是企业会员,具有高活跃、高消费的特点,既是最具发展前景的企业群体,又是京东政企SMB最具核心的用户资产。
我们也希望与各界,包括我们的合作伙伴一起快速走向服务1000万企业客户、100万京东PLUS企业会员新的里程碑。谢谢大家!
一文搞懂 Webpack 分包:async、initial 与 all 的区别【附源码】
大家好,我是前端架构师,关注微信公众号【程序员大卫】免费领取精品资料。
1. 背景
最近在优化一个项目的加载性能时,对 optimization.splitChunks.chunks 的三个可选值 async、initial 和 all 的具体效果产生了疑惑。为了彻底搞清楚它们的区别,我专门搭建了一个 Demo 进行对比研究。
2. 核心区别:async vs initial
chunks 属性决定了 Webpack 对哪些类型的代码块进行分割。其中 async 是默认配置。
经过测试发现:在单入口应用中,二者区别不明显;但在多入口应用中,差异非常显著。
2.1 测试环境配置 (webpack.config.js)
为了直观观察分包结果,我将 minSize 设置为 0,确保即使是很小的模块也会被强制分割。
const { CleanWebpackPlugin } = require("clean-webpack-plugin");
module.exports = {
mode: "production",
entry: {
entry1: "./src/entry1.js",
entry2: "./src/entry2.js",
},
optimization: {
splitChunks: {
chunks: "async", // 实验变量:此处分别修改为 'async', 'initial', 'all'
minSize: 0 // 强制分割小模块
},
},
plugins: [
new CleanWebpackPlugin() // 每次构建前清理 dist 目录
],
};
2.2 代码结构
假设我们有两个入口文件,它们都引用了同步模块 shared.js,且 entry1 额外引用了一个异步模块 dynamic.js。
-
entry1.js: 引用
shared+ 动态引用dynamic -
entry2.js: 引用
shared
// entry1.js
import "./shared"; // 同步公共模块
import("./dynamic"); // 异步动态导入
console.log("entry1");
// entry2.js
import "./shared"; // 同步公共模块
console.log("entry2");
2.3 打包结果对比
在上述场景下,切换配置会产生完全不同的结果:
-
设置
chunks: 'async'(默认)-
结果:
dynamic.js被单独打包,但shared.js没有被分离。 -
原因:
async只关注异步加载(动态导入)的模块。尽管shared.js被多个入口引用,但因为它是同步导入的,所以被忽略,直接打入了各自的入口包中。
-
结果:
-
设置
chunks: 'initial'-
结果:
dynamic.js被单独打包,同时shared.js也可以被剥离出来成为独立文件。 -
原因:
initial关注初始加载(同步导入)的模块。Webpack 发现shared.js在初始化时就被多个入口共享,因此将其分离。
-
结果:
3. 关于 all
当设置为 all 时,Webpack 会采用一种混合策略:无论同步还是异步,只要满足分割条件(如大小、引用次数),都会进行代码分割。
这是目前最推荐的配置,因为它能最大限度地复用代码,减小包体积。
4. 总结
三种模式的核心差异对比:
| 模式 | 作用范围 | 适用场景 | 特点 |
|---|---|---|---|
| async (默认) | 仅异步模块 | 针对 import() 动态导入的模块 |
确保首屏加载的 bundle 纯净,不影响初始包大小 |
| initial | 仅同步模块 | 针对入口文件直接 import 的公共模块 |
优化多页应用的公共代码提取,减少重复打包 |
| all | 所有模块 | 希望最大化代码分割效果 | 最全面的策略,通常能获得最佳的缓存利用率 |
源码地址: github.com/zm8/wechat-…