Files
jarvis-memory/memory/2026-02-04.md

6.6 KiB

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

# 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

{
  "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:

python3 scripts/voice_reply.py <chat_id> "message text"
# Example:
python3 scripts/voice_reply.py 1544075739 "Hello there"

Stored in Qdrant: Yes (high importance, tags: voice,skills,paths,commands)