refactor: rebalance default prompt block roles

This commit is contained in:
Youzini-afk
2026-03-27 03:50:11 +08:00
parent 88db5d95ea
commit d52923a45a
7 changed files with 67 additions and 48 deletions

View File

@@ -45,7 +45,7 @@ assert.equal(defaultSettings.recallDiffusionTopK, 100);
assert.equal(defaultSettings.recallLlmCandidatePool, 30);
assert.equal(defaultSettings.recallLlmContextMessages, 4);
assert.equal(defaultSettings.injectDepth, 9999);
assert.equal(defaultSettings.taskProfilesVersion, 2);
assert.equal(defaultSettings.taskProfilesVersion, 3);
assert.ok(defaultSettings.taskProfiles);
assert.ok(defaultSettings.taskProfiles.extract);
assert.ok(defaultSettings.taskProfiles.recall);

View File

@@ -36,7 +36,7 @@ const { buildTaskLlmPayload, buildTaskPrompt } = await import("../prompt-builder
const { createDefaultTaskProfiles } = await import("../prompt-profiles.js");
const settings = {
taskProfilesVersion: 2,
taskProfilesVersion: 3,
taskProfiles: createDefaultTaskProfiles(),
};
@@ -51,6 +51,16 @@ const extractPromptBuild = await buildTaskPrompt(settings, "extract", {
});
const extractPayload = buildTaskLlmPayload(extractPromptBuild, "fallback-user");
assert.equal(extractPayload.userPrompt, "");
assert.equal(
extractPayload.promptMessages.filter((message) => message.role === "user").length,
2,
);
assert.deepEqual(
extractPayload.promptMessages
.filter((message) => message.role === "user")
.map((message) => message.blockName),
["输出格式", "行为规则"],
);
assert.deepEqual(
extractPayload.promptMessages
.map((message) => message.sourceKey)
@@ -76,6 +86,10 @@ const recallPromptBuild = await buildTaskPrompt(settings, "recall", {
});
const recallPayload = buildTaskLlmPayload(recallPromptBuild, "fallback-user");
assert.equal(recallPayload.userPrompt, "");
assert.equal(
recallPayload.promptMessages.filter((message) => message.role === "user").length,
2,
);
assert.deepEqual(
recallPayload.promptMessages
.map((message) => message.sourceKey)

View File

@@ -15,7 +15,7 @@ const legacySettings = {
};
const migrated = migrateLegacyTaskProfiles(legacySettings);
assert.equal(migrated.taskProfilesVersion, 2);
assert.equal(migrated.taskProfilesVersion, 3);
assert.ok(migrated.taskProfiles);
assert.ok(migrated.taskProfiles.extract);
assert.ok(migrated.taskProfiles.recall);
@@ -71,12 +71,12 @@ assert.deepEqual(
"system",
"system",
"system",
"user",
"user",
"user",
"user",
"system",
"system",
"system",
"system",
"user",
"user",
],
);
assert.equal(
@@ -207,11 +207,18 @@ assert.equal(upgradedLegacyDefault.blocks.length, 11);
assert.equal(upgradedLegacyDefault.blocks[0].content, "保留我自己的角色定义");
assert.equal(upgradedLegacyDefault.blocks[9].content, "保留我自己的输出格式");
assert.equal(upgradedLegacyDefault.blocks[10].content, "保留我自己的行为规则");
assert.equal(upgradedLegacyDefault.blocks[9].role, "user");
assert.equal(upgradedLegacyDefault.blocks[10].role, "user");
assert.deepEqual(
upgradedLegacyDefault.blocks
.slice(5, 9)
.map((block) => block.sourceKey),
["recentMessages", "graphStats", "schema", "currentRange"],
);
assert.ok(
upgradedLegacyDefault.blocks
.slice(1, 9)
.every((block) => block.role === "system"),
);
console.log("task-profile-migration tests passed");

View File

@@ -60,6 +60,7 @@ const customBlock = activeProfile.blocks.find(
);
assert.ok(builtinBlock);
assert.equal(builtinBlock.injectionMode, "prepend");
assert.equal(builtinBlock.role, "system");
assert.ok(customBlock);
assert.equal(customBlock.role, "user");
assert.equal(activeProfile.regex.localRules.length, 1);