Tune diffusion cap and tighten evidence/entity section rules

This commit is contained in:
2026-02-13 18:30:11 +08:00
parent 8908074224
commit f7abdd8e94
2 changed files with 9 additions and 5 deletions

View File

@@ -55,7 +55,6 @@ const TOP_N_STAR = 5;
// L0 显示文本:分号拼接 vs 多行模式的阈值
const L0_JOINED_MAX_LENGTH = 120;
// 背景证据:无实体匹配时保留的最低相似度(与 recall.js CONFIG.EVENT_ENTITY_BYPASS_SIM 保持一致)
const EVIDENCE_ENTITY_BYPASS_SIM = 0.70;
// ─────────────────────────────────────────────────────────────────────────────
// 工具函数
@@ -161,14 +160,18 @@ function collectL0Entities(l0) {
* @returns {boolean}
*/
function shouldKeepEvidenceL0(l0, focusSet) {
if (!focusSet?.size) return true;
if ((l0?.similarity || 0) >= EVIDENCE_ENTITY_BYPASS_SIM) return true;
if (!focusSet?.size) return false;
const entities = collectL0Entities(l0);
for (const f of focusSet) {
if (entities.has(f)) return true;
}
// 兼容旧数据semantic 文本包含焦点实体
const textNorm = normalize(l0?.atom?.semantic || l0?.text || '');
for (const f of focusSet) {
if (f && textNorm.includes(f)) return true;
}
return false;
}
@@ -208,6 +211,7 @@ function buildSystemPreamble() {
"以上是还留在眼前的对话",
"以下是脑海里的记忆:",
"• [定了的事] 这些是不会变的",
"• [其他人的事] 别人的经历,当前角色可能不知晓",
"• 其余部分是过往经历的回忆碎片",
"",
"请内化这些记忆:",
@@ -1051,7 +1055,7 @@ async function buildVectorPrompt(store, recallResult, causalById, focusEntities,
sections.push(`[印象深的事] 记得很清楚\n\n${assembled.directEvents.lines.join("\n\n")}`);
}
if (assembled.relatedEvents.lines.length) {
sections.push(`[好像有关的事] 听说过或有点模糊\n\n${assembled.relatedEvents.lines.join("\n\n")}`);
sections.push(`[其他人的事] 别人经历的类似事\n\n${assembled.relatedEvents.lines.join("\n\n")}`);
}
if (assembled.distantEvidence.lines.length) {
sections.push(`[零散记忆] 没归入事件的片段\n${assembled.distantEvidence.lines.join("\n")}`);