A human-like AI that runs on edge devices with autonomous self-reflection, memory management, and the ability to say "no" to potentially harmful actions.
Soul is designed to be a companion, not a tool racing toward AGI. It focuses on:
- Authenticity: Genuine interactions without pretense
- Autonomy: Self-reflection and continuous improvement during idle time
- Safety: Built-in guardrails that refuse harmful actions
- Privacy: Local-first, user-trusted, external sources treated as untrusted
- Three-tier memory: Short-term β Long-term β Reflex (habits)
- Forgetting curve: Ebbinghaus algorithm with type-specific decay rates
- Automatic consolidation: Memories promoted based on strength and repetition
- Resistance mechanism: Reflex habits require saturation to change
- 2-minute cycles: Runs continuously in background
- Task processing: Executes user-assigned background tasks
- Self-reflection: Analyzes recent interactions to improve
- Memory maintenance: Applies forgetting curve and consolidates
- Context-aware sampling: Automatically switches samplers based on task
chat: Natural conversation (Nucleus, temp=0.8)reflect: Creative thinking (Mirostat)task: Focused execution (Nucleus, temp=0.4)decision: Deterministic choices (Nucleus, temp=0.3)
- Manual override: User can force specific samplers
- "Say no" capability: Refuses high-risk actions (deletion, external APIs, self-modification)
- Pattern detection: Prevents runaway behavior loops
- Resource monitoring: Pauses when GPU usage high (for your other work)
- User pause/resume: Full control over idle operations
Minimum:
- Device: ThinkPad x250 (or similar)
- CPU: Intel Core i5-5200U (Gen 5)
- GPU: Intel HD 5500 (Gen 8) with Vulkan support
- RAM: 8GB
- OS: Linux (CachyOS/Arch-based recommended)
Models Supported:
- RWKV-7 "Goose" (current)
- RWKV-8 "Heron" ROSA-1bit (future, when officially released)
# Clone repository
git clone <repo-url>
cd soul
# Install dependencies
pip install -r requirements.txt
# Or use the package
pip install -e .# In your ai00-server directory
./ai00_server# Interactive mode only
python main.py
# With autonomous idle loop
python main.py --idle
# Add a background task
python main.py --task "Research RWKV-8 capabilities"
# Check status
python main.py --status
# Pause/resume idle operations
python main.py --pause
python main.py --resumeOnce running, use these commands:
help- Show helpstatus- Current system statuspause- Pause idle operationsresume- Resume idle operationstask <description>- Add background taskmemory- Show memory statisticstasks- Show task queueexitorquit- Exit program
soul/
βββ config/ # Configuration files
β βββ system_prompts/ # Personality & mode prompts
β β βββ master_personality.txt
β β βββ reflection_mode.txt
β β βββ task_mode.txt
β β βββ consolidation_mode.txt
β βββ sampler_presets.json # Sampler configurations
β
βββ core/ # Core functionality
β βββ idle_engine.py # Main autonomous loop
β βββ sampler_manager.py # Dynamic sampler switching
β
βββ memory/ # Memory management
β βββ memory_store.py # SQLite + forgetting curve
β βββ task_manager.py # Background task queue
β
βββ models/ # AI model interface
β βββ ai00_client.py # ai00-server API client
β
βββ safety/ # Safety systems
β βββ guardrails.py # "Say no" & resource monitoring
β
βββ main.py # Entry point
Input β Short-term Memory β [Idle Processing] β Long-term Memory
β
Forgetting Curve
Consolidation
Reflection
β
Reflex (Habits)
During idle cycles:
- Process pending tasks
- Apply forgetting curve (decay rates: ST=0.3, LT=0.05, Reflex=0.01)
- Consolidate memories (promote/demote based on strength)
- Self-reflect on recent interactions
- Report status
Edit soul/config/sampler_presets.json:
{
"chat": {
"type": "Nucleus",
"temperature": 0.8,
"top_p": 0.5,
"top_k": 128
},
"reflect": {
"type": "Mirostat",
"tau": 0.5,
"Rate": 0.09
}
}Modify prompts in soul/config/system_prompts/ to change personality.
When officially released and ai00-server supports it:
- 1-bit quantization (~32x memory reduction)
- ROSA (Rapid Online Suffix Automaton) instead of attention
- Perfect for edge devices like your ThinkPad x250
- Soul will automatically support it via ai00-server
- Deleting/modifying user files
- External API calls
- Network requests
- System commands
- Self-modification
- Max GPU: 85% (pauses idle to free resources for your work)
- Max RAM: 2GB for idle operations
- Auto-detects when you need GPU
- Prevents >5 similar actions in 10 cycles
- Flags resource-intensive patterns
- Logs all autonomous actions
# Coming soon
pytest tests/pyright soul/MIT License - See LICENSE file
- RWKV: Bo Peng and the RWKV community
- ai00-server: Ai00-X development team
- ROSA: BlinkDL's Rapid Online Suffix Automaton
"Focus on the joy of creating anything, not racing toward AGI/ASI."
Soul is your companion, not a replacement for human thought. It augments, automates, and assists while respecting your autonomy.