# aigpt AI memory system with psychological analysis for Claude via MCP. **Current: Layers 1-4 Complete** - Memory storage, AI interpretation, personality analysis, integrated profile, and relationship inference. **Planned: Layer 5** - Knowledge sharing platform combining useful insights with author personality. ## Features ### Layer 1: Pure Memory Storage - ๐Ÿ—„๏ธ **SQLite Storage**: Reliable database with ACID guarantees - ๐Ÿ”– **ULID IDs**: Time-sortable, 26-character unique identifiers - ๐Ÿ” **Search**: Fast content-based search - ๐Ÿ“ **CRUD Operations**: Complete memory management ### Layer 2: AI Memory - ๐Ÿง  **AI Interpretation**: Claude interprets and evaluates memories - ๐Ÿ“Š **Priority Scoring**: Importance ratings (0.0-1.0) - ๐ŸŽฏ **Smart Storage**: Memory + evaluation in one step ### Layer 3: Personality Analysis - ๐Ÿ”ฌ **Big Five Model**: Scientifically validated personality assessment - ๐Ÿ“ˆ **Pattern Recognition**: Analyzes memory patterns to build user profile - ๐Ÿ’พ **Historical Tracking**: Save and compare analyses over time ### Layer 3.5: Integrated Profile - ๐ŸŽฏ **Essential Summary**: Unified view of personality, interests, and values - ๐Ÿค– **AI-Optimized**: Primary tool for AI to understand the user - โšก **Smart Caching**: Auto-updates only when necessary - ๐Ÿ” **Flexible Access**: Detailed data still accessible when needed ### Layer 4: Relationship Inference (Optional) - ๐Ÿค **Relationship Tracking**: Track interactions with entities (people, characters, etc.) - ๐Ÿ“Š **Bond Strength**: Infer relationship strength from memory patterns - ๐ŸŽฎ **Game Ready**: Foundation for companion apps, games, VTubers - ๐Ÿ”’ **Opt-in**: Enable only when needed with `--enable-layer4` flag ### Layer 5: Knowledge Sharing (Planned) - ๐Ÿ’ก **Information + Personality**: Share AI interactions with context - ๐ŸŒ **SNS for AI Era**: Useful insights combined with author's unique perspective - ๐Ÿ”’ **Privacy-First**: Share essence, not raw data - ๐Ÿ“Š **Showcase**: Display how AI understands you ### General - ๐Ÿ› ๏ธ **MCP Integration**: Works seamlessly with Claude Code - ๐Ÿงช **Well-tested**: Comprehensive test coverage - ๐Ÿš€ **Simple & Fast**: Minimal dependencies, pure Rust ## Quick Start ### Installation ```bash # Build cargo build --release # Install (optional) cp target/release/aigpt ~/.cargo/bin/ ``` ### CLI Usage ```bash # Create a memory aigpt create "Remember this information" # List all memories aigpt list # Search memories aigpt search "keyword" # Show statistics aigpt stats ``` ### MCP Integration with Claude Code ```bash # Add to Claude Code claude mcp add aigpt /path/to/aigpt/target/release/aigpt server ``` ## MCP Tools ### Layer 1: Basic Memory (6 tools) - `create_memory` - Simple memory creation - `get_memory` - Retrieve by ID - `list_memories` - List all memories - `search_memories` - Content-based search - `update_memory` - Update existing memory - `delete_memory` - Remove memory ### Layer 2: AI Memory (1 tool) - `create_ai_memory` - Create with AI interpretation and priority score ### Layer 3: Personality Analysis (2 tools) - `save_user_analysis` - Save Big Five personality analysis - `get_user_analysis` - Retrieve latest personality profile ### Layer 3.5: Integrated Profile (1 tool) - `get_profile` - **Primary tool**: Get integrated user profile with essential summary ### Layer 4: Relationship Inference (2 tools, requires `--enable-layer4`) - `get_relationship` - Get inferred relationship with specific entity - `list_relationships` - List all relationships sorted by bond strength ## Usage Examples in Claude Code ### Layer 1: Simple Memory ``` Remember that the project deadline is next Friday. ``` Claude will use `create_memory` automatically. ### Layer 2: AI Memory with Evaluation ``` create_ai_memory({ content: "Designed a new microservices architecture", ai_interpretation: "Shows technical creativity and strategic thinking", priority_score: 0.85 }) ``` ### Layer 3: Personality Analysis ``` # After accumulating memories, analyze personality save_user_analysis({ openness: 0.8, conscientiousness: 0.7, extraversion: 0.4, agreeableness: 0.65, neuroticism: 0.3, summary: "High creativity and planning ability, introverted personality" }) # Retrieve analysis get_user_analysis() ``` ### Layer 3.5: Integrated Profile (Recommended) ``` # Get essential user profile - AI's primary tool get_profile() # Returns: { "dominant_traits": [ {"name": "openness", "score": 0.8}, {"name": "conscientiousness", "score": 0.7}, {"name": "extraversion", "score": 0.4} ], "core_interests": ["Rust", "architecture", "design", "system", "memory"], "core_values": ["simplicity", "efficiency", "maintainability"], "key_memory_ids": ["01H...", "01H...", ...], "data_quality": 0.85 } ``` **Usage Pattern:** - AI normally uses `get_profile()` to understand the user - For specific details, AI can call `get_memory(id)`, `list_memories()`, etc. - Profile auto-updates when needed (10+ memories, new analysis, or 7+ days) ### Layer 4: Relationship Inference (Optional, requires `--enable-layer4`) ``` # Create memories with entity tracking Memory::new_with_entities({ content: "Had lunch with Alice", ai_interpretation: "Pleasant social interaction", priority_score: 0.7, related_entities: ["alice"] }) # Get relationship inference get_relationship({ entity_id: "alice" }) # Returns: { "entity_id": "alice", "interaction_count": 15, "avg_priority": 0.75, "days_since_last": 2, "bond_strength": 0.82, "relationship_type": "close_friend", "confidence": 0.80 } # List all relationships list_relationships({ limit: 5 }) ``` **Relationship Types:** - `close_friend` (0.8+): Very strong bond - `friend` (0.6-0.8): Strong connection - `valued_acquaintance` (0.4-0.6, high priority): Important but not close - `acquaintance` (0.4-0.6): Regular contact - `regular_contact` (0.2-0.4): Occasional interaction - `distant` (<0.2): Minimal connection **Starting the Server:** ```bash # Normal mode (Layer 1-3.5 only) aigpt server # With relationship features (Layer 1-4) aigpt server --enable-layer4 ``` ## Big Five Personality Traits - **Openness**: Creativity, curiosity, openness to new experiences - **Conscientiousness**: Organization, planning, reliability - **Extraversion**: Social energy, assertiveness, outgoingness - **Agreeableness**: Cooperation, empathy, kindness - **Neuroticism**: Emotional stability (low = stable, high = sensitive) Scores range from 0.0 to 1.0, where higher scores indicate stronger trait expression. ## Storage Location All data stored in: `~/.config/syui/ai/gpt/memory.db` ## Architecture Multi-layer system design: - **Layer 1** โœ… Complete: Pure memory storage (with entity tracking) - **Layer 2** โœ… Complete: AI interpretation with priority scoring - **Layer 3** โœ… Complete: Big Five personality analysis - **Layer 3.5** โœ… Complete: Integrated profile (unified summary) - **Layer 4** โœ… Complete: Relationship inference (optional, `--enable-layer4`) - **Layer 4+** ๐Ÿ”ต Planned: Extended game/companion features - **Layer 5** ๐Ÿ”ต Planned: Knowledge sharing (information + personality) **Design Philosophy**: - **"Internal complexity, external simplicity"**: Simple API, complex internals - **"AI judges, tool records"**: AI makes decisions, tool stores data - **Layered architecture**: Each layer independent but interconnected - **Optional features**: Core layers always active, advanced layers opt-in See [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) for details. ## Documentation - [Architecture](docs/ARCHITECTURE.md) - Multi-layer system design - [Layer 1 Details](docs/LAYER1.md) - Technical details of memory storage - [Old Versions](docs/archive/old-versions/) - Previous documentation ## Development ```bash # Run tests cargo test # Build for release cargo build --release # Run with verbose logging RUST_LOG=debug aigpt server ``` ## Design Philosophy **"AI evolves, tools don't"** - This tool provides simple, reliable storage while AI (Claude) handles interpretation, evaluation, and analysis. The tool focuses on being maintainable and stable. ## License MIT ## Author syui