AI 时代产品怎么做?WordPress 之父 Matt 给出了自己的 10 条防御性数据设计原则!
AI 时代,产品到底该怎么设计才安全?
8 月 4 号,Matt Mullenweg 在 WordPress Core 博客发了一篇短文《Defensive Data Design》(防御性数据设计),没讲大道理,就甩出 10 条原则,但每一条都值得写插件、做产品的同学认真学习和借鉴。
首先是 Matt 认为我们正步入一个 AI 智能体(agent)会替我们做越来越多事情的世界,所以对于产品设计,就要考虑如何让系统的默认设置尽可能的安全,也尽可能的稳妥。
然后 Matt 给出了他认为应该注意的 10 条防御性数据设计原则,可以说这是一份「AI 时代产品怎么做」的安全清单,这 10 条原则没有涉及某个具体功能,而是在讲一个底层逻辑:把危险动作设成难,把可逆动作设成易。
下面把这 10 条挨个过一遍,重点说对咱们 WordPress 开发者最有用的部分。
1. 丢到回收站要容易,但彻底删除要很难
这条 WordPress 自己早就做了,文章、评论都有回收站,删了还能找回来。但很多插件没学到位,一个「删除」按钮点下去数据直接没,连个确认都省了,AI agent 一旦误触,那可就真的没了!
2. 存草稿要容易,但发布到全网要很难
草稿随手存,正式发布多一道确认,这是 WordPress 编辑器的老传统,放到 agent 场景更关键,可以让它帮你写,但最好不要让它替你一键群发。
3. 改动要可逆、要可见
这就是 WordPress 修订版本(revisions)的思路,每一个改动都能追溯、能回退,这样 agent 干了啥,你一眼就能看得到。
4. 把数据摊开给人看,别藏起来
对象背后的数据(比如一篇文章到底存了哪些字段),展示得越清楚越好,而不是越封装越黑盒,让人和 agent 都能读得懂。
5. 报错要像跟朋友解释那样,旁边最好放个复制按钮
这点特别实用,很多插件的报错是「发生错误」或者「系统错误」,等于啥都没说,哈哈,有点「听君一席话,如听一席话」的意思,😅。可以考虑一下平时怎么跟朋友说话那样自然的去报错,并且旁边加个「复制」按钮,方便将错误信息贴到搜索或者丢给 AI。
6. 报错了说「为什么」,别说只「出了什么错」
比如「数据库连接失败」只是说出了什么错,「WordPress 连不上数据库,可能是凭据错了或者服务器挂了」则是说「为什么错了」,后者才能让人知道如何动手去修。
7. 优雅地失败,把伤害降到最低
出错的时候,别把整个站点搞崩,也别把敏感数据暴露出来,能局部失败就别全局崩。
8. 假设一切都是不可靠的而且有敌意的
网络会断、格式会乱、结构会炸,而且不是「可能不可靠」,是「大概率有人想搞你」,写插件的时候,所有外部输入都当敌人看,该过滤的时候一定要过滤、该校验的时候一定要校验。
9. 能直接展示,就别让人多点击
屏幕上有空间就别藏着掖着,用户(和 agent)想看的数据就直接摆出来,不要让用户多点一次。
10. 说人话,自然点,好玩更好
产品文案别整术语堆,越直白越好,如果可以还可以开个不伤大雅的玩笑。
这 10 条看着简单,其实是一份产品设计的「安全基线」,过去我们设计产品,默认使用者是人,人会犹豫、会确认;现在上 AI Agent 了,它不会犹豫,你设的默认值就是它的行为边界,把危险动作设难、把安全动作设易,本质上就是给 agent 套上缰绳,让他在安全的范围内驰骋!
最后说两句:我自己写 WPJAM 系列插件的时候,这几点里最容易被忽视的是第 5 和第 6 条,报错总是写得太「技术」了,以后可能可以和 AI 沟通多一些。
你们写插件或者做产品的时候,哪一条最常被忽略?评论区聊聊。