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