콘텐츠로 이동

Session Settings

Session configuration settings.

SessionSettings

Settings for session operations.

This class holds optional session configuration parameters that can be used when interacting with session methods.

ソースコード位置: src/agents/memory/session_settings.py
@dataclass
class SessionSettings:
    """Settings for session operations.

    This class holds optional session configuration parameters that can be used
    when interacting with session methods.
    """

    limit: int | None = None
    """Maximum number of items to retrieve. If None, retrieves all items."""

    def resolve(self, override: SessionSettings | dict[str, Any] | None) -> SessionSettings:
        """Produce a new SessionSettings by overlaying any non-None values from the
        override on top of this instance."""
        if override is None:
            return self
        override_fields = (
            set(_dataclass_input_values(override, type(self)))
            if isinstance(override, dict)
            else None
        )
        override = _coerce_session_settings(override, settings_type=type(self))

        changes = {
            field.name: getattr(override, field.name)
            for field in fields(self)
            if (override_fields is None or field.name in override_fields)
            and getattr(override, field.name) is not None
        }

        return replace(self, **changes)

    def to_dict(self) -> dict[str, Any]:
        """Convert settings to a dictionary."""
        return dataclasses.asdict(self)

limit class-attribute instance-attribute

limit: int | None = None

Maximum number of items to retrieve. If None, retrieves all items.

resolve

resolve(
    override: SessionSettings | dict[str, Any] | None,
) -> SessionSettings

Produce a new SessionSettings by overlaying any non-None values from the override on top of this instance.

ソースコード位置: src/agents/memory/session_settings.py
def resolve(self, override: SessionSettings | dict[str, Any] | None) -> SessionSettings:
    """Produce a new SessionSettings by overlaying any non-None values from the
    override on top of this instance."""
    if override is None:
        return self
    override_fields = (
        set(_dataclass_input_values(override, type(self)))
        if isinstance(override, dict)
        else None
    )
    override = _coerce_session_settings(override, settings_type=type(self))

    changes = {
        field.name: getattr(override, field.name)
        for field in fields(self)
        if (override_fields is None or field.name in override_fields)
        and getattr(override, field.name) is not None
    }

    return replace(self, **changes)

to_dict

to_dict() -> dict[str, Any]

Convert settings to a dictionary.

ソースコード位置: src/agents/memory/session_settings.py
def to_dict(self) -> dict[str, Any]:
    """Convert settings to a dictionary."""
    return dataclasses.asdict(self)

resolve_session_limit

resolve_session_limit(
    explicit_limit: int | None,
    settings: SessionSettings | dict[str, Any] | None,
) -> int | None

Safely resolve the effective limit for session operations.

ソースコード位置: src/agents/memory/session_settings.py
def resolve_session_limit(
    explicit_limit: int | None,
    settings: SessionSettings | dict[str, Any] | None,
) -> int | None:
    """Safely resolve the effective limit for session operations."""
    if explicit_limit is not None:
        return explicit_limit
    if settings is not None:
        return coerce_session_settings(settings).limit
    return None

coerce_session_settings

coerce_session_settings(
    value: SessionSettings | dict[str, Any],
) -> SessionSettings

Normalize session settings while preserving existing typed instances.

ソースコード位置: src/agents/memory/session_settings.py
def coerce_session_settings(
    value: SessionSettings | dict[str, Any],
) -> SessionSettings:
    """Normalize session settings while preserving existing typed instances."""
    return _coerce_session_settings(value, settings_type=SessionSettings)