echo
第 1 / 2 章

第 1 章

灵元考点名册

ovo · 2026/8/21

闹钟响了第三次,陈序才从宿醉般的头痛里挣扎出来。

昨晚的梦境太真实了——代码编辑器、终端、npm install 到天荒地老。那些字符在黑暗的脑仁里跳动,像一群不肯退场的旧日幽魂。他摸了摸自己的手腕,没有老年斑,没有松弛的皮肤。镜子里是一张二十八岁的脸,属于灵元集团初级验收员陈序,工号 78431。

七点五十分,陈序穿过灵元集团总部大楼的旋转门。大厅穹顶投下柔和的紫光,像沐浴在某种廉价洗发水广告里。巨大的全息屏循环播放着宏大的企业宣传:“灵元,让创造回归直觉。”

这口号被刻在大理石墙面上,下面一行小字——AI 生成一切,人类只需想象。

陈序嘴角抽了抽。三十五天前他第一次走进这里的时候,两条腿抖得像筛糠。现在他已经能面无表情地穿过虚拟接待员的微笑,熟练地把右手按在电梯感应区的掌心模型上。电梯壁上滚动着一行发光的字体:“欢迎回来,验收员陈序。今日有 47 个待验收界面。”

“四十七个。”旁边一个同样穿灰色工装的年轻人凑过来,压低声音,“你觉不觉得最近批次的紫色越来越重了?昨天我看到一个登录页,差点以为我显示器坏了。”

陈序偏头扫了对方一眼。瘦,厚镜片,胸前工牌写着“验收员 林锐”。他们同在十二层,验收七组,属于整个灵元集团最底层、最不被尊重的那批人。提示词师至少还有个“师”字,验收员就是流水线上拧螺丝的。

“紫色好。”陈序回答,“护眼。”

林锐哀嚎一声:“你居然还护眼?”

电梯门开,十二层的冷气裹着白噪音扑面而来。灵元宗的“外门弟子”,也就是广大初级验收员,就分布在这一层到十七层之间。这里的工位像蜂巢一样密密麻麻,每个格子里嵌着一个盯着屏幕的人。他们的工作简单到令人发指——AI 生成界面,人类点一下“通过”或“驳回”。

大多数时候是“通过”。

因为驳回要写理由。写理由要用提示词框架。用提示词框架要考级。考级要钱。

陈序坐到自己的工位上,动作熟练地关掉了头顶的辅助摄像头。这是他的小习惯,老觉得自己被盯着不舒服。屏幕上弹出一排待验收的界面缩略图,像一列克隆人站在跑步机上。

他点开第一个:某电商 App 的首页。紫色渐变背景,毛玻璃卡片,居中大标题——“AI 懂你,更懂生活”。三个按钮悬浮在下方,圆角 24 像素,投影模糊半径 32。陈序昨天见过一个几乎一模一样的,只不过那是美妆 App,大标题是“AI 美你,更美生活”。

陈序的瞳孔在扫描页面的时候,本能地开始拆解它的结构。这是他自己都控制不了的身体反应——或者说是那个死在 2029 年的老陈序留下的肌肉记忆。正常用户看到的是“好看”,他看到的是无数的 Div 层叠、Flex 容器错乱、Z-Index 失控、语义标签乱成一锅粥。

眼前这个页面,用 AI 生成的布局乍看很漂亮。但陈序的目光落在角落里一个商品卡片上,它的阴影和旁边的不一样。他能看出来,这个元素在渲染层级上出了偏差,阴影属于它上方那个卡片。更离谱的是右上角的设置图标,点击热区只有 12 像素乘 12 像素,在 2K 屏幕上,人类的拇指需要精确到毫米才能触发。这是典型的数据集学习出来的“美化病”,一个从没见过真实用户界面的模型,把美学凌驾于可用性之上。

陈序闭了闭眼。前一世,他写了十五年 CSS。不是现在这种象征性的、营销性质的“会写 CSS”——他靠这个吃饭,给无数个项目对齐过像素,调过 IE 兼容,深夜在 Stack Overflow 上凑答案。他写出来的代码能跑,但长得不好看,因为他只会抄模板。他死的时候刚被公司裁掉,理由是“工具链升级,岗位取消”。讽刺的是,新工具叫什么来着?对,“灵元前端助手 1.0”。

他把那个设置按钮的 bug 记在心里,然后在“是否通过”的按钮上点了“通过”。他不能点驳回。一个初级验收员如果每天驳回太多,会被系统标红。标红三次,就会被送到“回炉营”重新培训,而后大概率被优化。

旁边的林锐探头过来:“你也通过?”

“嗯。”

“我觉得那个紫色太深了。真的不驳回一下?”

“驳回要写提示词,你考过那个什么……提示词框架四级了吗?”

林锐的嘴闭上了。他还没考。这鬼东西考试费八百,通过率只有两成。

上午的时间像一尾泡在福尔马林里的鱼,缓慢地漂浮过去。陈序点掉了二十多个界面,全是紫色渐变、毛玻璃、居中大标题。有个外卖 App,首页跟某租房 App 的配色一模一样,他甚至怀疑两个界面用了同一个模型的同一条提示词。

午饭时间,灵元集团的食堂。

陈序端着餐盘坐下,面前的全息菜单上印着今天的主厨推荐——“灵感炖汤:融合了三十七种来自用户反馈的数据风味”。尝起来像温热的刷锅水。

隔壁桌坐着一群提示词师,穿着深蓝色定制工装,领口绣着炼气或筑基的小徽章。他们讨论新版本的语气,像在议论天机。

“掌门这次升级之后,幻觉率降了零点三个点。”

“你们部门上个月用了多少 token?”

“十三亿。预算有点紧张,准备跟上面申请。”

“别提了,我这个月的提示词考核还没过。导师说我四个字的提示词不够精确,让 AI 生成了二十四套方案,结果全被验收那边驳回了。”

这一桌人笑起来。陈序低头喝汤,突然听到自己的工号被人提起。

“十二层那帮验收的,就点个按钮,哪会看懂好坏?驳回都是瞎按的。”

陈序没有抬头。他的手指在餐盘边缘轻轻点了一下——这个动作来自上辈子写代码前紧张的微手势。他太清楚了,这种嘲讽在前世也一样。设计师嘲讽他“还原度差”,产品嘲讽他“技术不行”。现在不过是换了一层皮,提示词师嘲讽验收员“不懂 AI”。

可陈序的眼睛确实看得懂那些界面。不仅看得懂,他还能修。

下午两点,意外发生了。

一份带“加急”标记的验收申请被推送到陈序的屏幕顶上。加急等于总部的特别任务,通常来自某个高等级的“内门弟子”。陈序不敢怠慢,点开申请单。

这是给灵元集团分公司年会用的一个“倒计时页面”。需求很简单,一个全屏的视觉,在年会当天倒计时到零,然后放烟花动画。页面已经生成了初稿,但主管觉得“缺了点灵魂,再优化一版”。

陈序看着那个初稿,眉头越拧越紧。紫色渐变背景,毛玻璃倒计时卡片,居中大标题——“未来已来”。他几乎能背出它背后的提示词:“设计一个未来感十足的倒计时页面,科技蓝紫色调,毛玻璃质感,居中布局,大标题。”这种页面,随便输入一个“未来感”它就会长这样。

问题是,AI 在倒数到零之后,烟花动画的粒子系统会在某些浏览器上反复崩溃。因为生成的 Canvas 代码里缺少对分辨率刷新率的兼容,同时大量粒子都堆叠在同一个 Z 轴深度上。这不是设计问题,是底层图形渲染逻辑的问题。

而要修好它,陈序脑子里浮现出一段代码。那是一段手写的 Canvas 初始化函数,包括 requestAnimationFrame 的降级处理,粒子池的对象复用,以及基于帧率的缩放补偿。他几乎能逐行背出来。那是他上辈子做营销页面的老本行,虽然那页面丑得一批,但这套烟花算法跑起来比这个 AI 生成的稳多了。

问题是,他不能在这里写代码。

对,这个疯狂的念头又来了。他攥紧了鼠标,指甲在掌心刻出月牙形的痕。他不能写代码。他不能写。这个世界的规则很明确:AI 生成一切,人类只提供想象。一个验收员动手写代码,比一个清洁工突然开始做心脏搭桥手术还要离谱。而且他工位上方有监控摄像头,他关不掉那个系统级的存在。任何手动键入超过二十个字符的异常行为,都会被记录、上报、然后有人下来“关问你”。

陈序把“加急”申请放到了待定区。他需要先做点别的事情转移注意力。于是他点开了自己最新收到的内部信——是一份“灵元宗外门弟子月考核通知”。考核题目:与掌门协同完成一个界面的优化。评分标准:提示词规范性 30%,AI 生成效率 20%,验收通过率 50%。

陈序盯着那个“验收通过率”,觉得这个世界的讽刺都快溢出来了。一个教人看界面的人,自己不能动手做界面。

手机在口袋里轻轻震了一下。

他拿出来。一条短信,来自一个不在通讯录里的陌生号码。

“陈序,你好。你在今天的 3-127 号界面里,发现了一个 12 像素的热区 bug。你点了通过,但你的瞳孔有轻微缩放——你看见了。”

陈序的后背一下子绷紧了。他下意识抬头环顾四周,所有的同事都死气沉沉地盯着自己的屏幕。谁在看他?短信是从哪发来的?

手机又震了一下。

“我们知道你脑袋里还藏着火。别问我们怎么知道的。下周三晚上,西星桥下第七个桥洞。有一个人,他以前写 C。他说你一定会来。因为你眼前的世界,全是紫色渐变。”

陈序盯着屏幕,拇指在“删除对话”的按钮上悬停,迟迟没有按下。

那一瞬间,他脑子里响起一个过于清晰的句子——那个死去的时代传来的键盘脆响,像是隔了整整一个世纪的火种,在暗处轻轻亮了一下。