diff --git a/plugins/ai_auto_response/context_builder.py b/plugins/ai_auto_response/context_builder.py index 7b4ebe8..8248ced 100644 --- a/plugins/ai_auto_response/context_builder.py +++ b/plugins/ai_auto_response/context_builder.py @@ -4,6 +4,9 @@ from typing import Dict, List class ContextBuilder: + def __init__(self, recent_context_size: int = 30): + self.recent_context_size = max(int(recent_context_size or 30), 1) + def build( self, *, @@ -20,7 +23,7 @@ class ContextBuilder: vector_memories: List[Dict], ) -> Dict: recent_lines = [] - for item in recent_messages[-8:]: + for item in recent_messages[-self.recent_context_size:]: msg_sender = item.get("sender_name") or item.get("sender") or "未知成员" msg_content = item.get("content") or item.get("message") or "" if msg_content: diff --git a/plugins/ai_auto_response/main.py b/plugins/ai_auto_response/main.py index 918b4e5..65be9a1 100644 --- a/plugins/ai_auto_response/main.py +++ b/plugins/ai_auto_response/main.py @@ -87,7 +87,7 @@ class AIAutoResponsePlugin(MessagePluginInterface): merged_memory_config.update(self._config.get("memory", {}) or {}) self.memory_store = MemoryStore(self.db_manager, merged_memory_config) self.vector_memory = VectorMemoryStore(self._config.get("memory", {}) or {}) - self.context_builder = ContextBuilder() + self.context_builder = ContextBuilder(int((self._config.get("mode", {}) or {}).get("recent_context_size", 30))) self.response_planner = ResponsePlanner() self.llm_client = LLMClient(self._config.get("api", {}) or {}) self.filters = self._config.get("filters", {}) or {} @@ -344,7 +344,7 @@ class AIAutoResponsePlugin(MessagePluginInterface): return (current_ts - last_room_reply) >= room_cd def _build_user_prompt(self, context: Dict, memory_hints: Dict) -> str: - recent_text = "\n".join(context.get("recent_messages", [])[-8:]) or "暂无" + recent_text = "\n".join(context.get("recent_messages", [])) or "暂无" reply_mode = context.get("reply_mode", "social_short") length_rule = self._build_length_rule(reply_mode) return (