mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-14 01:36:40 +00:00
fix(heartbeat): default target none and internalize relay prompts
This commit is contained in:
@@ -3,14 +3,33 @@ import { HEARTBEAT_TOKEN } from "../auto-reply/tokens.js";
|
||||
// Build a dynamic prompt for cron events by embedding the actual event content.
|
||||
// This ensures the model sees the reminder text directly instead of relying on
|
||||
// "shown in the system messages above" which may not be visible in context.
|
||||
export function buildCronEventPrompt(pendingEvents: string[]): string {
|
||||
export function buildCronEventPrompt(
|
||||
pendingEvents: string[],
|
||||
opts?: {
|
||||
deliverToUser?: boolean;
|
||||
},
|
||||
): string {
|
||||
const deliverToUser = opts?.deliverToUser ?? true;
|
||||
const eventText = pendingEvents.join("\n").trim();
|
||||
if (!eventText) {
|
||||
if (!deliverToUser) {
|
||||
return (
|
||||
"A scheduled cron event was triggered, but no event content was found. " +
|
||||
"Handle this internally and reply HEARTBEAT_OK when nothing needs user-facing follow-up."
|
||||
);
|
||||
}
|
||||
return (
|
||||
"A scheduled cron event was triggered, but no event content was found. " +
|
||||
"Reply HEARTBEAT_OK."
|
||||
);
|
||||
}
|
||||
if (!deliverToUser) {
|
||||
return (
|
||||
"A scheduled reminder has been triggered. The reminder content is:\n\n" +
|
||||
eventText +
|
||||
"\n\nHandle this reminder internally. Do not relay it to the user unless explicitly requested."
|
||||
);
|
||||
}
|
||||
return (
|
||||
"A scheduled reminder has been triggered. The reminder content is:\n\n" +
|
||||
eventText +
|
||||
@@ -18,6 +37,21 @@ export function buildCronEventPrompt(pendingEvents: string[]): string {
|
||||
);
|
||||
}
|
||||
|
||||
export function buildExecEventPrompt(opts?: { deliverToUser?: boolean }): string {
|
||||
const deliverToUser = opts?.deliverToUser ?? true;
|
||||
if (!deliverToUser) {
|
||||
return (
|
||||
"An async command you ran earlier has completed. The result is shown in the system messages above. " +
|
||||
"Handle the result internally. Do not relay it to the user unless explicitly requested."
|
||||
);
|
||||
}
|
||||
return (
|
||||
"An async command you ran earlier has completed. The result is shown in the system messages above. " +
|
||||
"Please relay the command output to the user in a helpful way. If the command succeeded, share the relevant output. " +
|
||||
"If it failed, explain what went wrong."
|
||||
);
|
||||
}
|
||||
|
||||
const HEARTBEAT_OK_PREFIX = HEARTBEAT_TOKEN.toLowerCase();
|
||||
|
||||
// Detect heartbeat-specific noise so cron reminders don't trigger on non-reminder events.
|
||||
|
||||
Reference in New Issue
Block a user