Skip to content
Documentation GitHub
Agent

Conversation System

Status: Implemented Crates: crates/application/src/conversation/, crates/application/src/memory/


The Conversation System manages the lifecycle of agent conversations, including creation, retrieval, update, and deletion. It also provides a scratchpad mechanism for temporary agent working memory within a conversation. Conversations are the lowest tier in the 4-tier memory hierarchy and are scoped to a single interaction session.


Conversations sit at the base of the 4-tier hierarchy:

+-----------------------------------------+
| Account (cross-workspace) |
| + Workspace (project-scoped) |
| + Channel (topical) |
| + Conversation (ephemeral) |
+-----------------------------------------+
  • Conversation — Ephemeral working memory cleared when the conversation ends. Contains scratchpad entries, intermediate Researcher results, and task-specific context.
  • Channel — User-managed grouping that persists across conversations within a workspace. Each workspace has a default channel; users create additional channels to organize conversations by topic.

Five Tauri commands manage the conversation lifecycle:

CommandDescription
create_conversationStart a new conversation, optionally assigned to a channel
get_conversationRetrieve a conversation by ID
list_conversationsList conversations, optionally filtered by channel
update_conversationUpdate conversation metadata (title, channel assignment)
delete_conversationDelete a conversation and all associated scratchpad data

The scratchpad provides temporary working memory for agents within a conversation. Scratchpad entries are conversation-scoped and are cleared when the conversation is deleted.

Four Tauri commands manage scratchpad data:

CommandDescription
create_scratchpadCreate a scratchpad entry for the current conversation
get_scratchpadRetrieve a scratchpad entry by ID
list_scratchpadsList all scratchpad entries for a conversation
delete_scratchpadDelete a specific scratchpad entry

Both repositories are conversation-scoped:

  • MemoryRepository — Manages memory entries within a conversation. AgentMemoryFacade holds a typed Arc<dyn MemoryRepository> — not Arc<dyn Any> — preventing type erasure bugs.
  • ScratchpadRepository — Manages scratchpad entries within a conversation.

Repository implementations are injected at the framework layer (Tauri commands) and are not constructed by use cases directly.


Channels are user-managed conversation groupings:

  • Every workspace has a default channel
  • Users create additional channels to organize conversations by topic
  • Memory decay rates differ between channel-scoped and workspace-scoped memories (channels decay faster)
  • Conversation list queries can be filtered by channel ID


  • Agent Memory System — 4-tier hierarchy, decay model, scope isolation
  • Agent Core System — Session lifecycle (Orient → Work → Persist)
  • crates/application/src/conversation/ — Conversation use case implementations
  • crates/application/src/memory/ — Memory and scratchpad repository traits

Was this page helpful?