Skip to content

Memory

Memory providers and types for persistent agent state.

Types

MemoryMessage dataclass

A message from conversation history.

UserProfile dataclass

User profile with facts.

GoalState dataclass

User goal state.

ToolEvent dataclass

A record of a tool invocation (§9.1 tool_events).

InMemoryMemoryProvider

InMemoryMemoryProvider

Pluggable memory provider for dev/test without a DB.

Implements the full MemoryProvider Protocol.

save_message async

save_message(user_id: str, topic_id: str, role: str, content: str, tool_calls: list[dict[str, Any]] | None = None) -> None

Save a message.

get_messages async

get_messages(user_id: str, topic_id: str, limit: int = 10) -> list[MemoryMessage]

Get the last N messages.

count_messages async

count_messages(user_id: str, topic_id: str) -> int

Message count.

delete_messages_before async

delete_messages_before(user_id: str, topic_id: str, keep_last: int = 10) -> int

Delete old messages.

upsert_fact async

upsert_fact(user_id: str, key: str, value: Any, topic_id: str | None = None, source: str = 'user') -> None

Save a fact.

get_facts async

get_facts(user_id: str, topic_id: str | None = None) -> dict[str, Any]

Get facts: global + topic-scoped.

save_summary async

save_summary(user_id: str, topic_id: str, summary: str, messages_covered: int) -> None

Save a summary.

get_summary async

get_summary(user_id: str, topic_id: str) -> str | None

Get a summary.

ensure_user async

ensure_user(external_id: str) -> str

Create a user.

save_goal async

save_goal(user_id: str, goal: GoalState) -> None

Save a goal.

get_active_goal async

get_active_goal(user_id: str, topic_id: str) -> GoalState | None

Get the active goal.

save_session_state async

save_session_state(user_id: str, topic_id: str, role_id: str, active_skill_ids: list[str], prompt_hash: str = '', *, delegated_from: str | None = None, delegation_turn_count: int = 0, pending_delegation: str | None = None, delegation_summary: str | None = None) -> None

Save session state.

get_session_state async

get_session_state(user_id: str, topic_id: str) -> dict[str, Any] | None

Get session state.

get_user_profile async

get_user_profile(user_id: str) -> UserProfile

Get the profile.

save_phase_state async

save_phase_state(user_id: str, phase: str, notes: str = '') -> None

Save the phase.

get_phase_state async

get_phase_state(user_id: str) -> PhaseState | None

Get the current phase.

save_tool_event async

save_tool_event(user_id: str, event: ToolEvent) -> None

Save a tool invocation event.

MemoryScope

MemoryScope

Bases: str, Enum

Memory scope for agent isolation.