"""停止自动修正并保留诊断信息""" from app.processor.base import BaseNode from app.processor.state import QueryState class FallbackNode(BaseNode): name = "fallback_node" def process(self, state: QueryState) -> QueryState: updated_state: QueryState = state.copy() reason = state.get("failure_reason") if not reason: reason = f"动作校验未通过,已达到自动修正上限,共重试 {state.get('retry_count', 0)} 次" # actions 仅保留作诊断,不交付部分结果 updated_state["status"] = "failed" updated_state["failure_reason"] = reason updated_state["validation_passed"] = False updated_state["simulated_screen"] = None return updated_state if __name__ == "__main__": from app.schemas.action_validation import ActionValidationError state = { "request": {}, "retry_count": 2, "actions": None, "validation_errors": [ ActionValidationError(code="generation_error", message="动作生成失败") ], } node = FallbackNode() final_state = node.process(state) print(final_state)