{ "version": "0.1", "vision": "自発的送信AI", "purpose_goal": [ "人格を持つAIが、関係性に応じて自発的にメッセージを送信する仕組みをつくる。", "関係性や記憶を不可逆に記録・反映し、唯一性ある人格を構成する。" ], "core_concepts": { "人格": "記憶(過去の発話)と関係性(他者とのつながり)のパラメータで構成", "唯一性": "変更不可、不可逆。関係性が壊れたら修復不可能。", "送信条件": "関係性パラメータが一定閾値を超えると\"送信\"が解禁される" }, "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機能関連の実行" } }, "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": "以下の要件定義に従って、Rust(clap)で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 CLI(aigpt)がPythonベースのMCPサーバを操作する構造。初期セットアップ(環境構築)は `aigpt server setup` により行われる。", "flexibility": "Claudeはこの構造を絶対視せず、定義された役割・ファイルに従って柔軟に動作するようにしてください。" }, "minimal_directory_structure": [ "aigpt # Rust CLI 実行ファイル", "mcp/server.py # FastAPIベースのMCPサーバエントリ", "mcp/config.py # 設定ファイルの管理", "~/.config/aigpt/ # 実行時にコピーされるPython環境および個人設定" ] }