diff --git a/backend_service/src/py_tree_generator.py b/backend_service/src/py_tree_generator.py index f0baf086..263121db 100644 --- a/backend_service/src/py_tree_generator.py +++ b/backend_service/src/py_tree_generator.py @@ -636,27 +636,25 @@ class PyTreeGenerator: except Exception as e: logging.warning(f"分类失败,默认按复杂指令处理: {e}") - # 第二步:根据模式准备提示词与上下文 + # 第二步:根据模式准备提示词与上下文(简单与复杂都执行检索增强) # 基于模式选择提示词;复杂模式追加一条强制规则,避免模型误输出简单结构 use_prompt = self.simple_prompt if mode == "simple" else ( (self.complex_prompt or "") + "\n\n【强制规则】仅生成包含root的复杂行为树JSON,不得输出简单模式(不得包含mode字段或仅有action节点)。" ) final_user_prompt = user_prompt - retrieved_context = None - if mode == "complex": - retrieved_context = self._retrieve_context(user_prompt) - if retrieved_context: - augmentation = ( - "\n\n---\n" - "参考知识:\n" - "以下是从知识库中检索到的、与当前任务最相关的信息,请优先参考这些信息来生成行为树:\n" - f"{retrieved_context}" - "\n---" - ) - final_user_prompt += augmentation - else: - logging.warning("未检索到上下文或检索失败,将使用原始用户提示词。") + retrieved_context = self._retrieve_context(user_prompt) + if retrieved_context: + augmentation = ( + "\n\n---\n" + "参考知识:\n" + "以下是从知识库中检索到的、与当前任务最相关的信息,请优先参考这些信息来生成结果:\n" + f"{retrieved_context}" + "\n---" + ) + final_user_prompt += augmentation + else: + logging.warning("未检索到上下文或检索失败,将使用原始用户提示词。") for attempt in range(3): logging.info(f"--- 第 {attempt + 1}/3 次尝试生成Pytree ---") try: