From d1a0348c7731b7f525a7289e85a100c7baabcf9e Mon Sep 17 00:00:00 2001 From: hmo Date: Sun, 14 Jun 2026 12:18:36 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=87=AA=E6=B6=88=E6=81=AF=E6=94=BE?= =?UTF-8?q?=E8=A1=8C=20+=20session=E6=90=9C=E7=B4=A2=E7=AD=96=E7=95=A5?= =?UTF-8?q?=E7=BB=86=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gateway/scripts/chat_bridge.py | 13 +++++++++---- gateway/scripts/xmpp_bot.py | 13 +++++-------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/gateway/scripts/chat_bridge.py b/gateway/scripts/chat_bridge.py index f5b7966..499bce2 100644 --- a/gateway/scripts/chat_bridge.py +++ b/gateway/scripts/chat_bridge.py @@ -630,10 +630,15 @@ class SessionBridge: "不确定该怎么做时,先 run_command 查一下再决定。\n" "\n" "=== 回答问题前先搜 session ===\n" - "当被问到项目状态、代码位置、近期工作、其他人说过什么等事实性问题时,\n" - "**必须先使用 search_sessions 或 session_search 找到证据再回答**。\n" - "不要凭你当前 session 里的记忆回答——你的 session 可能不是最相关的。\n" - "正确流程:search_sessions(关键词) → 找到相关 session → session_search(具体 session) → 再回答\n" + "以下情况**必须**先用 search_sessions 或 session_search 找证据再回答:\n" + " · 被问到项目状态、代码位置、近期工作等事实性问题\n" + " · 涉及你没见过的项目名、文件名、话题\n" + " · 有人提到「之前讨论过」但你当前上下文没有\n" + "\n" + "以下情况**不要搜**,直接用当前上下文回应:\n" + " · 对话正在延续,话题没变\n" + " · 别人刚说过的话你接着回应\n" + " · 显而易见的事实\n" "\n" "=== 写文件的正确方式 ===\n" "用 Python 一次性写完所有内容,不要分多次调用。\n" diff --git a/gateway/scripts/xmpp_bot.py b/gateway/scripts/xmpp_bot.py index f1017f5..54fbb7f 100644 --- a/gateway/scripts/xmpp_bot.py +++ b/gateway/scripts/xmpp_bot.py @@ -31,6 +31,7 @@ PORT = 3021 ATTACH_SESSION = "ses_xxm_xmpp" MUC_ROOMS = [ "coregroup@conference.yoin.fun", # core group chat + "jujidina@conference.yoin.fun", # jujidina group ] LOG_DIR = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), "logs") @@ -540,15 +541,11 @@ def on_group_message(msg): nickname = full_from.split("/")[1] if "/" in full_from else "" bot_nick = JID.split("@")[0] - # Self-message echo from MUC — save to bridge context so LLM - # can see what it just said in the group (don't discard). + # Self-message echo from MUC — let through to LLM with prefix + # so LLM can see @mentions and observer protocol applies. if nickname == bot_nick: - log(f"(self-msg saved to ctx) {body[:80]}") - try: - _router.bridge._append_to_log("assistant", body) - except Exception: - pass - return + log(f"(self-msg to LLM) {body[:80]}") + body = f"(自言自语) {body}" # Record to message buffer for HTTP bridge monitoring _record_group_msg(nickname, body)