Update story summary recall and prompt injection

This commit is contained in:
2026-01-26 23:50:48 +08:00
parent 13bcf5a0bb
commit a010681ea6
5 changed files with 1139 additions and 227 deletions

View File

@@ -1,6 +1,7 @@
// LLM Service
const PROVIDER_MAP = {
// ...
openai: "openai",
google: "gemini",
gemini: "gemini",
@@ -35,6 +36,7 @@ Incremental_Summary_Requirements:
- 转折: 改变某条线走向
- 点睛: 有细节不影响主线
- 氛围: 纯粹氛围片段
- Causal_Chain: 为每个新事件标注直接前因事件IDcausedBy0-2个。只填 evt-数字 形式,必须指向“已存在事件”或“本次新输出事件”。不要写解释文字。
- Character_Dynamics: 识别新角色,追踪关系趋势(破裂/厌恶/反感/陌生/投缘/亲密/交融)
- Arc_Tracking: 更新角色弧光轨迹与成长进度(0.0-1.0)
- World_State_Tracking: 维护当前世界的硬性约束。解决"什么不能违反"。采用 KV 覆盖模型,追踪生死、物品归属、秘密知情、关系状态、环境规则等不可违背的事实。(覆盖式更新)
@@ -171,7 +173,8 @@ Before generating, observe the USER and analyze carefully:
"summary": "1-2句话描述涵盖丰富信息素末尾标注楼层(#X-Y)",
"participants": ["参与角色名"],
"type": "相遇|冲突|揭示|抉择|羁绊|转变|收束|日常",
"weight": "核心|主线|转折|点睛|氛围"
"weight": "核心|主线|转折|点睛|氛围",
"causedBy": ["evt-12", "evt-14"]
}
],
"newCharacters": ["仅本次首次出现的角色名"],
@@ -211,6 +214,10 @@ Before generating, observe the USER and analyze carefully:
- events.id 从 evt-{nextEventId} 开始编号
- 仅输出【增量】内容,已有事件绝不重复
- keywords 是全局关键词,综合已有+新增
- causedBy 规则:
- 数组最多2个无前因则 []
- 只能填 evt-数字(例如 evt-12
- 必须引用“已存在事件”或“本次新输出事件”(允许引用本次 JSON 内较早出现的事件)
- worldUpdate 可为空数组
- 合法JSON字符串值内部避免英文双引号
- 用小说家的细腻笔触记录,带烟火气
@@ -441,4 +448,4 @@ export async function generateSummary(options) {
console.groupEnd();
return rawOutput;
}
}