Overview
The Workspace provides persistent memory for agents with a flexible filesystem-like structure. Agents can create arbitrary markdown file hierarchies that get indexed for full-text and semantic search. Inspired by OpenClaw’s memory system, the Workspace follows the principle: if you want to remember something, write it.Filesystem Structure
Workspace
Provides database-backed memory storage for an agent.Constructor (PostgreSQL)
src/workspace/mod.rs
String
required
User identifier (from channel)
Pool
required
PostgreSQL connection pool
Constructor (Generic Database)
src/workspace/mod.rs
String
required
User identifier
Arc<dyn Database>
required
Database implementation
Configuration
src/workspace/mod.rs
File Operations
read
src/workspace/mod.rs
&str
required
File path (e.g., “context/vision.md”)
Result<MemoryDocument, WorkspaceError>
Example:
write
src/workspace/mod.rs
&str
required
File path
&str
required
File content
Result<MemoryDocument, WorkspaceError>
Example:
append
src/workspace/mod.rs
&str
required
File path
&str
required
Content to append
delete
src/workspace/mod.rs
exists
src/workspace/mod.rs
list
src/workspace/mod.rs
&str
required
Directory path (e.g., “projects/”)
list_all
src/workspace/mod.rs
Convenience Methods
memory
src/workspace/mod.rs
today_log
src/workspace/mod.rs
daily_log
src/workspace/mod.rs
heartbeat_checklist
src/workspace/mod.rs
append_memory
src/workspace/mod.rs
append_daily_log
src/workspace/mod.rs
System Prompt
system_prompt
src/workspace/mod.rs
system_prompt_for_context
src/workspace/mod.rs
is_group_chat is true, MEMORY.md is excluded to prevent leaking personal context into group conversations.
Search
search
src/workspace/mod.rs
&str
required
Search query
usize
required
Maximum number of results
search_with_config
src/workspace/mod.rs
Seeding
seed_if_empty
src/workspace/mod.rs
import_from_directory
src/workspace/mod.rs
backfill_embeddings
src/workspace/mod.rs
Types
MemoryDocument
src/workspace/document.rs
WorkspaceEntry
src/workspace/document.rs
SearchResult
src/workspace/search.rs
SearchConfig
src/workspace/search.rs
