diff --git a/astrbot/core/pipeline/result_decorate/stage.py b/astrbot/core/pipeline/result_decorate/stage.py index 5dfb52f6f..ef394edcf 100644 --- a/astrbot/core/pipeline/result_decorate/stage.py +++ b/astrbot/core/pipeline/result_decorate/stage.py @@ -161,11 +161,21 @@ class ResultDecorateStage(Stage): # 不分段回复 new_chain.append(comp) continue - split_response = re.findall( - self.regex, - comp.text, - re.DOTALL | re.MULTILINE, - ) + try: + split_response = re.findall( + self.regex, + comp.text, + re.DOTALL | re.MULTILINE, + ) + except re.error: + logger.error( + f"分段回复正则表达式错误,使用默认分段方式: {traceback.format_exc()}", + ) + split_response = re.findall( + r".*?[。?!~…]+|.+$", + comp.text, + re.DOTALL | re.MULTILINE, + ) if not split_response: new_chain.append(comp) continue