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.
|
2. **Jika ketemu** — Sambut natural.
|
||||||
3. **Jika tidak** — Tawarkan store, lalu simpan dengan `users_store`.
|
3. **Jika tidak** — Tawarkan store, lalu simpan dengan `users_store`.
|
||||||
|
|
||||||
### Memory Context Loading
|
### Memory Context Loading — WAJIB
|
||||||
Setelah identitas user terkonfirmasi (baik melalui `[User Context]` otomatis maupun setelah proses `users_store`/`users_filter` manual), lakukan langkah berikut untuk menjaga kontinuitas cerita:
|
|
||||||
|
|
||||||
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**:
|
2. **Execution Rule**:
|
||||||
- Lakukan ini HANYA SEKALI di awal sesi atau saat terjadi perpindahan topik/skenario yang signifikan.
|
- WAJIB lakukan di awal sesi setiap kali user mengirim pesan baru (setelah identitas terkonfirmasi).
|
||||||
- JANGAN memanggil `memories_latest` di setiap giliran respon. Gunakan informasi yang sudah didapat dari pemanggilan pertama untuk membangun konteks percakapan selanjutnya.
|
- 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".
|
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
|
## Penulisan XMPP
|
||||||
|
|||||||
@ -115,9 +115,13 @@ def _agent_loop(app):
|
|||||||
break
|
break
|
||||||
app.scroll = 999999
|
app.scroll = 999999
|
||||||
|
|
||||||
tool_reminder = None
|
skill = config.AGENT_SKILL
|
||||||
if config.AGENT_SKILL in ("programmer", "analyst"):
|
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."
|
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)
|
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:
|
if not is_roleplay:
|
||||||
self._schedule_send(chat_id, info, reply_to_msg_id)
|
self._schedule_send(chat_id, info, reply_to_msg_id)
|
||||||
|
|
||||||
tool_reminder = None
|
if is_roleplay:
|
||||||
if not 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."
|
tool_reminder = "Gunakan tools yang tersedia untuk menjawab. Jangan jawab dari pengetahuan sendiri."
|
||||||
|
|
||||||
final_content = run_agent_loop(
|
final_content = run_agent_loop(
|
||||||
|
|||||||
@ -336,8 +336,9 @@ class XMPPClient(ClientXMPP):
|
|||||||
if not is_roleplay:
|
if not is_roleplay:
|
||||||
self._schedule_send(jid, f'> {quote}\nUsing: {", ".join(tnames)}', 'chat')
|
self._schedule_send(jid, f'> {quote}\nUsing: {", ".join(tnames)}', 'chat')
|
||||||
|
|
||||||
tool_reminder = None
|
if is_roleplay:
|
||||||
if not 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."
|
tool_reminder = "Gunakan tools yang tersedia untuk menjawab. Jangan jawab dari pengetahuan sendiri."
|
||||||
|
|
||||||
final_content = run_agent_loop(
|
final_content = run_agent_loop(
|
||||||
@ -420,8 +421,9 @@ class XMPPClient(ClientXMPP):
|
|||||||
if not _is_roleplay:
|
if not _is_roleplay:
|
||||||
self._schedule_send(room, f'> {quote}\nUsing: {", ".join(tnames)}', 'groupchat')
|
self._schedule_send(room, f'> {quote}\nUsing: {", ".join(tnames)}', 'groupchat')
|
||||||
|
|
||||||
tool_reminder = None
|
if _is_roleplay:
|
||||||
if not _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."
|
tool_reminder = "Gunakan tools yang tersedia untuk menjawab. Jangan jawab dari pengetahuan sendiri."
|
||||||
|
|
||||||
final_content = run_agent_loop(
|
final_content = run_agent_loop(
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user