作者|陈姚戈

世界模型领域迎来了一个重要开源模型。

今天,蚂蚁集团旗下的具身智能公司“蚂蚁灵波”,正式发布并开源其通用世界模型 LingBot-World。与许多闭源方案不同,蚂蚁灵波选择全面开源代码和模型权重,而且不绑定任何特定硬件或平台

去年 DeepMind 发布的 Genie 3,让人们看到了世界模型能够根据文本或图像提示,实时生成一个可探索的动态虚拟世界。LingBot-World 沿袭了这条路线,并在交互能力、高动态稳定性、长时序连贯性以及物理一致性等维度取得了突破。

更令人惊喜的是,LingBot-World 呈现出从“生成”到“模拟”的跨越。随着模型规模的扩大,灵波团队观察到,LingBot-World 开始表现出远超普通视频生成的复杂行为,涌现出对空间关系、时间连续性和物理规律的理解。

可以看到,鸭子腿部蹬水的动作、水面对扰动的响应、以及鸭子身体与水之间的相互作用都比较符合物理规律。

这显示出模型不仅记住了视觉表象,还在某种程度上理解了流体力学等基础物理机制。同时,水面对扰动的反应,显示出模型对因果关系的理解。

用户切换视角后再回来时,环境中的智能体(比如这只猫)仍能保持持久记忆。智能体即使没有被观察到,也能持续行动。这确保了当视角回归时,世界状态会自然推进。

当环境中智能体(这只猫)碰到沙发后,没有穿透沙发,反而向空地走去。可以看到,LingBot-World 遵循了空间的逻辑,让智能体运动具有物理的合理性。

这是一个长达 9 分 20 秒的视频,没有经过任何剪辑和拼贴。视频为用户第一视角,从一座破旧的古希腊神庙出发,沿城市小径前行,经过一座新古典主义建筑,再向左进入一片复原的古希腊建筑群。

在近十分钟内,画面保持了较为稳定的物理状态和视觉质量,这在目前的视频生成模型和世界模型中都比较罕见。

不过,在视频最后几分钟,建筑之间的位置关系似乎被模型遗忘了。在 7:00,新古典主义建筑和复原式古希腊建筑群是连接在一起的;但 7:31,从复原式古希腊建筑群望向新古典主义建筑时,新古典主义建筑消失了。8:30 回到新古典主义建筑时,它成为了一栋孤立的房子。

尽管存在这些细节瑕疵,LingBot-World 的进步依然显著——单次生成接近 10 分钟的连贯视频,很可能刷新了当前视频/世界模型的长度纪录。作为对比,Veo 3 和 Sora 2 的单次生成上限分别为 8 秒和 25 秒,Runway Gen-3 Alpha 为 40 秒,Kling 最长支持 2 分钟。

与其他交互世界模型相比,LingBot-World 在开源、提供 720p 分辨率的情况下,还保证了高动态程度和长生成跨度。

在 VBench 测试中,LingBot-World 全面领先于 Yume-1.5 和 HY World-1.5 等先进开源模型,证明了自己不仅是一个视频生成器,更是一个强大的交互式模拟器。通过接收用户输入的动作指令,它能够生成高度动态且物理一致的视觉反馈,保持在高动态度下的整体一致性,使视频内容在长时间段内始终与最初的提示保持一致。

在看到大语言模型的局限后,世界模型成为火热赛道。Google、李飞飞、Yann LeCun 以及众多科学家纷纷指出,LLM 无法很好地理解物理世界、因果关系,而“世界模型”是 AI 走向真实物理世界深度理解的一个解。

至于“世界模型”究竟该长什么样,行业至今尚无统一标准。

李飞飞的 Marble 正专注理解空间关系;英伟达把世界模型细分为预测模型、风格迁移模型、推理模型;DeepMind 团队的 Genie 3,则试图在同一个模型中,实现端到端的实时渲染。

路线的分歧,也反应了行业需求的多样性,以及寻找解决方案的困难——无论是智能驾驶、具身智能,还是游戏,都在寻找各自需要的智能方案,以及合适的开发范式和入口。

蚂蚁灵波的世界模型方案更接近 Genie 3,旨在成为一个通用模型,为 Agent、具身智能、游戏、仿真等领域提供理解世界物理规律的基础设施平台。

通过开源其训练方法、模型权重等内容,蚂蚁灵波不仅展示了其在具身智能领域的战略布局,也为行业提供了探索世界模型更多可能性的契机,帮助降低验证世界模型的门槛。

这一周,蚂蚁灵波对外集中发布和开源模型研究成果,相继发布并开源空间感知模型 LingBot-Depth、具身大模型 LingBot-VLA。

如今,随着 LingBot-World 的发布,蚂蚁灵波正从幕后走向台前。蚂蚁灵波的目标是打造一个开放、通用的智能基座,与越来越多行业和厂商共建生态。这一次,它用开源的方式,向世界抛出了自己的世界模型范式。

构建世界模型的梦想和努力

在深入探讨蚂蚁团队通用世界模型的细节之前,我们需要花点时间,回顾一下 1990 年世界模型的开始。这将帮助我们更清楚地理解过去 30 多年中“世界模型”研究的变与不变、当前世界模型技术路线之争的焦点,从而更好地理解蚂蚁是在怎样的方向和基础上努力。

世界模型 40 年,变与不变

1990 年,强化学习领域奠基人、2024 图灵奖获得者 Richard S. Sutton 在人类认知学习过程的启发下,在论文《Dyna, an Integrated Architecture for Learning, Planning, and Reacting》中提出了一个开创性架构:智能体不应只靠真实世界试错学习,而应构建一个内部世界模型,在“脑海”中模拟动作后果,低成本地进行规划与策略优化。

图片来自 Dyna 论文。

图片呈现的是 Dyna 框架的核心逻辑,智能体的目标是最大化其在时间维度上累积获得的总奖励。

在 Dyna 框架中,世界模型也被称为动作模型,它被视为一个“黑盒子”,输入当前的情境和动作,输出对下一个情境和即时奖励的预测。模型的作用是模拟现实世界,Agent 通过与现实世界的持续互动产生经验,并利用这些经验通过监督学习方法来改进模型,使其更接近真实的物理规律。

在 2026 年回顾这篇 36 年前的论文,会发现这份古早的研究为理解当下复杂的技术路线之争提供了共同的根基——

对世界模型的探究,起源于对人类、机器,以及更广泛的智能体如何学习和行动的好奇。

而“世界模型”作为一种方法,提出的解决方案是在模拟出的世界中,让智能体学习、行动、获得反馈和迭代。

Dyna 这篇论文的核心理念,成为了今天世界模型的研究的底层思路。

不管是 NVIDIA Cosmos、World labs、Google Genie,还是 LingBot-World,都沿袭了 Dyna 的核心理念:世界模型是为智能体提供“模拟经验”的内部环境,使得智能体可以在一个虚拟的环境中进行规划和策略训练。

在不同方向的探索中,我们可以得到的共识是:世界模型从多样化的输入数据中学习对真实世界环境的内部表征,包括物理规律、空间动态和因果关系等。这些表征帮助模型预测未来状态,模拟动作序列,并支持复杂的规划与决策,而不需要反复进行真实世界的实验。

36 年过去,我们正站在大语言模型的阴影和语境中讨论世界模型。LLM 在理解真实物理世界、及模拟/预测未来后果等方面的局限,正加速科研和商业领域对世界模型的探索。

在 2025 年的一次访谈中,Dyna 的创作者 Richard S. Sutton 强调,LLM 已经走到了瓶颈。他指出,LLM 的核心缺陷在于,它们仅仅是在模仿人类行为,而无法理解世界、预测现实世界中的未来事件。他提倡放弃基于 LLM 的路径,转而开发基于强化学习、拥有世界转换模型(Transition model of the world)。这种世界模型不仅能学习奖励,还能从所有感官信息中获取环境的丰富理解,最终能够预测“如果做某事,后果将是什么”。

大语言模型在理解真实物理世界的不足,以及模拟/预测未来后果的不足,让一批科学家转向,在世界模型中寻找解法。

李飞飞认为 LLM 缺乏对物理世界的感知,提出“空间智能”(Spatial Intelligence)是 AI 的下一个北极星,AI 需要理解三维空间、几何、物理规则以及因果关系,才能从“理解文本”迈向“理解并作用于物理世界”。

Yann LeCun 则批评 LLM 依赖文本概率预测,感知学习世界的方式背道而驰。为此,他推广 JEPA(联合嵌入预测架构),并成立 AMI Labs,通过世界模型的路径实现 AGI,探索如何让 AI 系统具备理解物理世界、持久记忆、逻辑推理以及复杂任务规划能力。

DeepMind 联合创始人兼 CEO Demis Hassabis 在今年 1 月的对谈节目中强调,目前的 AI 系统还不能理解物理世界、因果关系、行为如何影响结果,而精确的世界模型是实现科学发现或理论创新的关键。他表示,Genie 这样的模型还只是“胚胎期世界模型”,Genie 体现出的,生成关于世界的内容的能力,某种程度上体现了模型理解了世界的知识。

Google AI 团队深度押注了世界模型的发展,并认为它会在 2026 年赢得重大发展。Hassabis 在谈及 2026 年的突破和期待时提到,“最令我兴奋的,莫过于进一步推动‘世界模型’的发展,提升其运行效率,从而使其能够真正被用于我们通用模型中的‘规划’环节。”这可能意味着,未来世界模型将融入 Gemini 这样的基础模型中。

世界模型的路线分歧

在探索 AGI 的道路时,蚂蚁集团也看到了世界模型的潜力。

作为蚂蚁集团旗下的具身智能企业,蚂蚁灵波的定位是“智能基座公司”,致力于打造一个能够理解世界、物理规律以及时空演化的 AI 系统。而世界模型正是实现这一目标的重要方式之一。

尽管各方都将世界模型视为未来的关键技术,然而不同公司选择的路径却各不相同。总体上,这些路径可以分为生成式和非生成式两类,两种路径的核心区别在于预测空间。

NVIDIA Cosmos、DeepMind Genie 和 World Labs 都是生成式路径的代表。

Cosmos 和 Genie 主要使用由像素构成的观测空间,利用大规模高维视觉数据训练,通过特定的时空架构设计,让模型产生对三维物理世界的理解。Genie 3 官网中特别提到“Genie 3 的一致性是一种涌现能力……Genie 3 生成的世界更为动态和丰富,因为它们是基于世界描述和用户动作逐帧创建的。”

World Labs 则另辟蹊径,将预测空间设定为在 3D 空间中带有位姿的帧,通过查询待生成帧的位姿来生成新图像。其发布的 RTFM 模型表明:“模型对世界的记忆(存储在各个帧中)具备了空间结构;它将带有位姿信息的帧视作一种‘空间存储’,这赋予了模型一种弱先验——即所建模的世界是三维欧几里得空间,而无需强迫模型显式预测该世界中的物体几何结构。”

非生成路径的代表是 Yann LeCun 的联合嵌入预测架构(Joint Embedding Predictive Architecture, JEPA)。JEPA 通过编码器将输入转化为潜空间(Latent Space),并在该空间内预测未来抽象表征(Embeddings),从而无需进行像素级的重建。

蚂蚁灵波的 LingBot-World 选择了类似 Genie 的路径,试图在此基础上解决从视频生成到世界模拟之间的技术障碍。

拆解 LingBot-World

在前文的案例和分析中,我们看到蚂蚁灵波的 LingBot-World 沿袭了 Gienie 的生成式路线,同时在交互能力、高动态稳定性、长时序连贯性以及物理一致性上表现惊艳。

在此基础上,蚂蚁灵波选择开源代码和模型权重,并在论文中完整披露了从数据采集到训练部署的全链路设计,鼓励社区测试、使用和复现。

即使是在近 10 分钟的超长视频中、或是快速运动下,画面中的物体依然保持了较为稳定的几何物理特性,没有出现视频生成模型常见的崩坏。这种稳定性,源于其独特的数据引擎和模型架构设计。

数据引擎

许多从视频生成模型切入世界模型研发的团队,很快会撞到数据瓶颈。

互联网上浩如烟海的短视频大多是“被动”记录,缺乏因果链条。对于世界模型而言,它需要理解的是动作和后果之间的关系。

比如:“按下 W 键向前走,门是否会打开?”“绕到建筑背面,窗户是否依然存在?”这类智能体动作与环境反馈之间的因果闭环,在普通视频中几乎不存在,在真实世界中规模化采集的成本也很高。

为了构建“动作-反馈”的闭环,LingBot-World 打造了从采集、处理到标注的流程。

LingBot-World 的数据包含通用视频、游戏数据和合成渲染数据,以确保训练语料的丰富性、高质量和交互性。为游戏数据,灵波团队还开发了专门的平台,捕获 RGB 帧并严格对齐用户的输入和相机参数。合成数据由 Unreal Engine 生成,带有精确相机数据和自定义轨迹。

LingBot-World 数据处理和标注流程

在数据处理层面,灵波团队首先对原始视频进行质量筛选与切分,生成结构清晰的视频片段;然后借助 VLM 视频的视觉质量、场景类型和视角等,结合几何标注提供必要的 3D 结构先验,产出元数据。

在此基础上,团队引入三种不同粒度的描述标注,涵盖视频全过程的宏观描述、去除了动作和相机数据的静态描写,以及带有时间标注的描述。

模型构建和训练

LingBot-World 将世界模型定义为一个条件生成过程,模拟由智能体动作驱动的视觉状态演化。

从模型构建和训练过程,我们可以看到,LingBot-World 是从“视频生成模型”起步,通过不同阶段训练,让模型从“生成”走向“模拟”。

从目标函数上看,这种模拟本质上是一种概率预测

LingBot-World 的目标函数明确表达了这一思想:

$$\max_\theta \sum_{t=1}^{T-1} \log p_\theta(x_{t+1} | x_{1:t}, a_{1:t})$$

即在最大化给定历史帧 ($x_{1:t}$) 和动作序列 ($a_{1:t}$) 的条件下,预测下一帧状态 ($x_{t+1}$) 的似然概率。

简单来说,就是让模型学会根据过去看到的画面和执行过的动作,尽可能准确地预测下一帧画面。

为了避免直接从零训练导致的计算开销和模式崩塌,LingBot-World 采取了分阶段的训练策略。

预训练负责建立稳健的通用视频先验,确保高保真开放域生成;中训练注入世界知识和动作可控性,使模型能够模拟具有一致交互逻辑的长期坚持动态;后训练使架构适应实时交互,采用因果注意力和少步蒸馏以实现低延迟和严格因果性。

LingBot-World 模型训练流程。

从“生成视频”到“模拟世界”,LingBot-World 带来的可能性

LingBot-World 的意义绝不仅在于生成一段精美的视频,而在于它提供了一个高保真的物理交互沙盒,成为具身智能、自动驾驶与虚拟现实等下游任务的通用基础设施。

LingBot-World 最直观的突破在于它赋予了通过自然语言控制模拟过程。例如,通过输入“冬季”或“夜晚”,模型会渲染出城堡结冰或夜晚灯光变化的物理效果,同时支持向“像素风”或“蒸汽朋克”等风格的切换。还可以在具体场景中精确注入特定物体。例如,在城堡上空触发烟花,或在喷泉中生成鱼和鸟。

在环境中生成烟花效果

改变环境整体风格

在自动驾驶训练中,这种能力极具价值。算法团队可以人为制造“鬼探头”、极端天气或突发交通冲突,构建出严苛的因果推理环境,从而低成本地解决智驾中的长尾问题。

深层物理特性的稳定性,则为这种模拟提供了实际应用的底座。得益于模型展现的长程记忆,生成的视频序列具备了较高的 3D 一致性,这使得视觉信息可以直接转化为场景点云,从而服务于 3D 重建或高精度仿真任务。

LingBot-World 具有很好的 3D 一致性。可以看到,视角变化的情况下,房间结构和物理性状仍然保持稳定。

这种稳定性试图触及具身智能训练中的一个核心痛点:机器人的导航或复杂操作往往涉及跨越长时序的决策序列。LingBot-World 展现的 10 分钟级别生成能力,在理论上为多步骤任务提供了更稳定的物理一致性。如果这种长程模拟能有效控制累积误差,将有助于机器人在虚拟环境中进行高频次、深度、低成本试错。

在此基础上,LingBot-World 与 LingBot-VLA(视觉-语言-动作模型)的结合,勾勒出了一种具身大脑的闭环方案。在这种设定下,世界模型充当了机器人的“内部模拟器”:在 VLA 模型输出最终指令前,系统可以在虚拟空间中先行演练不同的动作轨迹,评估其物理后果,从而筛选出更符合物理规律且具备安全性的执行路径。

令人惊喜的是,利用训练 LingBot-World 的数据,蚂蚁灵波团队还微调出了动作智能体。智能体可以被置于 LingBot-World 打造的环境中,Agent 的动作改变会实时重塑环境状态,而环境的演变则反过来决定 Agent 的下一步决策。

灵波团队利用 LingBot-World 相同数据训练处的自主智能体,能在生成的世界中自主规划并执行动作。

这种互动揭示了世界模型在“模拟沙盒”之外的另一种可能——它不仅能理解环境对智能体变化的响应,也具备预测智能体动作流的能力。

这意味着,世界模型未来或许不仅仅是训练智能体的工具,也有可能成为驱动智能体(包括机器人)的底座。

项目官网:

https://technology.robbyant.com/lingbot-world

论文连接:

https://arxiv.org/abs/2601.20540

代码和模型权重下载:

https://github.com/robbyant/lingbot-world

https://huggingface.co/robbyant/lingbot-world

https://www.modelscope.cn/models/Robbyant/lingbot-world-base-cam

当 AI 开始行动,人类第一次需要重新定义“参与者”这个词。

引言:2026,不是升级年,而是转向年

过去几年,人们习惯用参数规模、算力消耗、模型榜单来衡量 AI 的进步。但进入 2026 年,这套判断体系正在迅速失效。

因为 AI 正在发生一次根本性转变——
它不再只是被调用的模型,而是开始以“智能体”的形态参与现实运行。

这意味着一个全新的事实正在形成:
AI 不再停留在“生成内容”,而是进入了目标理解、任务规划、工具调用、结果评估与持续修正的闭环之中。

2026 年,并不是 AI 更聪明的一年,而是 AI 开始“做事”的一年。
这也是为什么越来越多的人,将这一年称为——AI 元年


一、从模型到智能体:AI 范式的真正跃迁

大模型时代的 AI,本质上仍然是“静态系统”:

  • 能回答,却不负责
  • 能生成,却不执行
  • 能推理,却不行动

而智能体的出现,改变的是 AI 与世界的关系

智能体具备三种关键能力:

  1. 目标导向:理解“要做什么”,而不是只理解“问了什么”
  2. 过程管理:拆解任务、选择路径、调用外部工具
  3. 自我修正:在失败中调整策略,而非一次性输出

这标志着 AI 从“认知系统”转向“行动系统”,
从“辅助工具”转向“代理单元”。

AI 开始拥有事实上的“意图”和“代理权”。


二、新赛道的形成:智能体不是产品,而是系统变量

2026 年的竞争,不再是“谁的模型更大”,而是谁能率先构建智能体驱动的新赛道

这条赛道的形成,依赖三个核心支点。


1️⃣ 能力支点:多模态与具身智能的成熟

真正的智能体,必须能够同时理解和作用于 物理世界与数字世界

这意味着它不仅能处理文本,还需要具备:

  • 对空间与环境的理解
  • 对人类情绪与意图的感知
  • 对现实操作结果的反馈能力

当视觉、语言、动作、环境建模逐步融合,
AI 才第一次具备“知道自己在做什么”的能力。


2️⃣ 生态支点:智能体不再是孤立存在

单个智能体的能力始终有限,
真正的爆发来自 可组合、可协作的智能体生态

2026 年,一个新的趋势正在显现:

  • 专业智能体被模块化、商品化
  • 智能体之间通过协议协作
  • 用户不再下载 App,而是“订阅能力”

这将催生一种全新的数字劳动经济——
由智能体构成的生产网络,而非人类操作的软件界面。


3️⃣ 信任支点:治理开始成为刚需

当 AI 具备行动能力,问题不再是“准不准确”,
而是:

  • 谁授权?
  • 谁负责?
  • 如何中断?

2026 年,围绕智能体的身份认证、权限分级、行为审计、责任归属,正在成为全球共识议题。

这意味着:
智能体赛道的竞争,不只是技术之争,更是治理能力之争。


三、人类角色的重构:从操作者到协作者

智能体的出现,并不等于“AI 取代人类”,
而是迫使我们重新回答一个问题:

人类究竟负责什么?

当重复性决策、流程化任务、信息整合逐步由智能体接管,人类的核心价值正在上移到三个层面:

  • 设定目标(What to do)
  • 判断意义(Why it matters)
  • 承担责任(Who is accountable)

未来的工作模式,不再是“人指挥工具”,
而是 “人 + 智能体团队” 的协作结构

医生、教师、管理者、研究者,都将与智能体并肩工作——
不是被替代,而是被重新定义。


四、三条正在分化的智能体赛道

随着智能体能力成熟,赛道正在出现清晰分化。

▍赛道一:专业智能体 —— 行业能力的放大器

它们不取代专家,而是成为专家的延伸:
在金融、医疗、制造、科研等领域,放大认知与决策效率。


▍赛道二:个人智能体 —— 个体能力的外延

这是属于每个人的数字分身:
理解你的偏好、记忆你的选择、协助你管理复杂生活。

它改变的不是效率,而是 “自我”的边界


▍赛道三:社会智能体 —— 复杂系统的协调者

在城市、能源、供应链、环境治理中,
智能体开始用于模拟、预警、协调,而非直接决策。

它们不掌权,但提供洞察。


五、智能体时代的文明挑战

当技术具备行动力,文明就必须给出边界。

智能体时代带来的,不只是产业问题,更是文明命题:

  • 主权问题:哪些决策必须保留给人类?
  • 责任问题:失误由谁承担?
  • 身份问题:当人类与智能体深度协作,“我”如何被定义?

这些问题没有现成答案,但已经无法回避。


结语:真正的开辟者,理解的不只是技术

2026 年,AI 元年的序幕已经拉开。
智能体不是风口,而是新的基础设施

真正的赛道开辟者,不只是工程师或创业者,
而是那些同时理解:

  • 技术边界
  • 人类价值
  • 社会结构
  • 文明走向

的人。

AI 的终点,从来不是替代人类,而是重新照见人类。
而 2026 年,正是这条新道路的起点。
本文章和图片由AI辅助生成

最近 V2EX 的 rate limit 系统拦截了大量来自这个 IP 的请求。

User Agent 字符串:

Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected])

但我如何能知道这个是不是真的 Claude 的机器人请求呢?

开机后壁纸变黑,Webstorm 动不动白屏,敢问 Win10 哪家的好,之前是用的不忘初心
2026 年,想尝试点不一样的
常用编译器 VS Rider Webstorm 微信开发者工具 AndroidStudio Trae ,Linux 能上不?

玩美股,最近心血来潮,想看看各个 ai 对股票的分析能力如何。
比较了 豆包、Grok 、Gemini3Pro (家庭版,已付费)。
以$FLUT 这支股票为例。
用同样的 英文提示词 提问。
Gemini3pro ,豆包、Grok 的结果(无敏感诱导信息)。


$FLUT 截止 2026-01-28 的价格是 166.730$。豆包、grok 都基本正确(夜盘等因素)。可 gemini3pro 就跑偏太多了,居然用了$265 的价格。。。不知道他哪查的。

追问 Gemini3 为什么出错,给了这三个理由。我也不知道 后续他会不会自我纠正。



不知道各位 V2er 是否有遇到过 Gemini 的这个问题。是否是哪里配置需要开启?

补充:在 System instructions 中,已明确 gemini 使用最新的 google 数据。

我一直记得小学一年级(人教版,课程改革 2003 年)学的第一首诗:一去二三里

一去二三里
烟村四五家
亭台六七座
八九十枝花

之前问别人,好多人不记得了?
今天找了一下以前的图,确实是的,但是封面好陌生。
image
封面

image

z0scan 是一款轻量级的安全扫描工具,主要用来快速检测目标网站、服务器或者网络服务里常见的安全问题,比如开放的端口、弱口令、漏洞信息等。

1. 先下文件

安装包下载:https://pan.quark.cn/s/1592753454d8

2. 找个地方放文件

下载完是个exe程序,别直接丢桌面(容易误删),建议新建个文件夹,比如 D:\tools\z0scan,把exe拖进去。

3. 运行它!

双击 z0scan-windows-amd64.exe—— 这时候可能会弹提示问“是否允许此应用对你的设备做更改”,点 (放心,这步是正常操作)。

4. 等它自己装完

不用手动点下一步!程序会自动跑进度条,等个几十秒(具体看电脑快慢),看到窗口提示“安装完成”或者直接关了,就装好了。

我想让 AI 分析一下第三方 jar 包提供的一个类每次都 new 会不会造成内存泄漏,但是我发现无法把这个类添加到 cursor 对话框里。

最后我指明了这个类的名称发给 cursor ,它竟然把这个 jar 包解压缩到了我项目路径下再去做分析,并且分析完剩下的 tmp 文件都留着。。。。

有没有其他更优雅的办法呢?

前言:如果说 2023 年是“大模型”的破壳时刻,那么 2026 年则被科技界正式定义为 “智能体(AI Agent)元年”。这一年,AI 完成了从“只会聊天的计算器”到“能办事的数字员工”的跨越。一场关于行动力、自主权与新赛道的产业革命已然拉开序幕。

一、 范式跃迁:从“静态生成”到“动态执行”


2026 年,我们正见证 AI 逻辑的根本性扭转。过去,大模型以“知”见长,而现在的智能体以“行”取胜。

  • 自主决策的闭环: 智能体不再是被动等待指令的对话框,而是具备目标感知、环境交互与任务规划能力的“数字生命”。
  • 具身智能的延伸: 通过多模态模型的融合,智能体开始走出屏幕,深入到自动驾驶、智能制造以及复杂的个人事务处理中,实现了从“辅助工具”到“行动主体”的质变。

二、 赛道开辟:2026 产业生态的三大爆发点


在这一条全新的赛道上,三根核心支柱正支撑起万亿级的市场空间:

1. 智能体原生市场的形成

如同当年的 App Store 改变了移动互联网,2026 年的“智能体市场”成为了新的流量入口。开发者不再仅仅提供算法,而是发布具备专业技能(如理财顾问、代码架构师、健康管家)的独立智能单元。

2. 跨系统协同的“数字劳动力”

智能体之间开始学会“对话”。通过标准化的协作协议,不同的智能体可以像人类部门一样相互配合,完成从市场调研到方案落地的一站式自动化办公。

3. 可信治理与责任伦理

随着 AI 拥有了代理权,2026 年也成为了“AI 治理元年”。全球范围内关于智能体身份认证、行为审计与权限分级的法律框架基本成型,为新赛道的狂飙突进安上了“安全阀”。


三、 角色再造:人类从“操作员”转型为“协调者”


智能体的普及并非对人的取代,而是对人类价值的重新定义。在 2026 年的工作流中,人类的角色发生了以下转变:

人类设定目标(What to do)- 智能体规划路径(How to do)

人类判断价值(Why it matters)- 智能体执行交付(Get it done)

未来的核心竞争力,不再是你会不会写代码或画图,而是你是否具备“智能体调度能力”——即如何高效地管理一群 AI 智能体来达成复杂的商业目标。


四、 结语:开辟者,终将定义未来


2026 年,大幕已启。智能体来了,它带来的不仅是技术的迭代,更是一次文明层面的协作升级。在这条新赛道上,先行者正在重塑行业逻辑,而跟随者也将在 AI 原民的时代找到新的生态位。

这或许就是“智能体元年”最深刻的启示:技术的终点,永远是人的升华。

本文章和图片由AI负责生成

作者介绍

苏国庆

资深审计内控专家 | 全栈架构师

Oinone Codelab 开源组织 核心用户

行业领先内控审计公司技术负责人,10 年+ 行业深耕,拥有从架构设计至业务落地的全链路闭环能力。

精通全栈开发与数据治理,在复杂数据采集及深度分析领域造诣深厚,擅长攻克高难度业务数据挑战。

在国家大力推进教育治理体系和治理能力现代化的背景下,财政部、教育部联合发布《关于进一步加强高等学校内部控制建设的指导意见》(财会〔2024〕16号),明确提出到2026年基本建成制度健全、权责清晰、制衡有力、运行有效、风险可控、监督到位的高校内部控制体系。

如何让内部控制体系实际融入单位业务并服务于单位治理,让风险可监测、可跟踪、可预警、可纠偏,成为现实难题。以此为驱动,河南中审科技有限公司依托数式Oinone低代码平台,成功打造了面向各级院校的“院校内部控制数智化服务平台”,以真实业务场景为载体,探索出了一条“用内控规则驱动业务、用数据支撑治理”的可落地路径。不仅响应了国家对高校治理能力提升的战略要求,更充分展现了Oinone作为企业级产品化引擎在复杂业务场景中的强大支撑能力。

政策驱动内部控制成为单位治理能力提升的重要抓手

近年来,国家层面持续释放明确信号:

第十四届全国人大常委会第十次会议表决通过《关于修改(中华人民共和国会计法)的决定》,首次将内部控制写入会计法,明确提出“各单位应当建立、健全本单位内部会计监督制度,并中华人民共和闻会计法纳入本单位内部控制制度”,为各单位开展内部控制评价工作提供了坚实的法律保障。

2023年2月8日,中共中央办公厅、国务院办公厅印发了《关于进一步加强财会监督工作的意见》,并发出通知,要求各地区各部结合实际认真贯彻落实。其中,《意见》从5个方面明确要求完善“内部控制”:

图片

尤其是在高校领域,财政部、教育部最新文件明确要求:

规范债务管理,加强对外合作管理,强化科研管理,加强财政专项项目管理,规范非学历教育办学行为,强化所属企业管理,规范附属单位和校内独立核算单位管理,加强教育基“6+N"金会管理。全面提升高等学校内部控制的信息管理水平。

到2026年,基本建立制度健全、权责清晰、制衡有力、运行有效、风险可控、监督到位的内部控制体系。

图片

充分发挥高等学校党委在内部控制建设中的领导作用,内部控制相关重要议题应提请党委决策审议。明确高等学校校长是内部控制建设和实施工作的首要责任人明确学校领导班子其他成员是各自分管领域内部控制建设与实施的负责人。内部控制工作应纳入高等学校领导班子年度履职清单。

现实痛点为什么“有内控,却防不住风险”

在大量高校实践中,我们发现几个高度共性的难题:

图片

1.建设成效与预期存在偏差

· 建设成果与单位业务不匹配未达建设预期成效;

· 未将内部控制融入单位业务流程业务覆盖不全面;

· 未形成对单位治理的支撑作用无法充分发挥管控效能;

2.传统建设方法无法满足新要求

· 传统内控建设方法耗费工时多、质量低、效果差;

· 需采购第三方服务与过“紧日子”的要求不符合;

· 对人员专业能力和经验依赖性高无法确保内控建设质量和效果;

3.风险管控响应滞后

· 传统模式依赖人工排查风险管控响应存在滞后;

· 人工识别易出现风险遗漏判断结果存在偏差;

· 风险管控以事后补救整改为主事前防控不足;

这些问题的本质在于:内控规则没有进入业务系统“跑起来”。

关键支撑数式 Oinone 平台让内控数字化、数智化、数治化

高校内控系统对平台能力要求高:业务复杂、规则多、变化快、国产化要求严格。

数式Oinone在本项目中,成为内控数智化真正落地的关键底座。基于内部控制体系成果构建内控规则库,形成单位管控的业务底座,实现内部控制数字化;通过内部控制形成基于规则前置的经济业务的全流程应用,实现内部控制数智化;基于内控规则对业务过程深度分析,让数据话说,挖掘潜在风险,织密廉政风险防范网,实现内部控制数治化。

1.数据驱动:平台级能力的统一建模与演进基础

数式Oinone以元数据驱动作为平台的底层设计理念,将应用中的模型、页面、流程、权限、集成关系等共性要素统一抽象为可管理的元数据对象,使系统具备:

· 可建模:核心业务要素在平台层面形成统一描述,而不是分散在各类实现代码中;

· 可复用:已沉淀的模型结构、交互模式和流程能力可在不同应用、不同项目中复用;

· 可演进:通过元数据的差量管理和版本管理机制,支撑产品持续迭代和升级;

基于这一能力,平台实现了产品结构与实现逻辑的解耦,为复杂业务系统的长期演进、模块扩展和规模化交付提供了稳定而可持续的技术基础。

图片

2.低无一体:效率与灵活兼得

面对高校差异化管理需求,又可通过Java / Vue原生代码深度扩展,实现了真正的 “低无一体”开发模式,既快,又不受限。

图片

3.复杂流程建模能力,匹配真实内控场景

Oinone原生支持复杂流程引擎,使内控规则能够完整嵌入真实业务流转,而非简单审批。

图片

4.标品与个性化共存,支撑规模化复制

· 内控核心能力被沉淀为标准产品;

· 学校个性化规则以扩展包方式实现;

· 标品可持续升级,个性化不被覆盖;

图片

Oinone“产品化引擎”的能力解决了:项目能交付,产品却难迭代的行业共性难题。

5.国产化全栈支持,满足政务要求

平台全面适配:国产操作系统、国产数据库、国产中间件。

图片

落地成效内控从“制度约束”走向“治理工具”

基于 Oinone 平台构建的内控系统,在高校实际应用中,实现了:

✅ 规则前置

制度要求自动融入业务,不符合规则的操作即时提示或限制。

✅ 风险可视

预算执行、项目进度、合同履约、资产变动等 全流程可回溯。

✅ 管理闭环

问题发现 → 预警 → 整改 → 留痕,全程留痕可追溯。

✅ 治理升级

内部控制体系成果成为单位治理的“业务底座”

Oinone 平台成为单位治理的“技术底座”;

内部控制执行过程成为单位治理的“数据底座”;

“业务底座”+“技术底座”+“数据底座”促进单位治理能力进阶升级。

用Oinone,让专业能力变成可复制的产品

高校内控数智化实践证明:

优秀的平台,能够让复杂制度变得可运行,让专业能力变得可复制。

数式Oinone并不仅是一个低代码工具,而是一个面向软件公司的企业级产品化引擎:

· 帮助软件企业沉淀行业能力;

· 支撑标准产品与个性化交付并行;

· 让“项目经验”真正升级为“产品能力”。

而基于 Oinone 打造的内控数智化平台,也正在成为高校治理现代化进程中的重要数字基础设施。

ARC-AGI 测试

ARC-AGI 测试,是只给 AI 一两个「图形变形、变位、变色」的例子,根据这个例子,让 AI 做下一道题。

类似于数字猜谜时,我出 2,4,6 然后填(8)作为例子,然后再出 1,3,5 让 AI 填(7)。ARC-AGI 只不过是用图形的方式。

ARC-AGI 的核心假设

ARC-AGI 的核心假设是,人类是被进化调教的智能,预制了一些核心的先验知识(即娘胎里带来的),这些核心先验知识,是关于「物体恒常性」、「目标导向性」、「大小计数」、「形状拓扑」这些物理先验知识的。所以未来的 AGI ,应该也要对齐到这些。

可以理解的 ARC-AGI-1 和 ARC-AGI-2

前 2 版还可以理解(动手试试看):

第 1 版: https://arcprize.org/play?task=007bbfb7

ARC-AGI-1

第 2 版: https://arcprize.org/play?task=1ae2feb7

ARC-AGI-2

只不过,前 2 版都难不住现在的 AI: https://arcprize.org/leaderboard

ARC-AGI-SCORE

变态的 ARC-AGI-3

既然前 2 版难不倒 AI ,那就开发第 3 版啊,于是第 3 版全面升级,开始用互动游戏来测试了。

但,第 3 版这是谁出的第一个啊,太变态了!!

试试看,你能不能解出来: https://three.arcprize.org/games/ls20

ARC-AGI-3

腾讯云这两天全量上了 passkey 登录,刚才试了一下,登录后竟然还要微信扫码校验,太逆天了。

阿里云都上了不知道多久了,而且也不需要二次校验,之前的 200M 服务器也是摸着阿里云过河,抄都不会抄真是连一根毛都比不过

前言

本篇文章主要讲解 RBAC 权限方案在中后台管理系统的实现

在公司内部写过好几个后台系统,都需要实现权限控制,在职时工作繁多,没有系统性的来总结一下相关经验,现在人已离职,就把自己的经验总结一下,希望能帮助到你

本文是《通俗易懂的中后台系统建设指南》系列的第九篇文章,该系列旨在告诉你如何来构建一个优秀的中后台管理系统

权限模型有哪些?

主流的权限模型主要分为以下五种:

  • ACL模型:访问控制列表
  • DAC模型:自主访问控制
  • MAC模型:强制访问控制
  • ABAC模型:基于属性的访问控制
  • RBAC模型:基于角色的权限访问控制

这里不介绍全部的权限模型,有兴趣你可以看看这篇文章:权限系统就该这么设计,yyds

如果你看过、用过市面上一些开源后台系统及权限设计,你会发现它们主要都是基于 RBAC 模型来实现的

为什么是 RBAC 权限模型?

好问题!我帮你问了下 AI

对比维度ACL (访问控制列表)RBAC (基于角色)ABAC (基于属性)
核心逻辑用户 ↔ 权限
直接点对点绑定,无中间层
用户 ↔ 角色 ↔ 权限
引入“角色”解耦,权限归于角色
属性 + 规则 = 权限
动态计算 (Who, When, Where)
优点模型极简,开发速度快,适合初期 MVP结构清晰,复用性高,符合企业组织架构,维护成本低极度灵活,支持细粒度控制
(如:只能在工作日访问)
缺点用户量大时维护工作呈指数级增长,极易出错角色爆炸:若特例过多,可能导致定义成百上千个角色开发复杂度极高,规则引擎难设计,有一定的性能消耗
适用场景个人博客、小型内部工具中大型后台系统、SaaS 平台 (行业标准)银行风控、AWS IAM、国家安全级系统

总结来说,在后台系统的场景下,RBAC 模型在灵活性(对比ACL)和复杂性(对比ABAC)上取得了一个很好的平衡

RBAC 概念理解

RBAC 权限模型,全称 Role-Based Access Control,基于角色的权限访问控制

模型有三要素:

  • 用户(User):系统主体,即操作系统的具体人员或账号
  • 角色(Role):角色是一组权限的集合,代表了用户在组织中的职能或身份
  • 权限(Permission):用户可以对系统资源进行的访问或操作能力

RBAC 的设计是将角色绑定权限,用户绑定角色,从而实现权限控制

RBAC 权限模型

并且,它们之间的逻辑关系通常是多对多的:

用户 - 角色 (User-Role): 一个用户可以拥有多个角色(例如:某人既是“项目经理”又是“技术委员会成员”)

角色 - 权限(Role-Permission): 一个角色包含多个权限(例如:“人事经理”角色拥有“查看员工”、“编辑薪资”等权限)

主导权限控制的前端、后端方案

市面上这些开源 Admin 的权限控制中,存在两种主要的权限主导方案:前端主导的权限方案和后端主导的权限方案

前端主导的权限方案

前端主导的权限方案,一个主要的特征是菜单数据由前端维护,而不是存在数据库中

后端只需要在登录后给到用户信息,这个信息中会包含用户的角色,根据这个角色信息,前端可以筛选出具有权限的菜单、按钮

这种方案的主要逻辑放在前端,而不是后端数据库,所以安全性没保障,灵活性也较差,要更新权限,就需要改动前端代码并重新打包上线,无法支持“动态配置权限”

适合一些小型、简单系统

后端主导的权限方案

后端控制方案,即登录后在返回用户信息时,还会给到此用户对应的菜单数据和按钮权限码等

菜单数据、按钮权限码等都存在数据库,这样一来,安全性、灵活性更高,要更新权限数据或用户权限控制,提供相应接口即可修改

倒也不是说前端完全不用管菜单数据,而是前端只需要维护一些静态菜单数据,比如登录页、异常页(404、403...)

在企业级后台系统中,后端主导的权限方案是比较常用的,本文只介绍后端主导的权限方案

权限方案整体流程

在开始写代码之前,要清晰知道整体实现流程,我画了一张图来直观展示:

权限方案整体流程

后台系统中的 RBAC 权限实战

权限菜单类型定义

首先,在前后端人员配合中,我们最好约定一套菜单数据的结构,比如:

import type { RouteMeta, RouteRecordRaw, RouteRecordRedirectOption } from 'vue-router';
import type { Component } from 'vue';
import type { DefineComponent } from 'vue';
import type { RouteType } from '#/type';

declare global {
  export interface CustomRouteRecordRaw extends Omit<RouteRecordRaw, 'meta'> {
    /**
     * 路由地址
     */
    path?: string;
    /**
     * 路由名称
     */
    name?: string;
    /**
     * 重定向路径
     */
    redirect?: RouteRecordRedirectOption;
    /**
     * 组件
     */
    component?: Component | DefineComponent | (() => Promise<unknown>);
    /**
     * 子路由信息
     */
    children?: CustomRouteRecordRaw[];
    /**
     * 路由类型
     */
    type?: RouteType;
    /**
     * 元信息
     */
    meta: {
      /**
       * 菜单标题
       */
      title: string;
      /**
       * 菜单图标
       */
      menuIcon?: string;
      /**
       * 排序
       */
      sort?: number;
      /**
       * 是否在侧边栏菜单中隐藏
       * @default false
       */
      hideMenu?: boolean;
      /**
       * 是否在面包屑中隐藏
       * @default false
       */
      hideBreadcrumb?: boolean;
      /**
       * 当只有一个子菜单时,是否隐藏父级菜单直接显示子菜单内容
       * @default false
       */
      hideParentIfSingleChild?: boolean;
    };
  }

  /**
   * 后端返回的权限路由类型定义
   */
  export type PermissionRoute = Omit<CustomRouteRecordRaw, 'component' | 'children' | 'type'> & {
    /**
     * 路由ID
     */
    id?: number;
    /**
     * 路由父ID
     */
    parentId?: number;
    /**
     * 组件路径(后端返回时为字符串,前端处理后为组件)
     */
    component: string;
    /**
     * 子路由信息
     */
    children?: PermissionRoute[];
    /**
     * 路由类型
     */
    type: RouteType;
  };
}
router.d.ts 找到类型文件

以上面的类型定义为例,我们约定 PermissionRoute 类型是后端返回的权限路由类型:

我这里使用 ApiFox 来 Mock 权限路由数据,数据是这样的:

clean-admin ApiFox 文档在线地址

路由表 Mock 数据

从登录页到路由守卫

权限方案的第一步,是登录并拿到用户信息

假设我们现在用 Element Plus 搭建起了一个登录页面,当用户点击登录时,我们需要做这几件事:

  1. 调用登录接口,将账号、密码发送给后端进行验证,验证通过则返回 JWT 信息
  2. 将返回的 JWT 信息保存到本地,后续每次请求都携带 Token 来识别用户身份并决定你能拿到的权限路由数据
  3. 触发路由守卫拦截

登录操作

account-login.vue 找到全部代码

基本 Vue Router 配置

登录完成后,我们就可以触发路由守卫了,但在写路由守卫之前,我们先来配置一下基本的 Vue Router

在整个权限系统中,我们将路由数据分为两种:

  1. 静态路由:系统固定的路由,比如登录页、异常页(404、403...)
  2. 动态路由:由后端接口返回的用户角色对应的菜单路由数据

静态路由是直接由前端定义,不会从后端接口返回、不会根据用户角色动态变化,所以这部分路由我们直接写好然后注册到 Vue Router 中即可

Vue Router 配置:

import { createRouter, createWebHashHistory } from 'vue-router';
import type { RouteRecordRaw } from 'vue-router';
import type { App } from 'vue';
import type { ImportGlobRoutes } from './typing';
import { extractRoutes } from './helpers';
import { afterEachGuard, beforeEachGuard } from './guards';

/** 静态路由 */
const staticRoutes = extractRoutes(
  import.meta.glob<ImportGlobRoutes>(['./modules/constant-routes/**/*.ts'], {
    eager: true,
  }),
);

/** 系统路由 */
const systemRoutes = extractRoutes(
  import.meta.glob<ImportGlobRoutes>(['./modules/system-routes/**/*.ts'], {
    eager: true,
  }),
);

const router = createRouter({
  history: createWebHashHistory(),
  routes: [...staticRoutes, ...systemRoutes] as RouteRecordRaw[],
  strict: true,
  scrollBehavior: () => ({ left: 0, top: 0 }),
});

beforeEachGuard(router);
afterEachGuard(router);

/** 初始化路由 */
function initRouter(app: App<Element>) {
  app.use(router);
}

export { router, initRouter, staticRoutes };
图中的静态路由和系统路由是同一类路由数据,即静态路由

这个配置文件可以在 router/index.ts 找到

这个基本的 Vue Router 配置,做了这么几件事:

  1. 导入 modules 文件夹下的静态路由进行注册
  2. 路由初始化配置 initRouter ,在 main.ts 中调用
  3. 注册全局前置守卫 beforeEach、全局后置守卫 afterEach

我们实现动态路由注册的逻辑就写在 beforeEach

值得一提的是,使用了 import.meta.glob 来动态导入指定路径下的文件模块,这是 Vite 提供的一种导入方式,参考:Vite Glob 导入

路由守卫与动态注册

路由守卫是 Vue Router 提供的一种机制,主要用来通过跳转或取消的方式守卫导航:Vue Router 路由守卫

重头戏在全局前置守卫 router.beforeEach 中实现,来看看我们做哪些事:

import { ROUTE_NAMES } from '../config';
import type { RouteRecordNameGeneric, RouteRecordRaw, Router } from 'vue-router';
import { getLocalAccessToken } from '@/utils/permission';
import { userService } from '@/services/api';
import { nprogress } from './helpers';
import { storeToRefs } from 'pinia';

/** 登录认证页面:账号登录页、短信登录页、二维码登录页、忘记密码页、注册页... */
const authPages: RouteRecordNameGeneric[] = [
  ROUTE_NAMES.AUTH,
  ROUTE_NAMES.ACCOUNT_LOGIN,
  ROUTE_NAMES.SMS_LOGIN,
  ROUTE_NAMES.QR_LOGIN,
  ROUTE_NAMES.FORGOT_PASSWORD,
  ROUTE_NAMES.REGISTER,
];

/** 页面白名单:不需要登录也能访问的页面 */
const pageWhiteList: RouteRecordNameGeneric[] = [...authPages];

export function beforeEachGuard(router: Router) {
  router.beforeEach(async (to) => {
    /** 进度条:开始 */
    nprogress.start();

    const { name: RouteName } = to;

    const userStore = useUserStore();
    const { getAccessToken, getRoutesAddStatus, registerRoutes } = storeToRefs(userStore);
    const { setRoutesAddStatus, setUserInfo, logout } = userStore;

    /** 访问令牌 */
    const accessToken = getAccessToken.value || getLocalAccessToken();

    // 1.用户未登录(无 Token)
    if (!accessToken) {
      const isWhitePage = pageWhiteList.includes(RouteName);
      // 1.1 未登录,如果访问的是白名单中的页面,直接放行
      if (isWhitePage) return true;

      nprogress.done();

      // 1.2 未登录又不在白名单,则拦截并重定向到登录页
      return { name: ROUTE_NAMES.ACCOUNT_LOGIN };
    }

    // 如果已登录用户试图访问登录页,避免重复登录,要强制重定向到首页
    if (authPages.includes(RouteName)) {
      nprogress.done();
      return { name: ROUTE_NAMES.ROOT };
    }

    // 判断是否需要动态加载路由的操作
    if (!getRoutesAddStatus.value) {
      // isRoutesAdded 默认为 false(未持久化),在已经动态注册过时会设置为true,在页面刷新时会重置为 false
      try {
        // 1.拉取用户信息
        const userInfo = await userService.getUserInfo();

        // 2.将用户信息存入 Store
        setUserInfo(userInfo);

        // 3.动态注册路由,registerRoutes 是处理后的路由表
        registerRoutes.value.forEach((route) => {
          router.addRoute(route as unknown as RouteRecordRaw);
        });

        // 4.标记路由已添加
        setRoutesAddStatus(true);

        // 5.中断当前导航,重新进入守卫
        return { ...to, replace: true };
      } catch (error) {
        // 获取用户信息失败(如 Token 过期失效、网络异常)
        logout();
        nprogress.done();
        // 重定向回登录页,让用户重新登录
        return { name: ROUTE_NAMES.ACCOUNT_LOGIN };
      }
    }

    return true;
  });
}
before-each-guard.ts 找到全部代码

上面的代码已经给出了很详细的注释,从整体角度来讲,我们做了两件事:

  1. 处理一些情况,比如用户未登录、登录后访问登录页、白名单等情况
  2. 拉取用户信息,动态注册路由

路由守卫逻辑图

在路由守卫中“拉取用户信息”,一般来说,除了返回用户本身的信息外,还会给到权限路由信息、权限码信息,这里的数据结构可以跟后端进行约定

比如在 vue-clean-admin 中,返回的数据结构是这样的:

在 ApiFox 文档可以找到用户接口说明:ApiFox 文档 - 用户信息

后端路由结构的转化

在通过“拉取用户信息”拿到路由数据后,并不是直接注册到 Vue Router,而是需要进行处理转化,才能符合 Vue Router 定义的路由表结构,registerRoutes 就是处理后的路由表,处理后的类型定义可以参考 CustomRouteRecordRaw

处理什么内容呢?

比如,接口拿到的路由数据字段 component 是一个字符串路径,这是一个映射路径,映射到前端项目下的真实组件路径

路由表结构转换

实现路由结构转换的代码,我写在了 router/helpers.ts,最主要逻辑是 generateRoutes 函数:

/**
 * 生成符合 Vue Router 定义的路由表
 * @param routes 未转化的路由数据
 * @returns 符合结构的路由表
 */
export function generateRoutes(routes: PermissionRoute[]): CustomRouteRecordRaw[] {
  if (!routes.length) return [];
  return routes.map((route) => {
    const { path, name, redirect, type, meta } = route;
    const baseRoute: Omit<CustomRouteRecordRaw, 'children'> = {
      path,
      name,
      redirect,
      type,
      component: loadComponent(route),
      meta: {
        ...meta,
        // 是否在侧边栏菜单中隐藏
        hideMenu: route.meta?.hideMenu || false,
        // 是否在面包屑中隐藏
        hideBreadcrumb: route.meta?.hideBreadcrumb || false,
        // 当只有一个子菜单时,是否隐藏父级菜单直接显示子菜单内容
        hideParentIfSingleChild: route.meta?.hideParentIfSingleChild || false,
      },
    };

    // 是目录数据,设置重定向路径
    if (type === PermissionRouteTypeEnum.DIR) {
      baseRoute.redirect = redirect || getRedirectPath(route);
    }
    // 递归处理子路由
    const processedChildren =
      route.children && route.children.length ? generateRoutes(route.children) : undefined;

    return {
      ...baseRoute,
      ...(processedChildren ? { children: processedChildren } : {}),
    };
  });
}

经过 generateRoutes 处理的路由表,再 addRoute 到 Vue Router 中

侧边栏菜单的渲染

当路由守卫的逻辑走完后,就进入到首页,在首页中,我们会根据路由表(转换过的)来渲染侧边栏菜单

侧边栏菜单是拿 Element Plus 的 el-menu 组件来做的,我们封装了一个菜单组件,除了渲染路由数据外,也更方便自定义配置菜单属性(meta)来实现一些功能

封装不难,就是拿处理后的路由表循环渲染 menu-item,根据 meta 配置项来实现"是否隐藏菜单","当只有一个子菜单时,是否隐藏父级菜单直接显示子菜单内容"等

菜单组件封装

菜单组件的封装代码在 basic-menu 文件夹中

到这一步,已经实现了动态权限路由及侧边栏菜单的渲染,但还不算完

因为我们还不能自由定义菜单信息、角色信息、用户信息来实现权限控制,在下一篇文章来聊聊管理模块

了解更多

系列专栏地址:GitHub 博客 | 掘金专栏 | 思否专栏

实战项目:vue-clean-admin

交流讨论

文章如有错误或需要改进之处,欢迎指正

一、

前天,Kimi 突然发布了旗舰模型 K2.5,事先没有一点风声。

在国内,Kimi 是比较低调的公司,关注度相对不高。但是,它的产品并不弱。

半年前,K2 模型一鸣惊人,得到了很高的评价,公认属于全球第一梯队。所以,新版本 K2.5 出来以后,立刻上了新闻,在黑客新闻、推特等平台都是热门话题。

著名开发者 Simon Willion 当天就写了详细介绍

但是,这一次真正有趣的地方,不是模型本身,而是 Kimi 做了另一件事。

二、

这次的 K2.5 很强,各方面比 K2 都有进步。官方给出的评测跑分,基本都是全球前三位,甚至第一名(见发布说明)。

根据 LMArena(现改名为 arena.ai)的榜单,Kimi K2.5 的编码能力,是所有开源模型的第一,在总榜上仅次于 Claude 和 Gemini(下图)。

但是,最大的亮点其实不是模型,而是 Kimi 同时发布了一个基于这个模型的 Agent(智能体)。

也就是说,这次其实同时发布了两样东西:K2.5 模型和 K2.5 Agent。K2.5 是底层模型,K2.5 Agent 则是面向最终用户的一个网络应用。

我的印象中,这好像是第一次,大模型公司这么干。以前发布的都是模型本身,没见过谁把模型和 Agent 绑在一起发布的。

这么说吧,Kimi 走上了一体化的道路。

三、

大家知道,大模型是底层的处理引擎,Agent 是面向用户的上层应用。

它们的关系无非就是两种:分层开发和一体化。前者是大模型跟 agent 分开,各自开发;后者是做成一个整体一起开发。

前不久,被 Meta 公司高价收购的 Manus,就是分层开发的最好例子。

Manus 使用的模型是 Anthropic 公司的 Claude,它自己在其上开发一个独立的智能体,最终被收购。

它的成功鼓舞了许多人投入智能体的开发。因为模型的投入太大,不是谁都能搞的,而智能体的投入比较少,再小的开发者都能搞。

Kimi 这一次的尝试,则是朝着另一个方向迈出了一大步,把大模型和 Agent 合在了一起。毕竟,大模型公司自己来做这件事更方便,更有利于扩大市场份额、争取用户。

很难说,这两种做法哪一种更好。就像手机一样,苹果和安卓的外部应用,可以更好地满足用户需求,而自带的内置应用则能充分跟操作系统融合,用起来更顺滑。

四、

模型的测试已经很多了,下面我就来测一下,这次发布的 K2.5 Agent。

看得出来,Kimi 对 Agent 很重视,倾注了很大心血,发布说明的大部分篇幅介绍的都是 Agent 的功能。

其中有几个功能是比较常规的:

(1)Kimi Office Agent:专家级的 Word、Excel、PowerPoint 文件生成。

(2)Kimi Code:对标 Claude Code 的命令行工具,专门用于代码生成。

(3)长程操作:一次性完成最多1500步的操作,这显然在对标以多步骤操作闻名的 Manus。

我比较在意的是下面两个全新的功能,都是第一次看到,其他公司好像没有提过。

(4)视觉编程:通过模型的视觉能力,理解图片和视频,进而用于编程。只要上传设计稿和网页视频,就能把网页生成出来。

(5)蜂群功能(agent swarm):遇到复杂任务时,Agent 内部会自动调用最多100个 Agent,组成一个集群,并发执行任务,比如并发下载、并发生成等。

碍于篇幅,我就简单说一下,我的"视觉编程"测试结果。

五、

首先,打开 Kimi 官网,K2.5 已经上线了,能够直接使用(下图)。

注意,模型要切换到"智能体模式" K2.5 Agent。

我的第一个测试是动效生成,即上传一段动画效果的视频,让它来生成。下面是原始动画,是用 Lottie 库做的。

上传后,在网页输入提示词:

视频里面的动画效果,一模一样地在网页上还原出来

模型很快推断出,这是橘猫玩球的动画。然后,居然把动画每一帧都截图了,进行还原。

最终,它使用 Python 生成了 SVG 动画文件。

尾巴、眼球、小球滚动的动画效果,都正确还原出来了。可惜的是,主体的小猫是由多个 SVG 形状拼接而成,没法做到很像。

大家可以去这个网址,查看最终效果和网页代码。

六、

第二个测试是上传一段网站视频,让模型生成网站。

我在 B 站上,随便找了一个设计师网站的视频

大家可以去访问这个网站,看看原始网页的效果。

我把视频上传到模型,然后要求"把视频里面的网站还原出来"。

生成的结果(下图)完全超出了我的预期,还原度非常高,几乎可以直接上线。

大家可以去这个网址,查看生成的结果。

七、

经过简单测试,我的评价是,Kimi K2.5 Agent 的"视觉编程"不是噱头,确实有视觉理解能力,完全能够生成可用的结果。

目前看上去,Kimi 这次"模型 + Agent"的一体化尝试是成功的。一方面,强大的 Agent 发挥出了底层模型的能力,方便了用户使用;另一方面,模型通过 Agent 扩展了各种用例,可以吸引更多的用户,有利于自身的推广。

最后,在当下国际竞争的格局之中,一体化还有一个额外的优势。

Manus 依赖的是美国模型,最终不得不选择在海外注册公司,而 Kimi 的底层模型是自研的,而且开源,完全不存在卡脖子的风险。

(完)

https://www.v2ex.com/t/1188621 的后续

虽然证据很多,但这个作者死猪不怕开水烫。看了 reddit 才知道他是惯犯了,而且对版权问题很了解,可能有律师指点。作为个人开发者是没有精力和财力诉诸公堂的,除了道德谴责做不了什么。遇到这种人非常损伤开源热情。

我的笔记需求:轻量、支持同步、分享方便
刚进 2 站的时候有老友分享可以免费获取它的终身订阅 superthread 终身会员限时领取
一圈体验下来,还是挺不错的

优点:

  1. 轻量、反应快,操作流畅,排版美观
  2. 自带图床
  3. 跟随账号同步
  4. 支持多人协作
  5. 可以一键创建分享链接,比如这个 测试文档

缺点:

  1. 代码编辑器没有自动缩进
  2. 创建笔记的操作步骤有点多,体验有阻塞感

PixPin_2026-01-29_18-10-07

本着闲着也是闲着的态度,
开始琢磨看看能不能通过插件实现一键创建笔记的功能
发现官方有 api 文档 ,可以按需调接口实现部分功能
image

于是思路有了:

  • 注入一个“创建笔记”按钮
  • 点击触发“创建页面”请求
  • 接口调用成功后触发history.pushState切换到创建的笔记

codex 启动!

最后效果:
PixPin_2026-01-29_18-24-11


写在最后

我是没想到一个小小的功能还要这么折腾去实现,可能是我的使用方式不对吧facepalm

真实的海洋是动态且充满复杂相互作用的,藏在数据深处的洋流如何能可见、可理解?在制作“全球洋流”案例之前,我们面临的挑战是:如何将覆盖全球、深达5000米的洋流数据转化为实时、交互、直观的可视化体验?如何让包含23亿个数据值的全球洋流场在三维地球上“动”起来?
我们的目标很简单:让全球洋流的每一次流动,都能被看见、被分析、被应用

在三维数字地球表面,不计其数的发光粒子循着洋流轨迹奔腾穿梭——从北大西洋涡旋的回旋缠绕,到南极绕极流的绵延浩荡,再到深海底层流的隐秘流动,原本藏在数据深处的全球洋流,终以全维度、实时态的形式完整“显形”。

大规模粒子渲染,还原真实洋流的具象表达

接下来,我们将以技术实现者的视角,介绍这一个个让抽象的洋流数据转化为可直观感知的动态场景,从北极冰盖下的隐秘涡旋到赤道太平洋的大气海洋耦合,每一个“分镜头”背后,都是算法与物理规律的高度契合。

一、极地系统:冰封下的有序运动

1. 北极环流 • 波弗特涡旋

镜头聚焦北冰洋加拿大海盆,粒子以缓慢而稳定的顺时针轨迹旋转,形成直径约1000公里的巨大顺时针螺旋结构。粒子从边缘向中心缓慢汇聚,轨迹清晰显示涡旋的完整边界,精准还原北冰洋 波弗特涡旋 的特征——“几乎静止的旋转”的空间结构和时间持续性。

2.南极绕极流:全球海洋的“连接纽带”

镜头从南极上空俯视,粒子呈环绕南极的连续光环,环绕南极大陆无任何断裂以强劲、连续的轨迹,技术通过大范围坐标系适配,完美还原其连接三大洋的“传送带”功能。

二、边界流:海洋的“高速公路”

沿大陆边缘流动的洋流,受海陆分布和地形强烈影响。这类洋流在粒子渲染中表现为狭窄、高速、色彩鲜明的带状流动,粒子轨迹平直密集,流速梯度极大。

1.墨西哥湾流与黑潮:西边界强化流

北大西洋的墨西哥湾流和北太平洋的黑潮代表了“西边界强化”现象。粒子形成狭窄密集的高速丝带,紧贴大陆坡流动,流轴稳定。墨西哥湾流,全球最强的暖流之一,自美国佛罗里达海峡至纽芬兰岛的路径,粒子以高速密集轨迹流动,湾流呈现鲜明的橙红色,与周围蓝绿色冷水形成强烈对比。

黑潮与墨西哥湾流齐名的西边界强流,因水体透明度高、呈现深蓝色而得名。沿中国台湾东岸、日本群岛南岸延伸,靛蓝色粒子轨迹如“黑丝带”般清晰勾勒,精准还原其与周边海水的界限特征。

2.秘鲁、加那利与本格拉寒流:东边界的“冷输送带”

聚焦南美洲西岸秘鲁寒流、北大西洋东部加那利寒流、南大西洋东部本格拉寒流三大沿岸洋流。洋流沿大陆边缘流动的洋流,受海陆分布和地形强烈影响。粒子呈现宽缓的沿岸流动带,粒子速度较西边界流放缓,呈扩散特征。
加那利寒流通过大规模粒子精准勾勒分布与流动特征:数千粒子沿非洲西北部海岸呈狭长带状南下,轨迹紧贴大陆架边缘,密度由近岸向大洋方向逐步稀疏,清晰呈现其“贴岸流动、势力随离岸距离衰减”的分布规律,直观还原寒流沿程延伸特征。

本格拉寒流则通过粒子渲染形成鲜明呼应:近岸区域粒子呈现明显的“向上汇聚”轨迹,从深海层粒子向上层海域攀升,且上升流区域粒子密度显著高于周边,精准呈现其沿非洲西南海岸分布、近岸上升流旺盛的核心特征,粒子轨迹的垂直运动形态,更将这一寒流“深层营养盐向上输送”的关键属性具象化。

聚焦南美洲西岸秘鲁寒流,镜头贴近南美洲西海岸,粒子模拟向北流动的寒流及沿岸上升流,粒子在沿岸密集,离岸后扩散,展示了上升流将深层水带到表层的过程,清晰呈现其造就世界著名渔场的核心逻辑。

三、季风驱动流:北印度洋季风环流

作为全球唯一受大陆季风支配、流向季节性逆转的环流,镜头聚焦阿拉伯海与孟加拉湾核心区域:
•夏季模式(6-9月):粒子从索马里沿岸向东流动,在阿拉伯海形成顺时针大漩涡。索马里沿岸粒子呈现强烈的上升运动,垂向速度被放大100倍可视化
•冬季模式(12-2月):粒子流向完全逆转,形成逆时针环流。孟加拉湾粒子密集,反映冬季东北季风驱动的盆地尺度环流
•过渡期紊乱:季风转换期间(4-5月、10-11月),粒子运动杂乱,轨迹交叉频繁,反映流场的不稳定状态。

五、赤道流系:海洋的“多层立交”

赤道流系(含南/北赤道流、赤道潜流),镜头覆盖赤道太平洋上空及海表,粒子轨迹与大气环流箭头协同运动,生动呈现驱动厄尔尼诺现象的大气-海洋耦合机制——表层洋流的东西向流动与下层海水的上涌、下沉动作精准联动,让原本抽象的气候驱动因子变得具象可感,为科研人员研究厄尔尼诺现象提供了直观的动态工具。

六、跨洋副热带环流:大洋“漩涡”

涵盖南太平洋副热带环流、南印度洋副热带环流,大洋中部的大尺度闭合环流,构成全球海洋环流的基本单元环流边缘粒子密集,形成清晰的"粒子墙"。粒子呈现巨大涡旋结构,南印度洋洋流以宽阔的逆时针轨迹铺展,清晰区分厄加勒斯暖流(非洲东岸南下)与西澳大利亚寒流的流向差异;南太平洋环流则展现出宏大缓慢的逆时针旋转,粒子在环流中心稀疏分布,呼应其“海洋沙漠”(最清澈、生命最稀少区域)的特征,技术通过粒子密度智能分配,还原了洋流能量分布的真实状态。


这些生动的洋流“分镜头”,最终汇聚成一幅完整的全球海洋动力图景。所有可视化效果均基于真实数据与物理规律。下面我们将以技术实现者的视角,解析系统如何通过粒子追踪与动态渲染,精确再现全球经典洋流现象。

数据挑战:从静态数字到动态图像的数据壁垒

原始洋流数据藏在 NetCDF 格式的 “数据黑箱” 里,覆盖经度-180°至180°,纬度-80°至90°,垂直方向包含40个深度层。4500×4251×40 的原始分辨率意味着单文件就包含近 8 亿个数据点,每个网格点记录海水流速、流向的核心向量信息,单时间步数据量达 9.18 GB。
传统技术要么无法承载海量数据的实时运算,要么只能通过静态图表间接推测洋流动态,难以精准还原其复杂的三维运动特征,形成了“数据丰富但应用受限”的行业痛点。真正的突破需要从数据预处理到最终渲染的全流程重构。

1. 智能数据压缩:在保留与精简间寻找平衡

原始数据 4500×4251×40 的分辨率虽然精准,但计算量巨大。直接处理原始数据在实时交互场景中不可行。我们基于海洋动力学特征的智能抽稀算法,有针对性的进行特征保留,相当于 “把 4K 电影压缩成 1080P——既保留了关键洋流的细节特征,又让系统能在普通工作站上流畅运行。这种 “减法” 的智慧,让复杂的科研数据不再是实验室的专属,而是能被更多人轻松访问的动态可视化工具。

2. 三维瓦片地球的 “精准画布”:全球、全维度映射

全球洋流的经纬度跨度达 - 180°~180°、-80°~90°,要在三维瓦片地图上精准贴合,就像给地球 “穿衣服”—— 不仅要合身,还要能跟着地球自转、缩放自适应。我们的系统支持大范围坐标系动态适配,从南极冰盖到赤道暖流,每一道粒子轨迹都能与真实地理位置精准对齐。

3. GPU并行架构:粒子系统的实时演化

海量数字粒子同时在地球表面运动,每个粒子都要根据洋流向量实时计算轨迹,每秒要完成数百万次向量运算。我们用 GPU 并行计算技术,从数据解析、粒子更新到最终渲染,全流程在GPU上完成,每个 GPU 线程处理一个粒子,实现真正的数据级并行,粒子通过实例化渲染技术批量提交,结合深度测试与透明度混合,与三维地形瓦片无缝融合。

多模式可视化:从不同视角理解海洋

1. 地理模式:直观的空间认知

地理模式提供最符合认知的视角,与标准地图服务集成,叠加国界、国家名称等参考信息,用户可以自由旋转缩放,观察全球尺度环流格局,聚焦特定水层流动特征。

2 分析模式:深入的科学研究

为专业用户设计分析模式,支持多坐标系同时显示。天球坐标系从宇宙视角展示洋流与地球轨道关系;赤道面与黄道面叠加可视化,揭示太阳辐射与地球自转对环流的复合影响等,提供深入分析工具。

3 交互模式:灵活的动态理解

用户可通过参数面板,实时调节粒子生命周期、尺寸、尾迹长度等参数,对选择特定粒子或区域进行追踪,观察水团在数天至数月时间尺度上的运动路径,就像给洋流装了 “动态心电图”,细微的涡旋和暗流都能被精准捕捉。

在线体验地址:
https://www.tuguan.net/online-experience/code-sandbox4.html#向量图层_全球洋流图_stream
(请复制链接在浏览器中访问)

结语:可视化作为认知桥梁

从 23亿 数据点到指尖流动的光影,它构建了连接抽象数据与人类认知的桥梁,将复杂的海洋动力过程转化为可交互、可探索、可理解的视觉语言。
在气候变化深刻影响人类社会的今天,理解海洋这一地球系统关键组成部分变得尤为重要。我们的工作表明,通过创新的计算与可视化方法,曾经专属于超级计算机与领域专家的海洋环流知识,现在能够以直观形式服务于更广泛的科研、教育与应用领域。
从 NetCDF 数据的“黑箱”破解,到 GPU 实时运算的算力突破,再到全维度场景的精准呈现,本次案例印证了数字孪生、三维渲染技术在复杂向量场数据可视化中的技术优势。未来,我们将持续深耕技术创新,让更多“看不见”的自然规律,通过技术手段转化为可感知、可应用的价值成果,赋能更多行业实现数字化升级。