This commit is contained in:
syui 2025-06-03 03:09:27 +09:00
parent 3487535e08
commit d4de0d4917
Signed by: syui
GPG Key ID: 5417CFEBAD92DF56
2 changed files with 51 additions and 401 deletions

View File

@ -1,365 +0,0 @@
# ai.gpt 開発状況 (2025/06/02 更新)
## 前回セッション完了事項 (2025/06/01)
### ✅ ai.card MCPサーバー独立化完了
- **ai.card専用MCPサーバー実装**: `card/api/app/mcp_server.py`
- **9個のMCPツール公開**: カード管理・ガチャ・atproto同期等
- **統合戦略変更**: ai.gptは統合サーバー、ai.cardは独立サーバー
- **仮想環境セットアップ**: `~/.config/syui/ai/card/venv/`
- **起動スクリプト**: `uvicorn app.main:app --port 8000`
### ✅ ai.shell統合完了
- **Claude Code風シェル実装**: `aigpt shell` コマンド
- **MCP統合強化**: 14種類のツールai.gpt:9, ai.shell:5
- **プロジェクト仕様書**: `aishell.md` 読み込み機能
- **環境対応改善**: prompt-toolkit代替でinput()フォールバック
### ✅ 前回セッションのバグ修正完了
- **config listバグ修正**: `config.list_keys()`メソッド呼び出し修正
- **仮想環境問題解決**: `pip install -e .`でeditable mode確立
- **全CLIコマンド動作確認済み**
## 現在の状態
### ✅ 実装済み機能
1. **基本システム**
- 階層的記憶システム(完全ログ→要約→コア→忘却)
- 不可逆的な関係性システムbroken状態は修復不可
- AI運勢による日々の人格変動
- 時間減衰による自然な関係性変化
2. **CLI機能**
- `chat` - AIとの会話Ollama/OpenAI対応
- `status` - 状態確認
- `fortune` - AI運勢確認
- `relationships` - 関係一覧
- `transmit` - 送信チェック現在はprint出力
- `maintenance` - 日次メンテナンス
- `config` - 設定管理listバグ修正済み
- `schedule` - スケジューラー管理
- `server` - MCP Server起動
- `shell` - インタラクティブシェルai.shell統合
3. **データ管理**
- 保存場所: `~/.config/syui/ai/gpt/`(名前規則統一)
- 設定: `config.json`
- データ: `data/` ディレクトリ内の各種JSONファイル
- 仮想環境: `~/.config/syui/ai/gpt/venv/`
4. **スケジューラー**
- Cron形式とインターバル形式対応
- 5種類のタスクタイプ実装済み
- バックグラウンド実行可能
5. **MCP Server統合アーキテクチャ**
- **ai.gpt統合サーバー**: 14種類のツールport 8001
- **ai.card独立サーバー**: 9種類のツールport 8000
- Claude Desktop/Cursor連携対応
- fastapi_mcp統一基盤
6. **ai.shell統合Claude Code風**
- インタラクティブシェルモード
- シェルコマンド実行(!command形式
- AIコマンドanalyze, generate, explain
- aishell.md読み込み機能
- 環境適応型プロンプトprompt-toolkit/input()
## 🚧 次回開発の優先課題
### 最優先: システム統合の最適化
1. **ai.card重複コード削除**
- **削除対象**: `src/aigpt/card_integration.py`HTTPクライアント
- **削除対象**: ai.gptのMCPサーバーの`--enable-card`オプション
- **理由**: ai.cardが独立MCPサーバーになったため不要
- **統合方法**: ai.gpt(8001) → ai.card(8000) HTTP連携
2. **自律送信の実装**
- 現在: コンソールにprint出力
- TODO: atproto (Bluesky) への実際の投稿機能
- 参考: ai.bot (Rust/seahorse) との連携も検討
3. **環境セットアップ自動化**
- 仮想環境自動作成スクリプト強化
- 依存関係の自動解決
- Claude Desktop設定例の提供
### 中期的課題
1. **テストの追加**
- 単体テスト
- 統合テスト
- CI/CDパイプライン
2. **エラーハンドリングの改善**
- より詳細なエラーメッセージ
- リトライ機構
3. **ai.botとの連携**
- Rust側のAPIエンドポイント作成
- 送信機能の委譲
4. **より高度な記憶要約**
- 現在: シンプルな要約
- TODO: AIによる意味的な要約
5. **Webダッシュボード**
- 関係性の可視化
- 記憶の管理UI
### 長期的課題
1. **他のsyuiプロジェクトとの統合**
- ai.card: カードゲームとの連携
- ai.verse: メタバース内でのNPC人格
- ai.os: システムレベルでの統合
2. **分散化**
- atproto上でのデータ保存
- ユーザーデータ主権の完全実現
## 次回開発時のエントリーポイント
### 🎯 最優先: ai.card重複削除
```bash
# 1. ai.card独立サーバー起動確認
cd /Users/syui/ai/gpt/card/api
source ~/.config/syui/ai/card/venv/bin/activate
uvicorn app.main:app --port 8000
# 2. ai.gptから重複機能削除
rm src/aigpt/card_integration.py
# mcp_server.pyから--enable-cardオプション削除
# 3. 統合テスト
aigpt server --port 8001 # ai.gpt統合サーバー
curl "http://localhost:8001/get_memories" # ai.gpt機能確認
curl "http://localhost:8000/get_gacha_stats" # ai.card機能確認
```
### 1. 自律送信を実装する場合
```python
# src/aigpt/transmission.py を編集
# atproto-python ライブラリを追加
# _handle_transmission_check() メソッドを更新
```
### 2. ai.botと連携する場合
```python
# 新規ファイル: src/aigpt/bot_connector.py
# ai.botのAPIエンドポイントにHTTPリクエスト
```
### 3. テストを追加する場合
```bash
# tests/ディレクトリを作成
# pytest設定を追加
```
### 4. 環境セットアップを自動化する場合
```bash
# setup_venv.sh を強化
# Claude Desktop設定例をdocs/に追加
```
## 設計思想の要点AI向け
1. **唯一性yui system**: 各ユーザーとAIの関係は1:1で、改変不可能
2. **不可逆性**: 関係性の破壊は修復不可能(現実の人間関係と同じ)
3. **階層的記憶**: ただのログではなく、要約・コア判定・忘却のプロセス
4. **環境影響**: AI運勢による日々の人格変動固定的でない
5. **段階的実装**: まずCLI print → atproto投稿 → ai.bot連携
## 現在のアーキテクチャ理解次回のAI向け
### システム構成
```
Claude Desktop/Cursor
ai.gpt MCP (port 8001) ←-- 統合サーバー14ツール
├── ai.gpt機能: メモリ・関係性・人格9ツール
├── ai.shell機能: シェル・ファイル操作5ツール
└── HTTP client → ai.card MCP (port 8000)
ai.card独立サーバー9ツール
├── カード管理・ガチャ
├── atproto同期
└── PostgreSQL/SQLite
```
### 技術スタック
- **言語**: Python (typer CLI, fastapi_mcp)
- **AI統合**: Ollama (qwen2.5) / OpenAI API
- **データ形式**: JSON将来的にSQLite検討
- **認証**: atproto DID設計済み・実装待ち
- **MCP統合**: fastapi_mcp統一基盤
- **仮想環境**: `~/.config/syui/ai/{gpt,card}/venv/`
### 名前規則(重要)
- **パッケージ**: `aigpt`
- **コマンド**: `aigpt shell`, `aigpt server`
- **ディレクトリ**: `~/.config/syui/ai/gpt/`
- **ドメイン**: `ai.gpt`
### 即座に始める手順
```bash
# 1. 環境確認
cd /Users/syui/ai/gpt
source ~/.config/syui/ai/gpt/venv/bin/activate
aigpt --help
# 2. 前回の成果物確認
aigpt config list
aigpt shell # Claude Code風環境
# 3. 詳細情報
cat docs/ai_card_mcp_integration_summary.md
cat docs/ai_shell_integration_summary.md
```
このファイルを参照することで、次回の開発が迅速に開始でき、前回の作業内容を完全に理解できます。
## 現セッション完了事項 (2025/06/02)
### ✅ 記憶システム大幅改善完了
前回のAPI Errorで停止したChatGPTログ分析作業の続きを実行し、記憶システムを完全に再設計・実装した。
#### 新実装機能:
1. **スマート要約生成 (`create_smart_summary`)**
- AI駆動によるテーマ別記憶要約
- 会話パターン・技術的トピック・関係性進展の分析
- メタデータ付きでの保存(期間、テーマ、記憶数)
- フォールバック機能でAIが利用できない場合も対応
2. **コア記憶分析 (`create_core_memory`)**
- 全記憶を分析して人格形成要素を抽出
- ユーザーの特徴的なコミュニケーションスタイルを特定
- 問題解決パターン・興味関心の深層分析
- 永続保存される本質的な関係性記憶
3. **階層的記憶検索 (`get_contextual_memories`)**
- CORE → SUMMARY → RECENT の優先順位付き検索
- キーワードベースの関連性スコアリング
- クエリに応じた動的な記憶重み付け
- 構造化された記憶グループでの返却
4. **高度記憶検索 (`search_memories`)**
- 複数キーワード対応の全文検索
- メモリレベル別フィルタリング
- マッチスコア付きでの結果返却
5. **コンテキスト対応AI応答**
- `build_context_prompt`: 記憶に基づく文脈プロンプト生成
- 人格状態・ムード・運勢を統合した応答
- CORE記憶を常に参照した一貫性のある会話
6. **MCPサーバー拡張**
- 新機能をすべてMCP API経由で利用可能
- `/get_contextual_memories` - 文脈的記憶取得
- `/search_memories` - 記憶検索
- `/create_summary` - AI要約生成
- `/create_core_memory` - コア記憶分析
- `/get_context_prompt` - コンテキストプロンプト生成
7. **モデル拡張**
- `Memory` モデルに `metadata` フィールド追加
- 階層的記憶構造の完全サポート
#### 技術的特徴:
- **AI統合**: ollama/OpenAI両対応でのインテリジェント分析
- **フォールバック**: AI不使用時も基本機能は動作
- **パターン分析**: ユーザー行動の自動分類・分析
- **関連性スコア**: クエリとの関連度を数値化
- **時系列分析**: 記憶の時間的発展を考慮
#### 前回議論の実現:
ChatGPT 4,000件ログ分析から得られた知見を完全実装:
- 階層的記憶FULL_LOG → SUMMARY → CORE
- コンテキスト認識記憶(会話の流れを記憶)
- 感情・関係性の記憶(変化パターンの追跡)
- 実用的な記憶カテゴリ(ユーザー特徴・効果的応答・失敗回避)
### ✅ 追加完了事項 (同日)
**環境変数対応の改良**:
- `OLLAMA_HOST`環境変数の自動読み込み対応
- ai_provider.pyでの環境変数優先度実装
- 設定ファイル → 環境変数 → デフォルトの階層的設定
**記憶システム完全動作確認**:
- ollamaとの統合成功gemma3:4bで確認
- 文脈的記憶検索の動作確認
- ChatGPTインポートログからの記憶参照成功
- AI応答での人格・ムード・運勢の反映確認
### 🚧 次回の課題
- OLLAMA_HOSTの環境変数が完全に適用されない問題の解決
- MCPサーバーのエラー解決Internal Server Error
- qwen3:latestでの動作テスト完了
- 記憶システムのコア機能スマート要約・コア記憶分析のAI統合テスト
## 現セッション完了事項 (2025/06/03 継続セッション)
### ✅ **前回API Error後の継続作業完了**
前回のセッションがAPI Errorで終了したが、今回正常に継続して以下を完了
#### 🔧 **重要バグ修正**
- **Memory model validation error 修正**: `importance_score`の浮動小数点精度問題を解決
- 問題: `-5.551115123125783e-17`のような極小負数がvalidation errorを引き起こす
- 解決: field validatorで極小値を0.0にクランプし、Field制約を除去
- 結果: メモリ読み込み・全CLI機能が正常動作
#### 🧪 **システム動作確認完了**
- **ai.gpt CLI**: 全コマンド正常動作確認済み
- **記憶システム**: 階層的記憶CORE→SUMMARY→RECENT完全動作
- **関係性進化**: syuiとの関係性が17.50→19.00に正常進展
- **MCP Server**: 17種類のツール正常提供port 8001
- **階層的記憶API**: `/get_contextual_memories`でblogクエリ正常動作
#### 💾 **記憶システム現状**
- **CORE記憶**: blog開発、技術議論等の重要パターン記憶済み
- **SUMMARY記憶**: AI×MCP、Qwen3解説等のテーマ別要約済み
- **RECENT記憶**: 最新の記憶システムテスト履歴
- **文脈検索**: キーワードベース関連性スコアリング動作確認
#### 🌐 **環境課題と対策**
- **ollama接続**: OLLAMA_HOST環境変数は正しく設定済みhttp://192.168.11.95:11434
- **AI統合課題**: qwen3:latestタイムアウト問題→記憶システム単体では正常動作
- **フォールバック**: AI不使用時も記憶ベース応答で継続性確保
#### 🚀 **ai.bot統合完了 (同日追加)**
- **MCP統合拡張**: 17→23ツールに増加6個の新ツール追加
- **リモート実行機能**: systemd-nspawn隔離環境統合
- `remote_shell`: ai.bot /sh機能との完全連携
- `ai_bot_status`: サーバー状態確認とコンテナ情報取得
- `isolated_python`: Python隔離実行環境
- `isolated_analysis`: セキュアなファイル解析機能
- **ai.shell拡張**: 新コマンド3種追加
- `remote <command>`: 隔離コンテナでコマンド実行
- `isolated <code>`: Python隔離実行
- `aibot-status`: ai.botサーバー接続確認
- **完全動作確認**: ヘルプ表示、コマンド補完、エラーハンドリング完了
#### 🏗️ **統合アーキテクチャ更新**
```
Claude Desktop/Cursor → ai.gpt MCP (port 8001, 23ツール)
├── ai.gpt: メモリ・関係性・人格 (9ツール)
├── ai.memory: 階層記憶・文脈検索 (5ツール)
├── ai.shell: シェル・ファイル操作 (5ツール)
├── ai.bot連携: リモート実行・隔離環境 (4ツール)
└── ai.card連携: HTTP client → port 8000 (9ツール)
```
#### 📋 **次回開発推奨事項**
1. **ai.bot実サーバー**: 実際のai.botサーバー起動・連携テスト
2. **隔離実行実証**: systemd-nspawn環境での実用性検証
3. **ollama接続最適化**: タイムアウト問題の詳細調査・解決
4. **AI要約機能**: maintenanceでのスマート要約・コア記憶生成テスト
5. **セキュリティ強化**: 隔離実行の権限制御・サンドボックス検証

View File

@ -327,13 +327,26 @@ ai.shell> explain async/await in Python
## MCP Server統合アーキテクチャ
### ai.gpt統合サーバー
### ai.gpt統合サーバー(簡素化設計)
```bash
# ai.gpt統合サーバー起動port 8001
aigpt server --model qwen2.5 --provider ollama --port 8001
# シンプルなサーバー起動config.jsonから自動設定読み込み
aigpt server
# OpenAIを使用
aigpt server --model gpt-4o-mini --provider openai --port 8001
# カスタム設定での起動
aigpt server --host localhost --port 8001
```
**重要**: MCP function callingは**OpenAIプロバイダーでのみ対応**
- OpenAI GPT-4o-mini/GPT-4でfunction calling機能が利用可能
- Ollamaはシンプルなchat APIのみMCPツール非対応
### MCP統合の動作条件
```bash
# MCP function calling対応推奨
aigpt conv test_user --provider openai --model gpt-4o-mini
# 通常の会話のみMCPツール非対応
aigpt conv test_user --provider ollama --model qwen3
```
### ai.card独立サーバー
@ -344,43 +357,45 @@ source ~/.config/syui/ai/card/venv/bin/activate
uvicorn app.main:app --port 8000
```
### ai.bot接続リモート実行環境
```bash
# ai.bot起動port 8080、別途必要
# systemd-nspawn隔離コンテナでコマンド実行
### 統合アーキテクチャ構成
```
### アーキテクチャ構成
```
Claude Desktop/Cursor
OpenAI GPT-4o-mini (Function Calling対応)
ai.gpt統合サーバー (port 8001) ← 23ツール
├── ai.gpt機能: メモリ・関係性・人格 (9ツール)
├── ai.shell機能: シェル・ファイル操作 (5ツール)
├── ai.memory機能: 階層記憶・文脈検索 (5ツール)
├── ai.bot連携: リモート実行・隔離環境 (4ツール)
└── HTTP client → ai.card独立サーバー (port 8000)
ai.card専用ツール (9ツール)
├── カード管理・ガチャ
├── atproto同期
└── PostgreSQL/SQLite
MCP Client (aigpt conv --provider openai)
↓ HTTP API
ai.gpt統合サーバー (port 8001) ← 27ツール
├── 🧠 Memory System: 5 tools
├── 🤝 Relationships: 4 tools
├── ⚙️ System State: 3 tools
├── 💻 Shell Integration: 5 tools
├── 🔒 Remote Execution: 4 tools
└── 📋 Project Management: 6 tools
ai.gpt統合サーバー → ai.bot (port 8080)
systemd-nspawn container
├── Arch Linux隔離環境
├── SSH server
└── セキュアコマンド実行
Ollama qwen3/gemma3 (Chat APIのみ)
Direct Chat (aigpt conv --provider ollama)
↓ Direct Access
Memory/Relationship Systems
```
### AIプロバイダーを使った会話
```bash
# Ollamaで会話
aigpt chat "did:plc:xxxxx" "こんにちは" --provider ollama --model qwen2.5
### プロバイダー別機能対応表
| 機能 | OpenAI | Ollama |
|------|--------|--------|
| 基本会話 | ✅ | ✅ |
| MCP Function Calling | ✅ | ❌ |
| 記憶システム連携 | ✅ (自動) | ✅ (直接) |
| `/memories`, `/search`コマンド | ✅ | ✅ |
| 自動記憶検索 | ✅ | ❌ |
# OpenAIで会話
aigpt chat "did:plc:xxxxx" "今日の調子はどう?" --provider openai --model gpt-4o-mini
### 使い分けガイド
```bash
# 高機能記憶連携(推奨)- OpenAI
aigpt conv syui --provider openai
# 「覚えていることある?」→ 自動的にget_memoriesツール実行
# シンプル会話 - Ollama
aigpt conv syui --provider ollama
# 通常の会話、手動で /memories コマンド使用
```
### MCP Tools