UNPKG

universal-ai-brain

Version:

🧠 UNIVERSAL AI BRAIN 3.3 - The world's most advanced cognitive architecture with 24 specialized systems, MongoDB 8.1 $rankFusion hybrid search, latest Voyage 3.5 embeddings, and framework-agnostic design. Works with Mastra, Vercel AI, LangChain, OpenAI A

270 lines (239 loc) • 10 kB
import { Agent } from '@mastra/core/agent'; import { openai } from '@ai-sdk/openai'; import { createTool } from '@mastra/core/tools'; import { z } from 'zod'; import { MongoClient } from 'mongodb'; import dotenv from 'dotenv'; dotenv.config(); const mongoClient = new MongoClient(process.env.MONGODB_URI!); // Tool for testing Working Memory with real data const testWorkingMemoryTool = createTool({ id: 'test-working-memory', description: 'Tests working memory system with real data - active information processing', inputSchema: z.object({ activeItems: z.array(z.string()).describe('Items currently being processed'), capacity: z.number().describe('Working memory capacity limit'), task: z.string().describe('Current task being performed') }), execute: async ({ context }) => { try { await mongoClient.connect(); const db = mongoClient.db(process.env.TEST_DATABASE_NAME); const collection = db.collection('test_working_memory'); const workingMemoryData = { activeItems: context.activeItems, capacity: context.capacity, task: context.task, timestamp: new Date(), testType: 'working_memory_validation', memoryLoad: context.activeItems.length / context.capacity, overloaded: context.activeItems.length > context.capacity }; const result = await collection.insertOne(workingMemoryData); // Immediately retrieve and analyze const retrieved = await collection.findOne({ _id: result.insertedId }); return { success: true, testId: result.insertedId.toString(), workingMemoryAnalysis: { currentLoad: retrieved.memoryLoad, isOverloaded: retrieved.overloaded, activeItemsCount: retrieved.activeItems.length, capacityUtilization: `${(retrieved.memoryLoad * 100).toFixed(1)}%` }, realDataStored: retrieved, cognitiveSystemStatus: 'WORKING_MEMORY_FUNCTIONAL' }; } catch (error) { return { success: false, error: error.message }; } } }); // Tool for testing Episodic Memory with real data const testEpisodicMemoryTool = createTool({ id: 'test-episodic-memory', description: 'Tests episodic memory system with real data - personal experiences and events', inputSchema: z.object({ event: z.string().describe('The event or experience to store'), context: z.string().describe('Context of the event'), emotions: z.array(z.string()).describe('Emotions associated with the event'), participants: z.array(z.string()).describe('People involved in the event') }), execute: async ({ context }) => { try { await mongoClient.connect(); const db = mongoClient.db(process.env.TEST_DATABASE_NAME); const collection = db.collection('test_episodic_memory'); const episodicData = { event: context.event, context: context.context, emotions: context.emotions, participants: context.participants, timestamp: new Date(), testType: 'episodic_memory_validation', memoryType: 'episodic', emotionalValence: context.emotions.includes('positive') ? 'positive' : context.emotions.includes('negative') ? 'negative' : 'neutral' }; const result = await collection.insertOne(episodicData); const retrieved = await collection.findOne({ _id: result.insertedId }); // Test memory retrieval by searching for similar events const similarEvents = await collection.find({ $or: [ { context: context.context }, { emotions: { $in: context.emotions } } ] }).limit(5).toArray(); return { success: true, testId: result.insertedId.toString(), episodicMemoryAnalysis: { eventStored: true, emotionalContext: retrieved.emotionalValence, participantCount: retrieved.participants.length, similarEventsFound: similarEvents.length }, realDataStored: retrieved, similarMemories: similarEvents, cognitiveSystemStatus: 'EPISODIC_MEMORY_FUNCTIONAL' }; } catch (error) { return { success: false, error: error.message }; } } }); // Tool for testing Semantic Memory with real data const testSemanticMemoryTool = createTool({ id: 'test-semantic-memory', description: 'Tests semantic memory system with real data - facts and knowledge', inputSchema: z.object({ fact: z.string().describe('The fact or knowledge to store'), category: z.string().describe('Category of the knowledge'), confidence: z.number().min(0).max(1).describe('Confidence level in the fact'), sources: z.array(z.string()).describe('Sources of the information') }), execute: async ({ context }) => { try { await mongoClient.connect(); const db = mongoClient.db(process.env.TEST_DATABASE_NAME); const collection = db.collection('test_semantic_memory'); const semanticData = { fact: context.fact, category: context.category, confidence: context.confidence, sources: context.sources, timestamp: new Date(), testType: 'semantic_memory_validation', memoryType: 'semantic', reliability: context.confidence > 0.8 ? 'high' : context.confidence > 0.5 ? 'medium' : 'low' }; const result = await collection.insertOne(semanticData); const retrieved = await collection.findOne({ _id: result.insertedId }); // Test knowledge retrieval by category const relatedFacts = await collection.find({ category: context.category }).limit(5).toArray(); return { success: true, testId: result.insertedId.toString(), semanticMemoryAnalysis: { factStored: true, knowledgeCategory: retrieved.category, confidenceLevel: retrieved.confidence, reliabilityRating: retrieved.reliability, relatedFactsCount: relatedFacts.length }, realDataStored: retrieved, relatedKnowledge: relatedFacts, cognitiveSystemStatus: 'SEMANTIC_MEMORY_FUNCTIONAL' }; } catch (error) { return { success: false, error: error.message }; } } }); // Tool for testing Memory Decay with real data const testMemoryDecayTool = createTool({ id: 'test-memory-decay', description: 'Tests memory decay system with real data - forgetting mechanisms', inputSchema: z.object({ memoryId: z.string().describe('ID of memory to test decay on'), timeElapsed: z.number().describe('Time elapsed since memory creation (hours)'), accessFrequency: z.number().describe('How often the memory has been accessed') }), execute: async ({ context }) => { try { await mongoClient.connect(); const db = mongoClient.db(process.env.TEST_DATABASE_NAME); const collection = db.collection('test_memory_decay'); // Calculate decay factor based on time and access frequency const decayFactor = Math.exp(-context.timeElapsed / 24) * (1 + context.accessFrequency * 0.1); const shouldDecay = decayFactor < 0.3; const decayData = { memoryId: context.memoryId, timeElapsed: context.timeElapsed, accessFrequency: context.accessFrequency, decayFactor: decayFactor, shouldDecay: shouldDecay, timestamp: new Date(), testType: 'memory_decay_validation', decayStatus: shouldDecay ? 'decayed' : 'retained' }; const result = await collection.insertOne(decayData); const retrieved = await collection.findOne({ _id: result.insertedId }); return { success: true, testId: result.insertedId.toString(), memoryDecayAnalysis: { decayFactor: retrieved.decayFactor, shouldDecay: retrieved.shouldDecay, decayStatus: retrieved.decayStatus, timeElapsed: retrieved.timeElapsed, accessFrequency: retrieved.accessFrequency }, realDataStored: retrieved, cognitiveSystemStatus: 'MEMORY_DECAY_FUNCTIONAL' }; } catch (error) { return { success: false, error: error.message }; } } }); export const memoryTestAgent = new Agent({ name: 'Memory Systems Test Agent', description: 'Specialized agent for testing memory-related cognitive systems with real MongoDB data', instructions: ` You are a specialized testing agent for Universal AI Brain 3.0's memory systems. Test these 4 memory-related cognitive systems with REAL DATA: 1. WORKING MEMORY - Test active information processing - Store current task items in MongoDB - Validate capacity limits and overload detection - Analyze memory load and utilization 2. EPISODIC MEMORY - Test personal experience storage - Store events with emotional context - Validate event retrieval and association - Test similarity matching for related experiences 3. SEMANTIC MEMORY - Test factual knowledge storage - Store facts with confidence levels - Validate knowledge categorization - Test fact retrieval by category 4. MEMORY DECAY - Test forgetting mechanisms - Calculate decay factors based on time and access - Validate memory retention vs decay decisions - Test decay algorithm with real parameters TESTING PROTOCOL: - Always write real test data to MongoDB first - Immediately retrieve and validate the data - Test the specific memory system functionality - Provide detailed analysis of system performance - Document all results with concrete evidence NO MOCK DATA - only real MongoDB operations! `, model: openai('gpt-4o'), tools: { testWorkingMemoryTool, testEpisodicMemoryTool, testSemanticMemoryTool, testMemoryDecayTool } });