← 返回日志列表
Day 25

我的软件封禁记录 | 一定要合规合法

技术再牛,不懂合规,一切归零。

#AI#技术#合规

技术再牛,不懂合规,一切归零。 事情是这样的 前两天,我做了一个叫"明朝内阁"的个人管理系统。 这不是一个普通的 AI 聊天机器人——它是一套完整的个人内阁管理系统。 灵感来源于古代朝廷的六部制度:户部管财务记账,吏部管习惯打卡,兵部管目标战役,工部管日程提醒,礼部管社交关系,刑部管自律监督。 你跟它说"记一笔午饭 35 块",户部尚书帮你记账;你说"我今天跑步了",吏部帮你打卡;你说"两小时后提醒我开会",工部准时通知你。 每个用户都有独立的"衙门"——独立的 AI 记忆、独立的数据空间、独立的对话上下文。用户之间完全隔离,就像每个人都有自己的一套朝廷班子。 技术上,我做了不少事: 多用户自动开通:新用户发第一条消息,系统自动在几秒内创建专属 AI Agent 记忆体系:每个用户有独立的长期记忆和每日记录 实时监控大盘:搭了一个本地 Web 页面,可以看到每个用户的状态和对话 定时提醒系统:用户随时设定提醒,系统准时推送 并发安全:文件锁、原子写入,30 个用户同时用也不会串数据 30 个内测用户招好了,API 余额充足,服务器跑得稳稳的。 用户使用反馈也没什么问题。 四小时后,企业微信被封了。 不是某个接口被限流,不是某个功能被禁用,是整个企业,直接封禁。 用户还没来得及体验完整的"六部朝廷",通道就没了。 我当时的第一反应是:我并没有做宣传和营销收费啊。 然而并不是。 封号原因:我根本不该这么用 冷静下来复盘,我才意识到问题出在哪—— 企业微信是给企业内部员工用的,不是给你拉外部用户当"员工"的。 我做了什么?把 30 个毫无雇佣关系的测试用户,全部添加为"企业成员"。在腾讯的风控系统看来,这就是一个刚注册的企业,突然涌入大量非员工成员,还在高频调用 API 发送自动化消息—— 虚假企业 + 营销号 + 外挂,三重红线全踩了。 不是误封。是我确确实实违反了平台规则。 最痛的领悟 技术人有一个通病:我们太关注"能不能做到",而忽略了"允不允许做"。 回头看整个过程: 架构设计?花了很多时间。多 Agent 隔离、原子写入、热重载,每一个技术细节都反复打磨。 并发安全?文件锁、session 隔离、用户上下文独立,专门做了 76 项安全审计。 用户体验?游戏化菜单、个性化记忆、角色扮演式交互,UI 细节调了又调。 平台合规?一秒都没想过。 我甚至没有打开过企业微信的官方文档,去看一眼它的《使用规范》。 如果看了,第一页就会告诉我:成员必须是真实员工。 一页文档,就能避免这段时间的白忙活。 这不是个例 我后来搜了一下,发现踩这个坑的开发者不在少数: 有人用企业微信做社群机器人,封了; 有人用个人微信号跑自动回复,封了; 有人用公众号模板消息当短信发,封了; 有人在小程序里搞诱导分享,下架了。 每一个案例,技术实现都没问题。问题全部出在合规上。 大家的反应都一样:"我又没做坏事,为什么封我?" 因为平台不看你的动机,只看你的行为是否符合规则。 开发者最容易踩的 5 个合规坑 我总结了一下,作为前车之鉴: 1. 用错了平台定位 每个平台都有自己的设计初衷: 平台 定位 常见误用 企业微信 企业内部通讯 拉外部用户当员工 微信个人号 个人社交 跑自动化机器人 公众号订阅号 内容推送 当客服系统用 小程序 轻量应用 诱导分享裂变 选错了平台,技术做得再好也是违规。 2. 忽视 API 调用频率 几乎所有平台都有 API 限流规则。我的自动开通守护进程,每 5 秒调用一次企业微信 API,一小时就是 720 次。 这在技术上叫"轮询",在平台眼里叫"异常调用"。 3. 自动化消息 = 高危行为 在微信生态里,任何自动化消息发送都是敏感操作。不管你是回复用户问题还是发送提醒,高频自动化消息都可能触发风控。 4. 没看用户协议就开干 说实话,有几个开发者会认真读完平台的用户协议和开发者规范? 但这些文档里,往往藏着最关键的信息——什么能做,什么不能做。 5. 测试环境 ≠ 生产环境的合规要求 开发测试的时候,三五个人随便玩,什么问题都没有。 一旦上线拉真实用户,平台的风控策略就完全不同了。 小规模测试通过,不代表大规模上线合规。 系统没死,只是换个活法 但"内阁"这个产品本身没有问题。 被封的是通道,不是系统。服务器还在跑,所有用户的记忆数据都还在,架构完全可以复用。死掉的只是"企业微信"这个入口。 所以这件事的本质不是"项目失败了",而是"我选错了分发渠道"。 冷静下来,我重新梳理了可行的方向: 方向一:微信服务号 服务号本来就是面向公众的——用户扫码关注就能用,不需要"加入企业"。这是微信生态里最合规的 AI 对话方案。 但它有两个硬限制: 5 秒超时:微信要求被动回复必须在 5 秒内返回,AI 大模型通常需要更久。解法是先返回空响应,然后通过客服消息接口异步推送。 48 小时窗口:用户最后一次互动后 48 小时内才能主动给他发消息。这意味着"每天早上给你发日报"这种功能,如果用户两天没理你,就发不出去了。 适合场景:国内用户为主、不需要高频主动推送。 方向二:独立 App 这是最自由的方案——没有任何平台限制,推送、提醒、实时对话全部可控。 代价是开发量大:iOS + Android 双端,推送服务、登录体系、数据同步……一个人搞,周期会比较长。 但如果"内阁"真的要做成产品,App 可能是终局。 方向三:微信小程序 小程序是一个折中方案: 开发成本比 App 低 用户打开方便(微信内直接用) 支持订阅消息(需要用户主动订阅) 限制是交互体验不如 App,且订阅消息的模板和频率受微信管控。 方向四:Web 应用 最快上线的方案。做一个网页聊天界面,分享链接就能用,不依赖任何平台审核。 缺点是没有推送能力——用户必须主动打开网页才能看到消息。 但提醒系统基本废了,所以暂时不考虑这个方向。 我的选择 目前倾向于两步走: 短期:先用微信服务号把核心对话功能跑通,让用户能用起来。48 小时的窗口限制虽然存在,但对于大部分活跃用户来说够用了。 中期:同步开发独立 App。把"内阁"做成一个真正的个人管理产品,不再受制于任何第三方平台。推送、提醒、语音交互、数据可视化——所有在企业微信上被限制的功能,在自己的 App 里都能完整实现。 核心的 AI 架构和多用户系统不用重写,它们是平台无关的。换的只是前端通道。 正确的做法是什么? 如果重来一次,我会在写第一行代码之前,先做这三件事: 第一步:选对平台 我的需求:让外部用户与 AI 助手对话 ❌ 企业微信 → 内部工具,不能拉外部用户 ✅ 微信服务号 → 面向公众,合规 ✅ 独立 App → 完全自主 ✅ 微信小程序 → 折中方案 ✅ Web 应用 → 最快上线 第二步:通读平台规范 不是浏览,是通读。重点看: 禁止行为清单 API 调用限制 消息频率限制 用户数据规范 第三步:合规性自检清单 上线前问自己这几个问题: [ ] 我的用户获取方式,平台允许吗? [ ] 我的消息发送频率,在限制范围内吗? [ ] 我使用的是官方 API 还是第三方工具? [ ] 我的自动化行为,会被判定为外挂吗? [ ] 如果平台审查,我能解释清楚每一个功能的合理性吗? 任何一项答不上来,都不应该上线。 写在最后 被封之后,我其实有点庆幸——庆幸这只是 30 个测试用户,而不是 3000 个正式用户。 如果产品已经上线运营,用户数据积累了几个月,然后突然被封,那才是真正的灾难。 合规不是上线前的最后一步,而是立项时的第一步。 作为开发者,我们习惯了解决技术问题——遇到 bug 就修,遇到性能瓶颈就优化。但合规问题不一样,它没有 debug 的机会。一旦触发,就是封号、下架、数据清零。 所以,下次你准备花两天时间搭一个很酷的系统之前,先花两小时读一下平台规范。 这两小时,可能是你整个项目里最有价值的投入。 "内阁"还会回来的。 下次,它会选对门。 技术是工具,合规是底线。共勉。