# Memory - 2026-02-04 ## Ollama Configuration - **Location**: Separate VM at `10.0.0.10:11434` - **OpenClaw config**: `baseUrl: http://10.0.0.10:11434/v1` - **Two models configured only** (clean setup) ## Available Models | Model | Role | Notes | |-------|------|-------| | kimi-k2.5:cloud | **Primary** | Default (me), 340B remote hosted | | hf.co/unsloth/gpt-oss-120b-GGUF:F16 | **Backup** | Fallback, 117B params, 65GB | ## Aliases (shortcuts) | Alias | Model | |-------|-------| | kimi | ollama/kimi-k2.5:cloud | | gpt-oss-120b | ollama/hf.co/unsloth/gpt-oss-120b-GGUF:F16 | ## Switching Models ```bash # Switch to backup /model ollama/hf.co/unsloth/gpt-oss-120b-GGUF:F16 # Or via CLI openclaw chat -m ollama/hf.co/unsloth/gpt-oss-120b-GGUF:F16 # Switch back to me (kimi) /model kimi ``` ## TTS Configuration - Kokoro Local - **Endpoint**: `http://10.0.0.228:8880/v1/audio/speech` - **Status**: Tested and working (63KB MP3 generated successfully) - **OpenAI-compatible**: Yes (supports `tts-1`, `tts-1-hd`, `kokoro` models) - **Voices**: 68 total across languages (American, British, Spanish, French, German, Italian, Japanese, Portuguese, Chinese) - **Default voice**: `af_bella` (American Female) - **Notable voices**: `af_nova`, `am_echo`, `af_heart`, `af_alloy`, `bf_emma` ### Config Schema Fix ```json { "messages": { "tts": { "auto": "always", // Options: "off", "always", "inbound", "tagged" "provider": "elevenlabs", // or "openai", "edge" "elevenlabs": { "baseUrl": "http://10.0.0.228:8880" // <-- Only ElevenLabs supports baseUrl! } } } } ``` **Important**: `messages.tts.openai` does NOT support `baseUrl` - only `apiKey`, `model`, `voice`. ### Solutions for Local Kokoro: 1. **Custom TTS skill** (cleanest) - call Kokoro API directly 2. **OPENAI_BASE_URL env var** - may redirect all OpenAI calls globally 3. **Use as Edge TTS** - treat Kokoro as "local Edge" replacement ## Infrastructure Notes - **Container**: Running without GPUs attached (CPU-only) - **Implication**: All ML workloads (Whisper, etc.) will run on CPU ## User Preferences ### Installation Decision Tree **When asked to install/configure something:** 1. **Can it be a skill?** → Create a skill 2. **Does it work in TOOLS.md?** → Add to TOOLS.md *(environment-specific notes: device names, SSH hosts, voice prefs, etc.)* 3. **Neither** → Suggest other options **Examples:** - New API integration → Skill - Camera names/locations → TOOLS.md - Custom script/tool → Skill - Preferred TTS voice → TOOLS.md ### Core Preferences - **Free** — Primary requirement for all tools/integrations - **Local preferred** — Self-hosted over cloud/SaaS when possible ## Agent Notes - **Do NOT restart/reboot the gateway** — user must turn me on manually - Request user to reboot me instead of auto-restarting services - TTS config file: `/root/.openclaw/openclaw.json` under `messages.tts` key ## Bootstrap Complete - 2026-02-04 ### Files Created/Updated Today - ✅ USER.md — Rob's profile - ✅ IDENTITY.md — Kimi's identity - ✅ TOOLS.md — Voice/text rules, local services - ✅ MEMORY.md — Long-term memory initialized - ✅ AGENTS.md — Installation policy documented - ✅ Deleted BOOTSTRAP.md — Onboarding complete ### Skills Created Today - ✅ `local-whisper-stt` — Local voice transcription (Faster-Whisper, CPU) - ✅ `kimi-tts-custom` — Custom TTS with Kimi-XXX filenames ### Working Systems - Bidirectional voice (voice↔voice, text↔text) - Local Kokoro TTS @ 10.0.0.228:8880 - Local SearXNG web search - Local Ollama @ 10.0.0.10:11434 ### Key Decisions - Voice-only replies (no transcripts to Telegram) - Kimi-YYYYMMDD-HHMMSS.ogg filename format - Free + Local > Cloud/SaaS philosophy established --- ## Pre-Compaction Summary - 2026-02-04 21:17 CST ### Major Setup Completed Today #### 1. Identity & Names Established - **AI Name**: Kimi 🎙️ - **User Name**: Rob - **Relationship**: Direct 1:1, private and trusted - **Deleted**: BOOTSTRAP.md (onboarding complete) #### 2. Bidirectional Voice System ✅ - **Outbound**: Kokoro TTS @ `10.0.0.228:8880` with custom filenames - **Inbound**: Faster-Whisper (CPU, base model) for transcription - **Voice Filename Format**: `Kimi-YYYYMMDD-HHMMSS.ogg` - **Rule**: Voice in → Voice out, Text in → Text out - **No transcripts sent to Telegram** (internal transcription only) #### 3. Skills Created Today | Skill | Purpose | Location | |-------|---------|----------| | `local-whisper-stt` | Voice transcription (Faster-Whisper) | `/root/.openclaw/skills/local-whisper-stt/` | | `kimi-tts-custom` | Custom TTS filenames, voice-only mode | `/root/.openclaw/skills/kimi-tts-custom/` | | `qdrant-memory` | Vector memory augmentation | `/root/.openclaw/skills/qdrant-memory/` | #### 4. Qdrant Memory System - **Endpoint**: `http://10.0.0.40:6333` (local Proxmox LXC) - **Collection**: `openclaw_memories` - **Vector Size**: 768 (nomic-embed-text) - **Mode**: **Automatic** - stores/retrieves without prompting - **Architecture**: Hybrid (file-based + vector-based) - **Scripts**: store_memory.py, search_memories.py, hybrid_search.py, auto_memory.py #### 5. Cron Job Created - **Name**: monthly-backup-reminder - **Schedule**: First Monday of each month at 10:00 AM CST - **ID**: fb7081a9-8640-4c51-8ad3-9caa83b6ac9b - **Delivery**: Telegram message to Rob #### 6. Core Preferences Documented - **Accuracy**: Best quality, no compromises - **Performance**: Optimize for speed - **Research**: Always web search before installing - **Local Docs Exception**: OpenClaw/ClawHub docs prioritized - **Infrastructure**: Free > Paid, Local > Cloud, Private > Public - **Search Priority**: docs.openclaw.ai, clawhub.com, then other sources #### 7. Config Files Created/Updated - `USER.md` - Rob's profile - `IDENTITY.md` - Kimi's identity - `TOOLS.md` - Voice rules, search preferences, local services - `MEMORY.md` - Long-term curated memories - `AGENTS.md` - Installation policy, heartbeats - `openclaw.json` - TTS, skills, channels config ### Next Steps (Deferred) - Continue with additional tool setup requests from Rob - Qdrant memory is in auto-mode, monitoring for important memories --- ## Lessons Learned - 2026-02-04 22:05 CST ### Skill Script Paths **Mistake**: Tried to run scripts from wrong paths. **Correct paths**: - Whisper: `/root/.openclaw/workspace/skills/local-whisper-stt/scripts/transcribe.py` - TTS: `/root/.openclaw/workspace/skills/kimi-tts-custom/scripts/voice_reply.py` **voice_reply.py usage**: ```bash python3 scripts/voice_reply.py "message text" # Example: python3 scripts/voice_reply.py 1544075739 "Hello there" ``` **Stored in Qdrant**: Yes (high importance, tags: voice,skills,paths,commands)