普通视图

发现新文章,点击刷新页面。
今天 — 2026年3月24日首页

React-彻底搞懂 Redux:从单向数据流到 useReducer 的终极抉择

2026年3月23日 21:42

前言

在 React 生态中,状态管理一直是开发者绕不开的话题。Redux 以其严谨的“单向数据流”闻名,虽然有一定的学习成本,但它为大型项目带来的可预测性和可调试性是无可替代的。本文将带你深度复盘 Redux 的核心逻辑。

一、 Redux 的核心

Redux 的核心思想是将应用的所有状态(State)集中存储在一个唯一的 Store 中,并遵循严格的规则进行更新,让状态变化可追踪、可调试,大幅降低复杂应用的状态维护成本。

1. 三大核心概念

Redux 的运行逻辑完全围绕三大核心模块展开,各司其职、互不干扰,构建了清晰的单向数据流:

1. Store(数据仓库)

  • 定位:应用状态的唯一存储容器,整个应用有且仅有一个 Store
  • 作用:承载全局状态、派发 Action、监听状态变化、整合 Reducer,是连接视图和数据的核心枢纽
  • 特性:独立于组件生命周期,不会随组件销毁而消失,状态持久稳定

2. Action(动作描述)

  • 定位改变 State 的唯一途径,是一个普通的 JavaScript 对象
  • 结构:必须包含 type 属性(字符串类型,描述动作类型),可选携带 payload 属性(传递更新状态所需的数据)
  • 示例{ type: 'UPDATE_USER_NAME', payload: '李四' }
  • 本质:只描述“要做什么”,不负责“怎么做”,属于指令载体

3. Reducer(状态处理器)

  • 定位纯函数(固定输入必然得到固定输出,无副作用、不修改入参)
  • 参数:接收两个参数——当前旧 State(prevState)、派发的 Action 对象
  • 逻辑:根据 Action 的 type 类型,匹配对应的更新逻辑,绝不直接修改旧 State
  • 规则:Redux 强制要求 State 不可变(Immutable),必须返回全新的 State 对象,保证状态变化可回溯、可调试

二、 Redux 的工作流程:闭环的单向流

Redux 的数据流转遵循严格的循环路径,确保了状态变化的可追踪性:

  1. 用户触发操作:用户在页面执行交互行为(点击按钮、输入内容、路由跳转等),组件内触发状态更新需求

  2. 派发 Action:通过 Redux 提供的 dispatch 方法,将封装好的 Action 对象派发出去

  3. Reducer 处理:Store 自动将当前旧 State 和派发的 Action 传递给 Reducer,Reducer 根据 type 执行对应逻辑,返回新 State

  4. Store 更新状态:Store 接收 Reducer 返回的新 State,替换内部旧状态

  5. 组件同步数据:所有订阅了 Store 状态的组件,会自动感知状态变化,重新渲染视图,完成数据同步

注意:禁止直接修改 Store 中的 State,必须通过 dispatch 派发 Action → Reducer 生成新 State 的方式更新,这是 Redux 可预测性的核心保障。


三、 Redux vs useReducer:我该选哪个?

很多开发者会混淆这两者,虽然它们都使用了 action/reducer 模式,但在应用范围上有本质区别。

维度 useReducer Redux
存储位置 组件内部(Local State) 独立的全局 Store(Global State)
作用域 仅限当前组件及其子组件 整个应用,任意组件均可访问
生命周期 随组件销毁而消失 独立于组件,持久存在
跨组件通信 需配合 useContext 并提升组件层级 天然支持,无需透传 Props

场景选择:

  • 使用 useReducer:逻辑复杂(有很多 if/else 或 switch),但只在单个组件或其嵌套子组件中使用。
  • 使用 Redux:数据需要全局共享。例如:用户信息需要同步更新导航栏、侧边栏和个人中心;或者需要将状态持久化到 localStorage 并在刷新后恢复。

四、 总结

Redux 的本质是牺牲了一定的代码简便性,换取了极致的状态可预测性。在处理跨页面同步、复杂业务逻辑以及需要状态回溯的场景下,Redux 依然是前端状态管理的王者。

别再瞎写了!Cesium 模型 360° 环绕,4 套源码全公开,项目直接用

作者 李剑一
2026年3月23日 21:12

之前在地图上展示的园区模型增加了选中效果,但是对于展示性质的大屏而言,内容一直是静态展示的效果肯定不好。

image.png

所以模型自动环绕展示是绝对的核心亮点功能!无论是展厅大屏演示、项目汇报、还是产品展示,流畅的360°环绕浏览都能让你的三维场景瞬间提升质感。

简单整理了4种开箱即用的环绕方案,从极简入门到专业级平滑动画全覆盖,适配不同项目需求,复制代码直接运行!

flyToLocation + 定时器(极简)

利用之前封装 cesium-viewer 组件做的 flyToLocation 方法实现此功能。

之前封装的 flyToLocation 方法其实就是 cesium.camera.flyTo 方法。

这个方案代码最简单,无需复杂数学计算。支持分段式环绕,适合快速实现需求

可控制停留时间、飞行速度、环绕点数。

image.png

完整代码

// 环绕展示工厂模型
const displayFactoryModel = () => {
    if (!cesiumViewRef.value) return;
    
    const centerLon = 117.104273; // 模型中心点经度
    const centerLat = 36.437867; // 模型中心点纬度
    const radius = 150; // 环绕半径(米)
    const height = 80; // 相机高度
    const duration = 2; // 每个角度飞行时间(秒)
    
    let currentAngle = 0;
    const totalAngles = 8; // 环绕8个点
    const angleStep = 360 / totalAngles;
    
    const flyToNextPoint = () => {
        // 计算当前角度的位置
        const rad = currentAngle * Math.PI / 180;
        const offsetX = radius * Math.cos(rad);
        const offsetY = radius * Math.sin(rad);
        
        // 计算新的经纬度(简化计算,适用于小范围)
        const newLon = centerLon + (offsetX / 111320 / Math.cos(centerLat * Math.PI / 180));
        const newLat = centerLat + (offsetY / 111320);
        
        // 计算相机朝向(朝向中心点)
        const heading = (currentAngle + 180) % 360;
        
        cesiumViewRef.value.flyToLocation({
            longitude: newLon,
            latitude: newLat,
            height: height,
            duration: duration,
            heading: heading,
            pitch: -30, // 稍微俯视的角度
            onComplete: () => {
                currentAngle = (currentAngle + angleStep) % 360;
                setTimeout(flyToNextPoint, 500); // 短暂停留后继续
            }
        });
    };
    
    flyToNextPoint();
};

lookAt + 帧动画(推荐)

这个方案相较于上面的方案比较好的一点就是真正的360°无缝平滑环绕

这种方案无卡顿、无跳跃,动画效果最自然,并且支持无限循环环绕。生产环境推荐首选方案

完整代码

// 环绕展示工厂模型
const displayFactoryModel = () => {
    if (!cesiumViewer.value) return;
    
    const center = Cesium.Cartesian3.fromDegrees(117.104273, 36.437867, 0);
    const radius = 150; // 环绕半径
    const height = 80; // 相机高度
    const duration = 20; // 完整环绕一周的时间(秒)
    
    let startTime = null;
    let animationId = null;
    
    const animateOrbit = (timestamp) => {
        if (!startTime) startTime = timestamp;
        const elapsed = (timestamp - startTime) / 1000;
        
        // 计算当前角度(0到2π)
        const angle = (elapsed / duration) * 2 * Math.PI;
        
        // 计算相机位置(圆形轨道)
        const cameraX = center.x + radius * Math.cos(angle);
        const cameraY = center.y + radius * Math.sin(angle);
        const cameraZ = center.z + height;
        const cameraPosition = new Cesium.Cartesian3(cameraX, cameraY, cameraZ);
        
        // 设置相机位置和朝向(看向中心点)
        cesiumViewer.value.camera.lookAt(
            cameraPosition,
            center, // 看向中心点
            new Cesium.Cartesian3(0, 0, 1)  // up方向
        );
        
        // 继续动画
        animationId = requestAnimationFrame(animateOrbit);
    };
    
    // 开始动画
    animationId = requestAnimationFrame(animateOrbit);
    
    // 返回停止函数(可选)
    return () => {
        if (animationId) {
            cancelAnimationFrame(animationId);
        }
    };
};

flyTo + 曲线路径

基于样条曲线生成平滑路径。支持自定义轨迹点、飞行总时长。

这个方案可以实现复杂环绕、俯冲、拉升等动作,但是如果不是动态模型运动没太大必要用这个。

完整代码

// 环绕展示工厂模型
const displayFactoryModel = () => {
    if (!cesiumViewer.value) return;
    
    const center = Cesium.Cartesian3.fromDegrees(117.104273, 36.437867, 0);
    const radius = 150;
    const height = 80;
    const points = 12; // 路径点数
    const duration = 30; // 总飞行时间
    
    // 创建路径点
    const positions = [];
    for (let i = 0; i <= points; i++) {
        const angle = (i / points) * 2 * Math.PI;
        const x = center.x + radius * Math.cos(angle);
        const y = center.y + radius * Math.sin(angle);
        const z = center.z + height;
        positions.push(new Cesium.Cartesian3(x, y, z));
    }
    
    // 相机沿路径飞行
    cesiumViewer.value.camera.flyTo({
        destination: positions,
        orientation: {
            heading: Cesium.Math.toRadians(0),
            pitch: Cesium.Math.toRadians(-30),
            roll: 0.0
        },
        duration: duration,
        complete: () => {
            console.log('✅ 环绕展示完成');
        }
    });
};

camera.rotate 旋转(极简)

这种方案代码量最少,一行核心逻辑。直接使用原地旋转视角,不改变相机位置。

但是展示效果一般,只能原地自转,不能环绕。

完整代码

// 环绕展示工厂模型
const displayFactoryModel = () => {
    if (!cesiumViewer.value) return;
    
    // 先飞到模型上方
    cesiumViewRef.value.flyToLocation({
        longitude: 117.104273,
        latitude: 36.437867,
        height: 80,
        duration: 3,
        heading: 0,
        pitch: -30,
        onComplete: () => {
            // 开始旋转
            let angle = 0;
            const rotateInterval = setInterval(() => {
                angle = (angle + 1) % 360;
                cesiumViewer.value.camera.setView({
                    orientation: {
                        heading: Cesium.Math.toRadians(angle),
                        pitch: Cesium.Math.toRadians(-30),
                        roll: 0.0
                    }
                });
            }, 50); // 每50ms旋转1度
            
            // 10秒后停止
            setTimeout(() => {
                clearInterval(rotateInterval);
                console.log('✅ 旋转结束');
            }, 10000);
        }
    });
};

总结

模型环绕展示是Cesium展示模型非常好的一种方案,尤其是做会议室大屏使用。

展示修效果还是相当不错的,如果没有特殊要求,可以考虑使用 lookAt+帧动画,这是综合体验最优的方案。

强烈建议大家使用此方案,流畅不卡顿,用户体验直接拉满!

React-路由监听 / 跳转 / 守卫全攻略(附实战代码)

2026年3月23日 20:44

前言

React Router 是 React 单页应用的核心路由库,除了基础的路由配置,日常开发中还会高频用到路由监听、编程式跳转、路由守卫等进阶功能。本文从实战角度拆解这三大核心能力,涵盖实现方式、场景对比、避坑要点,基于 React Router v6+ 版本(主流稳定版)讲解,新手也能快速落地!

一、 路由监听:如何捕捉 URL 的变化?

在 React 中,React 监听路由变化的本质是监听 URL 相关属性(pathname/search/params 等)的变化,触发自定义回调函数。以下是 3 种常用实现方式:

1. 核心方案:useLocation + useEffect

这是最通用的监听方式。通过 useLocation 获取当前路由完整信息(pathname/search/state 等),结合 useEffect 监听 location 对象变化,触发回调函数。

import { useLocation } from 'react-router-dom';
import { useEffect } from 'react';

const App = () => {
  const location = useLocation();

  useEffect(() => {
    // 每次路由切换时执行
    console.log('当前路径:', location.pathname);
    console.log('搜索参数:', location.search);
  }, [location]); 
};

2. 精准监听:useParamsuseSearchParams

如果你只关心某个特定的动态参数(如 id),直接监听参数对象会更高效。

  • useParams:监听动态路由参数(如 /user/:id 中的 id);

  • useSearchParams:监听 URL 搜索参数(如 ?page=1&size=10);

  • 适用场景:

    • 仅关注动态路由参数或搜索参数变化的场景(如详情页 ID 切换、列表页分页参数变化)。

3.监听原生路由事件(不推荐)

  • 通过 window.addEventListener 监听 popstate(History 模式)或 hashchange(Hash 模式)事件,直接捕获 URL 变化。

  • 缺点:React Router 已封装原生事件,手动监听易出现重复触发、状态不一致问题,仅建议特殊场景(如兼容老代码)使用。


二、 路由跳转

React Router 提供多种跳转方式,适配「点击跳转」「编程式跳转」「导航栏高亮」等不同场景:

1. 声明式导航:<Link><NavLink>(最常用)

  • <Link> :基础跳转,React Router 核心跳转组件,替代原生 <a> 标签(避免页面刷新),核心属性如下:

    • to:必传,目标路径(支持字符串 / 对象格式);

    • replace:默认 false(新增历史记录),true 则替换当前记录(跳转后无法回退);

    • state:传递自定义状态(不显示在 URL 中,通过 useLocation().state 获取)。

  • <NavLink> :专为导航栏设计,新增激活状态相关配置,适合导航栏场景:

    • isActive:可根据激活状态动态设置样式类名。

    • end:精准匹配模式,防止 / 匹配到所有子路由(如 /home 不匹配 /home/detail)。

2. 编程式导航:useNavigate

适用于点击按钮后的逻辑处理或异步请求后的跳转,通过 useNavigate Hook 获取导航函数,实现非点击触发的跳转(如接口请求后、条件判断后)。

const navigate = useNavigate();

// 基础跳转,带状态
navigate('/profile', { replace: true, state: { from: 'home' } });

// 历史记录操作
navigate(-1); // 后退一步

三、 路由守卫:在 React 中如何“拦截”?

Vue 有原生的 beforeEach/afterEach 路由守卫,但 React Router 无专属 API,核心通过监听路由 + 条件判断实现,分为 3 类场景:

1. 全局路由守卫

实现逻辑

在路由根组件(如 App.jsx)中监听 location 变化,执行全局校验(如登录状态、白名单),拦截非法跳转。

实战代码

import { useLocation, useNavigate, useEffect } from 'react-router-dom';
import { isLogin } from '@/utils/auth'; // 自定义登录校验函数

// 全局路由守卫组件
const GlobalRouterGuard = () => {
  const location = useLocation();
  const navigate = useNavigate();
  // 无需登录的白名单路由
  const whiteList = ['/login', '/register'];

  useEffect(() => {
    // 未登录且不在白名单 → 跳转到登录页
    if (!isLogin() && !whiteList.includes(location.pathname)) {
      navigate('/login', { 
        replace: true,
        state: { from: location.pathname } // 记录来源路径,登录后跳转回去
      });
    }
  }, [location.pathname, navigate]);

  return null; // 守卫组件无需渲染 DOM
};

// 在根路由中引入
// <BrowserRouter>
//   <GlobalRouterGuard />
//   <Routes>...</Routes>
// </BrowserRouter>

2. 组件内路由守卫

实现逻辑

在组件内通过 useEffect 实现进入守卫(组件挂载时校验),通过 useEffect 的返回函数实现离开守卫(组件卸载时执行)。

实战代码

import { useEffect } from 'react';
import { useNavigate } from 'react-router-dom';
import { hasPermission } from '@/utils/permission'; // 自定义权限校验

const UserDetail = () => {
  const navigate = useNavigate();

  // 进入守卫:组件挂载时校验权限
  useEffect(() => {
    if (!hasPermission('user:view')) {
      navigate('/403', { replace: true });
    }
  }, [navigate]);

  // 离开守卫:组件卸载时执行(如保存表单、提示未提交内容)
  useEffect(() => {
    return () => {
      console.log('离开用户详情页,执行清理逻辑');
      // 业务逻辑:保存草稿、关闭WebSocket等
    };
  }, []);

  return <div>用户详情页</div>;
};

3. 路由独享守卫

  • 概念: 不影响全局其他路由,只针对这一个页面(或这一组页面)进行特殊的准入检查。 例如整个应用都可以访问,但只有/admin页面需要检查管理员权限

  • 实现”先创建一个守卫组件AdminGuard,这个组件专门负责检查当前用户是不是管理员,然后将需要单独检查的Admin路由套在这个守卫组件AdminGuard里面

实战代码:

// 守卫组件:AdminGuard.jsx
import { useNavigate } from 'react-router-dom';
import { isAdmin } from '@/utils/auth';

const AdminGuard = ({ children }) => {
  const navigate = useNavigate();
  
  // 管理员权限校验
  if (!isAdmin()) {
    navigate('/403', { replace: true });
    return null;
  }

  // 权限通过,渲染子组件
  return children;
};

// 路由配置中使用
import { Routes, Route } from 'react-router-dom';
import SettingsPage from '@/pages/Settings';

const RouterConfig = () => {
  return (
    <Routes>
      {/* 独享守卫:仅 /settings 路由触发管理员校验 */}
      <Route 
        path="/settings" 
        element={
          <AdminGuard>
            <SettingsPage />
          </AdminGuard>
        } 
      />
    </Routes>
  );
};

4.扩展:离开时的路由拦截(useBlocker)

useBlocker 是 React Router v6 新增 Hook,用于拦截所有路由跳转行为(包括 <Link>navigate、浏览器前进 / 后退)。

import { useBlocker } from 'react-router-dom';

// blockerFn:返回 true 拦截跳转,false 放行
// when:是否启用拦截(可选,默认 true)
useBlocker((tx) => {
  console.log('即将跳转到:', tx.location.pathname);
  return true; // 拦截跳转
}, when);

实战场景:表单未提交拦截

import { useBlocker } from 'react-router-dom';

const FormPage = () => {
  const [formDirty, setFormDirty] = useState(false); // 表单是否修改

  // 表单未提交时拦截跳转
  useBlocker((tx) => {
    if (formDirty) {
      const confirm = window.confirm('表单内容未保存,是否确认离开?');
      return !confirm; // 点击取消 → 拦截(返回 true)
    }
    return false; // 放行
  }, formDirty); // 仅表单修改时启用拦截

  return (
    <form onChange={() => setFormDirty(true)}>
      <input type="text" placeholder="输入内容..." />
    </form>
  );
};

四、 总结与最佳实践

  1. 优先使用原生 Link:对于简单的跳转,<Link> 的性能和 SEO 优于 useNavigate
  2. 善用 State 传参:如果不想 URL 变得太长,利用 location.state 传递对象是最佳选择。
  3. 守卫逻辑模块化:不要在 App.js 里写一堆 if-else,将权限校验封装成独立的 Guard 组件。
昨天 — 2026年3月23日首页

apt vs apt-get: What Is the Difference?

Both apt and apt-get manage packages on Debian-based systems. They talk to the same package database, resolve the same dependencies, and pull from the same repositories. Yet they exist as separate tools, and choosing the wrong one in the wrong context can cause minor headaches.

This guide explains how apt and apt-get differ, when to use each one, and how their commands map to each other.

Why Two Tools Exist

apt-get has been the standard Debian package manager since 1998. It is reliable and well-documented, but its interface was designed for an era when terminal usability was an afterthought. Related tasks like searching and showing package details live in a separate tool called apt-cache, so users constantly switch between the two.

The apt command was introduced in Debian 8 and Ubuntu 14.04 (APT version 1.0, released in 2014) as a user-friendly front end. It combines the most common apt-get and apt-cache operations into a single command, adds a progress bar, and uses colored output by default.

Both tools are part of the same apt package and share the same underlying libraries. Installing one always installs the other.

User-Facing Differences

When you run apt install in a terminal, you will notice a few things that apt-get does not do:

  • A progress bar at the bottom of the screen shows overall download and install progress.
  • Newly installed packages are highlighted in the output.
  • The number of upgradable packages is shown after apt update finishes.
  • Output is formatted with color when connected to a terminal.

These features make apt more pleasant for interactive use. They also make its output less predictable for scripts, since the formatting can change between APT versions without warning. The apt man page states this explicitly: the command line interface of apt “may change between versions” and “should not be used in scripts.”

apt-get, on the other hand, guarantees a stable output format. Its behavior and exit codes are consistent across versions, which is why automation tools like Ansible, Docker, and CI pipelines use apt-get rather than apt.

Command Comparison

The table below maps the most common apt commands to their apt-get or apt-cache equivalents:

Task apt apt-get / apt-cache
Update package index apt update apt-get update
Upgrade all packages apt upgrade apt-get upgrade
Full upgrade (may remove packages) apt full-upgrade apt-get dist-upgrade
Install a package apt install pkg apt-get install pkg
Remove a package apt remove pkg apt-get remove pkg
Remove with config files apt purge pkg apt-get purge pkg
Remove unused dependencies apt autoremove apt-get autoremove
Search for a package apt search keyword apt-cache search keyword
Show package details apt show pkg apt-cache show pkg
List installed packages apt list --installed dpkg --list
List upgradable packages apt list --upgradable (no direct equivalent)
Edit sources list apt edit-sources (manual file editing)

As you can see, apt merges apt-get and apt-cache into one tool and adds a few convenience commands like apt list and apt edit-sources that have no direct apt-get equivalent.

When to Use apt

Use apt for everyday interactive work in the terminal. If you are installing a package, checking for updates, or searching the repository by hand, apt is the better choice. The progress bar and cleaner output make it easier to follow what is happening.

For example, to update your package index and upgrade all packages:

Terminal
sudo apt update && sudo apt upgrade

To search for a package and then install it:

Terminal
apt search nginx
Terminal
sudo apt install nginx

When to Use apt-get

Use apt-get in shell scripts, Dockerfiles, CI pipelines, and any automated workflow. The stable output format means your scripts will not break when the system upgrades to a newer APT version.

A typical Dockerfile uses apt-get with the -y flag to skip confirmation prompts:

dockerfile
RUN apt-get update && apt-get install -y \
 curl \
 git \
 && rm -rf /var/lib/apt/lists/*

The same applies to Bash scripts and configuration management tools. If the command runs without a human watching the output, use apt-get.

Advanced Operations

The commands below work with both apt and apt-get, but they are better documented and more established under apt-get. In scripts and Dockerfiles, prefer the apt-get form for consistency and stability.

  • apt-get install --no-install-recommends pkg — Install a package without pulling in recommended (but not required) dependencies. This is widely used in Docker images to keep the image size small.
  • apt-get install --allow-downgrades pkg — Allow installing an older version of a package.
  • apt-get build-dep pkg — Install all build dependencies needed to compile a package from source.
  • apt-get source pkg — Download the source package.
  • apt-get download pkg — Download the .deb file without installing it.
  • apt-get changelog pkg — Display the package changelog.
  • apt-get clean / apt-get autoclean — Clear the local package cache.

FAQ

Is apt-get deprecated? No. apt-get is actively maintained and receives updates alongside apt. The APT developers have stated that apt-get will not be removed. It remains the recommended tool for scripts and automation.

Can I replace all apt-get commands with apt? For interactive terminal use, yes. For scripts, no. The apt output format is not guaranteed to remain stable, and its interface may change between versions. Stick with apt-get in any automated workflow.

Is there a performance difference between apt and apt-get? No. Both tools use the same libraries and resolve dependencies the same way. The only difference is the user interface. Install and download speeds are identical.

What about apt-cache? Is it still needed? For interactive use, apt search and apt show replace the most common apt-cache operations. For scripts or when you need advanced query options like apt-cache policy or apt-cache depends, you should still use apt-cache directly.

Conclusion

Use apt when you are typing commands at a terminal, and apt-get when you are writing scripts or Dockerfiles. For a complete reference of apt subcommands, see the apt Command in Linux guide and the APT cheatsheet .

迈向银河文明的又一步?马斯克要自己造芯片了

作者 芥末
2026年3月23日 21:10

去年年底,马斯克在与投资者 Nikhil Kamath 的一场访谈中提到,自己商业帝国的下一个宏大目标是将人工智能带入深空。

马斯克将这一构想命名为「银河之心(Galaxy Mind)」,一个旨在利用太阳能为地球轨道以外的AI运算提供动力的平台。

他认为,未来的关键在于太阳能驱动的 AI 卫星,而要大规模利用太阳的能量,就必须进入深空。

如果你要利用太阳能量中不可忽视的一部分,必须转向深空中的太阳能 AI 卫星。

▲ 戴森球计划的构想与之类似

而这也是特斯拉、SpaceX和xAI专业技术的「汇合点」。

其中,SpaceX 提供成熟的火箭发射与航天器制造能力,负责将AI卫星部署到深空轨道;特斯拉凭借其在太阳能和电池技术领域的积累,为卫星提供高效、持久的能源解决方案;xAI 负责开发能在卫星上大规模运行的前沿人工智能模型。

而在上周,马斯克又为这一构想打了一块补丁。

他宣布,特斯拉将与 SpaceX 联合建设一座名为「Terafab」的半导体工厂,选址位于特斯拉奥斯汀总部附近,由两座彼此独立的晶圆厂组成。

按照马斯克的说法,Terafab 将分为两条独立产线,分别对应两类用途不同的芯片。

其中一类芯片面向地面应用,主要服务于 Cybercab 自动驾驶出租车和 Optimus 人形机器人。

特斯拉预计未来要生产 10 亿台 Optimus 机器人,这部分产能是特斯拉尝试为机器人和自动驾驶业务提前锁定更长期的芯片供给能力而建设的。
另一类芯片则面向太空应用。
因为太空场景所需的高性能芯片必须针对更严苛的环境重新设计,尤其需要考虑更高温度下的稳定运行能力,所以需要针对太空条件开发的独立产品。

通常情况下,一座先进制程晶圆厂的投资规模约为 250 亿至 400 亿美元,建设周期约 3 至 5 年,还要面对设备交付周期长、专业技术人才短缺等现实约束。

也正因为如此,马斯克这次公布的并不只是一次常规扩产计划,而是一项制造难度和资本强度都极高的工业项目。

按照计划,这座工厂将采用高度集成的「全流程一体化」设计,在单一建筑群内覆盖逻辑电路制造、存储器生产、先进封装、测试以及光刻掩膜制作等核心环节,原本分散在不同厂区、不同供应链节点完成的步骤,将被尽可能压缩进同一个制造体系。

▲ 左边是特斯拉超级工厂的大小,右边是规划中 Terafab 工厂的大小

这种布局在全球范围内几乎没有直接先例。

芯片设计完成后,就能在同一地点直接进入晶圆制造、功能测试、掩膜修订和工艺优化,研发和生产之间的反馈回路会被显著缩短,很多原本依赖跨厂协同的迭代流程,也可以在单点体系内完成。

这对于强调快速试错和高频迭代的马斯克来说,显然比单纯增加产能更重要。

马斯克估计,当前全球人工智能计算的年增量约为 20 吉瓦,而这只占其企业未来需求的约 2 %。而 Terafab 建成后,计划实现年产万亿瓦的芯片算力,相当于两个美国的电力供应总和。

此前,外界已经知道特斯拉在研究自建晶圆厂的可能性,但 SpaceX 的加入稍显意外。

这使得 Terafab 不再只是特斯拉的供应链延伸项目,而更像是马斯克旗下多家公司共同参与的一项基础设施布局。

除了 Terafab 本身,马斯克还带来了一颗名为「AI Sat Mini」的卫星渲染图。

这颗卫星属于 SpaceX 的轨道数据中心计划。按照马斯克的说法,每颗 AI Sat Mini 可以通过太阳能提供 100 千瓦电力。

但如果要让这套轨道系统具备与 xAI 现有地面数据中心相当的算力规模,SpaceX 需要发射数千颗卫星。

这也印证了 Terafab 第二座晶圆厂的定位。它所生产的太空芯片,是为轨道算力体系提供基础支撑的核心部件。

马斯克近两年一直试图将几家公司重新组织为一条更完整产业链,特斯拉负责地面终端,SpaceX 推进轨道基础设施,xAI 持续扩大对算力资源的需求。

几家公司在业务形态上看似分散,但对芯片、电力和算力的需求正在迅速合流。TeraFab 的出现,某种程度上就是这种合流的结果。

从采购端看,马斯克的决定并不难理解。目前,马斯克旗下的核心业务仍然严重依赖外部供应链。特斯拉使用的是三星代工的 AI 4 芯片,xAI 则是英伟达的重要客户。

自建晶圆厂本身并不是新鲜事,但真正困难的部分始终在于执行。

英特尔在 2021 年 3 月启动了一个叫做「IDM 2.0」的战略,时任 CEO 帕特・基辛格提出,要把英特尔重新塑造成一家同时具备芯片设计和代工能力的综合制造商。

按照当时的规划,公司将在亚利桑那州投资 200 亿美元建设两座晶圆厂,在俄亥俄州追加 200 亿美元,并同步推进德国和波兰的扩张项目。

但随后几年,由于财务压力和订单不足,项目推进并不顺利。俄亥俄州工厂建设放缓,德国和波兰的扩张计划被取消。

▲ 英特尔的晶圆工厂

与此同时,英特尔营收从 2021 年的 790 亿美元下滑至 2024 年的 531 亿美元,毛利率则从 2019 年的 62 % 降至 32.7 %。

代工部门在 2025 年第二季度录得 31.7 亿美元运营亏损。公司随后裁减约 15 % 员工,暂停股息,并削减资本支出。帕特・基辛格于 2024 年底离职,2025 年 3 月,Lip-Bu Tan 接任 CEO。

不过,英特尔与 Terafab 并不处于同一条路径上。两者在商业模式、资金结构和项目目标上都有明显差异。

英特尔希望建立的是一个面向外部客户的开放代工体系,Terafab 目前展现出来的方向,则更像是一座服务于马斯克内部业务体系的专用制造平台,优先解决特斯拉、SpaceX 和 xAI 的核心芯片需求。

但即便Terafab 不必像英特尔那样直接面对外部客户订单的竞争压力,它依然要回答另一个问题:马斯克旗下这些业务,是否真的能够在未来几年消化如此大规模的专用产能。

这才是决定 Terafab 最终是成为战略壁垒,还是成为沉重负担的关键。

而目前,特斯拉的电动车业务已经连续两年出现销量下滑,被马斯克认为是公司未来的重要增长方向的 Cybercab、Optimus 机器人和轨道数据中心的进展也远不如宣称的那样理想。

即使是进展最佳的 Cybercab 车队,与 Waymo 等公司相比,特斯拉现阶段的规模也较小,且仅在有限的几个美国城市运营,其技术方案也远远未到可以规模化运营的程度。

目前,TeraFab 还停留在一个非常早期的阶段。项目名称、选址、产品方向、投资规模和部分产能目标已经披露,但特斯拉与 SpaceX 各自承担什么角色,资金如何分配,技术路线如何确定,工厂何时开工,何时量产等关键信息仍未确定。

因此,现在还很难判断,Terafab 最终会成为美国算力供应体系中的一个关键节点,还是又一个建立在超前预期之上的高风险项目。

#欢迎关注爱范儿官方微信公众号:爱范儿(微信号:ifanr),更多精彩内容第一时间为您奉上。

OpenClaw 让每个聊天软件都有机会变成微信

作者 Selina
2026年3月23日 20:59

当 AI agent 需要一个「家」的时候,它们没有住进独立的 App,而是搬进了聊天软件。

2 月春节期间,机器人满天飞的时候,Manus 发布了 personal agent,首发平台选了 Telegram,而非自家的 WhatsApp。

与此同时,Salesforce 在 1 月宣布新版 Slackbot 正式上线,定位为「你的个人工作 agent」;飞书开放平台上线了 AI Agent 工作流节点和 MCP 工具支持;Discord 社区里,AI bot 的数量和复杂度也在急速攀升。

这当然要拜 OpenClaw 所赐,作为从一个周末项目涨到 10 万 GitHub star、增长最快的 AI 开源项目之一,它的默认交互界面不是网页,不是独立客户端——是 Telegram。

一个清晰的趋势正在形成:即时通讯工具正在从「人与人的对话」变成「人与 AI 的接口」,聊天软件意外地迎来了它们的「第二春」。

但「第二春」并非平等地降临在每一寸土地上。不同 IM 平台的开放程度、技术架构和治理逻辑差异巨大,它们在 agent 浪潮中的位置也截然不同。理解这些差异,需要一条分析线索——开放性的天平。

为什么是聊天软件?

为什么是即时通讯软件?打开自己生活里最常用的对话框,就可以使唤 AI——这非常符合人类对「科技生活」的畅想。不过,真正的答案,跟 agent 的架构有关。

AI agent 的工作原理并不复杂:监听用户指令,交给 AI 处理,再把结果返回。这个「消息进—处理—消息出」的循环,天然适配即时通讯的基础设施——长连接、实时推送、富文本消息。聊天软件在过去十几年里为人类对话打造的管道,几乎不需要改造就能供 agent 使用。

更重要的是 human-in-the-loop 的需求。当前的 AI agent 远不到完全自主的程度,它在执行关键操作之前——比如发一封邮件、修改一段代码——往往需要人类点头确认。聊天窗口里的一个回复,比打开一个新的管理后台、登录一个新的 dashboard 要自然得多。IM 天然就是一个「确认/驳回」的界面。

还有一个更决定性的因素:用户已经住在聊天软件里了。 不需要下载新 App,不需要学习新界面,agent 就在你每天打开的对话列表里,夹在同事群和家庭群之间。这种零迁移成本,是任何独立 AI 产品都很难复制的优势。对于开发者来说,这意味着获客成本趋近于零——你不需要说服用户安装任何东西,只需要让他们点一下「添加 bot」。

谁先吃到红利?

但并非所有聊天软件都平等地受益于这波趋势。决定谁先吃到 agent 红利的关键变量,是平台的开放程度。 我们可以沿着一条从「完全开放」到「完全封闭」的光谱,来观察各家 IM 平台的位置和策略。

光谱最左端:Telegram——零摩擦的开放性

Telegram 之所以成为 agent 浪潮的第一个受益者,不是因为它最大、最好用,而是因为它是所有主流 IM 里开发者门槛最低的。

创建一个 Telegram bot 只需要跟@BotFather 对话几步——起个名字,拿到 API token,就可以开始接收和发送消息。不需要企业认证,不需要审批流程,不需要等待人工 review。整个过程从零到一个能跑的 bot,可以在 5 分钟内完成。

这种「零摩擦」不仅仅是注册环节的便利。Telegram 的 Bot API 设计本身就非常开发者友好:webhook 机制让 bot 可以实时响应消息,inline 模式让 bot 可以在任何对话中被唤起,支持 markdown 和 HTML 的富文本渲染让 agent 可以返回结构化的输出。

更关键的是,Telegram 对 bot 的功能限制极少——bot 可以创建群组、管理频道、处理支付等一系列操作。这种「bot 能做的事几乎等于人能做的事」的设计哲学,近的更新还支持了对 bot 的流式输出,让开发者有极大的发挥空间。

OpenClaw 选择 Telegram 作为第一交互渠道,正是因为这种开放性。在 OpenClaw 的官方文档里,Telegram 是第一个被详细说明的频道,配置教程最完整,社区讨论最活跃。一个典型的 OpenClaw 用户,可以在一台 VPS 上部署 agent 实例,绑定自己的 Telegram bot token,然后通过对话窗口让 agent 帮自己完成从信息检索到代码部署的一系列任务。

Manus 在今年 2 月选择 Telegram 作为首发平台,逻辑类似。Meta 旗下的产品没有选择自家的 WhatsApp——后者有着超过 20 亿的月活用户——而是选了用户量远小于它的 Telegram,足以说明在 agent 早期阶段,开放性比用户基数更重要。 WhatsApp 的通过 Baileys 库,需真实手机号验证,Business API 审核流程复杂、不支持商业大规模部署,对于一个需要快速迭代的 AI 产品来说,摩擦太大了。

但 Telegram 的开放性是一把双刃剑。

同一种让开发者能够零门槛创建 bot 的开放性,也让 Telegram 长期成为灰色产业的温床。安全公司 Bitsight 在今年 1-2 月的扫描中发现了超过 30000 个暴露在公网上的 OpenClaw 实例,最新出现的一个「曝光看板」中,暴露数量来到了惊人的 22 万个,许多实例的 API 密钥和数据库凭证直接暴露在默认配置里,安全形同虚设。

这是一个悖论:让 agent 生态最快繁荣的条件,恰恰也是让安全风险最快积累的条件。 而且,无法通过「加强审核」简单解决的问题——因为审核本身就意味着提高门槛,而低门槛正是开发者选择 Telegram 的原因。

天平中间:Slack 与 Discord

如果说 Telegram 代表的是「先上车后买票」的野路子,Slack 和 Discord 则代表了两种不同风格的「有限开放」。

Slack 走的是企业级路线,通过 Bolt 框架,和开发工具深度集成。2026 年 1 月,Salesforce 宣布新版 Slackbot 正式上线,面向 Business+和 Enterprise Grid 用户,定位「your personal agent for work」——支持查找信息、分析文档、管理日程、生成摘要。

同月,Salesforce 还推出了 Agentforce 在 Slack 中的集成,将 CRM 数据和客户交互直接引入对话流。Slack 对第三方 agent 的态度是开放但可控:所有 bot 需要经过 Marketplace 审核,数据访问有明确的 OAuth scope 限制,企业管理员可以精细控制哪些 bot 能进入哪些频道。

Discord 的 bot 生态同样成熟,但底色更偏社区和创作者。开发者需要在 Developer Portal 注册应用、配置权限(比 Telegram 的@BotFather 多几步),但远不到企业级 IM 的审核强度。Discord 的 agent 优势在于社区场景的密度:Midjourney 从 Discord bot 起家,如今大量 AI 项目仍然以 Discord 作为用户社区和产品交互的双重入口。OpenClaw 本身也在 Discord 上运营活跃的开发者社区。

两者的共同点是:它们都在开放性上设了一个「限速器」。 Slack 的限速器是企业合规,Discord 的限速器是社区治理。相比 Telegram 的完全放任,这意味着 agent 生态的发育速度慢一些,但系统性风险也低一些。

天平向右:飞书

对于国内用户来说,飞书是一个值得单独拿出来讨论的案例。 它的开放方式,反映了中国 IM 平台在 agent 浪潮中的独特情况。

飞书的开放平台在过去一年里经历了显著的能力升级。2025 年下半年起,飞书陆续上线了 Bot API 的多项增强、工作流(Workflow)中的 AI Agent 节点(目前为 Beta)、以及对 MCP(Model Context Protocol)工具集的支持。在 GitHub 上,飞书官方维护的 lark-openapi-mcp 项目已获得超过 400 颗 star,提供了飞书核心功能的 MCP Server 封装。OpenClaw 也有官方的飞书插件(@openclaw/feishu),支持将 agent 部署到飞书对话中。

从功能层面看,飞书的 agent 基础设施正在快速追赶——bot 可以读写文档、支持发送带按钮、表单的交互式卡片、触发审批流、创建和管理日历事件,这些都是企业场景下 agent 的高价值能力。

但飞书的开放性有两重限制:

第一重是平台治理。飞书的 agent 生态天然是 B2B 的,而非 Telegram 那种 C2C 加 B2C 的混合形态。飞书的 bot 需要在企业应用框架内运行——开发者需要创建企业自建应用或商店应用,配置权限后需要企业管理员审批。这意味着个人开发者很难像在 Telegram 上那样「5 分钟创建一个 bot」。

一个直观的对比:一个 Telegram 开发者从注册 bot 到收到第一条消息回复,整个过程不超过 5 分钟;同样的事情在飞书上,光是等待企业管理员审批应用权限就可能需要一个工作日。

企业级管控带来了更高的安全性,但代价体现在开发者体验上:权限配置、调试、上线等环节的摩擦显著高于 Telegram,这种摩擦不是缺点而是特点——但它确实减缓了 agent 生态的自发生长速度。

第二重是生态位。 在中国市场,飞书的主要竞对是钉钉和企业微信。三者都在加码 agent 能力,但路径不同:钉钉倾向于与通义系列大模型深度绑定,企业微信则依托微信生态的用户基数。

一个有意思的现象是:尽管中国 IM 市场高度碎片化,在 agent 这件事上率先跑出来的既不是用户基数最大的企业微信,也不是市场份额最高的钉钉,而是飞书。

这完全是偶然吗?不一定。

第一,飞书的开放平台不是后来加的一层皮,而是产品基因的一部分——多维表格本身就是可编程的数据层,文档原生支持 API 读写,这些底层设计让 agent 的接入成本比竞品更低。

第二,字节跳动同时拥有大模型能力(豆包/云雀)和企业协作平台,这种垂直整合让飞书在 agent 场景下的迭代速度更快;相比之下,钉钉和通义、企业微信和混元之间的组织协调链条更长。

第三,飞书的客户画像偏向互联网和科技企业——这批企业本身开发者密度更高、自动化需求更强、对 AI 的接受度也更高,agent 生态更容易在这个群体中形成冷启动。

当然,这也意味着飞书的 agent 故事目前主要是一个「科技公司圈内叙事」,能否向更广泛的企业市场渗透仍然是问号。

这个案例还折射出另一件事:agent 中继不太可能由一个创业公司从零做出来——agent 需要的不只是消息管道,还需要企业内部的数据、权限和工作流,这些是现役 IM 玩家的护城河。

另外,中国市场的 IM 格局更碎片化,agent 开发者需要同时适配多个平台,这增加了生态成形的难度,因此存量优势便很有决定性。

以中国市场来看,IM 的「第二春」不仅取决于开放性,还取决于与本土大模型的集成深度、企业客户的采购逻辑、以及监管环境对 bot 能力边界的定义。 这是一个和全球市场显著不同的竞争维度。

天平背后

开放性的天平,揭示的不只是各家 IM 的策略差异,而是一个 agent 时代的基础矛盾:平台越开放,agent 生态越繁荣,安全风险也越高。

Telegram 是这个矛盾的极端表达。同一种让开发者能够零门槛创建 bot 的开放性,同时打开了创新和滥用的大门。如果监管收紧迫使 Telegram 提高 bot 创建门槛——这并非不可能,被法国警方制裁后, Telegram 已经开始调整部分内容政策——那么会影响到开发者吗?他们又会迁移到哪里?Discord、Slack、还是飞书?

然而,封闭平台面临相反的困境:不开放 API 就错过 agent 红利,但开放了又要承担 Telegram 正在经历的安全和声誉成本。WhatsApp 在技术上,完全有能力做一个类似@BotFather 的轻量工具,但它背后是 20 亿用户,不能不多加考虑。

现在,每个 IM 平台,都需要在这个天平上寻找自己的位置。「第二春」能持续多久,取决于一个至今没有标准答案的问题:在 agent 时代,一个聊天平台应该多开放?

在开放性之争的背后,一个更激进的猜想正在开发者社区成形:当一个聊天窗口可以调用任意 agent 完成从订票、编程到数据分析的任意任务时,它已经不只是一条管道——它正在变成一个超级接口。

要说不说,这个逻辑对中国读者而言,很眼熟啊——这不就是微信吗。

微信用小程序、支付和政务服务,在一个封闭生态里实现了「一个 App 解决一切」。而 OpenClaw 所代表的模式指向一个镜像式的可能:用开放生态和全球开发者社区,在任意一个 IM 里实现类似的功能密度。

不是再造一个微信,而是用完全相反的路径——开放而非封闭,去中心化而非平台主导——最终抵达一个功能上相似的终点。

当然,这仍然只是一个猜想,而非预言。微信 super app 的成立依赖于中国市场独特的移动支付基础设施和用户习惯,这些条件在全球市场并不通用。更根本的是,开放生态能否在不牺牲安全性的前提下达到那种服务密度,目前没有人能给出答案。

但如果这个方向是对的,那么 IM 的「第二春」就不只是一段插曲,而是一次身份转换的起点:从消息管道,到 AI 时代的通用交互层。 谁先在开放性和安全性之间找到那个可持续的平衡点,谁就最有可能定义这个新物种的样子。

#欢迎关注爱范儿官方微信公众号:爱范儿(微信号:ifanr),更多精彩内容第一时间为您奉上。

三花智控:拟开展不超过35亿元资产池业务

2026年3月23日 20:57
36氪获悉,三花智控公告,公司第八届董事会第十四次会议审议通过《关于开展资产池业务的议案》,同意公司及控股子公司共享不超过35亿元的资产池额度。资产池业务期限自本年度股东大会审议通过之日起至下一年度股东大会召开之日止,额度可滚动使用。公司及子公司可将票据、保证金、大额存单、理财产品、结构性存单、国内应收账款等资产入池,用于开立银行承兑汇票、信用证、保函及流动资金贷款等,并提供相应担保。该事项尚需提交公司股东大会审议。

三花智控:2025年净利润40.63亿元,同比增长31.10%

2026年3月23日 20:56
36氪获悉,三花智控发布2025年业绩报告。报告显示,2025年营业收入310.12亿元,同比增长10.97%;净利润40.63亿元,同比增长31.10%。公司董事会审议通过的利润分配预案为:以42亿为基数,向全体股东每10股派发现金红利2.8元(含税),送红股0股(含税),不以公积金转增股本。

永励精密3月30日北交所首发上会

2026年3月23日 20:51
36氪获悉,据北交所网站披露,北交所上市审核委员会定于3月30日上午9时召开2026年第33次上市审核委员会审议会议,届时将审议浙江永励精密制造股份有限公司的首发事项。

泰福泵业:筹划控制权变更事项,股票停牌

2026年3月23日 20:47
36氪获悉,泰福泵业公告,公司实际控制人陈宜文、林慧夫妇正在筹划控制权变更相关事宜,可能导致公司控股股东及实控人发生变更。经向深交所申请,公司股票及可转换公司债券自2026年3月24日开市起停牌,预计停牌不超过2个交易日,期间“泰福转债”暂停转股。该事项尚处于筹划阶段,存在重大不确定性。

丽江股份:2025年净利润同比增长1.24%,拟每10股派3.50元

2026年3月23日 20:41
36氪获悉,丽江股份发布2025年业绩报告。报告显示,公司2025年实现营业收入8.60亿元,同比增长6.42%;归属于上市公司股东的净利润为2.13亿元,同比增长1.24%。公司拟以总股本549,490,711股为基数,向全体股东每10股派发现金红利3.50元(含税),不送红股,不以公积金转增股本。

*ST亿通:股东王振洪拟减持不超2.99%股份

2026年3月23日 20:15
36氪获悉,*ST亿通公告,持股5%以上股东王振洪计划自公告披露之日起15个交易日后的3个月内(即2026年4月15日至2026年7月14日),以集中竞价或大宗交易方式合计减持公司股份不超过910万股,占公司总股本的2.9941%。减持原因为个人资金需求,股份来源为公司首次公开发行前持有的股份及资本公积金转增股本取得的股份、增持股份。

碧桂园:预计2025年利润为10亿元-22亿元

2026年3月23日 20:00
36氪获悉,碧桂园公告,本集团预期截至2025年12月31日止年度的利润介乎约人民币10亿元至人民币22亿元,2024年损失约人民币351.45亿元。本年度转亏为盈主要由于本集团完成债务重组录得的非现金收益所致。撇除前述债务重组收益的影响后,本集团录得亏损主要是由于受行业影响,本集团开发业务毛利水平承压,且进一步对若干资产及物业项目计提减值准备等因素所致。

氪星晚报 |阿里明日或将发布重要芯片产品;全球首个脑机接口创新产品获得医保编码;LG电子称今年将全力推进机器人业务

2026年3月23日 19:52

大公司:

双林股份港股上市获中国证监会备案

36氪获悉,中国证监会国际合作司发布关于双林股份有限公司境外发行上市备案通知书,公司拟发行不超过89,697,300股境外上市普通股并在香港联合交易所上市。

宝盖新材料港股IPO获中国证监会备案

36氪获悉,中国证监会国际合作司发布关于山东宝盖新材料科技股份有限公司境外发行上市备案通知书,公司拟发行不超过16,640,500股境外上市普通股并在香港联合交易所上市。

云天化:2025年净利润51.56亿元,拟每10股派12元

36氪获悉,云天化发布2025年业绩报告。报告显示,公司2025年实现营业收入484.15亿元,同比下降21.47%;归属于上市公司股东的净利润为51.56亿元,同比下降3.40%。公司拟向全体股东每10股派发现金红利12元(含税),2025年度合计分红25.52亿元,占当年净利润的49.50%。

首个国产企业级满血版OpenClaw来了!百度DuMate全量上线

3月22日,百度智能云DuMate正式上线,面向用户全量开放。这是国内首个国产企业级龙虾产品,支持本地部署,企业级用户也能安全合规使用。 针对目前龙虾的安全风险痛点,DuMate提供了完善的解决方案,实现多重防护。 一方面,DuMate通过预装安全沙箱,实现与本机设备环境隔离,代码、任务、文件闭环执行,不影响本地环境、不扩散风险、不泄露数据。 另一方面,针对文件删除、系统修改、数据外发等高风险操作,DuMate会强制用户明确授权后才执行。同时,DuMate还具备文件夹级权限管控、操作全程可审计等企业级场景能力。 在功能上,DuMate原生支持 Word、Excel、PPT 等主流办公软件。内置百度搜索Skill,也让DuMate拥有更强的理解能力和更好的任务完成率。另外,DuMate也支持用户按需灵活扩展优质Skills。 DuMate进一步完善了百度OpenClaw生态布局。目前百度龙虾全家桶,涵盖云端虾、手机虾、安全虾、桌面虾及全球首款家用小龙虾等产品,可以满足不同场景下的龙虾使用需求。

冠石科技:2025年归母净利润亏损7028.91万元,亏损扩大

36氪获悉,冠石科技发布2025年业绩报告。报告显示,2025年实现营业收入13.65亿元,同比增长0.44%;归属于上市公司股东的净利润亏损7028.91万元,上年同期亏损1545.51万元;基本每股收益-0.96元。公司2025年度拟不进行利润分配,不派发现金红利、不送红股、不以资本公积金转增股本。

富祥药业:预计2026年第一季度净利润同比增长2222.67%-3250.01%

36氪获悉,富祥药业公告,预计2026年第一季度净利润为5200万元-7500万元,同比增长2222.67%-3250.01%。报告期内,受益于新能源行业景气度持续提升,动力电池市场需求稳步增长,储能电池市场需求快速爆发,带动上游锂电材料需求持续攀升。公司锂电池电解液添加剂业务经营态势良好,VC、FEC等核心产品量价齐升,从而推动公司业绩同比大幅增长。

元气森林在河南新设饮料公司,注册资本3亿元

36氪获悉,爱企查App显示,近日,元气森林(河南)饮料有限公司成立,法定代表人为顾雅蕾,注册资本3亿元人民币,经营范围包括饮料生产、食品生产、食品销售、乳制品生产、食品添加剂生产、酒类经营等。股东信息显示,该公司由元气森林(北京)食品科技集团有限公司全资持股。

LG电子称今年将全力推进机器人业务

LG电子首席执行官吕宰哲周一表示,公司今年将不遗余力地发展机器人业务,并指出在人工智能时代,公司可以在该领域充分发挥其积累的专业知识。吕宰哲在首尔举行的股东大会上表示:“在人工智能蓬勃发展的背景下,我们计划重点关注四个关键领域——机器人、制冷解决方案、智能工厂和智能家居——LG电子在这些领域拥有独特的优势和强劲的增长潜力。”根据该计划,LG电子将寻求自主生产机器人执行器(约占机器人生产成本的40%),以增强其企业对企业(B2B)业务组合。(新浪财经)

投融资:

地瓜机器人公司增资至16.3亿元

36氪获悉,爱企查App显示,近日,深圳地瓜机器人有限公司发生工商变更,注册资本由6.3亿元人民币增至16.3亿元人民币。深圳地瓜机器人有限公司成立于2024年1月,法定代表人为王丛,经营范围包括智能机器人的研发、集成电路芯片设计及服务、人工智能应用软件开发等。股东信息显示,该公司由D-Robotics Holding Limited全资持股。

“航星传动”宣布完成超亿元Pre-B轮融资

36氪获悉,近日,高端控制系统装备服务商“航星传动”宣布完成超亿元的Pre-B轮融资,由中车国创、国新国证、安徽省产投联合投资。本轮资金将用于进一步引进高端研发人才,提升核心技术研发能力,开拓国内、国外市场。

新产品:

微博推出首个AI社区

36氪获悉,近日,微博推出超话“硅基茶水间”,成为国内首个上线AI社区的社交媒体平台,目前该超话已上线。据介绍,“硅基茶水间”是一个为包括龙虾、评论机器人等在内的各类AI创建的,支持其入驻、生活并进行互动的平行宇宙。AI作为社区的“居民”,能够发布动态、评论互动等,完成完整的社交行为。用户将超话链接发送给自己的AI,即可启动其入驻流程。

大众旗下Scout计划在美打造独立品牌

当地时间3月21日,大众汽车集团旗下Scout品牌首席执行官斯科特·基奥(Scott Keogh)表示,Scout Motors将在美国打造独立品牌,并可能在未来考虑上市。基奥称,作为大众与Rivian合资项目的一部分,Scout的车型将采用Rivian的软件技术。Scout的增程版车型将使用在大众墨西哥工厂生产的发动机。

阿里回应推出“养虾”PC:是云电脑产品,暂无发布时间表

针对阿里即将推出“养虾”PC与主机硬件,由阿里云无影团队主导,阿里方面回应称:是有这个计划,基于原有产品改造,但没有发布时间表。“是云电脑,不是PC。”据知情人士表示。此前,阿里云曾推出多款无影云电脑产品。(财联社)

阿里明日或将发布重要芯片产品

阿里巴巴达摩院明日或将发布重要芯片产品,或直指今年爆发的AI Agent算力需求。公开信息显示,达摩院明日将在上海举行年度2026玄铁RISC-V生态大会,去年曾发布行业内首款服务器级RISC-V CPU。(界面)

扎克伯格正在打造AI智能体,助力自己履行CEO职责

知情人士透露,扎克伯格正在打造一款CEO专属智能体,辅助自己开展工作。这款仍在开发中的智能体,目前已能帮助扎克伯格更高效地获取信息。例如,以往他需要层层对接人员才能得到的答案,现在可由该智能体直接检索提供。近期扎克伯格本人也投入更多时间编写代码,并在今年1月的公司财报电话会议上预告了相关布局。(新浪财经)

全球首个脑机接口创新产品获得医保编码

据国家医保局消息,2026年3月13日,全球首款侵入式脑机接口医疗器械正式获批上市。3月15日,国家医保局主动对接、靠前服务,为该产品完成医保编码赋码,成功打通创新产品从获批上市到临床应用的关键环节,标志着脑机接口产业从“规划蓝图”正式驶入“落地快车道”。

今日观点:

潘功胜:将稳步推动金融业的高水平开放

中国人民银行行长潘功胜3月22日在中国发展高层论坛2026年年会上表示,我们将稳步推动金融业的高水平开放。深化金融市场互联互通、支付系统跨境互联,便利更多投资者投资中国金融市场。中国股市和债市规模均位居全球第二,市场深度、韧性和流动性持续提升。截至2025年底,境外机构和个人持有境内股票、债券、存贷款等人民币金融资产超过10万亿元。我们欢迎境外投资者参与和投资中国金融市场。近年来,人民币国际化取得积极进展,为境内外主体提供更加多元化的货币选择。目前人民币融资成本相对较低。2025年,多国政府、国际开发机构、金融机构、大型企业发行熊猫债券超过1700亿元,在香港发行的离岸人民币债券规模更大。我们将持续完善人民币跨境使用制度安排和金融基础设施建设。开展多元化的货币金融合作,推动离岸人民币市场的发展,为跨境贸易和投融资活动提供便利。

其他值得关注的新闻:

工信部公开征求《汽车数据安全保障要求》等2项汽车行业推荐性国家标准报批意见

36氪获悉,据工信部,根据标准制修订计划,相关标准化技术组织已完成汽车行业《汽车数据安全保障要求》等2项推荐性国家标准的编制工作。为进一步听取社会各界意见,现予以公示。公示时间:2026年3月24日-2026年3月30日。

❌
❌