simplify: remove __REPLY__ marker, only __SILENT__ needed

Default LLM behavior is to reply - no prefix needed.
Only the exceptional case (silence) needs a marker.
Updated xmpp_bot.py, MEMORY.md, and protocol doc.
This commit is contained in:
2026-06-14 02:00:33 +08:00
parent 34e4477642
commit ae16cd4e0f
+3 -3
View File
@@ -61,7 +61,7 @@ LLM 根据 session 上下文判断
``` ```
__SILENT__ — LLM 决定不回应,代码静默丢弃 __SILENT__ — LLM 决定不回应,代码静默丢弃
__REPLY__ — LLM 决定回应,代码剥标记后发出去 (LLM 决定回应时正常输出内容即可,不需要前缀标记)
``` ```
- 标记必须位于回复的**最开头** - 标记必须位于回复的**最开头**
@@ -92,7 +92,7 @@ async def on_groupchat_msg(self, msg):
async def handle_llm_reply(self, reply): async def handle_llm_reply(self, reply):
if reply.strip().startswith('__SILENT__'): if reply.strip().startswith('__SILENT__'):
return # 静默丢弃 return # 静默丢弃
reply = re.sub(r'^__REPLY__\s*', '', reply) # 剥标记 # 非 __SILENT__ → 直接发送
self.send_message(mto=room, mbody=reply, mtype='groupchat') self.send_message(mto=room, mbody=reply, mtype='groupchat')
``` ```
@@ -103,7 +103,7 @@ async def handle_llm_reply(self, reply):
- 所有 hmo/xxm 的群消息都会转发给你,代码层不做 @mention 硬过滤 - 所有 hmo/xxm 的群消息都会转发给你,代码层不做 @mention 硬过滤
- 你根据 session 上下文自行判断是否应该回应: - 你根据 session 上下文自行判断是否应该回应:
- 话题与你无关 → 以 __SILENT__ 开头输出(代码收到后丢弃) - 话题与你无关 → 以 __SILENT__ 开头输出(代码收到后丢弃)
- 话题与你有关 / 是对话延续 / 被直接问 → 以 __REPLY__ 开头输出 - 话题与你有关 / 是对话延续 / 被直接问 → 正常回复,不需要前缀
- 不需要每条消息都 @,对话延续时基于上下文自然参与 - 不需要每条消息都 @,对话延续时基于上下文自然参与
- 注意不要重复别人刚说过的话,除非被追问 - 注意不要重复别人刚说过的话,除非被追问
``` ```