2026年3月

随着供热计量改革的推进,越来越多老旧小区需要对传统热量表进行智能化改造。传统人工抄表方式效率低、人工成本高,并且无法实时掌握设备运行状态。

通过 ​LoRaWAN 无线通信技术 + M-Bus 数据采集 + 物联网平台​,可以在不大规模改造原有管网的情况下,实现热量表远程自动抄表、数据统计分析以及设备运维管理。

本文介绍一套适用于老旧小区的 ​LoRaWAN 热量表无线抄表系统方案​,包括系统架构、设备选型、核心设备参数以及平台功能。


一、系统架构

1.1 网络拓扑

系统整体架构如下:

热量表 → KC22 M-Bus 采集器 → LoRaWAN 网关 → ThinkLink 物联网平台

KC22 负责采集多个热量表数据,并通过 LoRaWAN 无线网络上传至网关,再由网关转发到平台进行集中管理。


1.2 系统设备组成

设备类型型号功能说明
M-Bus 转 LoRaWAN 采集器KC22采集热量表数据并转换为 LoRaWAN 数据
LoRaWAN 室外网关GDO514-AGCN470-N-2接收 LoRaWAN 数据并转发至平台
物联网平台ThinkLink数据管理、监控、分析与应用

二、核心设备介绍

2.1 KC22 M-Bus 转 LoRaWAN 采集器

KC22 是一款面向低功耗抄表场景设计的 ​LoRaWAN M-Bus 数据采集终端​,适用于热量表、水表等计量设备的数据采集。

KC22 功能特点

功能说明
M-Bus 通信通过 M-Bus 接口连接热量表
协议支持支持 CJ/T188 热表通信协议
本地数据解析在设备端完成数据解析
LoRaWAN 上传将数据通过 LoRaWAN 发送到网关
EB 虚拟机内置 EdgeBus 虚拟机,支持 TypeScript 逻辑
远程参数配置可远程修改采集周期与表计地址
低功耗运行非供暖季自动进入休眠模式

KC22 技术参数

参数说明
支持表计数量1 台 KC22 最多可连接 4 块热量表
电池寿命6 小时采集一次,理论寿命 8 年以上
通信协议LoRaWAN / M-Bus
M-Bus 标准CJ/T188
M-Bus 通信速率2400bps
数据格式8 数据位
校验方式偶校验
停止位1
防护等级IP65

2.2 GDO514 LoRaWAN 室外网关

GDO51 系列是面向 大规模 LoRaWAN 网络建设 的室外工业级网关,适用于智慧城市、工业园区和能源管理场景。

网关主要功能

功能说明
LoRaWAN 通信接收终端设备数据
多信道接收支持多终端并发通信
远距离覆盖适合城市级部署
数据转发上传至物联网平台
远程维护支持远程管理与升级

网关技术参数

参数说明
型号GDO514-AGCN470-N-2
LoRa 信道4 信道
工作频段CN470
回传方式4G 蜂窝网络
安装方式室外安装
防护等级IP65 或更高

在典型部署环境下,​1 台网关可覆盖约 5 栋居民楼​。


三、ThinkLink 物联网平台功能

ThinkLink 是门思科技推出的 ​LoRaWAN 物联网管理平台​,适用于能源管理、智慧供热等应用场景。

平台不仅提供 LoRaWAN 网络管理功能,还支持数据分析、设备管理和第三方系统集成。


3.1 平台核心功能

功能模块功能说明
数据采集采集热量、流量、温度等数据
数据展示曲线图展示历史数据
数据统计按楼栋或单元统计数据
温度分析分析入水温度和回水温度
告警管理设备离线与温度异常告警
数据应用能耗统计与费用计算
大屏展示卡片式数据可视化
系统集成支持 MQTT 对接第三方系统

3.2 可采集数据类型

数据类型说明
累计热量总供热量
累计流量总流量
瞬时流量当前流量
瞬时热量当前热量
入水温度供水温度
回水温度回水温度

四、方案优势

优势说明
协议兼容性强KC22 支持多种热表协议
覆盖范围广LoRaWAN 适合小区级覆盖
部署施工简单只需接入 M-Bus 总线
运维成本低电池寿命长达多年
数据应用灵活支持能耗分析与费用计算

通过该方案,可以实现老旧小区热计量系统的 ​无线化、智能化和平台化管理​,为智慧供热建设提供可靠技术基础。

求车程 1-2h 、轻松不累、适合小朋友的踏春地,徒步吸氧、喂小动物、看花海、小众古村都可,避开人挤人的热门地!

春天如此美好,不想闲在家中,不负江南好春光 >_<

为什么两个div的margin会“手牵手”变成一个人?为什么给元素加了padding,它就像充气一样变大了?今天我们用快递包裹的比喻,一次搞懂CSS盒模型的所有坑。

前言

每个HTML元素在页面上都是一个“盒子”。浏览器渲染页面时,会计算每个盒子的尺寸和位置,这套规则就是盒模型。看似简单,但margin塌陷、box-sizing的选择等问题,经常让新手(甚至老手)抓狂。今天我们就来彻底拆解盒模型,让你不再为布局发愁。

一、盒模型的四兄弟:从里到外

想象你在寄一个快递,盒模型由内到外包括四部分:

  • content(内容):快递本身,比如你买的书。对应元素的文本、图片等内容。
  • padding(内边距):填充物,比如气泡膜,保护内容。它在边框内部,会扩大元素占位但不会影响与其他元素的距离。
  • border(边框):快递纸箱的厚度,包裹着内容和填充物。
  • margin(外边距):快递在车厢里与其他快递之间的间隙,用于隔开相邻元素。

在CSS中,一个元素的实际占位宽度 = width + padding-left/right + border-left/right + margin-left/right(标准盒模型下)。注意,背景色会延伸到padding区域,但不会到margin

二、两种盒模型:标准 vs 怪异(IE)

CSS有两种盒模型,区别在于width的计算范围不同。

  • 标准盒模型(content-box)width只包含内容宽度,padding和border额外增加。这是浏览器的默认行为。
  • 怪异盒模型(border-box)width包含内容、padding和border的总和。也就是说,你设的宽度就是最终占据的宽度(不含margin),padding和border会向内挤。

看个例子:

.box {
  width: 200px;
  padding: 20px;
  border: 5px solid black;
  margin: 10px;
}
  • 在标准盒模型下,盒子实际占宽 = 200 + 202 + 52 = 250px,再加左右margin就是270px。
  • 在怪异盒模型下,盒子内容区宽度 = 200 - 202 - 52 = 150px,但总占宽(不含margin)仍为200px。

用哪个好? 现代开发几乎都推荐border-box,因为它更符合直觉:你设多少,盒子占多少(不含margin)。很多框架(如Bootstrap)也重置了全局box-sizing

* {
  box-sizing: border-box;
}

三、margin塌陷:那些“手牵手”的兄弟

margin塌陷是CSS里最反直觉的现象之一,主要有三种情况。

1. 相邻兄弟元素的margin合并

两个块级兄弟元素,上面的margin-bottom和下面的margin-top会合并,取两者最大值,而不是相加。

<div style="margin-bottom: 20px;">上盒子</div>
<div style="margin-top: 30px;">下盒子</div>

最终两个盒子的间距是30px,不是50px。

生活比喻:两个人站在一起,一个人后退20cm,另一个后退30cm,最终他们之间的距离是30cm(远的那个决定了距离),而不是50cm。

2. 父子元素的margin传递

当父元素没有边框、padding、内容等隔开时,子元素的margin-top会“传递”给父元素,导致父元素一起下移。

<div class="parent" style="background: #f0f0f0;">
  <div class="child" style="margin-top: 30px;">子元素</div>
</div>

你希望子元素距离父元素顶部30px,但实际上父元素整体下移了30px,子元素紧贴在父元素顶部。

原因:父元素的第一个子元素的margin-top会与父元素的margin-top合并,如果父元素没有隔离(如border、padding、overflow等),就会发生这种“拖家带口”的现象。

3. 空块元素的margin折叠

一个空的块元素(没有内容、padding、border、高度),它的上下margin也会合并,最终取最大值。

<div style="margin-top: 20px; margin-bottom: 30px;"></div>
<div>下面的元素</div>

这个空盒子的上下margin合并为30px,导致与下面元素的实际间距是30px,而不是50px。

四、如何解决margin塌陷?

既然知道了坑,我们就有多种办法填平它。

1. 给父元素设置border或padding

.parent {
  border-top: 1px solid transparent;  /* 或者padding-top: 1px */
}

这就像在父子之间加了一道“隔离墙”,阻止margin传递。

2. 触发BFC(块级格式化上下文)

BFC可以看作一个独立的领地,内部元素不会影响外部。触发BFC的方法有:

  • overflow: hidden/auto/scroll
  • display: flow-root(推荐,无副作用)
  • display: inline-block
  • position: absolute/fixed
  • float: left/right

例如:

.parent {
  display: flow-root;  /* 创建BFC,阻止margin传递 */
}

3. 用flex或grid布局

现代布局方式天然避免了margin塌陷,因为flex/grid容器的子元素在布局时不再遵循常规流中的margin合并规则。

.parent {
  display: flex;
  flex-direction: column;
}

4. 兄弟之间不想合并怎么办?

  • 用padding代替margin(但要注意对盒子尺寸的影响)。
  • 用一个空元素或伪元素隔开,但不太优雅。
  • 改成flex/grid布局,或者给其中一个元素套一个触发BFC的父级。

五、padding和border:让元素“膨胀”的秘密

当你给一个元素增加padding或border,它的实际占位会变大(在标准盒模型下),这可能破坏布局。这也是为什么我们推荐border-box的原因。

例如,你要做一个宽度50%的卡片,内边距20px。如果用标准盒模型,你得手动计算:width: calc(50% - 40px)。如果用border-box,直接写width: 50%; padding: 20px;,完美。

小技巧:调试时可以在浏览器开发者工具中查看盒模型的可视化,Chrome的Computed面板会清晰展示各部分尺寸。

六、总结:盒模型避坑口诀

  • 盒有四部:内容、内边、边框、外边。
  • 尺寸计算有两种:标准向外扩,怪异向内缩。开发首选border-box
  • margin塌陷三场景:兄弟上下合,父子无墙则传递,空盒自身折。
  • 解决有妙招:加border/padding、BFC结界、flex/grid来帮忙。
  • padding和border会撑大盒子,border-box让你更省心。

掌握盒模型,你就掌握了CSS布局的“物理法则”。下次再遇到margin合并,你就能淡定地掏出BFC这道护身符。希望这篇文章对你有帮助,欢迎留言分享你遇到的盒模型趣事!


明日预告:Flexbox完全指南——从“一维战神”到“布局神器”,手把手教你玩转弹性盒子。

压缩

一本课本真的很重。

尤其是对我这样一个进入大学之后几乎全面转向电子文档的人来说,我沉迷于各类电子笔记,课本也会尽可能地选择电子书。我可以把整个学期的教材都装进电脑里,与此同时我的电脑没有增加一点点重量……

但是……我反思了。好吧,我就是把自己绩点的下降归咎于过度电子化。过度电子化某种意义上也是过度自动化。至少对我来说,我还不能把自己的思考外包给 AI。

抱着矫枉必须过正的思路,这个学期我购买了纸质课本,准备回到纸质笔记……所以才说一本课本真的很重。每次去图书馆集中复习的时候,我实际上只会使用这本大部头的二十分之一。而且(耸肩)当我在课堂上使用纸质课本尽了勾画义务,把自己的笔记整理成像模像样的 Typst 文档之后,我又开始希望自己手边有一个电子版课本了……

电子、纸质,两手都要抓。

问题

一个显然的事实是,有了实体课本,我可以不在 Anna's Archive 或者 Z-Library 里苦苦寻觅。或许是后现代社会对人们的影响,我没有在上面找到最新版的课本。我把这归咎于没有人上传,人们只会下载。尽管我也没有上传。

但我可以直接扫描——哇,伟大的 OCR 技术。前提是你能忍受满满国产味的扫描软件,或者意志坚定到使用电脑前置摄像头去一页页拍摄照片(用手机一页页拍摄本身似乎也没有好到哪去……),这个过程还是有一些折磨的。毕竟无论大模型们的理解能力多么优秀,我们、作为人类,还是要一张张拍照。

未来也许可以把一本书丢给 OpenClaw 让它们来做这件事。快点到来吧。

二维码

我们是怎么扫码的?

抱歉,这句话没有任何流行文化的谐音梗,而是我的室友向我描述「转电子书」这个过程时提出的一个愿景。我们现在是直接打开手机「扫码」的,而不是把二维码拍下来然后再去处理——当然我们可以那么做,但几乎没有人会这样。

如果我们可以拍摄「翻页的视频」呢?

我们打开书和手机录像,一只手只要有意识地翻页,在恰到好处的时候停顿一下就可以了……可以,而且结果更好。

脚本

看到这里的朋友,一定要把我之前的文章看一看,拜托了。我真的很想让更多人知道脚本对于自动化和提高效率的帮助。

总之,我(更准确地说是 Codex)编写了一个脚本 kvpaper.sh

  1. 调用了 Kimi 的 API。因为我发现现在所有目光都聚焦于编程能力,在「多模态很强」几乎被当成理所应当的前提下,Kimi 2.5 是实打实地把视频理解做强了,而且我敢说是一骑绝尘。
  2. 让它识别视频内容,然后输出Typst格式。我选择 Typst,是因为我想尽可能保留排版,让我的扫描结果像真的电子书,而不是传统扫描软件导出的那种「照片合集」。当然,也因为我自己使用 Typst。你完全可以换成 LaTeX。

你可以通过这个链接看看我的脚本。

使用这个脚本,只需要在 shell 环境里声明 MOONSHOT_API_KEY,当然还要有 Typst,然后运行 ./kvpaper.sh video.mp4,就可以生成一个以时间戳命名的 PDF 文件。

以下是其他信息:

  1. 识别过程会跳过图表。我尝试了类似 MCP 的东西,调用 Excalidraw 和 Typst 包里那些强大的绘图工具,结果对于 AI 在这方面的表现都非常不满意。
  2. 大概半分钟可以拍摄 10 页内容,脚本运行需要 4 分钟,token 消耗经过不完全测试大概是三毛钱。
  3. 由于 AI 可能不熟悉 Typst 语法,如果语法错误 PDF 无法编译成功,脚本会返回报错信息。你可以修改脚本添加一个 while 循环,再次调用 Kimi 修改直到成功,或者在Claude Code、Codex或者 Pi-agent 之类的工具里运行这个脚本,让 Agent 处理错误信息修改 Typst 文件。

运行结果非常漂亮,具有表格、脚注、页码,真的已经像一本电子书了。

还有呢?

首先我要说,我不会因为我现在有如此便利的工具就去倒卖电子书。其次,这个过程给了我许多启示:

  1. 听听非专业人士的建议。我们不能一直只顾着捣鼓自己的玩具。有时候真正推进事情的,反而是一个不懂技术的人提出的、足够直觉的想法。
  2. 不要有偏见。我本来并不喜欢 Kimi,总觉得它营销过多……但是你看现在呢,我购买了它们的会员。
  3. 脚本非常强大,真的非常强大。数字世界里原本互不相干的东西,可以通过脚本联系起来,也可以通过脚本被自动化。

更重要的是,这件事又一次提醒了我,我真正感兴趣的也许不是「如何把纸质书变成电子书」这件事本身,而是「我们到底应该把哪一步交给机器」。

我不想把阅读、理解、做笔记这些事情外包出去,所以我这个学期重新买了纸质课本;但我也确实不想在需要复习某十页内容的时候,背着整本书到处跑,更不想花一个晚上做重复、机械、毫无审美的扫描劳动。于是最后的结果就变成了这样:保留纸质书、保留勾画、保留思考,把「翻页录像、识别、排版」这种事情交给脚本和模型。

这好像比「全面电子化」更好一点,也比「彻底回归纸笔」更好一点。至少对现在的我来说是这样。

如果说这篇文章有什么真正想讲的东西,那大概不是 Kimi,不是 Typst,甚至也不是 OCR,而是有些看起来很笨重、很麻烦的问题,换一个动作去描述之后,突然就可以被解决了。不是一页页拍照,而是拍一段翻页的视频。这个想法确实很有趣,我也确实很喜欢。

鸣谢

本文灵感来自我的室友。

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

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

    事情是这样的,前天开始试玩小龙虾,警惕性很高。我抱着试一试心态,考虑安全性打算使用云服务器+钉钉训练着看一下。
    昨天使用百度云+阿里百炼部署好后,完了一天到晚上 8 点都正常,离开本地电脑后到 11 点左右发小龙虾不敲键盘,以为是 token 问题也就没管,今天一早到公司天塌了!
    https://i.imgant.com/v2/KMF2ouR.jpeg
    https://i.imgant.com/v2/XK2PjWx.jpeg

    个人的和公司的资料全完蛋,好在有年前的备份,哎

    回想昨天的操作,有两处可疑。
    1 )通过小龙虾生成了图片在云服务器后下载到了本地电脑
    2 )升级了 mumu 模拟器后使用了远程超控手机

    想问问大佬们怎么看?

    今年春晚影响最深的就是机器人舞蹈,其他基本都是老一套,没啥新意。AI(人工智能)正在以惊人的速度席卷着各行各业,其影响深远且广泛。未来几年AI将会像计算机一样快速普及,面对这一历史性的第一波红利,你是否已准备好把握机遇,引领未来呢!

    不经意间我们发现身边AI无处不在,在AGI(通用人工智能)时代,那些既精通AI技术、又具备编程能力和业务洞察力的复合型人才将成为最宝贵的资源。为此,IT营大地老师2026年AI大模型 Prompt工程 Langchain AI原生应用开发 Milvus AnythingLLM Dify AI实战重磅来袭,基础课程均可直接免费学习,相信对正在学习AI大模型的同学会有很大的帮助。

    2026年AI大模型从入门到精通系列教程网盘下载地址:

    https://bbs.itying.com/topic/67a2d88055a429007d7ceba0

    这门课的目标,就是培养「AI 全栈」人才。通过这门课程的学习,我们能够全面掌握Prompt Engineering(Prompt提示词工程)、AI编程、AI大模型应用开发、AI大模型后端开发、AI大模型微调、AI大模型数据训练、AI大模型知识库管理、AI大模型数据管理、AI大模型评估、搭建自己的AI私有大模型等AI技术栈,同时培养编程能力和业务洞察力,以成为AGI(通用人工智能)时代所需的 全能型AI工程师。

    image.png

    不多说废话了,下面直接将老师所讲的内容做一个精简的介绍吧,AI大模型 Prompt工程 Langchain AI原生应用开发 Milvus AnythingLLM Dify AI实战主要包括Prompt提示词工程、基于大模型API的应用开发模式、基于大模型的微调应用开发模式、本地部署 微调大模型、Dify、仿京东《京言》AI项目实战这几个板块的内容。学习这些内容需具备Nodejs /Python/Go/java等任何一门后端编程基础,没有后端编程基础的话可能学不会的哈,不建议学,不过前面的基础课是不需要任何编程基础的,任何人都可以学习,比如如何制作出色的PPT,如何包装优化简历如何生成海报工作报表等,大地老师都有手把手详细的讲解,详细内容见下面的目录展示。

    Prompt提示词工程:Prompt提示词工程师的薪资在15-35k之间,教程涉及Prompt生成文技巧、Prompt生成图技巧、Prompt优化、Prompt模版、Prompt评估、Prompt微调、AI编程等。本章节覆盖了Prompt提示词在多个领域的应用,从热点追踪、活动策划、文章撰写及实体抽取,到内容解释与优化、评论与说说创作,再到结合AI助手生成短视频;同时,Prompt提示词还可以快速辅助完成周报、简历、邮件及情书等文档撰写,并有效整理文档资料。针对运营编辑岗位,课程提供了文案支持、内容审核与舆情分析、数据分析及商业计划书撰写的Prompt技巧。此外,还深入讲解了利用Prompt生成PPT、思维导图,以及借助Mermaid.js生成图表、流程图、序列图、时间线图的方法。在编程领域,课程涵盖了AI编写前端、Flutter、嵌入式及Python、Go、Node.js等多种语言代码的Prompt应用,并扩展到Nodejs、Golang、Python结合MYSQL的Prompt爬虫系统开发。最后,课程还传授了AI编程Prompt技巧,包括接口文档生成、代码解释、代码与注释生成、语法检查、服务器命令解析、错误排查咨询,以及简历、报告、周报等文档撰写的Prompt高效方法,助力学员在任何场景中能游刃有余的使用Prompt Engineering。

    基于大模型API的应用开发模式:详细讲解了如何通过HTTPS请求及OpenAI调用官方SDK,还讲了Langchain调用ChatGLM、讯飞星火、阿里通义千问、百度千帆等大模型。在此过程中,深入探讨了接口调用的注意事项、参数微调技巧以及Prompt提示词的使用策略。随后,课程讲解了实现单轮、多轮及流式对话的方法,并深入剖析了Function Call的原理与应用场景,通过nodejs、Python、Go等后端语言实践了Function Call的具体实现。此外,利用AI编程技术(特别是Prompt提示词的设计),引导学员分别使用nodejs、Python、Go这些后端语言,从零构建了‘康言智解医药问答AI项目’实战。该项目类似于ChatGPT和文心一言,不仅能够解答医学方面的专业知识,还具备AI问答助手的功能。最后,课程以实战形式展示了AI合同审查项目,教授了如何使用Nodejs、Python、Go语言读取Word合同内容,结合AI大模型与Prompt技术,成功实现了合同审查功能。还讲了向量Embeddings、向量数据库Milvus 、搜索引擎实战、图搜图实战、LangChain以及LangChain+Milvus 实现RAG企业知识库系统,最后还讲了语音识别、语音合成、文生图、虚拟模特 鞋靴模特 AI试衣 创意海报生成等。

    基于大模型的微调应用开发模式:讲了大模型的微调、数据投喂训练大模型、Agent+知识库(智能体应用)、工作流应用、智能体编排应用、工作流应用结合数据库、工作流结合智能体实现了AI旅游攻略实战。通过智能体编排应用结合后端API以及数据库实现了 仿京东《京言》AI实战。课程还涉及多个大模型应用开发的示例,旨在适应不同垂直领域应用的开发 、低代码快速构建RAG应用、知识库检索系统、导购系统、商品推荐系统。

    本地部署 微调大模型:分别在Win Macos Liunx通过Ollama部署DeepSeek以及Qwen等大模型、调用本地大模型API开发应用、一站式解决DeepSeek与200多个大模型调用的难题、 Chatbox+DeepSeep+Qwen2.5打造超级AI助手、分别在Win Macos Liunx上面部署AnythingLLM、AnythingLLM+DeepSeek知识库 、以及Api远程调用AnythingLLM、本地大模型的数据投喂、本地大模型调优、开源的 LLM 应用开发平台Dify的部署(linux win macos)、借助Dify微调大模型、借助Dify搭建公司内部知识库、RAG应用、Agent智能体、工作流应用,以及Dify应用的远程调用、微调模型、快速部署AI应用、快速在自己网站集成AI应用、快速创建一个Sql转换助手、借助知识库给大模型投喂数据 、爬取web数据实现RAG知识库、微调私有RAG大模型、Dify调用远程知识库、Dify知识库高级操作、Dify通过API调用远程Milvues数据投喂知识给AI大模型、本地Agent(智能体应用)+插件、本地Agent+自定义插件、本地Agent调用本地后端接口、 LLM Agent+数据库 实现数据统计 挖掘、后端程序通过接口调用Dify应用、接口调用Dify多轮对话、Vue_Ai_Chat结合Dify 、Dify 工作流应用 、开始 结束 大模型 知识库 问题分类器节点、上传解析文档 上传分析图片、参数提取器 Http请求 以及工作流配置Agent、迭代节点实现长篇书籍创作AI助手 、日志分析、数据标注 本地部署微调大模型教程。

    迫于农村礼簿每次都要拍照保存到手机查看,遂突发心思用 AI 自动生成一个小程序,没想到还真可以。

    默认采用本地存储模式,因此不存储云端,所以隐私问题可以放心,缺点是删除小程序数据就没了,可以导出 Excel 放在自己的文件里面。

    录入采用大模型来识别,我试用了一下,准确率起码有个 90%吧。

    还做了个官网:

    https://bsyj-company.github.io/book/




    先赠送激活码 30 个,点击[我的]-[成为 VIP]-[数据激活码]

    EPCL-1V6X-IBCP-S76O
    JT6W-19SF-JEGN-XDE8
    YQU3-QSZF-GXF1-4LRH
    VSBP-1BWH-KP7Q-C8Z6
    SLIV-LNIB-AKSJ-JO95
    LG8G-IJ90-2R0G-XIT6
    3T1Z-A60R-1DWF-9RQ4
    2DL4-MG7Q-GM5T-UMND
    DDQ6-CQQD-GWKC-8QVW
    K7MH-7K1P-RA9O-KH2D
    BBD3-WKBM-EUNE-9M7K
    F6TV-XVSW-QGBX-X46L
    WU4A-LBWW-MVDT-MP0A
    MF45-3I68-FG87-JZJR
    356B-NG3B-HRCP-7DMF
    WY91-HHNW-6YSJ-W4VG
    J2VD-WNWF-6IO5-RVK2
    I440-7GUB-GXMP-WAV5
    2N3W-KJ64-L75E-C8FH
    3ID2-QHIL-5YPM-A6Z7
    7GHB-IQY9-WEJ7-9JLK
    84VE-EYDB-P00Y-JS4B
    1LHS-E4HY-RKSH-MLYJ
    E50D-HA1K-QCOW-3YN4
    UZPV-NODX-AZE9-XTHL
    QOW2-7ALM-RFW0-RMWK
    9LKY-5HPM-XS5K-ZNIY
    DOJ1-A6FP-SY65-1W7W
    O4PS-IBIT-YSY4-1QWN
    4C73-2JNN-8N87-B7ZC

    在工业设计与工程研发领域,SolidWorks、CAD、SketchUp等3D设计软件早已成为设计师们的常用工具。但随着项目复杂度提升、跨地域协作成为常态,软件使用的效率瓶颈与协同壁垒日益凸显。如何提升3D设计软件的实操效率,破解跨团队协同难题,也成为行业亟待解决的核心诉求。

    点量三维云设计立足3D设计行业实际需求,不重构软件原有使用逻辑,从算力调度、数据管理、协同设计等维度实现技术突破,在保留设计师操作习惯的基础上破解行业痛点,为企业提供高效、安全、低成本的一体化云端设计解决方案,全面赋能SolidWorks等3D设计全流程。

    一、算力调度:突破硬件桎梏,实现轻量化操作

    行业痛点:SolidWorks、CAD等3D设计软件对本地硬件的 CPU、显卡等算力要求严苛,企业为保障设计效率,需为设计团队配备高端图形工作站,不仅前期采购投入成本高昂,分散的工位部署模式也让硬件设备的集中运维、统一升级与批量管理面临诸多实操困难。

    1、“算力”+“显示”分离架构
    点量三维云设计创新采用“算力”与”显示”分离的技术架构,将SolidWorks等3D设计软件统一部署于云端高性能计算节点,充分承载复杂模型建模和交互等高强度算力需求。依托自研低延迟传输协议,带来和本地操作一致的低延迟、沉浸式的交互体验。

    2、实现轻量化高效设计
    该技术模式下,设计操作的全量算力均由云端专业节点承载,本地终端仅负责指令输入与画面呈现,普通办公终端、平板、手机等轻量化设备亦可流畅运行3D模型。点量三维云设计突破3D设计硬件配置壁垒,大幅降低企业硬件采购与长期运维成本,真正实现设计工作的轻量化与移动化。

    二、数据管理:图纸全程上云,筑牢核心资产安全防线

    行业痛点:设计图纸与模型文件是设计企业的核心研发资产,传统本地存储模式下,文件分散于各终端设备,易因硬件故障、人员交接疏漏引发不可逆的数据流失,且外网传输、文件拷贝等操作存在较高泄密风险,企业数据安全管控面临严峻挑战。

    1、云端图纸安全管理,核心数据上云
    点量三维云设计倡导“图纸不落地”的工作模式,为企业搭建专属云端数据存储中心,SolidWorks 等3D软件的源文件、设计参数等核心数据均统一存储于云端安全服务器,设计师本地仅为云端画面的实时交互操作,核心设计数据全程未落地本地终端。

    2、全场景安全防护,资产规范化管控
    跨终端、公网等办公场景下,设计数据仍留存于企业专属云端数据中心,从源头规避数据丢失与泄密风险,提升企业核心研发资产管理的安全性与高效性。

    三、协同设计:实现实时交互,升级团队协作效率

    行业痛点:传统3D设计跨团队、跨地域协作中,方案评审与设计修改依赖文件传载等方式,流程冗杂易引发版本混乱,既降低协作效率,还可能导致研发返工、增加企业研发成本。

    1、打造桌面级实时协作空间
    点量三维云设计将 SolidWorks 等单机设计软件升级为云端实时协作空间,打造专业桌面级协同体验,适配全流程设计协作需求。负责人可一键发起云端协作会议,邀请相关方进入同一云端设计桌面,参会者实时查看设计操作画面,实现设计内容所见即所得,无需文件传输设计思路。

    2、实现多场景高效协同操作
    协作支持主控/旁观模式灵活切换,参会者按需获取操作权限,可云端完成模型修改、方案演示等操作,适配评审、培训等多场景。平台集成私有化沟通工具,实现设计与沟通无缝衔接,无需切换应用;同时支持云地文件单/双向同步,打通数据流,云端协作体验与本地高度一致。

    四、细节适配:贴合设计习惯,兼顾国产化技术需求

    1、还原双屏操作专业场景
    平台搭载双屏扩展功能,精准还原本地工作站双屏操作模式,贴合设计师操作习惯,保障云端设计效率与本地一致。

    2、实现全终端无插件兼容
    全面适配Windows、Mac等系统,无需安装插件,无论是手机、平板还是Pad等终端,打开浏览器即可接入云端设计环境,降低使用门槛,提升操作便捷性与场景适配性。

    3、完成国产信创全链路适配
    深度响应国产化转型需求,全链路兼容鲲鹏、海光等国产 CPU,麒麟、统信 UOS等国产系统及摩尔线程、砺算等国产显卡,保障3D模型流畅推流、稳定运行,提供自主可控的云端 3D 设计解决方案。

    点量三维云设计并未重构3D设计软件使用逻辑,而是从算力、数据、协作核心维度优化设计全流程,助力企业突破传统设计模式桎梏,实现降本、提效、保安全的多重目标,同时让设计师摆脱硬件、地域、协作限制,聚焦创意设计与研发创新,充分释放3D设计核心价值。

    云端设计,协同无界 | 点量三维云设计,让创作更自由

    AI 编程工具如今如雨后春笋一般,而且都变得好用了。不过,一般还是建议使用 IDE 或 VS Code 插件。

    IDE 可选:

    以上均支持 Windows 和 macOS,目前只有 Qoder 支持 Linux。注意区分国内版与海外版,差别主要在于模型与费用。

    VS Code 插件可选:

    • Copilot
    • Cline
    • Lingma
    • Windsurf
    • ...

    所有工具的对比与选择,您都可以进一步咨询 AI。

    而本文要介绍的是另一种玩法:CLI 代理 —— CLIProxyAPI。

    介绍

    CLIProxyAPI

    CLIProxyAPI 是一个为 CLI 提供 OpenAI/Gemini/Claude/Codex 兼容 API 接口的代理服务器。

    您可以使用本地或多账户的 CLI 方式,通过任何与 OpenAI/Gemini/Claude 兼容的客户端和 SDK 进行访问。

    也就是,通过 CLIProxyAPI 可以把 Gemini/Claude/Codex 等多个模型,都通过统一的 API 对外开放。

    之后,在编程工具或 VS Code 插件里把 OpenAI API 改成自己的代理地址就可以用了。或者,用脚本访问服务。

    另外,其杀手级功能则是多账号负载均衡与高可用、团队共享与远程访问。

    • 多账号轮询:可以登录多个账号,代理会自动轮询使用,突破单账号的速率限制
    • 自动故障转移:某个账号超限或报错,自动切换到下一个可用账号
    • 权重分配:可以为不同账号设置权重(比如付费账号权重高,免费账号权重低)

    OpenCode

    那有了 CLIProxyAPI 代理服务,怎么用起来呢?本文将结合 OpenCode 来打造自己的 AI 编程助手。

    OpenCode 是一个开源的 AI 编码代理。它提供终端界面、桌面应用和 IDE 扩展等多种使用方式。

    其通过 CLIProxyAPI 提供的统一 API 入口,就可以把 Gemini/Claude/Codex 等多个模型都用起来。

    那我们开始吧 ☺️

    开始

    以下是 Linux 安装步骤,建议依照官方手册进行。

    CLIProxyAPI

    一键安装,

    # https://help.router-for.me/cn/introduction/quick-start.html
    curl -fsSL https://raw.githubusercontent.com/brokechubb/cliproxyapi-installer/refs/heads/master/cliproxyapi-installer | bash
    Go 代码 🤔,有环境直接源码编译,再 systemd 管理服务。

    配置使用,

    $ cd ~/cliproxyapi/
    
    # 使用配置
    #  auth-dir 指定凭证目录,用于多账户
    #  remote-management 管理页面设定,密钥加一下
    $ nano config.yaml
    
    # Codex OAuth 登录
    $ ./cli-proxy-api --codex-login
    ...
    Codex authentication successful
    Saving credentials to /home/john/.cli-proxy-api/codex-*.json
    Authentication saved to /home/john/.cli-proxy-api/codex-*.json
    Codex authentication successful!
    
    # 启动服务
    $ ./cli-proxy-api
    ...
    API server started successfully on: :8317
    
    # 常驻服务
    $ systemctl --user start cliproxyapi.service
    
    # 访问服务
    $ curl http://localhost:8317/
    {"endpoints":["POST /v1/chat/completions","POST /v1/completions","GET /v1/models"],"message":"CLI Proxy API Server"}
    
    # 管理界面
    $ open http://localhost:8317/management.html

    管理界面,

    OpenCode

    一键安装,

    # https://opencode.ai/docs/zh-cn/
    curl -fsSL https://opencode.ai/install | bash
    # or
    npm i -g opencode-ai@latest
    $ opencode -v
    1.2.24

    配置使用,

    # 设置环境变量(快速开始)
    cat <<-EOF >> ~/.bashrc
    # openai
    export OPENAI_BASE_URL="http://localhost:8317/v1"
    export OPENAI_API_KEY="sk-gocoding"
    EOF
    
    printenv | grep OPENAI
    
    # 使用全局配置(规范方式)
    nano ~/.config/opencode/opencode.json
    
    # 启动 OpenCode
    opencode
    
    # 启动 OpenCode,指定工程目录
    mkdir -p ~/Codes/hello-code
    opencode ~/Codes/hello-code

    运行界面,

    编写代码,

    更多玩意,

    结语

    CLIProxyAPI + OpenCode 准备好了,那就愉快地写代码吧 👾

    在网页上给苹果开发者账号续费,一直报“503 Service Temporarily Unavailable”错误。

    然后联系了客服,告知“建议你使用 Apple Developer App 续订你的账户。”但是“通过 App Developer App 续订后无法再回到网页续订方式”,且“不能开具发票”。

    另外:“若你对此有疑问,或仍然希望通过网页续订,请告知我们。”

    好吧,那我告知希望通过“网页续订”,然后邮件回复“此前你报告的网页端无法完成续费的问题我们的工程团队正在进行调查中。当有任何新进展或可以提供更多信息时,我们将通知你。”

    然后 n 天过去了。开发者账号马上要过期了。但是网页依然无法续费。苹果真的不想大家在网页上续费?

    大家都知道 Anthropic 家的模型,尤其是 Opus 的实力,在编码的实际体验中是最强的,没有之一。即使拿 gemini3.1pro 和 gpt5.3codex 比,这俩也是比不上它一点。

    除了编码,大家跑龙虾也能感觉出来差别很大,尤其是多步骤工具链的复杂任务只有 opus 能完美胜任,opus 画的 svg 动效流程图也是比新的 gemini 强很多。

    我的问题是,公开互联网训练数据大家都是一样的,各家的 RL 也差不离(这点应该没什么技术壁垒),经济实力上 OpenAI/Google 应该更有优势,那为什么训练出来的大模型只有 opus 家最强?

    是 Anthropic 家训练更强调代码能力,侧重点不同导致的吗?

    面试官问:"现在都 2026 年了,你们新开的项目,架构是不是都直接上 Spring Cloud Alibaba 或者 K8s 微服务了?"

    很多人会眼前一亮,觉得机会来了:"那必须的!微服务解耦、高内聚低耦合、技术栈灵活、容错性强,单体架构那种'大泥球'早该进博物馆了。"

    如果你这么回答,面试官可能会微微一笑,然后在心里给你打个"架构虚浮"的标签。

    这时候面试官通常会抛出一连串"死亡追问":

    "那你们团队有几个人?如果订单服务扣款成功,但库存服务扣减失败了,你的分布式事务怎么处理?Seata 还是 TCC?链路追踪用的什么?服务雪崩了怎么熔断?"

    这一问,往往能把那些只看过几篇公众号文章、没踩过坑的候选人问得哑口无言。

    这篇文章就来聊聊:为什么被奉为圭臬的微服务架构,在很多初创公司和新项目里,往往是"催命符",而大佬们反而建议先写"老土"的单体?

    看懂本质差异

    在撕逼之前,先用一个通俗的例子对齐一下概念。

    单体架构(Monolith)(类似于"夫妻店"):

    1. 模式:老板娘负责点菜、收银、端盘子,老板负责买菜、切菜、炒菜。
    2. 沟通:老板娘喊一声:"3号桌不要葱!" 老板马上听到。沟通成本几乎为零。
    3. 调整:今天生意不好想改卖面条?两口子商量一下,明天就能换招牌。迭代极快。
    4. 风险:老板生病了,店就得关门(单点故障)。

    微服务架构(Microservices)(类似于"跨国连锁餐饮集团"):

    1. 模式:有专门的"收银子公司"、"采购子公司"、"烹饪子公司"、"物流子公司"。
    2. 沟通:收银员不能直接对厨师喊话,必须发工单(RPC调用/消息队列)。收银系统挂了,厨师还在炒菜,最后菜端不上去(分布式一致性问题)。
    3. 调整:想改菜单?得开十几个跨部门会议,协调所有子公司的系统接口。
    4. 优势:由于分工明确,可以无限开分店(水平扩展),厨师不够了就招厨师,不用招收银员。

    微服务的隐形陷阱:没有微服务的命,得了微服务的病

    回到开头的面试题。对于初创公司或新项目(通常 3-10 个后端开发),直接上微服务会有什么后果?

    1. 分布式事务的噩梦

    在单体应用里,保证数据一致性只需要一个 @Transactional 注解。数据库的 ACID 特性会帮你搞定一切:要么全成功,要么全回滚。

    到了微服务,数据分散在不同的数据库里。

    用户下单了,订单服务写库成功,调用库存服务扣减库存——网络超时了

    你是重试?还是回滚?

    为了解决这个问题,你引入了 Seata、或者手写 TCC(Try-Confirm-Cancel)、或者搞可靠消息最终一致性。

    结果:业务代码没写多少,全在写为了保证数据一致性的"胶水代码"。开发效率直接腰斩。

    2. 运维复杂度指数级上升 (DevOps Hell)

    单体应用部署很简单:打一个 jar 包,丢到服务器上,java -jar 启动,完事。

    微服务呢?

    你需要部署注册中心(Nacos/Eureka)、配置中心、网关(Gateway)、熔断器(Sentinel)、链路追踪(SkyWalking)、日志聚合(ELK)、Prometheus 监控...

    打脸时刻:你团队一共就 5 个后端,结果 2 个人在搞基建,1 个人在查网络不通的问题,只有 2 个人在写业务。

    老板问:"为什么加个简单的功能要两周?"

    你答:"因为我们要调整三个服务的接口,还要联调..."

    3. 调试与排查的"侦探游戏"

    单体应用报错了,打开日志文件,搜索 Exception,堆栈信息一目了然。

    微服务环境下,前端报错"系统异常"。

    你得先去网关查日志,发现是调用 A 服务超时;

    去 A 服务查,发现是 B 服务报错;

    去 B 服务查,发现是数据库死锁。

    如果没有完善的链路追踪系统,排查一个 Bug 能要把人逼疯。以前是看日志,现在是"分布式破案"。

    那什么时候该用微服务?

    Martin Fowler(微服务概念的提出者)自己都说过:"Don't start with a monolith is usually wrong."(一开始就不写单体通常是错的。)

    微服务不是为了"尝鲜",而是为了解决规模带来的问题:

    1. 团队规模太大:几十上百人维护一个代码库,光是合并代码冲突就得花半天,这时候需要拆分服务,让小团队独立维护。
    2. 业务复杂度过高:单体应用启动一次要 10 分钟,改一行代码影响全局,这时候必须拆。
    3. 扩展性需求差异大:比如秒杀模块需要抗 10 万 QPS,而后台管理模块只有 10 QPS。拆分后可以单独给秒杀模块加机器。

    对于初创公司,活下去才是第一要务。快速迭代、验证商业模式,单体架构是无敌的。

    面试怎么答?

    简洁版(30 秒):

    微服务虽然解决了扩展性和耦合问题,但引入了巨大的分布式复杂性(如分布式事务、网络延迟、运维成本)。

    对于初创团队或从 0 到 1 的项目,业务模型还没定型,需要极速迭代。单体架构开发效率最高、部署最快、调试最简单。过早优化是万恶之源,应该先用设计良好的模块化单体(Modular Monolith)快速交付,等业务量和团队规模上来了,再逐步拆分为微服务。

    进阶版(1 分钟,带架构演进视角):

    架构是为业务服务的,没有最好的架构,只有最合适的架构。

    单体的本质是"聚合" :利用进程内调用(函数调用)的零延迟和数据库事务的 ACID 特性,以最低成本解决业务问题。适合 0-1 阶段验证商业模式。

    微服务的本质是"拆分" :通过网络调用和最终一致性(BASE),牺牲部分开发效率和实时性,换取系统的水平扩展能力和团队的独立性。适合 1-100 阶段解决增长瓶颈。

    大佬建议先写单体,是因为"单体是微服务的最佳前身"。如果我们在单体里连模块化(Module)都做不好,代码耦合严重,那拆分成微服务只会变成"分布式大泥球"(Distributed Big Ball of Mud),让系统死得更快。

    最后总结一句:
    不要为了"简历好看"而强上微服务。能在单体里把代码写得清晰、模块解耦的人,才是真正的架构高手。
    没有微服务的命(基础设施、运维能力、团队规模),却得了微服务的病(分布式复杂性),是很多项目失败的根源。

    ⚡️ 别把时间浪费在低效复习上

    很多人复习抓不住重点。作为过来人,我分析了100+份大厂面试记录,将 Go/Java/AI 的核心考察点、高频题、易错点 浓缩进了一份 PDF。

    不搞虚的,全是干货。

    关注并私信我【面经】,免费发你,立即纠正你的复习方向,把时间用在刀刃上。

    孩子快出生了,准备纯奶粉喂养,求问当前阶段奶粉怎么选?

    本来准备去香港买爱他美,研究之后现在也不知道怎么选了,国产的标准不放心,国外的又是特供版,难啊

    如题,刚才发现🐟提示我开通鱼小铺,不太懂这个,开了这个后会有什么优势吗,跟我直接发闲置的有啥区别

    我妈妈平时主要就是刷刷短视频,听听书啥的,用不着啥性能,之前一直用的一个二手的 iphone11 ,就是电池不太行了,倒是不卡。
    一直用的二手,考虑给她换一个新的 iPhone,买 17 还是 17e 。
    大家有什么建议?

    过去几年,“数字化转型”几乎成了制造业的必选项。ERP、MES、PLM、数据平台等系统不断上线,但不少企业在推进过程中逐渐发现一个现实:系统越来越多,但效率却没有明显提升。很多制造企业的信息化负责人都会有类似困惑:系统建设越来越慢、IT预算越来越紧、业务部门越来越不满意、新需求却越来越多。于是一个问题开始变得越来越明显:制造业数字化的难点,往往不在技术本身,而在建设模式。今天我们通过一家航空制造企业的实践,看看一家企业是如何一步步走过这条路的。

    一家航空制造企业的数字化困境

    中航通用电气民用航电系统有限责任公司(简称昂际航电)成立于2012年,是通用电气与中国航空工业集团合资成立的企业,主要从事民用航电系统相关业务,公司不仅参与国产大飞机项目,也在航电改装、MRO等领域持续扩展业务。随着业务不断发展,他们的信息化需求越来越复杂:

    • 项目越来越多
    • 系统越来越多
    • 协作部门越来越多

    数字化转型逐渐成为企业发展的基础能力。但在推进过程中,一些问题也开始逐渐暴露。

    制造企业信息化的四个典型难题

    1)业务变化越来越快,但系统跟不上

    市场变化快,新业务、新流程不断出现,但传统开发周期长,一个系统从需求到上线常需3到6个月,需求变动还要额外排期。结果就是业务已经变了,但系统还没准备好。

    2)IT投入有限,但需求不断增加

    企业IT预算增长有限(约8%/年),但业务数字化需求持续上升。传统模式下,每个系统都需独立开发和维护,系统越多,建设和运维成本越高,效率并未提升。

    3)懂业务又懂技术的人稀缺

    数字化落地需要同时懂业务、技术和沟通的人才,但复合型人才不足20%。导致业务说不清需求,技术理解不了业务,项目沟通成本高,系统上线与预期常有差距。

    4)系统多而数据孤岛

    企业系统多且来自不同厂商,如果缺乏统一规划,系统互通性差,数据需反复导入导出,效率低且易出错,信息化环境变得复杂。

    当传统开发模式开始成为瓶颈

    昂际航电在信息化推进过程中,也遇到了类似问题,例如开发周期过长,传统开发模式下一个项目平均需要3到6个月才能交付,如果需求调整,响应周期往往需要两周以上。很多系统依赖外部供应商维护,成本难以预估,同时多个系统之间难以打通,接口开发复杂。系统开发通常是需求→开发→测试→上线,业务部门往往只能在最后阶段看到结果,一旦发现问题就需要重新调整,沟通成本非常高。

    从一个小系统开始试验

    在尝试新的建设模式时,昂际航电并没有一开始就大规模推进,他们选择了一种更稳妥的方式:先从小项目试验。团队先尝试开发一些规模较小的应用,验证新的开发方式是否可行。随着团队逐渐熟悉新的开发方式,效率优势开始慢慢体现。于是应用范围开始逐步扩大,最初只在IT部门使用,后来逐渐扩展到人事部门、财务部门、运营部门,越来越多的系统开始通过这种方式构建。

    一个复杂系统的实践:工程人力资源管理系统

    其中一个典型项目是工程人力资源管理系统,该系统主要用于管理工程项目的人力资源安排,并为项目决策提供数据支持。系统需要对接多个数据来源,例如ERP系统(人员、岗位、组织信息)、工时卡系统(每周工时数据)。通过系统整合,项目管理部门可以实时查看三个关键指标:Demand(需求)、Supply(供给)、Actual(实际投入)。每周例会时,团队会直接从系统中提取数据进行分析,一旦发现资源不足或配置不合理,就可以快速调整人员安排。该系统在一年内完成了8次迭代优化,逐渐成为工程项目管理的重要工具。

    一个月上线的系统:OKR目标管理

    另一个案例是企业的OKR目标管理系统,该系统从需求梳理到上线,仅用了1个月。上线后很快推广到全公司,覆盖300多名员工,并与人事系统打通,实现自动同步人员变化。员工的目标制定、工作进度、审核流程都在系统中完成,逐渐成为企业内部日常工作的核心工具之一。

    把复杂Excel系统变成在线系统

    在很多制造企业里,Excel仍承担大量业务工作。昂际航电也有类似情况,例如项目成本预测与回报分析。这类工作通常包含大量复杂公式、多部门协作填写和多版本预测对比。企业后来将这些Excel模型迁移到系统中,原有公式和结构基本保留,同时增加了多部门在线协作录入、权限控制和数据统一校验,既保留了Excel的灵活性,也解决了数据管理问题。

    当系统逐渐连成一张网

    随着这些系统不断上线,企业逐渐形成了一套完整的应用体系。目前已建设50多个业务应用,覆盖HR、Finance、PM、IT、Legal、OPS、Engineering等多个部门,包括北斗追踪系统地面管理站、适航认证管理平台、员工绩效评估系统、MRO质量看板等,系统之间的数据逐渐打通,业务协同效率明显提升。

    数字化转型带来的真正变化

    系统数量增加并不是最重要的变化,更重要的是企业内部工作方式发生改变。例如开发节奏明显加快,过去系统更新往往是几年一次,现在很多应用可以做到每年4到6次迭代。业务部门开始参与系统建设,业务人员不再只是提出需求,而是可以参与系统设计,部分应用甚至由业务团队直接参与开发。IT部门角色发生变化,不再只是维护系统,而是开始参与业务创新,很多业务优化方案本身就是由IT团队推动落地。

    在这里插入图片描述

    对制造企业的一些启发

    昂际航电的实践给很多制造企业提供了参考经验。第一,不要一开始就追求“大而全”,从小系统开始试验,逐步扩展,更容易成功。第二,数字化转型不是一次项目,而是长期能力,持续迭代、持续优化才是数字化真正价值所在。第三,让业务部门参与进来,数字化不是IT部门的事情,而是企业整体能力建设,业务参与越深,系统价值越大。第四,重点不是系统,而是效率,真正成功的数字化项目最终体现在决策更快、协作更顺畅、创新更容易,系统只是实现这些目标的工具。

    写在最后

    制造业数字化转型这几年已经进入新阶段,企业开始从最初“上系统”转向思考更深层的问题:如何建立持续数字化创新能力。不同企业路径不同,但有一点相同:真正有效的数字化,往往不是一次大的系统建设,而是无数次小的持续改进。昂际航电的经验正说明了这一点。

    作者 | 王亚伟 华为云码道(CodeArts)首席架构师

    AI 编程工具的两种演进路径:算力暴力与工程确定性

    2026 年,AI 编程工具的市场演进分化为两条截然不同的路径:

    • 模型中心派:其核心逻辑是“模型即一切”。通过推高上下文窗口(Context Window),试图将超大规模的完整工程载入 Prompt,Gemini 1.5/2.0 Pro 支持高达 2M Token,这种超长上下文允许开发者将整个代码仓库作为 Prompt 的一部分进行分析和问答。该路径的上限取决于模型的推理能力,但面临极高的 Token 成本:即便模型能读,每次对话重新读入几十万行代码的费用极高。以 Claude 为例,超过 20 万 Token 的请求通常会触发溢价计费;推理延迟:处理 100 万 Token 的推理时间往往以分钟计,无法满足实时性交互的需求;精准度衰减(Recall Problem):学术界称之为“大海捞针(Needle In A Haystack)”问题。当上下文过长时,模型对中间部分信息的召回率和逻辑严谨性会下降,极易产生“幻觉”。

    • 工具驱动派:模型驱动派侧重于扩张“脑容量”(超长上下文窗口),而 Cursor 则通过重构 IDE 的交互与索引工具,开启了“工具驱动派”的先河。其核心逻辑并非被动等待模型进化,而是通过增强 IDE 的感知与修改能力,让现有模型也能精准处理复杂的代码逻辑。Cursor 在本地构建了一套独立于传统语言服务(LSP)之外的高性能代码索引系统(Codebase Indexing),在后台自动对全量工程进行向量化(Embedding)并构建符号图谱。当需求输入时,系统会优先调用自研检索工具,从海量文件中提取关联度最高的代码片段,将其精准拼凑为 Prompt 交付给模型。

    从底层工程实现和企业级落地路径来看,码道 与 Cursor 虽然同属“工具驱动派”,但其技术路径存在代际差异:Cursor 是 IDE 表现层 AI 融合的典范,而 码道 则是 IDE 内核层语义重构的专家。

    • Cursor(基于表现层的上下文注入):通过 Embedding 索引结合 VS Code 原有的 LSP(语言服务协议)提供上下文。这种模式本质上仍是概率性的“文本寻踪”,且随着工程规模扩大,索引膨胀会导致检索延迟增加,在大规模工程中难以保障跨模块引用的绝对准确。

    • 码道(基于内核层的语义驱动):通过彻底重构 IDE 底层多语言语义内核(Unified Polyglot Semantic Core),由 CMM(索引物理存储优化) 与 CAL(统一语义模型) 支撑。这种基于内核提供的全量语义信息,不仅能确保检索的物理准确性,更通过指令化执行实现了确定性的任务交付。

    华为云码道(CodeArts)的协作范式:LLM 负责“逻辑规划”,多语言语义内核负责“确定性执行”

    在企业级软件开发中,代码的复杂性是 Token 消耗的主要来源。码道 的核心策略是将任务解耦:由 LLM 承担“逻辑规划”,由多语言语义内核负责“确定性执行”。这种“大脑 + 手脚”的协作范式,通过以下三个工程维度实现了极致的性价比:

    1. 成本置换:将推理成本下放为计算成本

    在大规模工程中,若由 LLM 遍历源码寻找接口引用,需消耗数万 Token 进行文本理解;而通过 码道 的底层索引,仅需一次毫秒级的 API 调用即可返回精确结果。该架构将高昂的大模型推理成本(Inference Cost)转化为低功耗的本地计算成本(Computing Cost),从根源上消解了 Token 通胀。

    • 语义级 RAG 技术(Code Model RAG):依托多语言语义内核的索引系统实现结构化检索。其召回的上下文仅包含必要的语义摘要(如符号定义、调用链),避免了无关源码片段的冗余读入,显著降低输入 Token 消耗。

    2. 逻辑外挂:从“文本生成”到“指令化执行”

    多语言语义内核掌握着项目的全量语义数据,能为 LLM 提供结构化的代码理解并屏蔽语言差异:

    • 指令重构技术(Instruction Refactoring):LLM 仅需输出高阶指令(如 execute_refactor),具体的跨文件改动由底层的重构引擎自动完成。这种“外挂式”执行省去了 LLM 生成数十个文件改动内容的输出过程,极大地压缩了输出 Token 的规模。

    3. 闭环保障:通过自主校验提升一次性成功率

    企业级开发的隐性成本在于高频的调试循环与人工审核。码道 引入了代码自主校验技术:

    • 自主校验技术(Code Model Shadow):通过“解析、编译、执行”三层反馈机制,多语言语义内核可自动感知 LLM 生成的代码缺陷,系统在后台直接引导 LLM 修正。这种对用户透明的自愈过程,显著提升了一次性成功率。在复杂的企业场景下,减少修复循环意味着更低的算力损耗与更短的开发者审核周转期。

    通过规划与执行的分离,华为云码道以更低 Token 消耗确保了 Agent 交付件具备更好的“语法自洽”与“逻辑可运行”。这不仅优化了算力资源,更通过工具的确定性稳住了大型工程的交付质量。

    支撑华为云码道(CodeArts)多语言语义内核的两大底层基石:索引物理存储优化(CMM)与统一语义模型(CAL)

    索引物理存储优化 CMM(Compacted Memory Management)

    多语言语义内核的高效运行,由底层的代码索引存储机制 CMM 支撑。在企业级 AI 编程场景下,平衡性能与 Token 成本的核心,在于超大规模代码 AST(抽象语法树)与索引的低开销处理。

    CMM 通过重构索引在内存中的表示方式,消除了原生对象存储带来的元数据负载(Overhead)。其技术逻辑在于利用数据布局(Data Layout)优化换取访问速度与存储密度。工程实践表明,在处理大规模工程的索引效率时,底层数据表示的优化比单纯的算法改进具备更高的工程收益。

    1. 核心技术逻辑:重构数据布局

    • 消除对象布局冗余:在 JVM 等原生布局下,对象的元数据开销极高(如 8 字节内容在堆中常占用 24 字节)。CMM 放弃了原生对象表示,通过扁平化存储与属性分组消除了元数据负载,显著提升了内存利用率并减轻了 GC 压力。

    对象原生布局

    扁平化属性分组布局

    • CPU 缓存友好型设计:针对现代 CPU 性能远超内存访问速度的现状,CMM 采用连续内存块(Contiguous Chunks)存储。通过将高频协同访问的属性聚合在一起,最大化利用 CPU L1/L2 缓存机制,解决了大规模数据下的内存访问瓶颈。

    2. 技术实现:自适应压缩与按需解码

    • 自适应压缩方案:系统根据数据分布自动选择 Delta 编码、RLE 编码或变长编码等最优方案,支持在海量数据批处理中实现高效的随机访问解码。

    • 代理对象与按需解码(Lazy Decoding):不同于全量反序列化的传统模式,CMM 通过代码生成技术提供代理对象。系统仅在调用具体接口方法时才对局部属性进行解码。这种模式避免了在处理复杂工程时产生无效的算力消耗。

    3. 工程价值:支撑高频工具调用的性能底座

    • 性能提升:在代码模型与 AST 的访问基准测试中,CMM 相比传统 IDE 方案实现了 50-100 倍的性能飞跃。

    • 全量索引常驻内存:得益于高压缩比特性,全量索引可常驻内存,消除了大规模工程下频繁触发磁盘 I/O 的冷启动开销。这确保了多语言语义内核在响应 LLM 的检索请求时,能够实现毫秒级的全量数据遍历与即时反馈。

    统一语义模型 CAL(Code Access Layer)

    如果说 CMM 优化了索引数据的物理存储,那么 CAL 则负责逻辑层面的语义对齐。在企业级大规模工程中,异构编程语言的 AST 结构差异显著,LLM 难以直接处理原始的非结构化数据。CAL 通过一套统一多语言语义模型屏蔽了底层语言的实现细节,将离散的源代码映射为标准化的结构化语义 API。

    1. 核心技术逻辑:标准化语义表示

    • 统一类型系统 (Unified Type System):CAL 构建了一套抽象的类型图谱,实现跨语言的类、方法、变量及调用关系识别。该系统将不同语法的底层实现转化为 LLM 可解析的标准化语义符号。

    • AST 与语义符号的实时绑定:基于 CMM 的高性能索引,CAL 能够实时构建代码 AST 并进行精确的符号绑定(Symbol Binding)。这为 LLM 提供的不再是模糊的代码文本,而是具备明确调用边界的逻辑单元。

    • 代理模型与按需解析:CAL 采用与 CMM 协同的“延迟解析”策略。系统仅在 Agent 需要深度理解特定模块时,才触发局部的语义补全与推导,避免无效的计算开销。

    2. 工程价值:消解语义幻觉与 Token 通胀

    • 消除语义幻觉:CAL 充当 LLM 的物理校验层。当 LLM 尝试修改接口时,CAL 通过静态分析提供该接口的显式约束条件,确保生成的代码在语义层面实现“合法性”,规避了因不熟悉私有库规则导致的逻辑错误。

    • 跨语言导航能力:依托全量索引,CAL 支持在大规模代码库中实现毫秒级的跳转与引用查找。这为 Agent 进行全局任务规划提供了准确的上下文图谱。

    • 精准的上下文压缩:得益于高密度的语义索引,系统向 LLM 提供的不再是冗余的源码片段,而是精炼的语义摘要。在复杂逻辑检索任务中,这种方式能显著削减 Token 消耗。

    语义级 RAG 实测:代码遮蔽与逻辑召回的量化表现

    依托上述多语言语义内核提供的全量语义信息,语义级 RAG  在大规模工程的代码遮蔽(Code Masking)实验中表现出了极高的确定性。该评估验证了系统在逻辑片段缺失的极端情况下,依然能通过 CAL 索引精准召回私有语义,确保交付件的语义合法性。

    1. 评估流程:代码遮蔽与类型检索

    • 实验设计:随机抽取 Java 源代码片段进行“遮蔽”处理(如上图所示隐藏关键业务逻辑),仅保留方法签名与基础结构。

    • 检索对齐:系统需从全量工程索引中识别并召回预设的关键符号(如 java.io.File 及私有库 IPath、ModuleInfo 等)。实验结果显示,系统能够准确锁定深层私有依赖,实现语义维度的精确映射。

    2. 核心性能指标

    在百万行级工程的基准测试中,语义级 RAG 展现了显著的检索深度:

    • 召回率(Recall):TopK-5 达到 87.5%,TopK-50 达到 97.5%。这意味着绝大多数核心代码语义均能被索引系统成功捕获。

    • 精确度(Precision):TopK-5 精确度为 20.8%。由于代码上下文中真实的正确符号通常仅 1-2 个,该指标说明系统已在极窄的候选池中锁定了标准答案。

    工程实测:多语言语义内核实现更低成本、更确定性的 AI 编程

    本次工程实测的核心目标,在于量化验证“工具语义内核驱动”的技术路径在处理企业级复杂任务时的实际作用。我们希望通过对多语言语义内核的接入,评估其在降低推理成本与提升交付确定性方面的工程价值。

    实验中引入的对比方案仅作为行业基准参考,旨在客观呈现不同技术路线在相同工程负载下的表现差异,而非针对具体产品的横向评测。我们更关注的是,如何通过底层工具链的确定性,为大规模 AI 编程寻找一条更具可持续性的技术落地路径。

    1. 协议化能力输出

    我们将 Python 语义内核通过 MCP(Model Context Protocol) 标准封装为系列工具集。以下为首批接入的能力清单,后续将根据企业级开发场景的实际需求,持续扩展底层的原子化工具能力:

    码道 Python 语义内核:工具能力矩阵

    2. 实验设计与评估体系

    • 测试对象:

    • OpenAI Codex 5.2(Medium):代表顶尖模型驱动的基准性能。

    • 国内友商 AI IDE(Codex 5.2 + 开源语言插件):代表主流工具驱动的 AI 编程工具。

    • 码道(GLM 4.7 + Python 语义内核):验证在基础模型(GLM 4.7)性能弱于 Codex 的情况下,依靠 Python 语义内核实现的工程补偿。

    • 监控维度:

    • 执行效能:总执行耗时与交互轮次。

    • 操作分布:包括导航、查询、编辑及诊断。

    • 经济性:总 Token 消耗与预估成本。其中 OpenAI Codex 5.2 参考 API 市场价(每百万输入 Token $1.75,每百万输出 Token $14.0)进行成本推算;友商 AI IDE 直接采用其系统内置的成本统计数据;GLM 4.7 参考 API 市场价(每百万输入 $0.6,输出 $2.2)核算。

    • 三类实验任务:从基础操作到复杂逻辑集成

    • T1:基础重构(Poetry 项目) —— 侧重于原子化执行。在 Poetry 源码中执行跨文件的安全重命名(Safe Rename),验证 Agent 对代码符号定位的准确性、执行性能和成本。

    • T2:复杂理解(Django 代码库约 100 万行 Python 代码) —— 侧重于全局语义检索。针对 Django 代码库进行深度解析,通过类型继承体系评估代码变更的影响面。

    • T3-T4:复杂新功能(端到端集成) —— 侧重于模糊需求下的逻辑交付。在不指定具体类名或方法名的情况下,开发全新的跨模块特性,并交付完整的业务逻辑代码。

    3. 实验任务 T1:基础重构,Poetry 全工程安全更名

    • 用户 Prompt

    • 将 EnvManager.generate_env_name 方法重命名为 build_env_name,并同步更新工程内部所有调用点及测试用例。需确保业务行为保持不变。

    • 测试结果:

    码道 + Python 语义内核(27.3k)

    • 性能与成本对比分析

    • 与 OpenAI Codex 5.2 相比:成本降低 83.4%,Token 消耗减少 35.0%,耗时增加约 20%(执行速度略慢)。

    • 与 友商 AI IDE 相比:成本降低 87.8%,Token 消耗减少 49.8%,耗时缩短 41.6%。

    • 接入 Python 语义内核后,码道 的任务耗时缩短约 66%,成本与 Token 消耗同步削减了约 46%。

    4. 实验任务 T2:Django 工程分析

    • 用户 Prompt:

    • 我计划在 BaseHandler 中添加一个响应埋点挂载。请先识别所有相关的子类并评估该改动可能带来的潜在影响。

    • 测试结果:

    码道 + Python 语义内核(34.5k)

    • 性能与成本对比分析

    • 与 OpenAI Codex 5.2 相比:成本降低 86.6%,Token 消耗减少 47.7%,执行耗时缩短 20.0%。

    • 与 友商 AI IDE 相比:成本降低 78.5%,Token 消耗减少 26.1%,执行耗时缩短 36.1%。

    • 接入 Python 语义内核后,码道 的任务耗时缩短约 50%,成本与 Token 消耗同步削减了约 37%。

    5. 实验任务 T3:二段跳功能实现

    针对接下来的复杂新功能测试,我们选用了一个完全由 码道 构建的真实 Python 游戏项目。让测试对象实现某些新功能,且在指令中不提及任何具体的类名或方法名,以最大限度还原实际开发中的模糊需求。

    码道构建的 Platformer 游戏

    • 用户 Prompt:

    • 添加一个‘二段跳’新功能。玩家在拾取该道具后,即可在空中额外跳跃一次,落地后该额外跳跃次数重置。请在 HUD(抬头显示)中提供清晰的状态指示器。同时,请将该道具放置在初始关卡中,以便能够立即测试功能效果。

    • 测试结果:

    • 性能与成本对比分析

    • 与 OpenAI Codex 5.2 相比:成本降低 79.1%,Token 消耗减少 18.3%,执行耗时增加约 57.9%(执行速度较慢)。

    • 与 友商 AI IDE 相比:成本降低 79.0%,Token 消耗减少 16.9%,执行耗时增加约 25.8%(执行速度较慢)。

    依托 Python 语义内核提供的全量索引,结合语义级 RAG、指令化重构及代码自主校验等技术,码道 能够一次性成功完成任务

    码道 二段跳功能实现

    6. 实验任务 T4:新增回旋镖武器类型

    • 用户 Prompt:

    • 新增‘回旋镖’(Boomerang)武器类型,并将现有的‘爆破筒’(Blaster)保留为默认武器。请创建一个新的道具拾取标识(R)用于解锁回旋镖。玩家通过 Tab 键在武器间切换,且 HUD(抬头显示)需同步展示当前选中的武器。回旋镖在发射后应向前飞行、伴随可见的旋转动画并最终回到玩家手中,且在往返路径上均能对敌人造成伤害。请在初始手工关卡中放置至少一个 R 标识道具,以便我在一分钟的游戏流程内即可测试新武器功能。

    • 测试结果:

    码道 + Python 语义内核(87k)

    • 性能与成本对比分析

    • 与 OpenAI Codex 5.2(任务执行失败) 相比:成本降低 78.4%,Token 消耗减少 15.5%,执行耗时增加约 41.5%(执行速度较慢)。

    • 与 友商 AI IDE 相比:成本降低 76.4%,Token 消耗减少 10.3%,执行耗时增加约 10.4%(执行速度较慢)。

    OpenAI Codex 无法实现正确的回旋镖逻辑

    码道 成功实现正确的回旋镖逻辑

    7. 实验说明与初步结论

    本次工程实测旨在初步探索多语言语义内核(Unified Polyglot Semantic Core)接入后,对 Agent 在真实开发场景下成本与效能的影响。以下为基于当前实验环境的技术说明:

    • 工程优化空间:本次实验侧重于验证底层内核接入后的基准表现。事实上,目前采用的 MCP 协议并非性能最优的集成方式,且尚未针对特定的 Agent 任务编排(Orchestration)或工具链调用逻辑执行深度调优。随着交互策略的精细化与算法迭代、模型服务性能优化,Token 损耗及整体执行时间仍具备显著的下行空间。

    • 环境变量说明:所有实验数据均采集于真实开发场景,力求客观反映各方案在百万行级工程(如 Django)下的基准状态。由于测试节点部署于海外,受跨境网络链路时延影响,执行耗时数据在本地生产环境下预计会有更平稳的表现。

    • 工具底座的补偿效应:实测观察到,尽管 友商 AI IDE 在 Agent 逻辑的完备性与模型响应速度上展现了成熟的工程实现,但 码道 深厚的工具底座可以在很大程度上弥补模型服务侧的差距。

    总结与展望:算力暴力与工程确定性的共生

    基于 2026 年的技术现状,模型驱动的“算力暴力”与工具驱动的“工程确定性”并非互斥,而是“上限”与“下限”的互补。

    从现实落地性来看,基于工程确定性的路径是目前企业级场景下更务实的方案。在百万行级代码的生产环境中,全量加载超长上下文带来的 Token 成本、推理延迟及逻辑随机性,仍是制约规模化落地的核心瓶颈。通过 CMM 与 CAL 等底层优化,语义级 RAG、指令重构、自主校验等技术,将“推理开销”下放为“本地计算开销”,是实现 AI 编程普惠的经济前提。

    我们认为,“以工程确定性为体,以算力暴力为用”的融合路径是 AI 编程落地企业的最优解:

    • 工具驱动作为“主流底座”:依托多语言语义内核,将 LLM 的产出约束在受控的工程框架内,决定了交付的“稳”与“下限”。

    • 算力暴力作为“高端补充”:利用超大上下文提供全局推理能力,决定了 AI 理解复杂逻辑能走多“远”与“上限”。

    目前,文中提到的基于多语言语义内核的各项特性将会逐步在华为云码道企业版落地。欢迎各位开发者与企业用户针对实际工程中的性能瓶颈或准确率问题向我们反馈诉求,协助我们持续细化和调优底层的原子化工具能力。

    作者简介:

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

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

    今日好文推荐

    Cursor 经历生死存亡

    Claude Code之父自曝刘慈欣铁粉!不写PRD、不设职称,Anthropic 如何连续推出两个AI 爆款?

    GPT-5.4 发布,OpenClaw 的能力要被替代?OpenAI 新模型会自己用电脑了,还顺手把编程能力拉满

    谷歌曾说“不是秘密”的东西,Gemini时代成了提款机:三人创业团队48小时濒临破产

    家里的床是皮床 皮革味闻不惯

    买过几个皮床 贵的 便宜的 特么都有味道 真心不喜欢闻那个味道

    想换个环保无异味的木床 老哥们有推荐的嘛?


    木床的木头选哪个好?

    樱花木 胡桃木 还是 北美白橡木?