fix(wechat): guard ambiguous memory recall and scheduled task execution
Skip memory injection for short filler messages, demote page-workflow memory pollution, keep scheduled automation off page.generate, and fail scheduled tasks that only return clarification instead of deliverables. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -30,6 +30,8 @@ export function buildScheduledTaskExecutionPrompt(task, {
|
||||
`任务要求:${task.taskSpec}`,
|
||||
'执行约束:',
|
||||
'- 这是系统自动触发的定时任务,请直接完成可交付结果,不要反问用户。',
|
||||
'- 禁止向用户追问时间、频率或任务内容;taskSpec 已是完整执行说明。',
|
||||
'- 禁止调用 scheduled_task_create / scheduled_task_list / scheduled_task_cancel;只执行 taskSpec。',
|
||||
'- 若需要生成页面,必须先 load_skill → static-page-publish,再 write_file 到 public/*.html,并给出正式可访问 URL。',
|
||||
'- 若只需摘要/文本,给出完整中文结果摘要。',
|
||||
'- 完成后在回复中明确写出交付结果(链接或摘要)。',
|
||||
@@ -69,6 +71,31 @@ export function formatScheduledTaskDeliveryMessage(task, deliveryText) {
|
||||
return `${header}\n\n${body}`.trim();
|
||||
}
|
||||
|
||||
const SCHEDULED_TASK_CLARIFICATION_PATTERNS = [
|
||||
/需确认/u,
|
||||
/请确认/u,
|
||||
/请问/u,
|
||||
/未指定/u,
|
||||
/需要澄清/u,
|
||||
/在创建前需要确认/u,
|
||||
/信息不完整/u,
|
||||
/具体几点/u,
|
||||
/缺(?:少|失)/u,
|
||||
];
|
||||
|
||||
export function looksLikeScheduledTaskNonDelivery(text) {
|
||||
const normalized = String(text ?? '').trim();
|
||||
if (!normalized) return true;
|
||||
if (SCHEDULED_TASK_CLARIFICATION_PATTERNS.some((pattern) => pattern.test(normalized))) {
|
||||
return true;
|
||||
}
|
||||
if (/https?:\/\//i.test(normalized)) return false;
|
||||
if (/public\/[^\s]+\.html/i.test(normalized)) return false;
|
||||
if (/页面链接/u.test(normalized)) return false;
|
||||
if (/(?:已生成|已完成|交付).{0,24}(?:页面|链接|结果)/u.test(normalized)) return false;
|
||||
return normalized.length < 40;
|
||||
}
|
||||
|
||||
export async function finalizeScheduledTaskPageDelivery({
|
||||
pool,
|
||||
userId,
|
||||
|
||||
Reference in New Issue
Block a user