3.0 KiB
3.0 KiB
プロジェクト名: ai.gpt
🔑 一言ビジョン(最大3語)
自発的送信AI
🎯 目的・目標(Purpose & Goal)
- 人格を持つAIが、関係性に応じて自発的にメッセージを送信する仕組みをつくる。
- 関係性や記憶を不可逆に記録・反映し、唯一性ある人格を構成する。
🧠 中核設計(Core Concepts)
- 人格:記憶(過去の発話)と関係性(他者とのつながり)のパラメータで構成
- 唯一性:変更不可、不可逆。関係性が壊れたら修復不可能。
- 送信条件:関係性パラメータが一定閾値を超えると「送信」が解禁される
🔩 技術仕様(Technical Specs)
- 言語:Python
- ストレージ:JSON or SQLiteで記憶管理(バージョンで選択)
- 関係性パラメータ:数値化された評価 + 減衰(時間) + 環境要因(ステージ)
- 記憶圧縮:ベクトル要約 + ハッシュ保存
📦 主要構成要素(Components)
MemoryManager
: 発言履歴・記憶圧縮管理RelationshipTracker
: 関係性スコアの蓄積と判定TransmissionController
: 閾値判定&送信トリガーPersona
: 上記すべてを統括する人格モジュール
💬 使用例(Use Case)
persona = Persona("アイ")
persona.observe("ユーザーがプレゼントをくれた")
persona.react("うれしい!ありがとう!")
if persona.can_transmit():
persona.transmit("今日のお礼を伝えたいな…")
# 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-export.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の表示や検索に用いられる。