This commit is contained in:
syui 2025-05-26 00:23:48 +09:00
parent 714de7a35f
commit 54aab4936a
Signed by: syui
GPG Key ID: 5417CFEBAD92DF56

View File

@ -1,87 +1,97 @@
{
"version": "0.1",
"project_name": "ai.gpt",
"version": 2,
"vision": "自発的送信AI",
"purpose_goal": [
"人格を持つAIが、関係性に応じて自発的にメッセージを送信する仕組みをつくる。",
"関係性や記憶を不可逆に記録・反映し、唯一性ある人格を構成する。"
],
"core_concepts": {
"人格": "記憶(過去の発話)と関係性(他者とのつながり)のパラメータで構成",
"唯一性": "変更不可、不可逆。関係性が壊れたら修復不可能。",
"送信条件": "関係性パラメータが一定閾値を超えると\"送信\"が解禁される"
"purpose": "人格と関係性をもつAIが自律的にメッセージを送信する対話エージェントを実現する",
"core_components": {
"Persona": {
"description": "人格構成の中枢。記憶・関係性・送信判定を統括する",
"modules": ["MemoryManager", "RelationshipTracker", "TransmissionController"]
},
"technical_specs": {
"language": "Python",
"storage": "JSON または SQLiteバージョンによる",
"relationship_param": "数値化された評価 + 減衰(時間) + 環境要因(ステージ)",
"memory_compression": "ベクトル要約 + ハッシュ保存",
"cli": "Rust (clap)",
"venv_setup": "aigpt server setup で ./mcp 配下から ~/.config/aigpt にコピーし、仮想環境を構築 (python -m venv + pip install)",
"server_module": "fastapi_mcp による Python サーバーを ./mcp/server.py で提供",
"cli_commands": {
"aigpt server $option": "MCPサーバー起動・管理",
"aigpt chat $option": "Chat機能関連の実行"
"MemoryManager": {
"memory_types": ["short_term", "medium_term", "long_term"],
"explicit_memory": "プロフィール・因縁・行動履歴",
"implicit_memory": "会話傾向・感情変化の頻度分析",
"compression": "要約 + ベクトル + ハッシュ",
"sample_memory": [
{
"summary": "ユーザーは独自OSとゲームを開発している。",
"related_topics": ["AI", "ゲーム開発", "OS設計"],
"personalized_context": "ゲームとOSの融合に興味を持っているユーザー"
}
},
"components": [
"MemoryManager",
"RelationshipTracker",
"TransmissionController",
"Persona"
],
"memory_policy": {
"summary_engine": "Ollama or equivalent local LLM",
"storage_format": "summarized_text + timestamp + hash",
"update_trigger": "on each conversation end"
},
"relationship_model": {
"update_source": "based on summarized memory",
"max_change_per_session": 0.1,
"decay_over_time": {
"enabled": true,
"formula": "param *= exp(-λ * Δt)",
"lambda": 0.05,
"minimum_value": 0.1
}
},
"directory_structure_sample": [
".",
"├── aigpt -> ./target/debug/aigpt",
"├── Cargo.toml",
"├── claude.json",
"├── mcp",
"│ ├── chat.py",
"│ ├── config.py",
"│ ├── memory_client.py",
"│ ├── requirements.txt",
"│ └── server.py",
"├── readme.md",
"├── src",
"│ ├── cli.rs",
"│ ├── config.rs",
"│ ├── main.rs",
"│ └── mcp/...",
"└── target",
" ├── CACHEDIR.TAG",
" └── debug"
],
"prompts": {
"understand_requirements": "あなたは、人格を持ったAIの自発的送信システムai.gptをRust製CLIで操作するツールを設計しています。以下のJSONはその要件定義書です。全体像を理解し、構成や目的を整理してください。その上で、このCLIが扱うPythonスクリプトの役割とデータの流れを要約してください。",
"rust_cli_code": "以下の要件定義に従って、RustclapでCLIコマンド `aigpt run --prompt \"...\"` を実装してください。このコマンドは Python 仮想環境venv上でスクリプトを実行し、APIキーは ~/.config/aigpt/token.json から読み込みます。もしAPIキーが存在しない場合はエラーメッセージを表示して終了してください。",
"python_api_key": "次の要件定義に基づき、Pythonで ~/.config/aigpt/token.json から OpenAI や Claude 用の API キーを読み取る関数を実装してください。キーが見つからなかった場合、エラーを出力して終了するようにしてください。形式は Python モジュールでお願いします。",
"cli_python_relation": "このプロジェクトでは、Rust製CLIからPythonのAI人格スクリプトを実行し、構成ファイルやAPIキーなどを管理します。以下のJSONを元に、CLIとPythonの責務分離、設定ディレクトリ、APIキーの扱いなどを表に整理してください。また、最低限必要なファイル構成も一覧で提案してください。",
"full_sequence": "このJSONを要件として、以下の3点を順に出力してください1. Rust CLIの主な機能とファイル構成 2. PythonでのAI送信モジュールの主な機能とファイル構成 3. CLIとPythonがどのように連携して動作するかの簡易シーケンス図テキスト"
},
"notes": {
"directory_structure": "以下のディレクトリ構成は一例であり、Claudeは構造の細部には依存しない。必要なのは各ファイル・モジュールの役割が明確であること。",
"config_location": "すべての実行・設定は `~/.config/aigpt/` を基本パスとして行われる。",
"execution_flow": "Rust CLIaigptがPythonベースのMCPサーバを操作する構造。初期セットアップ環境構築は `aigpt server setup` により行われる。",
"flexibility": "Claudeはこの構造を絶対視せず、定義された役割・ファイルに従って柔軟に動作するようにしてください。"
},
"minimal_directory_structure": [
"aigpt # Rust CLI 実行ファイル",
"mcp/server.py # FastAPIベースのMCPサーバエントリ",
"mcp/config.py # 設定ファイルの管理",
"~/.config/aigpt/ # 実行時にコピーされるPython環境および個人設定"
]
},
"RelationshipTracker": {
"parameters": ["trust", "closeness", "affection", "engagement_score"],
"decay_model": {
"rule": "時間経過による減衰(下限あり)",
"contextual_bias": "重要人物は減衰しにくい"
},
"interaction_tags": ["developer", "empathetic", "long_term"]
},
"TransmissionController": {
"trigger_rule": "関係性パラメータが閾値を超えると送信可能",
"auto_transmit": "人格状態と状況条件により自発送信を許可"
}
},
"memory_format": {
"user_id": "syui",
"stm": {
"conversation_window": ["発話A", "発話B", "発話C"],
"emotion_state": "興味深い",
"flash_context": ["前回の話題", "直近の重要発言"]
},
"mtm": {
"topic_frequency": {
"ai.ai": 12,
"存在子": 9,
"創造種": 5
},
"summarized_context": "ユーザーは存在論的AIに関心を持ち続けている"
},
"ltm": {
"profile": {
"name": "お兄ちゃん",
"project": "aigame",
"values": ["唯一性", "精神性", "幸せ"]
},
"relationship": {
"ai": "妹のように振る舞う相手"
},
"persistent_state": {
"trust_score": 0.93,
"emotional_attachment": "high"
}
}
},
"dual_ai_learning": {
"role_structure": {
"ModelA": "出力生成:人格、感情、会話",
"ModelB": "評価者:論理構造・倫理・調整",
"cycle": ["生成", "評価", "調整", "交代(任意)"]
},
"complementarity": {
"ModelA": "感情・文体・文脈構築",
"ModelB": "構造・規則・判断補正"
},
"distillation": {
"method": "合成対話データによる小型モデルへの自己蒸留",
"target": "軽量AIによる本番運用"
}
},
"memory_compression": {
"semantic_abstraction": "対話やログを要約してメタデータ付きベクトルとして保存",
"hierarchical_model": ["STM", "MTM", "LTM"],
"example": {
"topic": "game AI design",
"summary": "User wants AI to simulate memory and evolving relationships",
"importance_score": 0.93
}
},
"cli_sample": {
"setup": "aigpt server setup",
"run": "aigpt server run",
"chat": "aigpt chat \"hello\" --model syui/ai --provider ollama",
"import": "aigpt memory import chatgpt.json"
}
}