连环画导演引擎
让 AI 现场讲一个每次都不同的故事
核心文件 convex/experience.ts 的 director() 是一个通用函数,仅依赖 {event, history, opts},可迁移到任意活动。
模型与提示词
- 默认 Claude Sonnet 4.6(
DIRECTOR_MODEL可切换)。 - 系统提示词锚定真实场景(海边、篝火、帐篷、城墙),要求每格旁白埋一句 ≤14 字、可截图的金句。
明确禁用套话:如「独一无二的旅程」等被列入黑名单,保证文本质感。
健壮性
- JSON 容错:
parseJson()容忍 CJK 模型常见的尾逗号。 - 结构校验:
validateStep()校验每格的 imagePrompt / narration / question / options。 - 温度退火重试:最多 3 次重试,首轮 temperature 0.9(更有创意),之后 0.4(更稳定)。
收束机制
收尾时 badgeTitle 必须逐字命中 5 个原型结局之一,保证品牌一致:
- 沙城常住候鸟|选择留下
- 带着遗憾离开|错过了什么
- 这场戏的主角|从旁观者变被看见
- 偷沙的旅人|只带走一粒沙
- 把名字写进风里|然后轻轻消失