From 6906012c26044648a8cead812b3b009390df260b Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 6 Nov 2025 08:00:38 +0000 Subject: [PATCH] Update documentation: reflect Layer 4 completion - Update README.md with Layer 4 relationship inference features - Add comprehensive Layer 4 section to ARCHITECTURE.md - Update implementation strategy to show Phase 4 complete - Add CLI control flag documentation (--enable-layer4) - Update version to 0.3.0 - Document personality-aware bond strength calculation - Add relationship type classification details --- README.md | 71 +++++++++++++++++-- docs/ARCHITECTURE.md | 162 ++++++++++++++++++++++++++++++++++++++----- 2 files changed, 207 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index b173a88..4c201b2 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ AI memory system with psychological analysis for Claude via MCP. -**Current: Layers 1-3.5 Complete** - Memory storage, AI interpretation, personality analysis, and integrated profile. +**Current: Layers 1-4 Complete** - Memory storage, AI interpretation, personality analysis, integrated profile, and relationship inference. ## Features @@ -28,6 +28,12 @@ AI memory system with psychological analysis for Claude via MCP. - โšก **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 + ### General - ๐Ÿ› ๏ธ **MCP Integration**: Works seamlessly with Claude Code - ๐Ÿงช **Well-tested**: Comprehensive test coverage @@ -88,6 +94,10 @@ claude mcp add aigpt /path/to/aigpt/target/release/aigpt server ### 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 @@ -145,6 +155,51 @@ get_profile() - 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 @@ -163,17 +218,19 @@ All data stored in: `~/.config/syui/ai/gpt/memory.db` Multi-layer system design: -- **Layer 1** โœ… Complete: Pure memory storage +- **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** ๐Ÿ”ต Planned: Game systems and companion features +- **Layer 4** โœ… Complete: Relationship inference (optional, `--enable-layer4`) +- **Layer 4+** ๐Ÿ”ต Future: Extended game/companion features - **Layer 5** ๐Ÿ”ต Future: Distribution and sharing -**Design Philosophy**: "Internal complexity, external simplicity" -- Layers 1-3 handle detailed data collection and analysis -- Layer 3.5 provides a simple, unified view for AI consumption -- Detailed data remains accessible when needed +**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. diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index b4b2ba9..4dd18c2 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -15,11 +15,11 @@ aigptใฏใ€็‹ฌ็ซ‹ใ—ใŸใƒฌใ‚คใƒคใƒผใ‚’็ฉใฟ้‡ใญใ‚‹่จญ่จˆใงใ™ใ€‚ๅ„ใƒฌใ‚คใƒค โ”‚ Layer 5: Distribution & Sharing โ”‚ ๐Ÿ”ต Future โ”‚ (Game streaming, public/private) โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค -โ”‚ Layer 4b: AI Companion โ”‚ ๐Ÿ”ต Planned -โ”‚ (Romance system, personality growth) โ”‚ +โ”‚ Layer 4+: Extended Features โ”‚ ๐Ÿ”ต Planned +โ”‚ (Advanced game/companion systems) โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค -โ”‚ Layer 4a: Game Systems โ”‚ ๐Ÿ”ต Planned -โ”‚ (Ranking, rarity, XP, visualization) โ”‚ +โ”‚ Layer 4: Relationship Inference โ”‚ โœ… Complete +โ”‚ (Bond strength, relationship types) โ”‚ (Optional) โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ Layer 3.5: Integrated Profile โ”‚ โœ… Complete โ”‚ (Unified summary for AI consumption) โ”‚ @@ -31,7 +31,7 @@ aigptใฏใ€็‹ฌ็ซ‹ใ—ใŸใƒฌใ‚คใƒคใƒผใ‚’็ฉใฟ้‡ใญใ‚‹่จญ่จˆใงใ™ใ€‚ๅ„ใƒฌใ‚คใƒค โ”‚ (Claude interpretation, priority_score)โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ Layer 1: Pure Memory Storage โ”‚ โœ… Complete -โ”‚ (SQLite, ULID, CRUD operations) โ”‚ +โ”‚ (SQLite, ULID, entity tracking) โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` @@ -51,13 +51,16 @@ aigptใฏใ€็‹ฌ็ซ‹ใ—ใŸใƒฌใ‚คใƒคใƒผใ‚’็ฉใฟ้‡ใญใ‚‹่จญ่จˆใงใ™ใ€‚ๅ„ใƒฌใ‚คใƒค ### Data Model ```rust pub struct Memory { - pub id: String, // ULID - pub content: String, // User content + pub id: String, // ULID + pub content: String, // User content + pub related_entities: Option>, // Who/what this memory involves (Layer 4) pub created_at: DateTime, pub updated_at: DateTime, } ``` +**Note**: `related_entities` added for Layer 4 support. Optional and backward compatible. + ### Operations - `create()` - Insert new memory - `get(id)` - Retrieve by ID @@ -295,10 +298,120 @@ AI: get_profile()ใงๆฆ‚่ฆใ‚’ๆŠŠๆก --- -## Layer 4a: Game Systems +## Layer 4: Relationship Inference + +**Status**: โœ… **Complete** (Optional feature) + +### Purpose +Layer 1-3.5ใฎใƒ‡ใƒผใ‚ฟใ‹ใ‚‰้–ขไฟ‚ๆ€งใ‚’ๆŽจๆธฌใ€‚ใ‚ฒใƒผใƒ ใ€ใ‚ณใƒณใƒ‘ใƒ‹ใ‚ชใƒณใ€VTuberใชใฉใฎๅค–้ƒจใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณๅ‘ใ‘ใ€‚ + +### Activation +CLIๅผ•ๆ•ฐใงๆ˜Ž็คบ็š„ใซๆœ‰ๅŠนๅŒ–: +```bash +aigpt server --enable-layer4 +``` + +ใƒ‡ใƒ•ใ‚ฉใƒซใƒˆใงใฏ็„กๅŠน๏ผˆLayer 1-3.5ใฎใฟ๏ผ‰ใ€‚ + +### Data Model +```rust +pub struct RelationshipInference { + pub entity_id: String, + pub interaction_count: u32, // ใ“ใฎ entity ใจใฎใƒกใƒขใƒชๆ•ฐ + pub avg_priority: f32, // ๅนณๅ‡้‡่ฆๅบฆ + pub days_since_last: i64, // ๆœ€็ต‚ๆŽฅ่งฆใ‹ใ‚‰ใฎๆ—ฅๆ•ฐ + pub bond_strength: f32, // ้–ขไฟ‚ใฎๅผทใ• (0.0-1.0) + pub relationship_type: String, // close_friend, friend, etc. + pub confidence: f32, // ๆŽจๆธฌใฎไฟก้ ผๅบฆ (0.0-1.0) + pub inferred_at: DateTime, +} +``` + +### Inference Logic + +**1. ใƒ‡ใƒผใ‚ฟๅŽ้›†**: +- Layer 1ใ‹ใ‚‰ entity ใซ้–ข้€ฃใ™ใ‚‹ใƒกใƒขใƒชใ‚’ๆŠฝๅ‡บ +- Layer 3.5ใ‹ใ‚‰ใƒฆใƒผใ‚ถใƒผๆ€งๆ ผใƒ—ใƒญใƒ•ใ‚กใ‚คใƒซใ‚’ๅ–ๅพ— + +**2. Bond Strength ่จˆ็ฎ—**: +```rust +if user.extraversion < 0.5 { + // ๅ†…ๅ‘็š„: ๅฐ‘ๆ•ฐใฎๆทฑใ„้–ขไฟ‚ใ‚’ๅฅฝใ‚€ + // ๅ›žๆ•ฐใŒ้‡่ฆ + bond = interaction_count * 0.6 + avg_priority * 0.4 +} else { + // ๅค–ๅ‘็š„: ๅคšๆ•ฐใฎๆต…ใ„้–ขไฟ‚ + // ่ณชใŒ้‡่ฆ + bond = interaction_count * 0.4 + avg_priority * 0.6 +} +``` + +**3. Relationship Type ๅˆ†้กž**: +- `close_friend` (0.8+): ้žๅธธใซๅผทใ„็ต† +- `friend` (0.6-0.8): ๅผทใ„็น‹ใŒใ‚Š +- `valued_acquaintance` (0.4-0.6, ้ซ˜priority): ้‡่ฆใ ใŒ่ฆชๅฏ†ใงใฏใชใ„ +- `acquaintance` (0.4-0.6): ๅฎšๆœŸ็š„ใชๆŽฅ่งฆ +- `regular_contact` (0.2-0.4): ๆ™‚ใ€…ใฎๆŽฅ่งฆ +- `distant` (<0.2): ๆœ€ๅฐ้™ใฎ็น‹ใŒใ‚Š + +**4. Confidence ่จˆ็ฎ—**: +- ใƒ‡ใƒผใ‚ฟ้‡ใซๅŸบใฅใไฟก้ ผๅบฆ +- 1-2ๅ›ž: 0.2-0.3 (ไฝŽ) +- 5ๅ›ž: 0.5 (ไธญ) +- 10ๅ›žไปฅไธŠ: 0.8+ (้ซ˜) + +### Design Philosophy + +**ๆŽจๆธฌใฎใฟใ€ไฟๅญ˜ใชใ—**: +- ๆฏŽๅ›žLayer 1-3.5ใ‹ใ‚‰่จˆ็ฎ— +- ใ‚ญใƒฃใƒƒใ‚ทใƒฅใชใ—๏ผˆใ‚ทใƒณใƒ—ใƒซใ•ๅ„ชๅ…ˆ๏ผ‰ +- ๅพŒใงใ‚ญใƒฃใƒƒใ‚ทใƒณใ‚ฐ่ฟฝๅŠ ๅฏ่ƒฝ + +**็‹ฌ็ซ‹ๆ€ง**: +- Layer 1-3.5ใซไพๅญ˜ +- Layer 1-3.5ใ‹ใ‚‰็‹ฌ็ซ‹๏ผˆใ‚ชใƒ—ใ‚ทใƒงใƒณๆฉŸ่ƒฝ๏ผ‰ +- ๆœ‰ๅŠนๅŒ–ใ—ใชใ‘ใ‚ŒใฐๅฎŒๅ…จใซ็„ก่ฆ–ใ•ใ‚Œใ‚‹ + +**ๅค–้ƒจใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณๅ‘ใ‘**: +- aigptใฏใƒใƒƒใ‚ฏใ‚จใƒณใƒ‰๏ผˆๆŽจๆธฌใ‚จใƒณใ‚ธใƒณ๏ผ‰ +- ใƒ•ใƒญใƒณใƒˆใ‚จใƒณใƒ‰๏ผˆใ‚ฒใƒผใƒ ใ€ใ‚ณใƒณใƒ‘ใƒ‹ใ‚ชใƒณ็ญ‰๏ผ‰ใŒ่กจ็คบใ‚’ๆ‹…ๅฝ“ +- MCPใง็น‹ใŒใ‚‹ + +### MCP Tools +- `get_relationship(entity_id)` - ็‰นๅฎšentity ใจใฎ้–ขไฟ‚ใ‚’ๅ–ๅพ— +- `list_relationships(limit)` - ๅ…จ้–ขไฟ‚ใ‚’bond_strength้ †ใงใƒชใ‚นใƒˆ + +### Usage Example +``` +# ใ‚ตใƒผใƒใƒผ่ตทๅ‹•๏ผˆLayer 4ๆœ‰ๅŠน๏ผ‰ +aigpt server --enable-layer4 + +# ้–ขไฟ‚ๆ€งๅ–ๅพ— +get_relationship({ entity_id: "alice" }) + +# ็ตๆžœ: +{ + "bond_strength": 0.82, + "relationship_type": "close_friend", + "interaction_count": 15, + "confidence": 0.80 +} +``` + +--- + +## Layer 4+: Extended Features **Status**: ๐Ÿ”ต **Planned** +Advanced game and companion system features to be designed based on Layer 4 foundation. + +--- + +## Layer 4a: Game Systems (Archive) + +**Status**: ๐Ÿ”ต **Archived Concept** + ### Purpose ใ‚ฒใƒผใƒ ็š„่ฆ็ด ใง่จ˜ๆ†ถ็ฎก็†ใ‚’ๆฅฝใ—ใใ€‚ @@ -398,9 +511,20 @@ pub struct Companion { - [x] Smart update triggers - [x] `get_profile` MCP tool -### Phase 4: Layers 4-5 (Next) -- [ ] Game mechanics (Layer 4a) -- [ ] Companion system (Layer 4b) +### Phase 4: Layer 4 โœ… (Complete) +- [x] Add `related_entities` to Layer 1 Memory struct +- [x] Database migration for backward compatibility +- [x] RelationshipInference data structure +- [x] Bond strength calculation (personality-aware) +- [x] Relationship type classification +- [x] Confidence scoring +- [x] `get_relationship` MCP tool +- [x] `list_relationships` MCP tool +- [x] CLI control flag (`--enable-layer4`) +- [x] Tool visibility control + +### Phase 5: Layers 4+ and 5 (Future) +- [ ] Extended game/companion features (Layer 4+) - [ ] Sharing mechanisms (Layer 5) - [ ] Public/private modes (Layer 5) @@ -472,26 +596,26 @@ pub struct Companion { ``` src/ โ”œโ”€โ”€ core/ -โ”‚ โ”œโ”€โ”€ memory.rs # Layer 1: Memory struct -โ”‚ โ”œโ”€โ”€ store.rs # Layer 1-3.5: SQLite operations +โ”‚ โ”œโ”€โ”€ memory.rs # Layer 1: Memory struct (with related_entities) +โ”‚ โ”œโ”€โ”€ store.rs # Layer 1-4: SQLite operations โ”‚ โ”œโ”€โ”€ analysis.rs # Layer 3: UserAnalysis (Big Five) โ”‚ โ”œโ”€โ”€ profile.rs # Layer 3.5: UserProfile (integrated) +โ”‚ โ”œโ”€โ”€ relationship.rs # Layer 4: RelationshipInference โ”‚ โ”œโ”€โ”€ error.rs # Error types โ”‚ โ””โ”€โ”€ mod.rs # Module exports โ”œโ”€โ”€ mcp/ -โ”‚ โ”œโ”€โ”€ base.rs # MCP server (all layers) +โ”‚ โ”œโ”€โ”€ base.rs # MCP server (all layers, with --enable-layer4) โ”‚ โ””โ”€โ”€ mod.rs # Module exports โ”œโ”€โ”€ lib.rs # Library root -โ””โ”€โ”€ main.rs # CLI application +โ””โ”€โ”€ main.rs # CLI application (with layer4 flag) ``` **Future layers**: -- Layer 4a: `src/game/` - Game systems -- Layer 4b: `src/companion/` - Companion features +- Layer 4+: `src/game/` - Extended game/companion systems - Layer 5: `src/distribution/` - Sharing mechanisms --- -**Version**: 0.2.0 +**Version**: 0.3.0 **Last Updated**: 2025-11-06 -**Current Status**: Layers 1-3.5 Complete, Layer 4 Planned +**Current Status**: Layers 1-4 Complete (Layer 4 opt-in with --enable-layer4)