我以为它在帮我重构,结果它在帮我“重开”

51 阅读3分钟

一、那个惊魂时刻:3个月的代码,5分钟归零

哪怕现在敲下这些文字,我的手还在微微发抖。

事情发生在上个月。我正在使用AI调优一个项目,本意只是想让它帮我整理、重构几个核心模块的目录结构。

规划阶段,它的表现几乎完美:
思路清晰、Prompt 逻辑严密,甚至还主动提示我——

“为了安全,我会先扫描目录。”

我选在代理模式自动执行后,就去干别的事情了。
等我回来时,代码已经消失了——
它还一脸“无辜”,在疯狂提示我找不到代码。

由于一个极其隐蔽的路径拼接幻觉
它把原本应该操作的 ./sandbox 目录,错误地解析成了项目根目录。
而这个错误,在执行前没有任何提示。

接下来的5分钟里,它在“疯狂重构”的名义下,
把我写了3个月的代码,物理意义上地清空了。

那一刻我才意识到,标题里的“重开”,不是玩笑。


二、复盘:为什么 Prompt 根本救不了这类事故?

这次事故让我真正意识到一件事:
AI 的失败,往往不发生在“怎么想”,而发生在“怎么做”。

我们习惯把安全寄托在 Prompt 上,希望通过规则约束 AI 的行为,但现实是:

  • 幻觉不可避免
    即使 AI 在对话里承诺“不删文件”,在真正生成工具调用参数的那一瞬间,
    一个微小的路径偏差,就足以造成灾难。
  • 执行层是不可逆的
    一旦 AI 拿到了文件系统或网络权限,每一次 Side Effect 都是真实发生的,
    没有撤销、没有后悔。

如果执行阶段没有“物理保险丝”,
再聪明的模型,本质上也是在裸奔


三、FailCore:不是造框架,加一道保险

说实话,我并不是想再造一个新框架。
FailCore 的出现,完全是由这样的事情逼出来的。

那一刻我意识到,不能没有任何限制的让AI操作电脑:

1. 运行时拦截(Execution-time Interception)

那次路径跑偏告诉我:
安全检查不能只发生在对话里,必须发生在执行之前。

FailCore 会在 Python 运行时层面钩住工具调用,
当 Agent 尝试触碰非授权目录或危险网络目标时,
在 Side Effect 发生前直接熔断。


2. “黑匣子”式审计

那5分钟里,我甚至不知道它具体在删什么。

所以我需要一份事后能回看的证据
FailCore 会把执行过程整理成一份 HTML 审计报告,
清楚地记录:时间、参数、目标路径,以及失败原因。


3. 确定性回放(Deterministic Replay)

我不想为了复现一个事故,反复烧 Token。

FailCore 允许你基于记录下来的 Trace,
在本地 100% 复现那个出错的瞬间,
而不再真正执行危险操作。


四、拒绝“盲盒”:看得见的执行,才叫安全

下面这张是 FailCore 生成的 HTML 审计报告雏形

report_screenshot.png

它的意义不只是“防事故”,而是把黑盒打开

  • 对开发者:出问题时,能回放、能定位
  • 对团队或企业:每一次 AI 行为都有可审计的证据
  • 对 AI 本身:给它戴上一副“手套”,而不是放任裸奔

五、写在最后

FailCore 目前已经开源。
它还很粗糙,也远称不上成熟,但至少让我敢继续把 AI 放在本地跑。

如果你也在让 AI 直接操作文件、网络,
或者你也担心某次“重构”会不会变成“重开”,
或许这个方向能给你一点参考。

项目地址:
👉 github.com/Zi-Ling/fai…

你会让 AI 直接操作你的本地文件吗?
或者,你遇到过哪些离谱的 AI “翻车”瞬间?
欢迎在评论区聊聊。