Skip to main content
Version: latest

agrag.common.data_models.decision.Decision

Bases: BaseModel

One recorded decision of a task.

Attributes:

  • id (UUID) – Identifier derived from the task id, choice key and revision.
  • task_id (UUID) – The task the decision belongs to.
  • task_name (str) – The name of that task.
  • choice_key (str) – The choice inside the task that this decision settles.
  • revision (int) – 1 for the first decision of a choice, and one more for each supersession.
  • conclusion (str) – The conclusion. Never changed after recording.
  • rationale (str) – The stated reasoning.
  • assumptions (list[str]) – Assumptions the decision relies on.
  • open_questions (list[str]) – Questions left open.
  • author (str) – The agent that recorded the decision.
  • status (DecisionStatus) – Lifecycle state.
  • review_state (ReviewState) – Whether the supports still hold.
  • review_reason (ReviewReason | None) – Why the decision needs review, or None.
  • rejection_reason (str | None) – The reason given when the decision was rejected.
  • rejected_by (str | None) – Who rejected the decision.
  • created_at (datetime) – When the decision was recorded.
  • supports (list[Support]) – The stored supports, in the order they were given.

assumptions​

assumptions: list[str]

author​

author: str

choice_key​

choice_key: str

conclusion​

conclusion: str

created_at​

created_at: datetime

id​

id: UUID

model_config​

model_config = ConfigDict(frozen=True)

open_questions​

open_questions: list[str]

rationale​

rationale: str

rejected_by​

rejected_by: str | None = None

rejection_reason​

rejection_reason: str | None = None

review_reason​

review_reason: ReviewReason | None = None

review_state​

review_state: ReviewState

revision​

revision: int

status​

status: DecisionStatus

supports​

supports: list[Support] = Field(default_factory=list)

task_id​

task_id: UUID

task_name​

task_name: str