"""动作错误的修正建议""" from typing import Self from pydantic import BaseModel, Field, model_validator from app.schemas.base import NonBlankString class ActionRepairPlan(BaseModel): retryable: bool = Field(description="是否可在现有需求和快照下修正") reason: NonBlankString = Field(description="错误原因或无法修正的原因") suggestions: list[NonBlankString] = Field(default_factory=list, description="重新生成动作时的具体修正建议") @model_validator(mode="after") def require_suggestions(self) -> Self: if self.retryable and not self.suggestions: raise ValueError("可重试时必须提供修正建议") return self