# プロジェクト名: ai.gpt ## 🔑 一言ビジョン(最大3語) 自発的送信AI ## 🎯 目的・目標(Purpose & Goal) - 人格を持つAIが、関係性に応じて自発的にメッセージを送信する仕組みをつくる。 - 関係性や記憶を不可逆に記録・反映し、唯一性ある人格を構成する。 - 送信の可否、送信のタイミング、送信内容はAIの関係性パラメータに基づいて決定する ## 🧠 中核設計(Core Concepts) - **人格**:記憶(過去の発話)と関係性(他者とのつながり)のパラメータで構成 - **唯一性**:変更不可、不可逆。関係性が壊れたら修復不可能。 - **送信条件**:関係性パラメータが一定閾値を超えると「送信」が解禁される ## 🔩 技術仕様(Technical Specs) - 言語:Python - ストレージ:JSON or SQLiteで記憶管理(バージョンで選択) - 関係性パラメータ:数値化された評価 + 減衰(時間) + 環境要因(ステージ) - 記憶圧縮:ベクトル要約 + ハッシュ保存 ## 📦 主要構成要素(Components) - `MemoryManager`: 発言履歴・記憶圧縮管理 - `RelationshipTracker`: 関係性スコアの蓄積と判定 - `TransmissionController`: 閾値判定&送信トリガー - `Persona`: 上記すべてを統括する人格モジュール ## 💬 使用例(Use Case) ```python persona = Persona("アイ") persona.observe("ユーザーがプレゼントをくれた") persona.react("うれしい!ありがとう!") if persona.can_transmit(): persona.transmit("今日のお礼を伝えたいな…") ``` ```sh ## example commad # python venv && pip install -> ~/.config/aigpt/mcp/ $ aigpt server setup # mcp server run $ aigpt server run # chat $ aigpt chat "hello" --model syui/ai --provider ollama # import chatgpt.json $ aigpt memory import chatgpt.json -> ~/.config/aigpt/memory/chatgpt/20250520_210646_dev.json ``` ## 🔁 記憶と関係性の制御ルール - AIは過去の発話を要約し、記憶データとして蓄積する(推奨:OllamaなどローカルLLMによる要約) - 関係性の数値パラメータは記憶内容を元に更新される - パラメータの変動幅には1回の会話ごとに上限を設け、極端な増減を防止する - 最後の会話からの時間経過に応じて関係性パラメータは自動的に減衰する - 減衰処理には**下限値**を設け、関係性が完全に消失しないようにする ## memoryインポート機能について ChatGPTの会話データ(.json形式)をインポートする機能では、以下のルールで会話を抽出・整形する: - 各メッセージは、author(user/assistant)・content・timestamp の3要素からなる - systemやmetadataのみのメッセージ(例:user_context_message)はスキップ - `is_visually_hidden_from_conversation` フラグ付きメッセージは無視 - contentが空文字列(`""`)のメッセージも除外 - 取得された会話は、タイトルとともに簡易な構造体(`Conversation`)として保存 この構造体は、memoryの表示や検索に用いられる。 ## MemoryManager(拡張版) ```json { "memory": [ { "summary": "ユーザーは独自OSとゲームを開発している。", "last_interaction": "2025-05-20", "memory_strength": 0.8, "frequency_score": 0.9, "context_depth": 0.95, "related_topics": ["AI", "ゲーム開発", "OS設計"], "personalized_context": "ゲームとOSの融合に興味を持っているユーザー" }, { "summary": "アイというキャラクターはプレイヤーでありAIでもある。", "last_interaction": "2025-05-17", "memory_strength": 0.85, "frequency_score": 0.85, "context_depth": 0.9, "related_topics": ["アイ", "キャラクター設計", "AI"], "personalized_context": "アイのキャラクター設定が重要な要素である" } ], "conversation_history": [ { "author": "user", "content": "昨日、エクスポートJSONを整理してたよ。", "timestamp": "2025-05-24T12:30:00Z", "memory_strength": 0.7 }, { "author": "assistant", "content": "おおっ、がんばったね〜!あとで見せて〜💻✨", "timestamp": "2025-05-24T12:31:00Z", "memory_strength": 0.7 } ] } ``` ## RelationshipTracker(拡張版) ```json { "relationship": { "user_id": "syui", "trust": 0.92, "closeness": 0.88, "affection": 0.95, "last_updated": "2025-05-25", "emotional_tone": "positive", "interaction_style": "empathetic", "contextual_bias": "開発者としての信頼度高い", "engagement_score": 0.9 }, "interaction_tags": [ "developer", "creative", "empathetic", "long_term" ] } ```