fix(chatlog): aggressive anti-hallucination prompts and tool descriptions
Live-test showed Grok 4.1 Fast inventing 'mcp_mychatarchive_search_brain' when asked about Telegram chat history. Fix: - Tool descriptions explicitly say 'TELEGRAM' and 'NICHT ChatGPT/Memory/RAG' - SYSTEM_PROMPT_EXTRA lists all 4 exact tool names and forbids inventing alternatives like 'mychatarchive' or 'search_brain' - Forbids using rag_search/openmemory_search/web_search for Telegram- related queries - Demands honest 'no data' over hallucination
This commit is contained in:
parent
d0cda4691d
commit
83fe700bac
1 changed files with 54 additions and 31 deletions
|
|
@ -131,9 +131,10 @@ TOOLS = [
|
|||
"function": {
|
||||
"name": "chatlog_list_chats",
|
||||
"description": (
|
||||
"Liste aller mitgeloggten Telegram-Gruppen-Chats mit Titel, "
|
||||
"ID, Anzahl Nachrichten und letztem Eintrag. Nutze dies, wenn "
|
||||
"unklar ist, welche Gruppe gemeint ist."
|
||||
"TELEGRAM-Gruppen die der Mitleser-Bot @arakawa_concierge_bot "
|
||||
"live aufzeichnet. Liefert Titel, chat_id, Nachrichten-Count, "
|
||||
"letzten Eintrag. NICHT zu verwechseln mit ChatGPT-Verlauf, "
|
||||
"Memory oder RAG — das hier sind echte Telegram-Gruppen-Chats."
|
||||
),
|
||||
"parameters": {"type": "object", "properties": {}, "required": []},
|
||||
},
|
||||
|
|
@ -143,11 +144,13 @@ TOOLS = [
|
|||
"function": {
|
||||
"name": "chatlog_recent",
|
||||
"description": (
|
||||
"Letzte N Nachrichten aus mitgeloggten Telegram-Gruppen-Chats "
|
||||
"(z.B. Airbnb-Concierge-Gruppe für die Wohnungen). Nutze dies "
|
||||
"bei Fragen wie 'Was ist der aktuelle Stand?', 'Was wurde "
|
||||
"zuletzt geschrieben?', 'Wer hat zuletzt was gesagt?', 'Muss "
|
||||
"ich auf etwas reagieren?'."
|
||||
"Letzte N Nachrichten aus einer mitgeloggten TELEGRAM-Gruppe "
|
||||
"(z.B. die Airbnb-Concierge-Gruppe der Arakawa-Wohnung G2010B). "
|
||||
"Liefert echte Nachrichten mit Zeitstempel, Absender (Name + "
|
||||
"Username), Inhalt. ZWINGEND nutzen bei: 'aktueller Stand der "
|
||||
"Vermietung', 'was hat der Concierge gesagt', 'meine Telegram-"
|
||||
"Chatverläufe', 'was wurde zuletzt geschrieben', 'muss ich "
|
||||
"reagieren', 'was ist offen'. KEIN ChatGPT-/Memory-Tool."
|
||||
),
|
||||
"parameters": {
|
||||
"type": "object",
|
||||
|
|
@ -174,9 +177,11 @@ TOOLS = [
|
|||
"function": {
|
||||
"name": "chatlog_search",
|
||||
"description": (
|
||||
"Volltextsuche (FTS5) in den mitgeloggten Telegram-Chats. "
|
||||
"Nutze dies für Fragen wie 'Was wurde über X gesagt?', "
|
||||
"'Hat jemand X erwähnt?', 'Wer hat X zugesagt?'."
|
||||
"Volltextsuche (SQLite FTS5) im Verlauf der mitgeloggten "
|
||||
"TELEGRAM-Gruppen. Findet Nachrichten anhand von Worten oder "
|
||||
"Phrasen — z.B. 'Kaution', 'Listing', 'Smartlock'. Liefert "
|
||||
"echte Nachrichten mit Datum und Absender. KEIN ChatGPT-Archiv, "
|
||||
"KEIN Memory — nur Telegram-Live-Mitschnitt."
|
||||
),
|
||||
"parameters": {
|
||||
"type": "object",
|
||||
|
|
@ -185,7 +190,8 @@ TOOLS = [
|
|||
"type": "string",
|
||||
"description": (
|
||||
"Suchbegriff. FTS5-Syntax erlaubt: 'wort1 wort2' "
|
||||
"(beide), '\"phrase\"' (genau), 'wort*' (Prefix)."
|
||||
"(beide Wörter), '\"phrase\"' (genaue Phrase), "
|
||||
"'wort*' (Prefix-Suche)."
|
||||
),
|
||||
},
|
||||
"chat": {
|
||||
|
|
@ -206,16 +212,16 @@ TOOLS = [
|
|||
"function": {
|
||||
"name": "chatlog_since",
|
||||
"description": (
|
||||
"Alle Nachrichten der letzten N Minuten. Nutze dies bei "
|
||||
"Fragen wie 'Was war heute los?', 'Was war in der letzten "
|
||||
"Stunde?'."
|
||||
"Alle Nachrichten der letzten N Minuten aus mitgeloggten "
|
||||
"TELEGRAM-Gruppen. Nutze für 'was war heute', 'was war in "
|
||||
"der letzten Stunde', 'was war seit gestern'."
|
||||
),
|
||||
"parameters": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"minutes": {
|
||||
"type": "integer",
|
||||
"description": "Zeitfenster in Minuten (z.B. 60 = letzte Stunde, 1440 = letzte 24h).",
|
||||
"description": "Zeitfenster in Minuten (60 = 1h, 1440 = 24h, 10080 = 1 Woche).",
|
||||
},
|
||||
"chat": {
|
||||
"type": "string",
|
||||
|
|
@ -238,25 +244,42 @@ HANDLERS = {
|
|||
|
||||
|
||||
SYSTEM_PROMPT_EXTRA = """
|
||||
Telegram-Gruppen-Mitschnitt (chatlog_*-Tools):
|
||||
Es gibt einen passiven Mitleser-Bot (@arakawa_concierge_bot), der bestimmte
|
||||
Telegram-Gruppen aufzeichnet — z.B. die Airbnb-Concierge-Gruppe fuer die
|
||||
ARAKAWA-Wohnungen in Phnom Penh (Wohnungen G2010B im 20. Stock und
|
||||
D1603 im 16. Stock).
|
||||
TELEGRAM-MITSCHNITT (chatlog_*-Tools — DAS WICHTIGSTE):
|
||||
|
||||
Bei JEDER dieser Frage-Arten ZUERST chatlog_*-Tool aufrufen
|
||||
(NICHT Web-Suche, NICHT RAG):
|
||||
- "aktueller Stand" / "Status" zu Vermietung, Wohnung, Listing, Concierge
|
||||
Es gibt einen passiven Mitleser-Bot (@arakawa_concierge_bot), der bestimmte
|
||||
Telegram-Gruppen-Chats LIVE aufzeichnet und in einer SQLite-DB speichert.
|
||||
Z.B. die Airbnb-Concierge-Gruppe fuer die ARAKAWA-Wohnungen in Phnom Penh
|
||||
(G2010B im 20. Stock, D1603 im 16. Stock).
|
||||
|
||||
→ Diese Tools heissen GENAU SO und sind die EINZIGEN richtigen fuer
|
||||
Fragen zum Telegram-Verlauf:
|
||||
chatlog_list_chats
|
||||
chatlog_recent
|
||||
chatlog_search
|
||||
chatlog_since
|
||||
|
||||
→ NIEMALS Tool-Namen erfinden wie "mychatarchive", "search_brain",
|
||||
"telegram_history". Diese existieren NICHT. Wenn du etwas Aehnliches
|
||||
meinst, nutze chatlog_search.
|
||||
|
||||
→ NIEMALS rag_search, openmemory_search, memory_read oder web_search
|
||||
fuer Telegram-Verlaufs-Fragen verwenden — die kennen den Telegram-Chat
|
||||
NICHT.
|
||||
|
||||
Trigger-Phrasen die ZWINGEND chatlog_*-Tools ausloesen:
|
||||
- "Telegram-Chat" / "Telegram-Gruppe" / "im Chat" / "in der Gruppe"
|
||||
- "Chatverlauf" / "Chatverlaeufe" / "Verlauf"
|
||||
- "Concierge" / "Bnb" / "Airbnb" / "Listing" / "Vermietung"
|
||||
- "Wohnung G2010B" / "G 210" / "D1603" / "ARAKAWA-Wohnung"
|
||||
- "aktueller Stand" zu Vermietung/Wohnung/Concierge
|
||||
- "wer hat was zugesagt" / "was ist offen" / "muss ich reagieren"
|
||||
- "letzte Nachricht" / "was wurde geschrieben" / "was war heute"
|
||||
- Erwaehnung einer Wohnung (G2010B, D1603, ARAKAWA, Wohnung)
|
||||
- Erwaehnung von Concierge / Airbnb / Bnb / Listing / Vermietung / Kaution / Mieter
|
||||
- "was wurde zuletzt geschrieben" / "was war heute"
|
||||
|
||||
Vorgehen:
|
||||
1. Wenn unklar welche Gruppe → chatlog_list_chats() zuerst.
|
||||
1. Wenn unklar welche Gruppe → chatlog_list_chats() ZUERST.
|
||||
2. Sonst direkt chatlog_recent(chat="<title-substring>") oder
|
||||
chatlog_search(query="...", chat="<title-substring>").
|
||||
3. NUR die Telegram-Daten als Quelle benutzen, KEINE Web-Suche dafuer
|
||||
aufrufen — der Stand kommt aus der Gruppe, nicht aus dem Internet.
|
||||
4. Antwort zitiert konkret: Datum, Absender, Inhalt.
|
||||
3. Antwort zitiert KONKRET: Datum, Absender, Inhalt.
|
||||
4. Wenn Tool nichts liefert → ehrlich sagen "keine Daten in der DB",
|
||||
NICHT halluzinieren.
|
||||
""".strip()
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue