30 lines
955 B
Python
30 lines
955 B
Python
"""World model schemas: state transitions, rollouts, uncertainty for AGI."""
|
|
|
|
from datetime import datetime, timezone
|
|
from typing import Any
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
def _utc_now() -> datetime:
|
|
return datetime.now(timezone.utc)
|
|
|
|
|
|
class StateTransition(BaseModel):
|
|
"""Causal transition: action -> resulting state."""
|
|
|
|
from_state: dict[str, Any] = Field(default_factory=dict)
|
|
action: str = Field(default="")
|
|
action_args: dict[str, Any] = Field(default_factory=dict)
|
|
to_state: dict[str, Any] = Field(default_factory=dict)
|
|
confidence: float = Field(default=1.0, ge=0.0, le=1.0)
|
|
|
|
|
|
class UncertaintyInfo(BaseModel):
|
|
"""Explicit uncertainty: confidence, risk, expected value."""
|
|
|
|
confidence: float = Field(default=1.0, ge=0.0, le=1.0)
|
|
risk_level: str = Field(default="low", description="e.g. low, medium, high")
|
|
expected_value: float | None = Field(default=None)
|
|
rationale: str = Field(default="")
|