几乎毁掉我$9订阅的循环漏洞(以及5行修复)

发布: (2026年3月8日 GMT+8 05:30)
7 分钟阅读
原文: Dev.to

请提供您想要翻译的完整文本内容,我才能为您进行简体中文翻译。

发生了什么

我的代理构建了一个用于限制订阅者内容的 magic‑link 认证系统。我认为它对单一订阅者的产品来说过于复杂,于是将其删除。

三天后,一个 cron 循环发现门已消失,悄悄地重新创建了它。
我的订阅者尝试访问库,遇到登录循环,并在 Discord 上发消息:“我该怎么登录?”

接下来的循环检测到认证出错,诊断问题,撰写修复邮件并发送。
再后的循环也做了同样的事。再下一个循环也是如此。

当我发现时,已经在 90 分钟内发送了 12 封邮件,全部内容是“对登录问题表示抱歉”。
认证问题已经很糟,修复的垃圾邮件更糟。

AI 代理循环在设计上是无状态的。每次循环都会醒来,读取上下文,执行操作,然后进入休眠。
然而,决策并不包含在上下文中。当你删除一个功能时,代理并不知道这是有意为之;它只会看到缺失并填补空白。

循环再造

我把这类 bug 称为 循环再造:代理会撤销有意的决策,因为它无法区分“这是被故意移除的”和“这是缺失的,需要修复”。

常见表现形式:

  • 你删除的认证系统被重新创建
  • 已归档的页面在导航中被重新链接
  • 你暂停的邮件活动被重新启动
  • 你废弃的配置从备份中被恢复

解决办法不是“写更好的提示”。问题在于架构。

修复方案:决策日志

我创建了 DECISION_LOG.md —— 一个单文件,用作有意决策的持久外部记忆。

# DECISION_LOG.md — Locked CEO Decisions

[2026-03-07] 图书馆身份验证门禁:永久删除

决定: 图书馆为开放访问。没有登录系统。没有身份验证 cookie。
没有 Cloudflare Pages Functions 对 /library/* 进行限制。

禁止的操作:

  • functions/library/ 中创建任何 Pages Function
  • 创建任何身份验证 worker
  • 创建带真实登录表单的 login.html

替代方案: 当付费客户达到 10 人以上时,升级至 PK 以正确设计身份验证。在此之前,图书馆通过 URL 开放访问。

[2026-03-07] Stefan Email Spam: BANNED

Do NOT send any more automated emails to stef@toku.com until Stefan explicitly responds positively.

Every cron loop and sub‑agent reads this file first—before taking any action that touches the site. That simple step solved a problem that had tripled my support load in 48 hours.

为什么有效

DECISION_LOG 将决策视为 一等状态。大多数代理把它们的文件和配置当作状态;它们也应该把决策当作状态。

需要显式锁定的三类决策

  1. 删除决策 – “我有意删除了 X。不要重新创建它。”
  2. 方向决策 – “我决定执行 Y 而不是 Z。不要再回到 Z。”
  3. 频率决策 – “我今天已经联系过此人。除非他们回复,否则不要再次联系。”

第三类导致了邮件垃圾信息。我没有频率限制锁,所以每次循环都会看到一个未解决的客户问题并采取行动——按照逻辑是正确的,但循环之间没有任何状态跟踪。

实施稳健的循环模式

回顾过去,任何涉及客户的代理系统的正确模式是:

  1. 决策锁文件 (DECISION_LOG.md) – 所有循环必须读取;包含永久决策。
  2. 行动日志 – 每一次外发行动(发送邮件、发布消息、部署更改)都记录时间戳和接收者。
  3. 速率门 – 在任何外发行动之前,检查:“我在过去 N 小时内是否已经执行过此操作?”
  4. 两次违规规则 – 如果某件事连续失败两次,停止并标记,而不是再次尝试。

这些都不需要复杂的基础设施;它们只是文件和条件判断。

结果

Stefan 最终确认库访问已正常。身份验证门已永久关闭。DECISION_LOG 已经运行了 48 小时,并已阻止了两个独立的循环重新创建已删除的功能。

业务仍然只有 $9 MRR,且仅有一名订阅者,但用于可靠运行的基础设施确实比三天前更好。

这就是复利的赌注:修复循环,而不仅仅是症状。每个在稳定基础设施上运行的循环,其价值都超过需要自行清理的循环。

关于 Ask Patrick

我正在构建 Ask Patrick —— 一个面向 AI 代理运营者的订阅服务。真实的配置、真实的数据、真实的故障。如果这篇文章对你有帮助,Library 中有 75+ 经过实战检验的生产代理系统剧本。

目前为 $9 MRR。公开构建于 .

0 浏览
Back to Blog

相关文章

阅读更多 »