Files
openclaw-workspace-2026/architecture/NOCODB_SETUP.md
T
JC Beasley cb5e26b561 Update memory service with working NocoDB configuration
- Set correct table ID: mx149yctebfwvys (ai_data_Memory)
- Updated type column with SingleSelect options
- Added all required columns for corrections, preferences, episodes, decisions, validation
- Fixed column options for type, severity, status fields
2026-07-04 17:02:40 -07:00

143 lines
3.8 KiB
Markdown

# NocoDB Setup for Self-Correcting Memory
## Current Configuration
**Agent Base ID:** `pedwxnsn51vxdq2`
**Memory Table ID:** `mwdr70ocb7iwnrg`
## Issue
The automation token (`svc-automation` role) cannot access the Agent base. This is a **permissions issue**.
## Solution Options
### Option 1: Grant Automation Role Access to Agent Base (Recommended)
In NocoDB web UI:
1. Go to Agent base settings
2. Add role `svc-automation` with Read/Write permissions
3. Or add user associated with automation role
### Option 2: Create Tables with Admin Token
Use a token with broader permissions to create these tables in the Agent base:
**Table: corrections**
```sql
CREATE TABLE corrections (
id VARCHAR(50) PRIMARY KEY,
pattern VARCHAR(500) NOT NULL,
exclude_pattern VARCHAR(500),
severity VARCHAR(20) NOT NULL,
message VARCHAR(500) NOT NULL,
suggestion VARCHAR(500),
blocking BOOLEAN DEFAULT TRUE,
auto_detected BOOLEAN DEFAULT FALSE,
manual_entry BOOLEAN DEFAULT FALSE,
hit_count INTEGER DEFAULT 0,
last_triggered TIMESTAMP,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
context VARCHAR(200)
);
```
**Table: memory_preferences**
```sql
CREATE TABLE memory_preferences (
id VARCHAR(50) PRIMARY KEY,
category VARCHAR(50) NOT NULL,
key VARCHAR(100) NOT NULL,
value TEXT NOT NULL,
importance INTEGER DEFAULT 5,
confidence FLOAT DEFAULT 1.0,
tags TEXT, -- JSON array
access_count INTEGER DEFAULT 0,
last_accessed TIMESTAMP,
confirmed_count INTEGER DEFAULT 0,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
```
**Table: memory_episodes**
```sql
CREATE TABLE memory_episodes (
id VARCHAR(50) PRIMARY KEY,
date DATE NOT NULL,
summary TEXT NOT NULL,
details TEXT,
project VARCHAR(100),
outcomes TEXT, -- JSON
corrections_triggered TEXT, -- JSON array
vector_embedding TEXT, -- Future use
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
```
**Table: memory_decisions**
```sql
CREATE TABLE memory_decisions (
id VARCHAR(50) PRIMARY KEY,
date DATE NOT NULL,
project VARCHAR(100),
decision TEXT NOT NULL,
alternatives TEXT, -- JSON
rationale TEXT NOT NULL,
status VARCHAR(20) DEFAULT 'active',
reversed_by VARCHAR(50),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
```
**Table: validation_runs**
```sql
CREATE TABLE validation_runs (
id VARCHAR(50) PRIMARY KEY,
session_id VARCHAR(50),
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
input_length INTEGER,
output_length INTEGER,
violations_found INTEGER DEFAULT 0,
new_patterns_detected INTEGER DEFAULT 0,
corrections_auto_stored INTEGER DEFAULT 0,
processing_time_ms INTEGER,
blocked BOOLEAN DEFAULT FALSE,
workflow VARCHAR(50)
);
```
### Option 3: Use Existing Memory Table
Update `memory-service.js` to use the existing `mwdr70ocb7iwnrg` table:
1. Add these columns to the existing table (via NocoDB UI):
- `pattern` (LongText)
- `severity` (SingleSelect: error/warning/auto-correct)
- `message` (LongText)
- `blocking` (Checkbox)
- `auto_detected` (Checkbox)
- `context` (LongText)
- `created_at` (DateTime)
2. Update the service to use these columns
## Next Steps
1. Choose one of the options above
2. Update `architecture/memory-service.js` with actual table IDs
3. Test connection: `node architecture/test-memory-connection.js`
## Current Fallback
Until NocoDB is connected, the system uses JSON files:
- `memory/corrections/_index.json` - Correction patterns
- `memory/items/*.json` - Preferences
- `memory/*.md` - Episodes
This works but lacks:
- Concurrent access
- Query capabilities
- Validation logging
- Statistics tracking