diff --git a/plugins/ai_auto_response/config.toml b/plugins/ai_auto_response/config.toml index 56e073f..6cf195f 100644 --- a/plugins/ai_auto_response/config.toml +++ b/plugins/ai_auto_response/config.toml @@ -69,7 +69,7 @@ enable_member_context = true enable_vector_memory = true vector_provider = "qdrant" embedding_provider = "ollama" -qdrant_url = "http://127.0.0.1:6333" +qdrant_url = "http://192.168.2.240:6333" qdrant_collection = "abot_xiaoniu_memory" ollama_base_url = "http://192.168.2.50:11434" embedding_model = "bge-m3" diff --git a/plugins/ai_auto_response/main.py b/plugins/ai_auto_response/main.py index b87f2d2..2fd581a 100644 --- a/plugins/ai_auto_response/main.py +++ b/plugins/ai_auto_response/main.py @@ -615,6 +615,7 @@ class AIAutoResponsePlugin(MessagePluginInterface): sender=sender, memory_type="member_context_snapshot", ok=ok, + error=self.vector_memory.last_error, ) if ok and version: self._synced_member_context_versions[cache_key] = version @@ -648,6 +649,7 @@ class AIAutoResponsePlugin(MessagePluginInterface): memory_type="interaction_memory", ok=ok, trigger_type=trigger_type, + error=self.vector_memory.last_error, ) def _log_event(self, event: str, **kwargs: Any) -> None: @@ -738,7 +740,8 @@ class AIAutoResponsePlugin(MessagePluginInterface): f"[XIAONIU] MEM_UPSERT room={room} user={sender} " f"type={data.get('memory_type', '')} " f"ok={self._yn(data.get('ok'))} " - f"trigger={data.get('trigger_type', '-') or '-'}" + f"trigger={data.get('trigger_type', '-') or '-'} " + f"err={self._preview(str(data.get('error', '') or '-'), 72)}" ).strip() compact = " ".join(f"{key}={data[key]}" for key in sorted(data) if data.get(key) not in (None, "")) diff --git a/plugins/ai_auto_response/response_planner.py b/plugins/ai_auto_response/response_planner.py index 036e1c7..d668314 100644 --- a/plugins/ai_auto_response/response_planner.py +++ b/plugins/ai_auto_response/response_planner.py @@ -24,7 +24,10 @@ class ResponsePlanner: conversation_hints: Dict | None = None, ) -> bool: conversation_hints = conversation_hints or {} - if trigger.get("is_at"): + trigger_type = str(trigger.get("trigger_type", "") or "") + if trigger.get("is_at") or trigger_type == "at_trigger": + return True + if trigger_type == "quote_followup_trigger" and trigger.get("is_directed"): return True if trigger.get("is_question") and conversation_hints.get("has_recent_human_solver") and flow_state != "deep_engaged": return False