最近一段时间,我一直在和 AI 讨论正在装修中的青年旅社。
我想验证一下,既然现在几乎每个人都可以借助 AI coding,那么一家规模不大的青年旅社,能不能自己搭建一些原本需要购买商业系统才能获得的能力?
比如门锁。店里留下了几种不同型号的电子锁,也留下了很多旧房卡。我把锁拆开,看它的主板、接口、电池和机械结构。读取 MIFARE Classic 卡的 UID、扇区、密钥和数据。把一张卡在锁里重新注册,再对比注册前后的卡片内容。
我发现同一批卡之间看起来很像,却并不完全一样。有些卡几乎所有数据区都是空的,有些卡在 0 扇区有不同的 Key。有一次,我把一张原本具有特殊 Sector 0 配置的卡重新加入门锁以后,它的扇区配置发生了变化,但卡里依然没有出现明显的房号、入住日期或者到期时间。
从目前读取到的卡片和注册前后的变化来看,前运营者所使用的“发卡”机制,很可能并不是把“203 房间、9 月 8 日中午到期”这些信息直接写进卡里,而是由门锁识别这张卡,再把主要授权保存在锁自己内部。
于是我和 AI 开始设计一个 Page Access 的后台。在这个后台里,一张 Tag 可以同时关联 203 房间、行李间和公共入口;可以规定不同的开始和结束时间;可以记录每一把锁自己的系统时间以及与标准时间的偏差。
很快我们又遇到了一个现实问题。如果后台根本无法和那把门锁通信,那么无论界面设计得多完整,它也无法自动改变现实中的门锁权限。
软件里的权限模型,和现实世界里真正执行权限的设备,不是同一件事。
于是我们继续研究门锁的网络功能。它有 Hotspot 和 Smart 两种联网模式。恢复出厂以后,网络甚至不会立刻工作,必须先设置管理员密码、系统时间,再增加一个正常开门密码,网络模块才会被激活。之后锁会广播一个自己的 Wi-Fi 热点。
这说明门锁内部其实存在比我们一开始想象得复杂得多的状态。从密码、卡片、系统时间,到网络模块,再到可能存在的厂家 App、云端平台或者 Gateway,它不是一个单纯的读卡器。
我们开始意识到,如果未来真的希望一个后台同时管理三四种不同的锁,那么真正应该寻找的不是怎样复制每一种卡,而是每一种锁有没有一种稳定的管理接口:API、SDK、Gateway、标准协议,或者至少是一个能够清晰描述和审计的本地管理流程。
几乎同一时间,我们又在讨论青年旅社的网络。一开始同样有一种很自然的诱惑:自己做网关。
有一台 True 留下来的 Wi-Fi 6 光纤路由器,我们甚至开始研究它的型号、硬件版本、GPON、USB、Mesh 和可能存在的刷机空间。我们讨论 OpenWrt,讨论 UART、Bootloader、Flash、固件分区,也讨论如果拆开机器,能不能从主板和启动日志找到更多东西。
这个过程很有意思。
但它也让一个原本比较抽象的问题变得越来越具体:
“能够刷进去一个系统”,和“我愿不愿意把整家青年旅社的网络安全交给这个系统”,是两个完全不同的问题。
一家真正营业的 Hostel 不是实验室。客人每天会连接 Wi-Fi。前台系统、门锁、摄像头、员工设备会同时在线。设备会死机,会断电,会升级失败,会遇到异常流量,会被扫描,也会有很多我们根本没有预想到的边界条件。
一个 AI 可以很快帮我们写出路由、权限管理、设备监控甚至故障切换的代码。但代码能运行,并不等于它已经经历了足够多的现实世界。
成熟的商业网关、交换机和防火墙背后,有很多通常不会出现在产品宣传页上的东西:固件升级机制、配置回滚、watchdog、漏洞响应、异常流量处理、硬件兼容、长期维护、日志系统,以及无数用户已经替我们碰过的极端情况。
在全民都可以 coding 的时代,这一点反而变得更重要。AI 极大降低了造出来的成本,但它没有同步消除证明它可靠的成本。
后来我们讨论 CCTV,结论也越来越接近同一个方向。我们不需要自己制造录像系统,也没有必要为了自主去重新实现成熟的视频协议。
更合理的做法,是选择成熟的摄像机和录像平台,但要求它们支持 ONVIF、RTSP、API、本地存储和网络隔离。
网络也是一样。我们可以选择 UniFi、Omada、Fortinet 或其他成熟商业网关,而不是自己维护一个未经长期验证的核心路由系统。
我们不再要求所有东西必须来自同一个品牌。真正需要统一的,是它们之间的关系。
当这些东西有了稳定的身份以后,我们才有可能建立它们之间的关系。
例如:
17:42:03,一张 Tag 打开了 203。
17:42:05,二楼楼梯摄像机记录到有人进入这一层。
17:42:06,203 的门锁仍然在线。
单独看,这三条只是三个完全不同系统产生的数据。但如果它们共享时间、地点、设备身份和事件结构,我们就可以把某个 credential 的开门记录、某个空间附近的视频事件以及当时设备的状态放在同一条时间线上理解。
它们之间可以建立关系,但这种关系本身仍然需要保留证据来源和确定程度。
AI 最有价值的地方,是让我看到,那些原本距离很远的数据,还存在其他理解方式,也可以被放进新的结构里。
门锁知道的是 credential。PMS 知道的是 reservation。摄像头知道的是 event。网络知道的是 device。前台知道的是 guest。单独来看,每个商业系统都只能看到自己负责的那一小部分。
AI 对于我来说,开始从做一个界面替代一个系统,转向了理解多个系统和元素之间的关系。
我现在更愿意使用成熟的商业基础设施。网关应该首先是一个可靠的网关。摄像机应该首先是一个可靠的摄像机。门锁首先应该保证人在断网、服务器异常的情况下,仍然能够安全地进出房间。
在一个由成熟系统组成的现实世界里,AI 应该站在什么位置?
AI 可以看见这些系统,可以分析,可以提出建议,可以把不同的数据联系起来,甚至在经过授权和验证之后帮助执行操作。
回头看,我之前那些看起来有些绕远的实验——读卡、拆锁、尝试连接门锁热点、做 Page Access 原型、研究刷路由器、比较 CCTV 平台——并没有因为最后选择成熟商业产品而失去意义。
恰恰相反。
如果没有真的走到这些地方,我很容易把“开放”“自建”“AI coding”理解成几个抽象的词语。
真正接触硬件以后才会发现,开放不是我能不能破解它。
开放更重要的是:我能否长期、稳定、被支持地取得我自己的数据,并让它和其他系统建立关系。
AI 不一定需要成为基础设施本身,但它正在改变我理解、选择和连接这些基础设施的方式。