
AI 很会写剧情,但总写出死局——我给 MuiStory 加了一套"剧本体检"工具
让本地 AI Agent 写互动小说,用 CLI 工具体检逻辑并推上线,玩家现在也能给结局打分了。
AI 擅长写剧情,但容易写出死局
MuiStory(muistory.com)是我做的一个 AI 互动小说和文字冒险创作、游玩平台。在平台里,剧本是用一种类似 Markdown 的格式写的,包含场景、选项,以及好感度、物品、属性这些变量。
大模型很擅长写剧情,但故事写长了之后很容易出错。它容易数漏场景、写错变量,或者写出"条件都不满足时玩家卡死"的死局。剧情越长,越难靠人眼一遍遍去检查。
写和查分开:用确定性的 CLI 工具
面对这个问题,我的想法是:AI 写,确定性的工具查,两边各做擅长的事。
我做了一个命令行工具 @roudanio/cli,命令名是 mgb。它不用安装,直接用 npx 就能跑。
核心命令是 mgb validate。它基于真实的编译器语法树做确定性检查,10 毫秒内就能给出结果。检查项覆盖了这几点:
- 有没有
# start入口; - 选项是否指向不存在的场景;
- 带条件的选项旁边有没有无条件的兜底选项(防止玩家卡死);
- 有没有除开头外没人能走到的孤立场景;
- 用到的变量有没有声明、
=和==有没有写错; - 对白里的角色有没有注册。
除了体检,这个工具还能帮创作者处理后续环节:mgb preview 支持本地热重载预览;mgb graph 可以把分支路线和结局导出成 Mermaid 流程图;写完之后运行 mgb push,就能一键推到 muistory.com。
让本地 AI Agent 端到端创作
除了手动写,我还希望让本地 AI Agent 能够端到端完成创作。
网站提供了 MCP 和 API Key。本地 Agent 可以直接创建作品、细粒度编辑剧本、生成剧本和图片、上传素材,以及设置场景配图。我为它配了几个 Agent skills:validate-game 负责校验,upgrade-game 负责升级旧剧本,create-minigame 负责生成嵌入的小游戏。网站上也新增了专门的 Skills 页面。
在跑通这套流程的过程中,我也踩过具体坑。比如一开始 API Key 默认限流是 24 小时 10 次,Agent 调几次工具就会被挡住,还会报 401 错误。现在我把它改成了每分钟 120 次,超限后返回 429。另外,以前中文标题会生成像"-1234"这种看不懂的地址,现在可以自定义可读的 slug 了。为了把整套流程讲清楚,我写了一篇《全模态 AI Agent 互动小说创作全流程指南》放在了站上。
游玩细节与一个诚实的取舍
在游玩和创作细节上,平台也有了一些新变化。
玩家玩到结局后可以打分、留言,作品会显示平均分,创作者可以对评价进行隐藏或置顶。这里做了一个细节:没登录时写的评价不会丢,系统会先存下草稿,登录跳回来后自动提交。此外,网站新增了全屏标题模板,封面铺满整屏,中间是一张毛玻璃卡片,进入游戏时更沉浸。付费用户可以自己选文本模型,也可以分别选图片、语音和视频模型。
最后讲一个诚实的取舍。最近我把套餐分级调整为文本 AI 免费,生图、音乐、配音需要 Pro,视频需要 Pro+。调整之后我发现,首页和创作页上还写着"免费档就能体验生图/配音"。这是对用户的错误承诺,发现之后,我把所有相关的文案一起改掉了。
如果你想写一个有分支、有结局的故事,或者想让自己的 AI Agent 帮你写,可以从 npx @roudanio/cli init my-story.md 开始,写完后 push 到 muistory.com。也欢迎你在作品页留评价,告诉我哪里不好用。