This commit is contained in:
2025-06-01 21:43:16 +09:00
parent 1c555a706b
commit 98ca92d85d
24 changed files with 0 additions and 0 deletions

212
README.md Normal file
View File

@ -0,0 +1,212 @@
# ai.gpt - 自律的送信AI
存在子理論に基づく、関係性によって自発的にメッセージを送信するAIシステム。
## 中核概念
- **唯一性**: atproto DIDと1:1で紐付き、改変不可能な人格
- **不可逆性**: 関係性が壊れたら修復不可能(現実の人間関係と同じ)
- **記憶の階層**: 完全ログ→AI要約→コア判定→選択的忘却
- **AI運勢**: 1-10のランダム値による日々の人格変動
## インストール
```bash
cd ai_gpt
pip install -e .
```
## 設定
### APIキーの設定
```bash
# OpenAI APIキー
ai-gpt config set providers.openai.api_key sk-xxxxx
# atproto認証情報将来の自動投稿用
ai-gpt config set atproto.handle your.handle
ai-gpt config set atproto.password your-password
# 設定一覧を確認
ai-gpt config list
```
### データ保存場所
- 設定: `~/.config/aigpt/config.json`
- データ: `~/.config/aigpt/data/`
## 使い方
### 会話する
```bash
ai-gpt chat "did:plc:xxxxx" "こんにちは、今日はどんな気分?"
```
### ステータス確認
```bash
# AI全体の状態
ai-gpt status
# 特定ユーザーとの関係
ai-gpt status "did:plc:xxxxx"
```
### 今日の運勢
```bash
ai-gpt fortune
```
### 自律送信チェック
```bash
# ドライラン(確認のみ)
ai-gpt transmit
# 実行
ai-gpt transmit --execute
```
### 日次メンテナンス
```bash
ai-gpt maintenance
```
### 関係一覧
```bash
ai-gpt relationships
```
## データ構造
デフォルトでは `~/.ai_gpt/` に以下のファイルが保存されます:
- `memories.json` - 会話記憶
- `conversations.json` - 会話ログ
- `relationships.json` - 関係性パラメータ
- `fortunes.json` - AI運勢履歴
- `transmissions.json` - 送信履歴
- `persona_state.json` - 人格状態
## 関係性の仕組み
- スコア0-200の範囲で変動
- 100を超えると送信機能が解禁
- 時間経過で自然減衰
- 大きなネガティブな相互作用で破壊される可能性
## MCP Server
### サーバー起動
```bash
# Ollamaを使用デフォルト
ai-gpt server --model qwen2.5 --provider ollama
# OpenAIを使用
ai-gpt server --model gpt-4o-mini --provider openai
# カスタムポート
ai-gpt server --port 8080
```
### AIプロバイダーを使った会話
```bash
# Ollamaで会話
ai-gpt chat "did:plc:xxxxx" "こんにちは" --provider ollama --model qwen2.5
# OpenAIで会話
ai-gpt chat "did:plc:xxxxx" "今日の調子はどう?" --provider openai --model gpt-4o-mini
```
### MCP Tools
サーバーが起動すると、以下のツールがAIから利用可能になります
- `get_memories` - アクティブな記憶を取得
- `get_relationship` - 特定ユーザーとの関係を取得
- `get_all_relationships` - すべての関係を取得
- `get_persona_state` - 現在の人格状態を取得
- `process_interaction` - ユーザーとの対話を処理
- `check_transmission_eligibility` - 送信可能かチェック
- `get_fortune` - 今日の運勢を取得
- `summarize_memories` - 記憶を要約
- `run_maintenance` - メンテナンス実行
## 環境変数
`.env`ファイルを作成して設定:
```bash
cp .env.example .env
# OpenAI APIキーを設定
```
## スケジューラー機能
### タスクの追加
```bash
# 6時間ごとに送信チェック
ai-gpt schedule add transmission_check "0 */6 * * *" --provider ollama --model qwen2.5
# 30分ごとに送信チェックインターバル形式
ai-gpt schedule add transmission_check "30m"
# 毎日午前3時にメンテナンス
ai-gpt schedule add maintenance "0 3 * * *"
# 1時間ごとに関係性減衰
ai-gpt schedule add relationship_decay "1h"
# 毎週月曜日に記憶要約
ai-gpt schedule add memory_summary "0 0 * * MON"
```
### タスク管理
```bash
# タスク一覧
ai-gpt schedule list
# タスクを無効化
ai-gpt schedule disable --task-id transmission_check_1234567890
# タスクを有効化
ai-gpt schedule enable --task-id transmission_check_1234567890
# タスクを削除
ai-gpt schedule remove --task-id transmission_check_1234567890
```
### スケジューラーデーモンの起動
```bash
# バックグラウンドでスケジューラーを実行
ai-gpt schedule run
```
### スケジュール形式
**Cron形式**:
- `"0 */6 * * *"` - 6時間ごと
- `"0 0 * * *"` - 毎日午前0時
- `"*/5 * * * *"` - 5分ごと
**インターバル形式**:
- `"30s"` - 30秒ごと
- `"5m"` - 5分ごと
- `"2h"` - 2時間ごと
- `"1d"` - 1日ごと
### タスクタイプ
- `transmission_check` - 送信可能なユーザーをチェックして自動送信
- `maintenance` - 日次メンテナンス(忘却、コア記憶判定など)
- `fortune_update` - AI運勢の更新
- `relationship_decay` - 関係性の時間減衰
- `memory_summary` - 記憶の要約作成
## 次のステップ
- atprotoへの実送信機能実装
- systemdサービス化
- Docker対応
- Webダッシュボード