> For the complete documentation index, see [llms.txt](https://blog.tsingjyujing.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://blog.tsingjyujing.com/z-spam/2026-04-20-ai-thinkings.md).

# AI所感

今天是2026年的4月2日，凌晨，我开始写这篇文章。这篇文章涉及到的所有技术，也仅仅局限于今天的AI发展水平，未来或许会有变动。

## 为什么写本文

最近（生成式，下略）AI已经不能称之为大热了，可以说是红的发紫，紫的发黑，黝黑发亮。AI也是我近几年见过的最具有生产性，最激动人心的技术之一了。自从ChatGPT 3.5取得成功以来，资本的关注迅速提升。企业用AI为借口融资，也以AI为借口裁员。 他们用从银行借来的钱，购买了尚未被生产出来的显卡与内存，来满足不知道用户在哪里的未来算力需求。 资本从来都不想被时代落下，上一次卷积神经网络的AI爆发如此，虚拟货币，NFT，元宇宙也是如此。

更加重要的是，AI确乎展现出了它的神迹，它已经通过了图灵测试。如同珍妮纺纱机一般大幅度提高生产效率，淘汰落后产能已经就在眼前了。

我作为一个码农，平时也大量使用AI写代码和文档，Claude和Codex我都使用。我也从中感受到了莫大的便利。 但是，面对最近的AI热，我总想说一些使用体验——虽然有些可能近乎泼凉水。

## AI有什么缺陷

为什么开篇要说缺陷？有两个原因：

第一、是我们已经足够熟悉AI带来的各种神迹了，无须赘述。 第二、是我们需要清晰认识到AI的边界，才能更好的利用AI。

### 幻觉

首先，AI幻觉的问题从来没有被真正的解决。AI的幻觉问题在最新的大模型中被抑制了，但是仍然如同斩不断的乱草一般。

相信大家一定看过那张梗图：“我家距离洗车店50米，我应该开车去还是走路去？” 好多的AI（包括我亲测了Gemini）都推荐走路去。 为什么？因为简单来说就是P(走路|50米)>P(开车|50米)，当然不是很严谨，大家看个意思好了。50米这种短途举例在开车中不常见，而问题本身更是可以上弱智吧的程度，导致AI从来没见过。 AI仍然是基于统计的方式进行训练，那么就不可避免的有统计的问题。AI从来没有真正拥有过逻辑思维。

如果是一个人，应该怎么回答？

* “不开车去你洗你自己吗？”
* “你是要去洗车店上班吗？”（老白：对啊）

这是训练模型的时候的胎里毛病，不是增加数据量或者增大模型就能解决的。

除此之外，AI没有长期记忆——这一点靠MCP工具以及上下文压缩等等外挂技术已经有所改善了。

至于我工作中，遇到的缺陷主要还是来自于幻觉，AI会幻想不存在的API接口，会尝试把问题糊弄过去，头疼医头脚疼医脚。 在设计程序的时候，AI并不是自顶向下的设计，导致AI写出来的代码冗长繁琐，过于拘泥于很小的细节。

### 需求

与其说是AI的缺陷，不如说是软件工程本身的问题。这里面涉及到需求的暧昧性和测试覆盖的范围。

首先说说需求的问题。

比如说，我让AI写一个购物网站，我给AI的预期是：当用户跳转到购物车页面的时候，默认勾选所有活跃的项目，所谓活跃项目，就是用户最近30天内添加或者修改的项目。 这个时候AI吭呲吭呲的写好了，测试的时候发现，写需求的时候忘记写了，要先检验一下购物车里的商品是不是还都有效，否则一下单，后端API出错了。 好不容易加上，结果又有问题，还得检测一下商家的库存够不够，否则一下单，商家库存变负数了。 这些还是明显会想到的、会导致错误的部分。其实还有一些不会出错的小设计问题，是需要人类反馈问题以后修改设计文档的，那就更多了。

这样的问题人类开发者也有，我们即使假设你有了完美的AI，需求的确定本身不是毫无成本的。

其次是，AI自己写单元测试，通过了以后就真的没问题了吗？

举个例子，我让AI写一个素数判断函数，AI写出来以后测试了 2,3,4,5,6,7,8 都对。但是9可能就出错。 当然这个函数同样存在输入1的时候要不要返回结果，输入0和负数怎么办等等需求问题。

### 验证

软件写好之后，验证这个软件是否按照预期工作的成本——也就是测试成本，被严重的低估了。

我经常看见的一个论调是：以前写汇编，后来写C，用编译器生成汇编，再后来写Java，内存也自动管理，至于Python就更像自然语言了。 现在没人写汇编写机器码了也没有任何问题，所以AI革命以后自然语言会成为新的编程语言。我一直以为这样的论调Too young too simple, sometimes naive!

我们必须关注一个程序写好之后到底是不是按照你的预想在工作，比如用Go，Java或者Python这样的高级语言，我们确实不用关心底层的机器码（或者字节码之类）了，但是无论哪一种语言，其行为总是确定的，哪怕是个BUG，也是可复现的。像C++中的未定义的行为或者单片机跑飞了，都是少数情况，而且大多源于访问了不该访问的内存。使用高级语言之后这种事情是很少的。

至少我可以保证我创建了一个数组之后这就是个数组，不是HashMap或者HashSet。

但是AI做不到这一点，现在主流的生成式模型的输出是在概率分布上采样生成的，采样这个行为本身具有不确定性。即使我们固定了Hash，你也只是保证针对这样的输入能得到固定的输出，你甚至无法保证对于类似的问题（比如改一下语序）就能得到一样的回答。

这种情况下AI的生成必须被逐字逐句的校验，被人类理解。

然而，这是一个痛苦的过程，我经常是让AI写300行代码，理解，然后指出问题，然后AI删了100行，新增150行，我继续阅读修改的部分。 最后，AI完成了一个500行的程序，但是我Review了2000行的代码。我经常痛苦的想，早知道如此不如我自己手写来得快。

## AI能做到什么，我们应该怎么使用AI

其实在我看来，AI最擅长的还是飙垃圾话、小片儿汤话。 比如说写公文（类似于“我们需要拿出新举措，聚焦新态势，切实把握群众所需所想”这种鬼话），翻译文件，或者技术文档里面要向读者阐释基本的东西但是懒得自己写的时候。

如果是进行软件的开发，一定要：

1. 在沙盒里面运行或者严格限制权限，毕竟你也不想被AI `rm -rf /` 对不对？
2. 要能够切实检验AI的产出，而且是效率越高越好。比如回归测试，比如直接打开AI写的前端页面试看看。如果能让AI自己执行那就更好了。
3. 自己一定要有清晰的设计思路，如果你糊弄AI，那么AI也会糊弄你。我曾经尝试用AI在我不懂的领域写代码，那是一个在仿真器里面添加新算法并且测试看看性能如何的工作。结果就是，AI写的代码到处都是漏洞，但是在我自己搞懂项目结构和每个变量的概念之前，我也不知道AI到底犯了什么错误，我想AI自己也不知道。
4. 一定要理解AI干了什么，一定要逐句Review（审阅）AI生成的代码，不能因为代码是AI写的就偷懒不去弄清楚。那样的话即使通过定义测试、回归测试等等方法确认了AI的产出，但是代价是整个项目熵增了，以后的维护会越来越艰难。

## AI对我们的未来有什么影响

上面是一些技术相关的碎碎念，那么下面就更多的是政治了。

最近甲骨文也好，Amazon也罢，都在以发展AI为借口裁员。其实在大企业工作过的我们知道企业内部的低效与抽象根本就不是AI能治得好的。企业的问题在于长远目标的设立，通过这个目标获取未来的一席之地；而企业运营中实际关注的却是短期的盈利。不然怎么可能就这么巧，大家突然就都觉得AI是自己的长远目标了呢？

比如甲骨文，我理解的甲骨文的Oracle数据库虽然也是屎山源代码（听说），但性能就是很强，变态的那种强。AI可以用来重构，可以用来整理源代码和测试用例，甚至可以基于过去的经验开发新的数据库，但是唯独不是自己去搓AI。当然，我只是举个例子，甲骨文也是大企业，没准有自己的想法和其他的业务。

根本的原因还是在于资方也好，公司的高管也罢，都愿意追新潮，走捷径。有的是脑子只能理解新潮技术的表层，有的则是懒得说服前者去沉下心来经营更难的，更大的计划。

我相信不是大公司的领导不懂技术，而是这些技术大牛需要给手里握着钞票的，脑满肠肥的老登解释自己怎么样才能保证盈利。而老登的见识则不足以让他们理解新潮技术以外的更加深刻的东西，于是你就看到一众企业像是被饵料吸引的鱼群，时而冲过去撕咬虚拟货币，NFT，时而冲向元宇宙，最近又冲向了AI。

AI热也好，AI裁员也罢，根本的原因不在于AI，而在于急功近利的资本，在于严重不对称的劳资关系和巨大的贫富差距。

### 一个预测

最后还是说一下我的预测好了：AI将会大量取代低阶的岗位需求。AI相当于给每个程序员配了一个脑子不太好但是干活贼快的免费学徒，企业暂时失去了招新培养的动力，而且考虑到要买的显卡，现金流也不是那么充足。这样一来，市面上受过传统训练的工程师数量会逐渐减少，随后招聘成本上升，企业逐渐意识到培养新人更加便宜的时候会重启招新。但是考虑到AI的影响，市场仍然会相对萎缩一些。

考虑到现在市面上工程师过剩的局面，这个过程可能要持续几年。也就是说，这几年的计算机的毕业生会更加难以找工作了。而且更悲催的是，即使等到市场回暖的时候，企业也一定更倾向于招聘应届的，身体皮实的年轻人，这几年的计算机学生可能会成为“冰河时代”。考虑到这一点，及时转变方向或者读书是比较好的解决方案。

市场方面，定制化开发的成本将会下降，可能会卷死一批外包企业——毕竟他们糊出来的代码和AI难分伯仲。但是整体系统——特别是长期使用的大型系统的设计，以及靠近底层的部分，仍然需要人力进行大量的设计工作。

我相信肯定有智障企业觉得啥都可以用AI代替然后把程序员开得七七八八然后靠PM全面拥抱AI的。我100%相信这些企业会在未来为它们的愚蠢付出相应的代价。

愿我们迎来的是一个美好的未来。
