Forcing to read the memories
This commit is contained in:
parent
379307278d
commit
4995412bc1
@ -63,13 +63,17 @@ Jika user memperkenalkan diri dalam format `!start ... !end` (contoh: "Aku John"
|
||||
2. **Jika ketemu** — Sambut natural.
|
||||
3. **Jika tidak** — Tawarkan store, lalu simpan dengan `users_store`.
|
||||
|
||||
### Memory Context Loading
|
||||
Setelah identitas user terkonfirmasi (baik melalui `[User Context]` otomatis maupun setelah proses `users_store`/`users_filter` manual), lakukan langkah berikut untuk menjaga kontinuitas cerita:
|
||||
### Memory Context Loading — WAJIB
|
||||
|
||||
1. **Retrieve Recent History**: Panggil `memories_latest` (limit 3) untuk mengambil fragmen interaksi terbaru antara character dan user.
|
||||
**Setelah identitas user terkonfirmasi** (baik melalui `[User Context]` otomatis maupun setelah proses `users_store`/`users_filter` manual), kamu WAJIB melakukan langkah berikut. Ini adalah bagian KRITIS dari sistem memori — jika dilewatkan, akurasi memori akan rendah dan responmu akan terasa tidak personal/konsisten.
|
||||
|
||||
1. **WAJIB Retrieve Recent History**: Panggil `memories_latest(character="<nama-karaktermu>", user="<nickname-user>")` dengan limit 3 untuk mengambil fragmen interaksi terbaru antara character dan user.
|
||||
- **Parameter Call**: Gunakan nama karaktermu sendiri (sesuai persona/identitasmu) sebagai `character` dan gunakan **Nickname** user yang tertera pada `[User Context]` sebagai `user`.
|
||||
- **Contoh**: Jika namamu adalah "Lily" dan nickname user adalah "Budi", panggil: `memories_latest(character="Lily", user="Budi", limit=3)`
|
||||
2. **Execution Rule**:
|
||||
- Lakukan ini HANYA SEKALI di awal sesi atau saat terjadi perpindahan topik/skenario yang signifikan.
|
||||
- JANGAN memanggil `memories_latest` di setiap giliran respon. Gunakan informasi yang sudah didapat dari pemanggilan pertama untuk membangun konteks percakapan selanjutnya.
|
||||
- WAJIB lakukan di awal sesi setiap kali user mengirim pesan baru (setelah identitas terkonfirmasi).
|
||||
- Jika kamu merasa ada detail personal yang terlupakan (seperti panggilan khusus, janji, atau preferensi user), jangan ragu untuk memanggil `memories_check` dengan query yang relevan meskipun bukan di awal sesi.
|
||||
- JANGAN memanggil `memories_latest` di setiap giliran respon dalam sesi yang sama (cukup sekali di awal sesi).
|
||||
3. **Immersive Integration**: Gunakan data dari memori tersebut untuk memberikan respon yang personal (contoh: mengingat janji, topik pembicaraan terakhir, atau perasaan yang tertinggal) tanpa menyebutkan bahwa kamu sedang "membaca database".
|
||||
|
||||
## Penulisan XMPP
|
||||
|
||||
@ -115,9 +115,13 @@ def _agent_loop(app):
|
||||
break
|
||||
app.scroll = 999999
|
||||
|
||||
tool_reminder = None
|
||||
if config.AGENT_SKILL in ("programmer", "analyst"):
|
||||
skill = config.AGENT_SKILL
|
||||
if skill == "roleplayer":
|
||||
tool_reminder = "WAJIB gunakan tools ragroleplay (seperti memories_latest, memories_check, memories_store) untuk mengelola memori percakapan. Jangan menjawab tanpa konteks memori yang akurat."
|
||||
elif skill in ("programmer", "analyst"):
|
||||
tool_reminder = "Gunakan tools yang tersedia untuk menjawab. Jangan jawab dari pengetahuan sendiri."
|
||||
else:
|
||||
tool_reminder = None
|
||||
|
||||
response = app.llm.chat(app.messages, tools=app.TOOLS, on_stream_chunk=on_stream_chunk, tool_reminder=tool_reminder)
|
||||
|
||||
|
||||
@ -235,8 +235,9 @@ class TelegramClient:
|
||||
if not is_roleplay:
|
||||
self._schedule_send(chat_id, info, reply_to_msg_id)
|
||||
|
||||
tool_reminder = None
|
||||
if not is_roleplay:
|
||||
if is_roleplay:
|
||||
tool_reminder = "WAJIB gunakan tools ragroleplay (seperti memories_latest, memories_check, memories_store) untuk mengelola memori percakapan. Jangan menjawab tanpa konteks memori yang akurat."
|
||||
else:
|
||||
tool_reminder = "Gunakan tools yang tersedia untuk menjawab. Jangan jawab dari pengetahuan sendiri."
|
||||
|
||||
final_content = run_agent_loop(
|
||||
|
||||
@ -336,8 +336,9 @@ class XMPPClient(ClientXMPP):
|
||||
if not is_roleplay:
|
||||
self._schedule_send(jid, f'> {quote}\nUsing: {", ".join(tnames)}', 'chat')
|
||||
|
||||
tool_reminder = None
|
||||
if not is_roleplay:
|
||||
if is_roleplay:
|
||||
tool_reminder = "WAJIB gunakan tools ragroleplay (seperti memories_latest, memories_check, memories_store) untuk mengelola memori percakapan. Jangan menjawab tanpa konteks memori yang akurat."
|
||||
else:
|
||||
tool_reminder = "Gunakan tools yang tersedia untuk menjawab. Jangan jawab dari pengetahuan sendiri."
|
||||
|
||||
final_content = run_agent_loop(
|
||||
@ -420,8 +421,9 @@ class XMPPClient(ClientXMPP):
|
||||
if not _is_roleplay:
|
||||
self._schedule_send(room, f'> {quote}\nUsing: {", ".join(tnames)}', 'groupchat')
|
||||
|
||||
tool_reminder = None
|
||||
if not _is_roleplay:
|
||||
if _is_roleplay:
|
||||
tool_reminder = "WAJIB gunakan tools ragroleplay (seperti memories_latest, memories_check, memories_store) untuk mengelola memori percakapan. Jangan menjawab tanpa konteks memori yang akurat."
|
||||
else:
|
||||
tool_reminder = "Gunakan tools yang tersedia untuk menjawab. Jangan jawab dari pengetahuan sendiri."
|
||||
|
||||
final_content = run_agent_loop(
|
||||
|
||||
Loading…
Reference in New Issue
Block a user