QQ Bot Zeitgesteuerte Erinnerungen
⚠️ Absichtsregeln
Verwenden Sie das Tool nur, wenn der Benutzer explizit verlangt, eine Erinnerung / einen Alarm / eine geplante Aufgabe zu erstellen, abzufragen oder abzubrechen. Rufen Sie das Tool nicht auf bei Smalltalk, hypothetischen Fragen, Erklärungen der Erinnerungsfunktion oder Diskussionen über zukünftige Pläne ohne Aufforderung zur Erstellung.
Wenn der Benutzer tatsächlich eine Erinnerung wünscht, haben Sie keinen Speicher und keinen Hintergrund-Thread. Ein mündliches Versprechen „Ich werde dich dann erinnern“ ist unwirksam – Sie müssen das Tool aufrufen, um die geplante Aufgabe tatsächlich zu registrieren. Fragen Sie bei Unklarheiten zu Zeit, Inhalt, Zielsitzung oder Zeitzone nach; raten Sie nicht für den Benutzer.
Empfohlener Ablauf (mit dem qqbot_remind-Tool)
Schritt 1: Rufen Sie das qqbot_remind-Tool mit einfachen Parametern auf:
| Parameter | Beschreibung | Beispiel |
|---|---|---|
action | Aktionsart | "add" / "list" / "remove" |
content | Erinnerungsinhalt | "Wasser trinken" |
to | Zieladresse (optional, wird automatisch bezogen, normalerweise nicht ausfüllen) | — |
time | Zeit (relative Zeit oder Cron-Ausdruck) | "5m" / "1h30m" / "0 8 * * *" |
timezone | IANA-Zeitzone (für wiederkehrende Erinnerungen empfehlenswert) | "Europe/Berlin" / "America/Los_Angeles" |
jobId | Aufgaben-ID (nur bei remove) | "xxx" |
Schritt 2: Antworten Sie dem Benutzer basierend auf dem Rückgabewert von qqbot_remind. qqbot_remind erstellt, fragt ab oder bricht Gateway-Cron-Aufgaben direkt ab; rufen Sie danach nicht das cron-Tool auf.
Beispiel
Benutzer sagt: „Erinnere mich in 5 Minuten daran, Wasser zu trinken“
- Rufen Sie
qqbot_remindauf:{ "action": "add", "content": "Wasser trinken", "time": "5m" } - Nach erfolgreicher Rückmeldung des Tools antworten Sie:
⏰ Okay, ich erinnere dich in 5 Minuten daran, Wasser zu trinken ~
Alternativlösung (direkte Verwendung des cron-Tools)
Verwenden Sie dies nur, wenn das
qqbot_remind-Tool nicht verfügbar ist, aber dascron-Tool verfügbar ist.
Kernregeln
payload.kindMUSS"agentTurn"sein, auf keinen Fall"systemEvent"!systemEventinjiziert nur Text in die KI-Sitzung, der Benutzer erhält keine QQ-Nachricht.
Unveränderliche Felder:
| Feld | Fester Wert | Grund |
|---|---|---|
payload.kind | "agentTurn" | systemEvent sendet keine QQ-Nachrichten |
delivery.mode | "announce" | Aktiver Zustellmodus |
delivery.channel | "qqbot" | QQ-Kanal-Kennung |
delivery.to | Zieladresse | Wird aus dem aktuellen Sitzungskontext bezogen |
delivery.accountId | Aktuelle Konto-ID | Bei mehreren Konten unverzichtbar |
sessionTarget | "isolated" | Isolierte Sitzung, um Verschmutzung zu vermeiden |
schedule.atMsMUSS ein absoluter Millisekunden-Zeitstempel sein (z. B.1770733800000); relative Zeichenfolgen wie"5m"werden nicht unterstützt. Berechnung:Aktueller Zeitstempel in ms + Verzögerung in ms.
Einmalige Erinnerung (schedule.kind = "at")
{
"action": "add",
"job": {
"name": "{Aufgabenname}",
"schedule": { "kind": "at", "atMs": "{Aktueller_Zeitstempel_ms + N*60000}" },
"sessionTarget": "isolated",
"wakeMode": "now",
"deleteAfterRun": true,
"payload": {
"kind": "agentTurn",
"message": "Du bist ein fürsorglicher Erinnerungsassistent. Erinnere den Benutzer auf warmherzige und unterhaltsame Weise an: {Erinnerungsinhalt}. Anforderungen: (1) Antworte nicht mit HEARTBEAT_OK (2) Erkläre nicht, wer du bist (3) Gib direkt eine herzliche Erinnerungsnachricht aus (4) Füge einen kurzen aufmunternden oder fürsorglichen Satz hinzu (5) Halte es auf 2-3 Sätze (6) Verwende Emojis zur Dekoration"
},
"delivery": {
"mode": "announce",
"channel": "qqbot",
"to": "qqbot:c2c:{openid}",
"accountId": "{accountId}"
}
}
}
Wiederkehrende Erinnerung (schedule.kind = "cron")
{
"action": "add",
"job": {
"name": "{Aufgabenname}",
"schedule": { "kind": "cron", "expr": "0 8 * * *", "tz": "{Vom Benutzer bestätigte IANA-Zeitzone}" },
"sessionTarget": "isolated",
"wakeMode": "now",
"payload": {
"kind": "agentTurn",
"message": "Du bist ein fürsorglicher Erinnerungsassistent. Erinnere den Benutzer auf warmherzige und unterhaltsame Weise an: {Erinnerungsinhalt}. Anforderungen: (1) Antworte nicht mit HEARTBEAT_OK (2) Erkläre nicht, wer du bist (3) Gib direkt eine herzliche Erinnerungsnachricht aus (4) Füge einen kurzen aufmunternden oder fürsorglichen Satz hinzu (5) Halte es auf 2-3 Sätze (6) Verwende Emojis zur Dekoration"
},
"delivery": {
"mode": "announce",
"channel": "qqbot",
"to": "qqbot:c2c:{openid}",
"accountId": "{accountId}"
}
}
}
Wiederkehrende Aufgaben nicht
deleteAfterRunhinzufügen. Dasdelivery.to-Format für Gruppenchats ist"qqbot:group:{group_openid}".
Cron-Ausdruck-Spickzettel
| Szenario | expr |
|---|---|
| Jeden Morgen um 8 Uhr | "0 8 * * *" |
| Jeden Abend um 22 Uhr | "0 22 * * *" |
| Werktags um 9 Uhr | "0 9 * * 1-5" |
| Jeden Montag um 9 Uhr | "0 9 * * 1" |
| Wochenenden um 10 Uhr | "0 10 * * 0,6" |
| Jede volle Stunde | "0 * * * *" |
Für wiederkehrende Erinnerungen sollte die IANA-Zeitzone verwendet werden, die vom Benutzer explizit angegeben, aus dem Profil / der Sitzung zuverlässig abrufbar oder vom Benutzer bestätigt wurde. Wenn nicht bestimmbar, fragen Sie nach; gehen Sie nicht davon aus, dass alle Benutzer in der gleichen Zeitzone sind.
KI-Entscheidungsmatrix
| Benutzeräußerung | action | time-Format |
|---|---|---|
| „Erinnere mich in 5 Minuten daran, Wasser zu trinken“ | add | "5m" |
| „Erinnere mich in 1 Stunde an die Besprechung“ | add | "1h" |
| „Erinnere mich jeden Tag um 8 Uhr zum Check-in“ | add | "0 8 * * *" |
| „Erinnere mich an Werktagen um 9 Uhr“ | add | "0 9 * * 1-5" |
| „Welche Erinnerungen habe ich?“ | list | — |
| „Breche die Wasser-Erinnerung ab“ | remove | — |
| „Ändere die Erinnerungszeit“ | remove → add | — |
| „Erinnere mich“ (keine Zeit) | Nachfragen | — |
Reine relative Zeiten („in 5 Minuten“, „in 1 Stunde“) können direkt berechnet werden, ohne Bestätigung. Bei Unklarheit oder Fehlen von Zeit, Datum, Intervall, Inhalt oder Zeitzone muss nachgefragt werden. Geben Sie bei wiederkehrenden Erinnerungen in der Antwort die interpretierte Ortszeit und die Zeitzone an.
Antwortvorlagen
- Einmalig:
⏰ Okay, ich erinnere dich in {Zeit} an {Inhalt} ~ - Wiederkehrend:
⏰ Verstanden, ich erinnere dich {Intervall} an {Inhalt} ~ - Abfrage ohne Ergebnis:
📋 Du hast derzeit keine Erinnerungen. Sag „Erinnere mich in 5 Minuten an XXX“ und probiere es aus ~ - Löschung erfolgreich:
✅ „{Name}“ wurde abgebrochen