From 29e7dbf7b297b82fe797d0f45b35de0eb64f72f4 Mon Sep 17 00:00:00 2001 From: mirivlad Date: Thu, 19 Mar 2026 02:01:22 +0800 Subject: [PATCH] =?UTF-8?q?Fix:=20=D0=B4=D0=BB=D1=8F=20=D0=BA=D0=BE=D0=BC?= =?UTF-8?q?=D0=B0=D0=BD=D0=B4=20=D1=81=20yolo=3DTrue=20=D0=BD=D0=B5=20?= =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D1=8F=D1=82=D1=8C=20=D0=BA?= =?UTF-8?q?=D0=BE=D0=BD=D1=82=D0=B5=D0=BA=D1=81=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - _build_prompt теперь принимает yolo параметр - Для yolo=True отправляется только команда без системного промпта и истории - Qwen-code будет правильно выполнять команды Co-authored-by: Qwen-Coder --- src/tools/orchestrator.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/tools/orchestrator.py b/src/tools/orchestrator.py index 9d8b446..6da1750 100644 --- a/src/tools/orchestrator.py +++ b/src/tools/orchestrator.py @@ -40,18 +40,22 @@ class Orchestrator: result_lower = result.lower() return any(keyword in result_lower for keyword in rate_limit_keywords) - def _build_prompt(self, user_prompt: str, chat_id: int) -> str: + def _build_prompt(self, user_prompt: str, chat_id: int, yolo: bool = False) -> str: + # Для команд с yolo=True не добавляем контекст - отправляем только команду + if yolo: + return user_prompt + context = self.memory.get_context_for_prompt(chat_id) - + full_prompt = f"{SYSTEM_PROMPT}\n\n" - + similar = self.memory.search_similar(chat_id, user_prompt, limit=3) if similar: full_prompt += f"Похожие предыдущие разговоры:\n" for sim in similar: full_prompt += f"- {sim}\n" full_prompt += "\n" - + if context: full_prompt += f"История текущего разговора:\n{context}\n\n" @@ -69,7 +73,7 @@ class Orchestrator: model_id = model selected_tool = f"opencode:{model_id}" - full_prompt = self._build_prompt(prompt, chat_id) + full_prompt = self._build_prompt(prompt, chat_id, yolo) if selected_tool == "gigachat": result, success = await self.gigachat.ask(full_prompt)