Memory System
The Viben agent memory system provides persistent, structured storage for agent knowledge and daily activities. This guide covers the memory architecture and management commands.
Memory Architecture
Each agent has a memory/ directory with two types of files:
| File | Purpose | Read Timing |
|---|---|---|
MEMORY.md | Main memory file with structured knowledge | Every session start |
YYYY-MM-DD.md | Daily logs (append-only) | Today + yesterday at session start |
Directory Structure
~/.viben/agents/<agent-id>/memory/
|-- MEMORY.md # Main memory file (structured knowledge)
|-- 2024-01-13.md # Daily log (3 days ago)
|-- 2024-01-14.md # Daily log (2 days ago)
|-- 2024-01-15.md # Daily log (yesterday)
+-- 2024-01-16.md # Daily log (today)
Main Memory (MEMORY.md)
The main memory file contains structured, curated knowledge that the agent should always have access to.
Purpose
- Persistent context: Information that should be available across all sessions
- Structured knowledge: Organized facts, preferences, and project context
- Curated content: Manually maintained or agent-updated important information
Example Structure
# Agent Memory
## User Preferences
- Prefers TypeScript over JavaScript
- Uses VS Code as primary editor
- Follows conventional commits format
## Project Context
- Current project: Viben CLI
- Main language: TypeScript
- Framework: Commander.js
## Important Decisions
- 2024-01-15: Decided to use YAML for configuration
- 2024-01-10: Chose sqlite for local storage
## Common Tasks
- Code review: Focus on type safety and error handling
- Commits: Use conventional commit format
## Notes
- API keys stored in environment variables
- Tests use vitest framework
When to Update MEMORY.md
- Add new user preferences discovered during sessions
- Record important project decisions
- Update project context when it changes
- Remove outdated information
Daily Logs (YYYY-MM-DD.md)
Daily logs are append-only files that capture session activities.
Purpose
- Session history: What was worked on during each session
- Progress tracking: Tasks completed and pending
- Context continuity: Helps agent remember recent work
Format
# 2024-01-16
## 10:30 - Session started
- Working on feature X
- Discovered issue with Y
## 14:15 - Completed task
- Fixed bug in Z
- Updated documentation
## 17:00 - Session ended
- Next steps: review PR, deploy to staging
Automatic Reading
At session start, the agent automatically reads:
MEMORY.md(always)- Today's daily log (if exists)
- Yesterday's daily log (if exists)
This is controlled by the DAILY_LOG_DAYS setting in .agentrc:
# Read today + yesterday (default)
DAILY_LOG_DAYS=2
# Read only today
DAILY_LOG_DAYS=1
# Read today + 2 previous days
DAILY_LOG_DAYS=3
Memory Management Commands
View Memory
# View main memory
viben agent memory show -n <agent-id>
# View specific date
viben agent memory show -n <agent-id> --date 2024-01-16
# View all memory files
viben agent memory show -n <agent-id> --all
Example:
viben agent memory show -n my-agent
Output:
Memory: my-agent
MEMORY.md (2.3 KB, modified 2h ago)
----------------------------------------
# Agent Memory
## User Preferences
- Prefers TypeScript over JavaScript
...
Daily Logs:
2024-01-16.md 1.1 KB today
2024-01-15.md 3.2 KB yesterday
2024-01-14.md 2.8 KB 2 days ago
Append to Daily Log
Add content to today's daily log:
viben agent memory append -n <agent-id> "content to append"
Example:
viben agent memory append -n my-agent "## 14:30 - Code review completed
- Reviewed PR #123
- Found 3 issues, all resolved"
This appends to memory/2024-01-16.md (today's date).
Edit Main Memory
Open the main memory file in your default editor:
viben agent memory edit -n <agent-id>
Example:
viben agent memory edit -n my-agent
This opens ~/.viben/agents/my-agent/memory/MEMORY.md in the editor configured via settings.editor or the EDITOR environment variable.
Edit Specific Date
viben agent memory edit -n <agent-id> --date 2024-01-15
Memory Best Practices
MEMORY.md Organization
- Use clear sections: Divide content into logical sections
- Keep it concise: Focus on essential information
- Update regularly: Remove outdated information
- Use markdown: Leverage headings, lists, and formatting
Daily Logs
- Timestamp entries: Start each entry with time
- Be specific: Include actionable details
- Note blockers: Record issues and solutions
- Plan next steps: End sessions with next actions
Memory Hygiene
# Periodically clean old daily logs (keep last 30 days)
viben agent memory cleanup -n my-agent --keep-days 30
# Archive old logs
viben agent memory archive -n my-agent --before 2024-01-01
Memory Flow Diagram
Session Start
|
v
+----------------+
| Load MEMORY.md | <-- Always loaded
+----------------+
|
v
+------------------+
| Load Today's Log | <-- If exists
+------------------+
|
v
+----------------------+
| Load Yesterday's Log | <-- Based on DAILY_LOG_DAYS
+----------------------+
|
v
+----------------+
| Agent Context |
| Ready |
+----------------+
|
| (During session)
v
+------------------+
| Append to | <-- Agent or user adds entries
| Today's Log |
+------------------+
|
| (If needed)
v
+----------------+
| Update | <-- Important discoveries
| MEMORY.md |
+----------------+
Configuration
In .agentrc
# Memory files to load at startup
MEMORY_FILES="MEMORY.md"
# Number of daily logs to read (today + N-1 previous days)
DAILY_LOG_DAYS=2
In config.yaml
memory:
main_file: MEMORY.md
daily_log_days: 2
auto_cleanup: true
cleanup_keep_days: 30
Troubleshooting
Memory Not Loading
# Check if memory files exist
ls -la ~/.viben/agents/my-agent/memory/
# Verify file permissions
chmod 644 ~/.viben/agents/my-agent/memory/*
Daily Log Not Created
Daily logs are created automatically on first append. To create manually:
viben agent memory append -n my-agent "# $(date +%Y-%m-%d)
## Session started"
Memory Too Large
If MEMORY.md becomes too large:
- Archive old sections to a separate file
- Summarize detailed content
- Move project-specific info to workspace config
# Check memory size
viben agent memory show -n my-agent --stats
Output:
Memory Stats: my-agent
MEMORY.md: 15.2 KB (recommended: < 10 KB)
Daily logs: 23 files, 45.6 KB total
Total: 60.8 KB
Next Steps
- Sessions - Manage agent sessions
- Agent Configuration - Configure memory settings
- Templates - Create templates with memory structure