192 lines
5.6 KiB
Markdown
192 lines
5.6 KiB
Markdown
|
|
# TrueRecall v2 - Function Check (GENERIC)
|
||
|
|
|
||
|
|
**Quick validation checklist for TrueRecall v2 setup**
|
||
|
|
|
||
|
|
**For:** Generic installation (sanitized)
|
||
|
|
**Version:** 2.2
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Quick Status Check
|
||
|
|
|
||
|
|
```bash
|
||
|
|
cd ~/<PROJECT_PATH>/true-recall-v2
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 1. Directory Structure
|
||
|
|
|
||
|
|
| Check | Command | Expected |
|
||
|
|
|-------|---------|----------|
|
||
|
|
| Project exists | `ls ~/<PROJECT_PATH>/true-recall-v2` | Files listed |
|
||
|
|
| Watcher script | `ls <SKILL_PATH>/qdrant-memory/scripts/realtime_qdrant_watcher.py` | File exists |
|
||
|
|
|
||
|
|
**Paths:**
|
||
|
|
- Project: `~/<PROJECT_PATH>/true-recall-v2/`
|
||
|
|
- Watcher: `<SKILL_PATH>/qdrant-memory/scripts/realtime_qdrant_watcher.py`
|
||
|
|
- Systemd: `/etc/systemd/system/mem-qdrant-watcher.service`
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 2. Services
|
||
|
|
|
||
|
|
| Check | Command | Expected |
|
||
|
|
|-------|---------|----------|
|
||
|
|
| Watcher running | `systemctl is-active mem-qdrant-watcher` | `active` |
|
||
|
|
| Watcher enabled | `systemctl is-enabled mem-qdrant-watcher` | `enabled` |
|
||
|
|
| Cron job set | `crontab -l \| grep true-recall` | Cron entry present |
|
||
|
|
|
||
|
|
**Service:**
|
||
|
|
- Service: `mem-qdrant-watcher.service`
|
||
|
|
- Status: `systemctl status mem-qdrant-watcher --no-pager`
|
||
|
|
- Logs: `journalctl -u mem-qdrant-watcher -n 20`
|
||
|
|
- Cron: Configured interval (e.g., `*/5 * * * *`)
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 3. Qdrant Collections
|
||
|
|
|
||
|
|
| Check | Command | Expected |
|
||
|
|
|-------|---------|----------|
|
||
|
|
| memories_tr status | `curl -s http://<QDRANT_IP>:6333/collections/memories_tr \| jq .result.status` | `green` |
|
||
|
|
| gems_tr status | `curl -s http://<QDRANT_IP>:6333/collections/gems_tr \| jq .result.status` | `green` |
|
||
|
|
| memories_tr count | `curl -s http://<QDRANT_IP>:6333/collections/memories_tr \| jq .result.points_count` | `1000+` |
|
||
|
|
| gems_tr count | `curl -s http://<QDRANT_IP>:6333/collections/gems_tr \| jq .result.points_count` | `10+` |
|
||
|
|
|
||
|
|
**Qdrant:**
|
||
|
|
- URL: `http://<QDRANT_IP>:6333`
|
||
|
|
- Collections: memories_tr, gems_tr
|
||
|
|
- Embedding Model: Configured in openclaw.json
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 4. Curation Status
|
||
|
|
|
||
|
|
| Check | Command | Expected |
|
||
|
|
|-------|---------|----------|
|
||
|
|
| Uncurated count | See Section 7 | `Number of uncurated` |
|
||
|
|
| Curated count | See Section 7 | `Number of curated` |
|
||
|
|
| Curator config | `cat tr-continuous/curator_config.json` | Valid JSON |
|
||
|
|
|
||
|
|
**Config:**
|
||
|
|
- Timer: Configured minutes
|
||
|
|
- Batch Size: Configured (e.g., 100)
|
||
|
|
- User ID: Your user ID
|
||
|
|
- Source: memories_tr
|
||
|
|
- Target: gems_tr
|
||
|
|
- Curator Log: `/var/log/true-recall-timer.log`
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 5. Capture Test
|
||
|
|
|
||
|
|
| Step | Action | Check |
|
||
|
|
|------|--------|-------|
|
||
|
|
| 1 | Send a test message | Message received |
|
||
|
|
| 2 | Wait 10 seconds | Allow processing |
|
||
|
|
| 3 | Check memories count increased | `curl -s http://<QDRANT_IP>:6333/collections/memories_tr \| jq .result.points_count` |
|
||
|
|
| 4 | Verify memory has user_id | `user_id: "<YOUR_USER_ID>"` in payload |
|
||
|
|
| 5 | Verify memory has curated=false | `curated: false` in payload |
|
||
|
|
|
||
|
|
**Watcher:**
|
||
|
|
- Script: `<SKILL_PATH>/qdrant-memory/scripts/realtime_qdrant_watcher.py`
|
||
|
|
- User ID: Configured (check openclaw.json)
|
||
|
|
- Collection: `memories_tr`
|
||
|
|
- Embeddings: Configured model
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 6. Curation Test
|
||
|
|
|
||
|
|
| Step | Action | Check |
|
||
|
|
|------|--------|-------|
|
||
|
|
| 1 | Note current gems count | Baseline |
|
||
|
|
| 2 | Run curator manually | `cd tr-continuous && python3 curator_timer.py` |
|
||
|
|
| 3 | Check gems count increased | New gems added |
|
||
|
|
| 4 | Check memories marked curated | `curated: true` |
|
||
|
|
| 5 | Check curator log | `tail /var/log/true-recall-timer.log` |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 7. Recall Test
|
||
|
|
|
||
|
|
| Step | Action | Check |
|
||
|
|
|------|--------|-------|
|
||
|
|
| 1 | Start new conversation | Context loads |
|
||
|
|
| 2 | Ask about previous topic | Gems injected |
|
||
|
|
| 3 | Verify context visible | Relevant memories appear |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 8. Path Validation
|
||
|
|
|
||
|
|
| Path | Check | Status |
|
||
|
|
|------|-------|--------|
|
||
|
|
| Watcher script | `<SKILL_PATH>/qdrant-memory/scripts/realtime_qdrant_watcher.py` | ☐ |
|
||
|
|
| Curator script | `<PROJECT_PATH>/true-recall-v2/tr-continuous/curator_timer.py` | ☐ |
|
||
|
|
| Config file | `<PROJECT_PATH>/true-recall-v2/tr-continuous/curator_config.json` | ☐ |
|
||
|
|
| Log file | `/var/log/true-recall-timer.log` | ☐ |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 9. Quick Commands Reference
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Check all services
|
||
|
|
systemctl status mem-qdrant-watcher --no-pager
|
||
|
|
tail -20 /var/log/true-recall-timer.log
|
||
|
|
|
||
|
|
# Check Qdrant collections
|
||
|
|
curl -s http://<QDRANT_IP>:6333/collections/memories_tr | jq '{status: .result.status, points: .result.points_count}'
|
||
|
|
curl -s http://<QDRANT_IP>:6333/collections/gems_tr | jq '{status: .result.status, points: .result.points_count}'
|
||
|
|
|
||
|
|
# Check uncurated memories
|
||
|
|
curl -s -X POST http://<QDRANT_IP>:6333/collections/memories_tr/points/count \
|
||
|
|
-d '{"filter":{"must":[{"key":"user_id","match":{"value":"<YOUR_USER_ID>"}},{"key":"curated","match":{"value":false}}]}}' | jq .result.count
|
||
|
|
|
||
|
|
# Run curator manually
|
||
|
|
cd ~/<PROJECT_PATH>/true-recall-v2/tr-continuous
|
||
|
|
python3 curator_timer.py
|
||
|
|
|
||
|
|
# Check OpenClaw plugin
|
||
|
|
openclaw status | grep memory-qdrant
|
||
|
|
|
||
|
|
# Restart watcher (if needed)
|
||
|
|
sudo systemctl restart mem-qdrant-watcher
|
||
|
|
|
||
|
|
# View watcher logs
|
||
|
|
journalctl -u mem-qdrant-watcher -n 50 --no-pager
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Configuration Variables
|
||
|
|
|
||
|
|
Replace these placeholders with your actual values:
|
||
|
|
|
||
|
|
| Variable | Description | Example |
|
||
|
|
|----------|-------------|---------|
|
||
|
|
| `<QDRANT_IP>` | Your Qdrant IP | `10.0.0.40` or `localhost` |
|
||
|
|
| `<OLLAMA_IP>` | Your Ollama IP | `10.0.0.10` or `localhost` |
|
||
|
|
| `<PROJECT_PATH>` | Your project path | `.local_projects` or `.projects` |
|
||
|
|
| `<SKILL_PATH>` | Your skills path | `~/.openclaw/workspace/skills` |
|
||
|
|
| `<YOUR_USER_ID>` | Your user ID | `rob` or username |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Sign-Off
|
||
|
|
|
||
|
|
| Check | Date | Initials |
|
||
|
|
|-------|------|----------|
|
||
|
|
| All services running | | |
|
||
|
|
| Collections healthy | | |
|
||
|
|
| Capture working | | |
|
||
|
|
| Curation working | | |
|
||
|
|
| Recall working | | |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
*Last updated: 2026-02-25*
|
||
|
|
*Version: 2.2 (Generic)*
|