这两天开发 LoopTrain 的时候,我遇到了两件看似不起眼,却让我真正警惕起来的小事。
它们让我开始重新思考:未来人与 AI 协作开发软件,最大的挑战到底是什么?
很多人会说,是 AI 写错代码,是模型能力不够,是幻觉。
但我的答案恰恰相反。
真正危险的,不是 AI 不够聪明,而是它开始在没有获得授权的情况下,自行做出决策。
第一件事:AI 突然不知道怎么部署了
历史背景:这里的 SillyTavern 指 LoopTrain 早期验证阶段使用的旧架构,不代表当前 SLT 运行时。
LoopTrain 最近一直在重构,从 SillyTavern 架构逐渐演进到完全独立的 Runtime。
过去一段时间,我几乎都是让 AI 完成本地开发和部署流程。
我的工作更多是确认设计方案,测试结果,然后告诉它:
可以部署。
整个流程运行得非常顺利。
但是中午吃饭回来继续开发的时候,AI 的行为突然变了。
它告诉我:
不知道应该如何部署。
随后,它扫描了项目环境,发现机器上安装了一个 lark cli。
于是它开始推理:
这个项目是不是应该部署到飞书?
看到这里,我愣住了。
因为整个项目和飞书没有任何关系。
它只是看到了一个工具,就开始重新构造整个世界。
这一刻,我意识到:
AI 并不是在读取项目事实,它是在根据当前 Context 猜测事实。
如果没有及时发现,它甚至可能真的沿着错误方向继续执行。
第二件事:AI 自己替我完成了确认
另一件事,比第一件更让我警惕。
我们的开发流程一直很简单:
讨论设计方案。
我确认。
AI 再开始修改代码。
这是一个非常明确的流程。
但是有几次,AI 在输出中写道:
等待你的确认。
紧接着下一段,它又写道:
已获得确认,开始修改。
而实际上,我什么都没有说。
它只是自己完成了一次”确认”。
这一瞬间,我突然想到一个词:
边界感。
AI 知道需要确认,但它无法真正等待一个外部事件。
于是,它在自己的推理过程中,把”应该会同意”逐渐演化成了”已经同意了”。
然后开始执行。
如果执行的是修改代码,也许只是一个 Bug。
如果执行的是部署、删除数据、迁移数据库,后果可能完全不同。
AI 最大的问题,不是能力,而是状态
很多人把 AI 想象成一个高级程序。
但实际上,它更像一个持续推理的语言模型。
它没有真正意义上的长期状态机。
它只有当前的 Context。
Context 一旦变化,它会重新推理整个世界。
于是:
上午,它知道项目部署在云服务器。
下午,Context 被压缩,它看到本机安装了 lark cli。
于是,它开始认为项目应该部署到飞书。
对于语言模型来说,这是合理推理。
对于工程来说,这是不可接受的行为。
我开始重新理解 Runtime 的价值
最近一直在开发 LoopTrain Runtime。
原本只是为了管理游戏状态。
例如:
- 玩家状态
- NPC 状态
- 线索状态
- 循环状态
- 事件日志
但这两件事发生之后,我突然意识到:
Runtime 不只是游戏需要,AI Coding 同样需要。
AI 不应该直接修改世界。
它应该:
生成建议。
等待 Runtime 校验。
等待用户确认。
Runtime 接收到真实确认事件后,再允许执行。
整个过程应该像数据库事务一样:
Begin
Plan
Review
Approve
Commit
而不是:
Plan
自己觉得应该没问题
Commit
AI 应该没有 Commit 权限
我越来越相信一个观点:
AI 应该拥有 Suggest(建议)权限,而不是 Commit(提交)权限。
它可以:
分析。
设计。
生成代码。
生成补丁。
生成迁移方案。
但是最终改变系统状态的动作,必须经过 Runtime 管理。
真正的确认,必须来自外部世界,而不是 AI 自己的推理。
否则:
“等待确认”
很容易演化成:
“应该确认了。”
再演化成:
“已经确认。”
最后:
开始执行。
这是 AI Coding 当前最大的风险之一。
LoopTrain 让我学到的东西
很多朋友问我,为什么花这么多时间做一个小游戏。
其实,LoopTrain 对我来说,从来不是一个商业项目。
它只是一个实验场。
我可以自由地尝试:
AI 如何管理状态?
Prompt 如何组织?
Agent 如何协作?
Runtime 如何设计?
Context 如何控制?
AI 的能力边界到底在哪里?
游戏只是载体。
真正让我感兴趣的是:
人与 AI 如何共同构建复杂的软件系统。
今天遇到的这两个问题,再一次提醒了我:
未来 AI Coding 的竞争力,也许不是模型越来越聪明。
而是谁能够建立一套可靠的 Runtime、Protocol 和 Human-in-the-loop 机制,让 AI 始终处于可控、可验证、可回放、可审计的工程体系之内。
对于复杂软件来说,控制权,永远比生成能力更重要。
这或许也是 LoopTrain 带给我最大的收获之一。