skip to content
tlj 的工程笔记
← 项目

保障大脑:大型活动要加多少基站,让公式算、让 AI 写

比赛

某 AI 创新赛参赛作品。大型活动通信保障智能体——给定人数,确定性工程模型(Erlang B 语音 + 5G 吞吐)算出要临时加多少基站、多少应急通信车,AI 只负责把硬数字翻译成方案、再用异构第二个 AI 交叉验证。核心是「计算与 AI 分离」:数字有据可查,AI 碰不到、也就编不了。

时间
2026-06
角色
独立开发(计算引擎 / 方案 pipeline / 前端 / 部署)
成果
Erlang B + 5G 吞吐双轨算基站/通信车 + 异构双 AI(GLM 生成 / Azure 验证);5 万人场景校准后落到 16 站 6 车(校准前 201 站 67 车);已上线

某 AI 创新赛的参赛作品,选题是大型活动通信保障智能体——代号「保障大脑」。一句话:给定一场活动的规模(人数等),算出要给现场临时加多少基站、多少应急通信车,再把这套部署方案讲清楚。

定位的核心是一个判断:计算的归计算,AI 的归 AI。 「要加多少基站」这种数字,绝不能让大模型「估」——必须由确定性的工程公式算出来,否则评委一句「这个数怎么来的」就崩了。所以架构上把系统劈成两半:硬数字由公式算,AI 只负责把数字翻译成人能读的方案文字。AI 碰不到计算过程,也就编不了数字。 这是整件事可信度的根。

计算引擎:Erlang B 语音 + 吞吐量数据,双轨

三个设计决策

一、计算与 AI 分离(上面那条,可信度的地基)。 二、异构双 AI 交叉验证。 方案生成用一个模型(国产 GLM,SSE 流式吐字),方案验证用另一个异构厂商的模型(Azure GPT)。验证模型不知道生成模型写了什么,做独立的「第二意见」,专抓生成里的硬伤和不一致。用两个不同源的模型,是为了避开同源模型的同源错误。 三、Provider 抽象层。 换模型只改环境变量,不动业务代码。

真实坑:参数失真,5 万人跑出 201 个基站(现象 → 根因 → 解法)

这是整个项目最硬的一段料。最早跑「5 万人演唱会」场景,引擎吐出 含冗余 201 个基站、67 辆应急通信车——而公开的真实演唱会保障案例只用了约 4 个临时基站。量级差了几十倍。 评委只要一对照真实案例,作品当场就被否。

根因是默认参数太激进,逐个反推校准:

每个参数都在注释里写明对标来源。校准后同一场景落到 基础 13 站 → 含冗余 16 站 + 6 辆应急车,回到真实案例的量级。

这个「差几十倍 → 找公开案例反推参数 → 把量级拉回来」的过程,比那个漂亮的最终数字更值钱——它是把一个会被一眼戳穿的作品救回来的过程。

量化与上线

5 万人场景 16 站 / 6 车(对标公开演唱会案例约 4 个临时基站,同量级);Erlang B 标准表 8 点校验通过;三段式 pipeline(生成 / 验证 / 可视化)端到端跑通;React + Leaflet 前端把部署点位和覆盖圈画在地图上;Docker 打包部署到云容器服务,已上线 guard.zdwktlj.top

诚实边界

小结

这个项目最说明问题的不是「AI 能写保障方案」,是那条「计算与 AI 分离」的判断:凡是要被追问「这个数怎么来的」的地方,就别让 AI 碰。 让公式算、让 AI 写、再让另一个异构 AI 验——可信度是设计出来的,不是模型大出来的。而那个把 201 站校准回 16 站的过程,是整件事里我最该写下来的硬料。