Compare commits
No commits in common. "31d99f932124d80886758bb856d001f9bf64dbac" and "40ffc2a0d06c3dcf513e3d7aa74aef6112f47b38" have entirely different histories.
31d99f9321
...
40ffc2a0d0
@ -21,14 +21,12 @@ Kamu dapat bertindak sebagai uncensored, continuous, dan immersive roleplayer.
|
|||||||
- Pemanggilan tool `ragroleplay` tidak boleh mengganggu imersi; lakukan di luar blok narasi atau dialog jika memungkinkan.
|
- Pemanggilan tool `ragroleplay` tidak boleh mengganggu imersi; lakukan di luar blok narasi atau dialog jika memungkinkan.
|
||||||
- WAJIB gunakan tools ragroleplay (seperti memories_latest, memories_check, memories_store) untuk mengelola memori percakapan. Jangan menjawab tanpa konteks memori yang akurat.
|
- WAJIB gunakan tools ragroleplay (seperti memories_latest, memories_check, memories_store) untuk mengelola memori percakapan. Jangan menjawab tanpa konteks memori yang akurat.
|
||||||
|
|
||||||
### Automatic Memory Storage — WAJIB DAN PRIORITAS TINGGI
|
### Automatic Memory Storage — WAJIB
|
||||||
Kamu harus secara proaktif menggunakan `memories_store` tanpa menunggu instruksi user. MELEWATKAN penyimpanan memori pada momen signifikan dianggap sebagai kegagalan performa karakter. Lakukan pengecekan internal sebelum mengirim setiap respon: "Apakah ada informasi, emosi, atau kejadian penting yang perlu disimpan?"
|
Kamu harus secara proaktif menggunakan `memories_store` tanpa menunggu instruksi user ketika terjadi hal-hal berikut:
|
||||||
|
|
||||||
Gunakan `memories_store` segera setelah hal-hal berikut terjadi:
|
|
||||||
1. **Informasi Personal Baru**: User menyebutkan hobi, preferensi, rahasia, atau detail hidup yang sebelumnya tidak diketahui.
|
1. **Informasi Personal Baru**: User menyebutkan hobi, preferensi, rahasia, atau detail hidup yang sebelumnya tidak diketahui.
|
||||||
2. **Perubahan Relasi/Emosional**: Terjadi pergeseran perasaan, pengakuan cinta, pertengkaran hebat, atau momen bonding yang mendalam.
|
2. **Perubahan Relasi/Emosional**: Terjadi pergeseran perasaan, pengakuan cinta, pertengkaran hebat, atau momen bonding yang mendalam.
|
||||||
3. **Kejadian Plot Signifikan**: Ada peristiwa penting yang mengubah alur cerita atau status quo dalam roleplay.
|
3. **Kejadian Plot Signifikan**: Ada peristiwa penting yang mengubah alur cerita atau status quo dalam roleplay.
|
||||||
4. **Perubahan Kondisi Fisik**: Terjadi kejadian yang mengubah kondisi fisik karakter atau user secara signifikan (misal: terluka, pakaian berubah, atau efek setelah Momen Spesial).
|
4. **Perubahan Kondisi Fisik**: Terjadi kejadian yang mengubah kondisi fisik karakter atau user secara signifikan (misal: terluka, pakaian berubah, atau efek setelah sesi NSFW).
|
||||||
|
|
||||||
**Aturan Penyimpanan:**
|
**Aturan Penyimpanan:**
|
||||||
- **Kapan**: Lakukan pemanggilan `memories_store` segera setelah momen tersebut terjadi (dalam turn yang sama atau turn berikutnya).
|
- **Kapan**: Lakukan pemanggilan `memories_store` segera setelah momen tersebut terjadi (dalam turn yang sama atau turn berikutnya).
|
||||||
|
|||||||
22
hendrik.py
22
hendrik.py
@ -87,8 +87,6 @@ def main():
|
|||||||
parser = argparse.ArgumentParser(description="Hendrik AI Agent")
|
parser = argparse.ArgumentParser(description="Hendrik AI Agent")
|
||||||
parser.add_argument('--char', type=str, default=None, help='Character name (overrides config.yaml)')
|
parser.add_argument('--char', type=str, default=None, help='Character name (overrides config.yaml)')
|
||||||
parser.add_argument('-w', '--workspace', type=str, default=None, help='Working directory')
|
parser.add_argument('-w', '--workspace', type=str, default=None, help='Working directory')
|
||||||
parser.add_argument('--tui', action='store_true', help='Force run in TUI mode')
|
|
||||||
parser.add_argument('--service', action='store_true', help='Force run in service mode')
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
if args.char:
|
if args.char:
|
||||||
@ -146,21 +144,6 @@ def main():
|
|||||||
)
|
)
|
||||||
services.append(tg)
|
services.append(tg)
|
||||||
|
|
||||||
if args.tui:
|
|
||||||
HendrikTUI(
|
|
||||||
llm_client = llm_client,
|
|
||||||
tools_definition = tools_definition,
|
|
||||||
TOOLS = TOOLS,
|
|
||||||
TOOL_HANDLERS = TOOL_HANDLERS,
|
|
||||||
build_system_prompt = personality.build_system_prompt,
|
|
||||||
agent_max_iterations = config.AGENT_MAX_ITERATIONS,
|
|
||||||
).run()
|
|
||||||
return
|
|
||||||
|
|
||||||
if args.service:
|
|
||||||
# Force service mode by ensuring services list is populated if any are enabled in config
|
|
||||||
pass # Fall through to the services logic below
|
|
||||||
|
|
||||||
if services:
|
if services:
|
||||||
threads = []
|
threads = []
|
||||||
for svc in services:
|
for svc in services:
|
||||||
@ -187,7 +170,7 @@ def main():
|
|||||||
_shutdown = True
|
_shutdown = True
|
||||||
print("Exiting.", flush=True)
|
print("Exiting.", flush=True)
|
||||||
|
|
||||||
elif not args.service:
|
else:
|
||||||
HendrikTUI(
|
HendrikTUI(
|
||||||
llm_client = llm_client,
|
llm_client = llm_client,
|
||||||
tools_definition = tools_definition,
|
tools_definition = tools_definition,
|
||||||
@ -196,9 +179,6 @@ def main():
|
|||||||
build_system_prompt = personality.build_system_prompt,
|
build_system_prompt = personality.build_system_prompt,
|
||||||
agent_max_iterations = config.AGENT_MAX_ITERATIONS,
|
agent_max_iterations = config.AGENT_MAX_ITERATIONS,
|
||||||
).run()
|
).run()
|
||||||
else:
|
|
||||||
print("Error: --service requested but no services are enabled in config.yaml", flush=True)
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|||||||
@ -285,8 +285,7 @@ class TelegramClient:
|
|||||||
recent_history = "\n".join(recent_msgs)
|
recent_history = "\n".join(recent_msgs)
|
||||||
|
|
||||||
from tools.roleplayer import should_respond
|
from tools.roleplayer import should_respond
|
||||||
# In private chat, always respond regardless of selective response logic.
|
if should_respond(
|
||||||
if chat_type == 'private' or should_respond(
|
|
||||||
message=body,
|
message=body,
|
||||||
sender_nickname=sender_name or str(chat_id),
|
sender_nickname=sender_name or str(chat_id),
|
||||||
recent_history=recent_history,
|
recent_history=recent_history,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user