乐于分享
好东西不私藏

AI 终结不了软件

AI 终结不了软件

AI 终结不了软件,而是成为软件的一部分。
最近我遇到一个场景,多个用户共享一台机器资源进行开发。由于机器资源有限,只能调度有限个容器开发环境,一旦机器的资源分配完新创建的容器就无法调度了。
学过博弈论的朋友都知道,用户为了能随时用上资源就不会主动关闭环境,而是让自己的容器环境在机器上占着资源。这时候对于没抢到资源的用户会来抱怨,找平台组说没资源了帮忙加资源。
我们平台组也不是央行,说印钱就能印钱说有机器就有机器的。哥们熟读毛泽东思想心生一计,可以把用户与平台组的矛盾转移到人民群众的内部矛盾。
我让 AI Vibe 了一个功能,查询租户内的浪费资源排行榜。按照机器 CPU 与 MEM 1:4 的配比作为权重,乘以申请了但实际没在用的资源。这个功能对该租户所有人开放。一旦有用户过来说环境调度不上,我就把这个功能截图给他暗示打土豪分田地,并转发到有对面 ×1 的群里以观奇效。渐渐地就没人来找我了。
然后过两天又有用户私信我,现在返回的浪费排行榜 TopK 只有 20 能不能多展示几个?K 能不能作为参数传递? 如果按照传统软件开发路子我就顺手加了。
但我知道用户的第一句 Prompt 往往都是个引子。我顺藤摸瓜又问下去,他们又说能不能加个正序和倒序的参数。用户有时候很奇怪,他嘴上说的想要什么和他真正的需求往往并不是一回事,并且会好心替你想好一个解决方案。经过沟通我了解到他们真正想看的是谁资源利率用率高谁资源利用率低,陟罚臧否都有依据。
如果没有 AI 的情况下,这个资源利用率的功能就会开始膨胀。结果可能会有 N 个参数。或者直接给用户一个 Grafana 看板让他自己去查。但 Prometheus 的 Query 对普通用户来说学习门槛还是太高了并且有的用户是傻瓜问问题都问不明白,还能指望他学习 prometheus query?
最后我用 AI 写了一个如何查询用户环境资源使用率的 Skill,嵌入到已有的机器人功能里,用户想怎么着都行,老板看了都说好。
传统软件开发需要遍历无数个用户 Case,根据边界条件、高频低频做抽象做取舍。现在抽象程度更高,软件后端只需要提供领域相关的查询 DSL。AI 根据 DSL 生成临时代码,用完就删。AI 和软件工程的关系,如 AI 和 Bash 的关系。AI 可以写很多 Bash 脚本,用完即删,但不能说 AI 终结了 Bash。Bash 正因为其抽象程度好、可以复用,在 AI 时代反而历久弥新。
软件工程的本质,抽象和取舍这两点是不会变的。抽象和取舍做得好,就会成为 AI Agent 的基石。