Critical bug fixes and code quality improvements from brutal-honest-review. ## Critical Fixes (9/10 completed, 1 deferred) 1. Fixed Agent Pattern Isolation (CRITICAL) - Added SwarmMemoryManager.queryPatternsByAgent() - SQL filtering by agent_id in metadata - Each agent now isolated 2. Fixed Async Method Cascade - Changed getPatterns() to async - Fixed 10 callers across 6 files - Build passes 3. Fixed Misleading Logging - Added isRealAgentDB() detection - Honest mock vs real reporting 4. Consolidated Embedding Generation - Created EmbeddingGenerator utility - Removed 50+ duplicate lines 5. Added AgentDB Initialization Checks - Empty DB detection - HNSW index verification 6. Integration Test Suite - 26 new test cases - Error path coverage 7. Repository Cleanup - Removed 19 temp test files 8. New QE Skill: sherlock-review - Evidence-based investigative review - 38 QE skills total 9. Deferred: Wire Up Real Test Execution - Deferred to v1.9.0 (documented) ## Statistics - Fixes: 9/10 (90%, 1 deferred) - Files Modified: 16 - Files Created: 3 - Files Deleted: 19 - Integration Tests: 26 - Build: PASSING ## Breaking Changes - getPatterns() now async - add await 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
22 KiB
Memory.db Investigation Report
Investigation Date: 2025-11-16
Database Location: /workspaces/agentic-qe-cf/.agentic-qe/memory.db
File Size: 14MB
Last Modified: 2025-11-16 11:58
Updated: 2025-11-16 (Post Phase 1 Consolidation)
Executive Summary
STATUS: 🟢 ACTIVE AND CRITICAL - Database is actively used by SwarmMemoryManager
PURPOSE: ✅ SWARM COORDINATION ONLY - This database handles agent coordination, orchestration, and workflow state. It is NOT used for QE agent learning.
RECOMMENDATION: ✅ RETAIN - This database is the primary coordination storage for swarm operations. Migration or deprecation would cause system failure.
⚠️ IMPORTANT: Database Roles (v1.8.0+)
memory.db is for COORDINATION, NOT learning:
- ✅ Swarm orchestration state
- ✅ Workflow checkpoints and execution
- ✅ Event subscriptions and OODA cycles
- ✅ Blackboard pattern (hints)
- ❌ NOT for QE agent learning (use agentdb.db)
agentdb.db is for LEARNING:
- ✅ All QE agent episodes and patterns
- ✅ Vector embeddings and semantic search
- ✅ Reflexion-based learning experiences
- ✅ Performance tracking and metrics
Key Findings
- Purpose: SwarmMemoryManager's persistent storage for agent coordination, learning, and orchestration
- Usage: Actively written to by all QE agents and MCP server
- Contents: 7,901 memory entries + 1,960 hints + valuable Q-learning data
- Schema Status: ⚠️ OUTDATED - Missing
namespacecolumn causing claude-flow hooks to fail - Value: Contains irreplaceable agent learning data and coordination state
1. Database Structure
Tables Overview (28 tables total)
| Table | Records | Purpose | Status |
|---|---|---|---|
| memory_entries | 7,901 | Primary key-value storage | ✅ Active |
| hints | 1,960 | Blackboard pattern hints | ✅ Active |
| q_values | 2 | Q-learning values | ⚠️ Minimal data |
| learning_experiences | 2 | RL episode storage | ⚠️ Minimal data |
| patterns | 2 | Pattern recognition | ⚠️ Minimal data |
| learning_history | 0 | Historical snapshots | ❌ Empty |
| agents | 0 | Fleet agent registry | ❌ Empty |
| fleets | 0 | Fleet configurations | ❌ Empty |
| tasks | 0 | Task tracking | ❌ Empty |
| events | 0 | Event stream | ❌ Empty |
| workflow_state | 0 | Workflow checkpoints | ❌ Empty |
| consensus_state | 0 | Consensus proposals | ❌ Empty |
| performance_metrics | 0 | Performance data | ❌ Empty |
| artifacts | 0 | Code artifacts | ❌ Empty |
| sessions | 0 | Session resumability | ❌ Empty |
| agent_registry | 0 | Agent lifecycle | ❌ Empty |
| goap_goals | 0 | GOAP planning | ❌ Empty |
| goap_actions | 0 | GOAP actions | ❌ Empty |
| goap_plans | 0 | GOAP execution | ❌ Empty |
| ooda_cycles | 0 | OODA loop tracking | ❌ Empty |
| memory_acl | 0 | Access control | ❌ Empty |
| memory_store | 0 | Alternative storage | ❌ Empty |
| pattern_usage | 0 | Pattern analytics | ❌ Empty |
| learning_metrics | 0 | Learning analytics | ❌ Empty |
| metrics | 0 | General metrics | ❌ Empty |
Size Breakdown
Total: 14MB
├─ memory_entries: 11MB (86% of total)
│ ├─ Data: 11.9MB
│ └─ Indexes: 700KB
├─ hints: 389KB (3%)
└─ Other tables: ~500KB (indices and schema)
2. Data Analysis
Memory Entries Partition Distribution
| Partition | Entries | Purpose |
|---|---|---|
| orchestrations | 1,680 | Task orchestration state |
| workflow_executions | 1,123 | Workflow execution tracking |
| subscriptions | 1,120 | Event subscriptions |
| workflow_checkpoints | 1,120 | Workflow resume points |
| events | 840 | System events |
| ooda_cycles | 840 | OODA loop observations |
| default | 643 | General memory |
| learning | 531 | Agent learning data |
| agents | 4 | Agent coordination |
Q-Learning Data
Agents with Q-values:
qe-coverage-analyzer: 1 state-action pair (0.85 Q-value)qe-test-generator: 1 state-action pair (0.92 Q-value)
Learning Experiences:
qe-test-generator: Tasksimple-class-with-error-handling(reward: 0.92)qe-coverage-analyzer: Taskcoverage-analysis-state(reward: 0.85)
Learning Configuration:
{
"enabled": true,
"learningRate": 0.1,
"discountFactor": 0.95,
"explorationRate": 0.3,
"explorationDecay": 0.995,
"minExplorationRate": 0.01,
"maxMemorySize": 104857600,
"batchSize": 32,
"updateFrequency": 10
}
Recent Activity Sample
Last 5 memory operations (most recent first):
1. orchestration:orchestration-1763294328678-391c4deb741a (1817 bytes)
2. orchestration:orchestration-1763294328657-5ba71c828923 (2312 bytes)
3. workflow:checkpoint:cp-1763294328647-ca03d3 (420 bytes)
4. workflow:execution:exec-1763294328325-caabc6 (1627 bytes)
5. ooda:cycle:ooda-cycle-1-1763294328327 (1102 bytes)
3. Code References
Files Using memory.db
| File | Line | Usage Pattern |
|---|---|---|
src/cli/commands/init.ts |
1980 | Initialize memory database during aqe init |
src/cli/commands/agentdb/learn.ts |
112 | Learning integration |
src/mcp/server.ts |
156 | MCP server coordination memory |
src/mcp/services/AgentRegistry.ts |
81 | Agent registration and learning |
src/cli/commands/routing/index.ts |
224, 299, 365 | DEPRECATED PATH .agentic-qe/data/swarm-memory.db ⚠️ |
src/cli/commands/improve/index.ts |
32 | DEPRECATED PATH .agentic-qe/data/swarm-memory.db ⚠️ |
src/cli/commands/patterns/index.ts |
32 | DEPRECATED PATH .agentic-qe/data/swarm-memory.db ⚠️ |
src/cli/commands/learn/index.ts |
30 | DEPRECATED PATH .agentic-qe/data/swarm-memory.db ⚠️ |
src/cli/commands/debug/health-check.ts |
347 | DEPRECATED PATH .swarm/memory.db ⚠️ |
src/cli/commands/debug/agent.ts |
166 | DEPRECATED PATH .swarm/memory.db ⚠️ |
Path Inconsistencies Found
Current Standard: .agentic-qe/memory.db
Deprecated Paths Still Referenced:
.agentic-qe/data/swarm-memory.db(4 files).swarm/memory.db(2 files)
4. Schema Issue Analysis
Critical Bug: Missing namespace Column
Error Message:
SqliteError: no such column: namespace
at SqliteMemoryStore._createTables
Root Cause: Claude-flow's SqliteMemoryStore expects a namespace column that doesn't exist in the current schema.
Impact:
- ❌ Claude-flow hooks fail to initialize
- ❌ Cannot use
npx claude-flow hooks pre-task - ⚠️ Coordination with external claude-flow features broken
Schema Comparison:
| Feature | SwarmMemoryManager | Claude-flow SqliteMemoryStore |
|---|---|---|
| Partitions | ✅ partition column |
✅ namespace column |
| TTL Support | ✅ expires_at |
✅ expires_at |
| Access Control | ✅ 5-level ACL | ❌ No ACL |
| Learning Tables | ✅ Q-values, experiences | ❌ No learning |
| Workflow Tables | ✅ GOAP, OODA, workflows | ❌ Basic only |
Recommendation: SwarmMemoryManager schema is significantly more advanced than claude-flow's. Should NOT downgrade to claude-flow schema.
5. Migration Recommendation
🟢 DECISION: RETAIN AND ENHANCE
Rationale:
- ✅ Active Usage: Database is written to every few seconds during agent operations
- ✅ Critical Data: Contains irreplaceable Q-learning values and orchestration state
- ✅ Superior Schema: 28-table schema far exceeds alternatives
- ✅ No Duplication: Data is unique, not redundant with AgentDB or patterns.db
- ⚠️ Schema Evolution: Needs namespace column for claude-flow compatibility
Action Plan
Option A: Add Namespace Support (RECOMMENDED)
-- Add namespace column to memory_entries for claude-flow compatibility
ALTER TABLE memory_entries ADD COLUMN namespace TEXT DEFAULT 'default';
-- Create index for performance
CREATE INDEX idx_memory_namespace ON memory_entries(namespace);
-- Migrate existing partition data to namespace
UPDATE memory_entries SET namespace = partition;
Benefits:
- ✅ Maintains all existing data
- ✅ Backward compatible with partition-based code
- ✅ Forward compatible with claude-flow hooks
- ✅ Zero data loss
- ✅ Minimal code changes required
Option B: Dual-Column Support (ALTERNATIVE)
Keep both partition and namespace columns, treating them as aliases. This allows gradual migration.
6. Risk Assessment
What Happens If We Remove memory.db?
CRITICAL FAILURES:
- ❌ All QE agent learning data LOST (Q-values, experiences, patterns)
- ❌ SwarmMemoryManager initialization fails
- ❌ MCP server coordination breaks
- ❌ Agent orchestration state lost
- ❌ Workflow checkpoints unrecoverable
- ❌
aqe initcommand fails
Data Loss:
- 7,901 coordination memory entries
- 1,960 blackboard hints
- Q-learning progress for 2 agents
- All learning configurations
- Orchestration and workflow state
Rollback Considerations
Pre-Migration Backup:
# Create timestamped backup
cp .agentic-qe/memory.db .agentic-qe/memory.db.backup-$(date +%Y%m%d-%H%M%S)
# Verify backup integrity
sqlite3 .agentic-qe/memory.db.backup-* "PRAGMA integrity_check"
Restore Process:
# Stop all agents
killall node
# Restore from backup
cp .agentic-qe/memory.db.backup-TIMESTAMP .agentic-qe/memory.db
# Restart system
aqe init
7. Comparison with Other Databases
memory.db vs agentdb.sqlite
Note: agentdb.sqlite does NOT exist in the current system.
Differences:
| Feature | memory.db (SwarmMemoryManager) | agentdb.sqlite (AgentDB) |
|---|---|---|
| Location | .agentic-qe/memory.db |
.agentic-qe/agentdb.sqlite (missing) |
| Size | 14MB | N/A |
| Purpose | Coordination + Learning | Distributed vector DB |
| Q-Learning | ✅ Full Q-learning tables | ❌ No Q-learning |
| Workflow State | ✅ GOAP, OODA, workflows | ❌ Basic coordination |
| Vector Search | ❌ No vectors | ✅ 150x faster HNSW |
| QUIC Sync | ⚠️ Integration planned | ✅ Built-in |
| Quantization | ❌ No | ✅ 4-32x compression |
Recommendation: memory.db and AgentDB serve different purposes and should coexist:
- memory.db: Agent coordination and reinforcement learning
- AgentDB: Vector similarity search and distributed sync
memory.db vs patterns.db
| Feature | memory.db | patterns.db |
|---|---|---|
| Location | .agentic-qe/memory.db |
.agentic-qe/patterns.db |
| Size | 14MB | 152KB |
| Purpose | Live coordination | Pattern storage |
| Records | 7,901+ entries | Unknown (need investigation) |
| Last Modified | 2025-11-16 11:58 | 2024-10-24 13:08 |
| Status | ✅ Active | ⚠️ Potentially stale |
Note: patterns.db is 6 weeks old and significantly smaller. Likely replaced by memory.db's patterns table.
8. Implementation Plan
Phase 1: Schema Enhancement (IMMEDIATE)
Goal: Add namespace support for claude-flow compatibility
Steps:
- ✅ Create backup:
memory.db.backup-20251116 - ✅ Add namespace column with migration script
- ✅ Update SwarmMemoryManager to support both partition and namespace
- ✅ Test claude-flow hooks integration
- ✅ Verify all existing code still works
Timeline: 1-2 hours
Phase 2: Code Cleanup (NEXT)
Goal: Standardize path references
Changes:
- Update 6 files still referencing deprecated paths
- Consolidate on
.agentic-qe/memory.db - Remove references to
.swarm/memory.dband.agentic-qe/data/swarm-memory.db
Files to Update:
src/cli/commands/routing/index.ts(3 occurrences)src/cli/commands/improve/index.ts(1 occurrence)src/cli/commands/patterns/index.ts(1 occurrence)src/cli/commands/learn/index.ts(1 occurrence)src/cli/commands/debug/health-check.ts(1 occurrence)src/cli/commands/debug/agent.ts(1 occurrence)
Timeline: 2-3 hours
Phase 3: Documentation (ONGOING)
Deliverables:
- SwarmMemoryManager architecture guide
- Learning data structure documentation
- Coordination patterns guide
- Migration guide from old paths
Timeline: 1 day
Phase 4: Monitoring (CONTINUOUS)
Metrics to Track:
- Database growth rate (currently 14MB)
- Q-learning progress (currently 2 agents)
- Memory entry distribution by partition
- TTL expiration effectiveness
- Access control usage patterns
Tools:
# Database size monitoring
watch -n 60 'ls -lh .agentic-qe/memory.db'
# Record count tracking
watch -n 300 'sqlite3 .agentic-qe/memory.db "SELECT partition, COUNT(*) FROM memory_entries GROUP BY partition"'
9. Conclusions
Key Findings
- Active and Critical: memory.db is the backbone of agent coordination
- Superior Architecture: 28-table schema exceeds alternatives
- Valuable Data: Contains irreplaceable Q-learning and orchestration state
- Schema Evolution Needed: Add namespace column for claude-flow compatibility
- Path Consolidation Required: 6 files use deprecated paths
Recommended Actions
DO:
- ✅ Retain memory.db as primary coordination storage
- ✅ Add namespace column for compatibility
- ✅ Consolidate path references to
.agentic-qe/memory.db - ✅ Document SwarmMemoryManager architecture
- ✅ Monitor database growth and optimize as needed
DON'T:
- ❌ Delete or archive memory.db
- ❌ Migrate to simpler schema (would lose critical features)
- ❌ Replace with AgentDB (different purpose, should coexist)
- ❌ Ignore schema compatibility issues
Success Criteria
- ✅ Claude-flow hooks work without errors
- ✅ All Q-learning data preserved
- ✅ Orchestration state maintained
- ✅ No duplicate path references
- ✅ Database growth remains sustainable (<50MB for normal operations)
10. Next Steps
- Immediate: Create backup before any schema changes
- Immediate: Add namespace column migration script
- Short-term: Update 6 files with deprecated paths
- Short-term: Test claude-flow hooks integration
- Medium-term: Investigate patterns.db overlap and consolidation
- Long-term: Implement AgentDB for vector search capabilities
Appendix A: Full Schema
Complete SQL Schema (Click to Expand)
-- Table 1: Memory Entries (Primary Storage)
CREATE TABLE memory_entries (
key TEXT NOT NULL,
partition TEXT NOT NULL DEFAULT 'default',
value TEXT NOT NULL,
metadata TEXT,
created_at INTEGER NOT NULL,
expires_at INTEGER,
owner TEXT,
access_level TEXT DEFAULT 'private',
team_id TEXT,
swarm_id TEXT,
PRIMARY KEY (key, partition)
);
-- Table 2: Memory ACL
CREATE TABLE memory_acl (
resource_id TEXT PRIMARY KEY,
owner TEXT NOT NULL,
access_level TEXT NOT NULL,
team_id TEXT,
swarm_id TEXT,
granted_permissions TEXT,
blocked_agents TEXT,
created_at INTEGER NOT NULL,
updated_at INTEGER NOT NULL
);
-- Table 3: Hints (Blackboard Pattern)
CREATE TABLE hints (
id INTEGER PRIMARY KEY AUTOINCREMENT,
key TEXT NOT NULL,
value TEXT NOT NULL,
created_at INTEGER NOT NULL,
expires_at INTEGER
);
-- Table 4: Events
CREATE TABLE events (
id TEXT PRIMARY KEY,
type TEXT NOT NULL,
payload TEXT NOT NULL,
timestamp INTEGER NOT NULL,
source TEXT NOT NULL,
ttl INTEGER NOT NULL DEFAULT 2592000,
expires_at INTEGER
);
-- Table 5: Workflow State
CREATE TABLE workflow_state (
id TEXT PRIMARY KEY,
step TEXT NOT NULL,
status TEXT NOT NULL,
checkpoint TEXT NOT NULL,
sha TEXT NOT NULL,
ttl INTEGER NOT NULL DEFAULT 0,
created_at INTEGER NOT NULL,
updated_at INTEGER NOT NULL
);
-- Table 6: Patterns
CREATE TABLE patterns (
id TEXT PRIMARY KEY,
pattern TEXT NOT NULL UNIQUE,
confidence REAL NOT NULL,
usage_count INTEGER NOT NULL DEFAULT 0,
metadata TEXT,
ttl INTEGER NOT NULL DEFAULT 604800,
expires_at INTEGER,
created_at INTEGER NOT NULL,
agent_id TEXT,
domain TEXT DEFAULT 'general',
success_rate REAL DEFAULT 1.0
);
-- Table 7: Consensus State
CREATE TABLE consensus_state (
id TEXT PRIMARY KEY,
decision TEXT NOT NULL,
proposer TEXT NOT NULL,
votes TEXT NOT NULL,
quorum INTEGER NOT NULL,
status TEXT NOT NULL,
version INTEGER NOT NULL DEFAULT 1,
ttl INTEGER NOT NULL DEFAULT 604800,
expires_at INTEGER,
created_at INTEGER NOT NULL
);
-- Table 8: Performance Metrics
CREATE TABLE performance_metrics (
id TEXT PRIMARY KEY,
metric TEXT NOT NULL,
value REAL NOT NULL,
unit TEXT NOT NULL,
timestamp INTEGER NOT NULL,
agent_id TEXT
);
-- Table 9: Artifacts
CREATE TABLE artifacts (
id TEXT PRIMARY KEY,
kind TEXT NOT NULL,
path TEXT NOT NULL,
sha256 TEXT NOT NULL,
tags TEXT NOT NULL,
metadata TEXT,
ttl INTEGER NOT NULL DEFAULT 0,
created_at INTEGER NOT NULL
);
-- Table 10: Sessions
CREATE TABLE sessions (
id TEXT PRIMARY KEY,
mode TEXT NOT NULL,
state TEXT NOT NULL,
checkpoints TEXT NOT NULL,
created_at INTEGER NOT NULL,
last_resumed INTEGER
);
-- Table 11: Agent Registry
CREATE TABLE agent_registry (
id TEXT PRIMARY KEY,
type TEXT NOT NULL,
capabilities TEXT NOT NULL,
status TEXT NOT NULL,
performance TEXT NOT NULL,
created_at INTEGER NOT NULL,
updated_at INTEGER NOT NULL
);
-- Table 12: GOAP Goals
CREATE TABLE goap_goals (
id TEXT PRIMARY KEY,
conditions TEXT NOT NULL,
cost INTEGER NOT NULL,
priority TEXT,
created_at INTEGER NOT NULL
);
-- Table 13: GOAP Actions
CREATE TABLE goap_actions (
id TEXT PRIMARY KEY,
preconditions TEXT NOT NULL,
effects TEXT NOT NULL,
cost INTEGER NOT NULL,
agent_type TEXT,
created_at INTEGER NOT NULL
);
-- Table 14: GOAP Plans
CREATE TABLE goap_plans (
id TEXT PRIMARY KEY,
goal_id TEXT NOT NULL,
sequence TEXT NOT NULL,
total_cost INTEGER NOT NULL,
created_at INTEGER NOT NULL
);
-- Table 15: OODA Cycles
CREATE TABLE ooda_cycles (
id TEXT PRIMARY KEY,
phase TEXT NOT NULL,
observations TEXT,
orientation TEXT,
decision TEXT,
action TEXT,
timestamp INTEGER NOT NULL,
completed INTEGER DEFAULT 0,
result TEXT
);
-- Table 16: Fleets
CREATE TABLE fleets (
id TEXT PRIMARY KEY,
name TEXT NOT NULL,
config TEXT NOT NULL,
status TEXT NOT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- Table 17: Agents
CREATE TABLE agents (
id TEXT PRIMARY KEY,
fleet_id TEXT NOT NULL,
type TEXT NOT NULL,
status TEXT NOT NULL,
config TEXT,
metrics TEXT,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (fleet_id) REFERENCES fleets (id)
);
-- Table 18: Tasks
CREATE TABLE tasks (
id TEXT PRIMARY KEY,
fleet_id TEXT NOT NULL,
agent_id TEXT,
type TEXT NOT NULL,
name TEXT NOT NULL,
data TEXT,
requirements TEXT,
status TEXT NOT NULL,
priority INTEGER DEFAULT 1,
result TEXT,
error TEXT,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
started_at DATETIME,
completed_at DATETIME,
FOREIGN KEY (fleet_id) REFERENCES fleets (id),
FOREIGN KEY (agent_id) REFERENCES agents (id)
);
-- Table 19: Metrics
CREATE TABLE metrics (
id INTEGER PRIMARY KEY AUTOINCREMENT,
fleet_id TEXT,
agent_id TEXT,
task_id TEXT,
metric_type TEXT NOT NULL,
metric_name TEXT NOT NULL,
metric_value REAL NOT NULL,
unit TEXT,
tags TEXT,
timestamp DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (fleet_id) REFERENCES fleets (id),
FOREIGN KEY (agent_id) REFERENCES agents (id),
FOREIGN KEY (task_id) REFERENCES tasks (id)
);
-- Table 20: Memory Store
CREATE TABLE memory_store (
id INTEGER PRIMARY KEY AUTOINCREMENT,
key TEXT NOT NULL,
value TEXT NOT NULL,
namespace TEXT NOT NULL DEFAULT 'default',
ttl INTEGER DEFAULT 0,
metadata TEXT,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
expires_at DATETIME,
UNIQUE(key, namespace)
);
-- Table 21: Pattern Usage
CREATE TABLE pattern_usage (
id INTEGER PRIMARY KEY AUTOINCREMENT,
pattern_id TEXT NOT NULL,
project_id TEXT,
agent_id TEXT,
context TEXT,
success BOOLEAN DEFAULT TRUE,
execution_time_ms INTEGER,
error_message TEXT,
used_at DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (pattern_id) REFERENCES patterns (id) ON DELETE CASCADE
);
-- Table 22: Q-Values
CREATE TABLE q_values (
id INTEGER PRIMARY KEY AUTOINCREMENT,
agent_id TEXT NOT NULL,
state_key TEXT NOT NULL,
action_key TEXT NOT NULL,
q_value REAL NOT NULL DEFAULT 0,
update_count INTEGER DEFAULT 1,
last_updated DATETIME DEFAULT CURRENT_TIMESTAMP,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
metadata TEXT,
UNIQUE(agent_id, state_key, action_key)
);
-- Table 23: Learning Experiences
CREATE TABLE learning_experiences (
id INTEGER PRIMARY KEY AUTOINCREMENT,
agent_id TEXT NOT NULL,
task_id TEXT,
task_type TEXT NOT NULL,
state TEXT NOT NULL,
action TEXT NOT NULL,
reward REAL NOT NULL,
next_state TEXT NOT NULL,
episode_id TEXT,
timestamp DATETIME DEFAULT CURRENT_TIMESTAMP,
metadata TEXT,
created_at INTEGER
);
-- Table 24: Learning History
CREATE TABLE learning_history (
id INTEGER PRIMARY KEY AUTOINCREMENT,
agent_id TEXT NOT NULL,
pattern_id TEXT,
state_representation TEXT NOT NULL,
action TEXT NOT NULL,
reward REAL NOT NULL,
next_state_representation TEXT,
q_value REAL,
episode INTEGER,
timestamp DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (pattern_id) REFERENCES patterns (id) ON DELETE SET NULL
);
-- Table 25: Learning Metrics
CREATE TABLE learning_metrics (
id INTEGER PRIMARY KEY AUTOINCREMENT,
agent_id TEXT NOT NULL,
metric_type TEXT NOT NULL CHECK(metric_type IN ('accuracy', 'latency', 'quality', 'success_rate', 'improvement')),
metric_value REAL NOT NULL,
baseline_value REAL,
improvement_percentage REAL,
pattern_count INTEGER,
context TEXT,
timestamp DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- 85+ Indexes for performance optimization
-- (See full schema in SwarmMemoryManager.ts for complete index definitions)
Report Generated: 2025-11-16 Investigator: Research Agent Status: Complete Confidence: High (based on direct database analysis and code examination)