自律型のAIアシスタントツール クロウスポア。 「自律判断」「実行」「改善」のサイクルを Podman 上で安全に回しつつ、Discord を介して人間と協調することを目指したプロジェクトです。
人間の指示を待つだけでなく、自ら考え、環境を操作し、その結果から学習して継続的に自己改善する AI エージェントの実現を目指します。
思考を司る Core、外部操作を担う MCP/CLI、そして人間との窓口となる Discord の3層構造で構築します。
- Core (Brain): 自律判断を担当。ローカル LLM 環境である LM Studio を主要な推論エンジンとして利用します。Python で実装。
- ToolRouter (Routing): 推論エンジンを用いて、大量のツールの中から現在の文脈に最適なものを事前に選別。モデルの混乱を防ぎ、精度と速度を両立させます。
- MCP/CLI (Limbs): 外部操作を担う「手足」。Model Context Protocol (MCP) を通じてツールを実行します。
- Discord (Interface): 人間とのインタラクション。進捗報告や承認、相談を行います。
- Language: Python 3.11+
- LLM: LM Studio (Local LLM)
- Container: Podman (Security Isolation)
- Messaging: Discord
- Architecture: Model Context Protocol (MCP)
※現在開発中のため、セットアップ手順は随時更新されます。
-
リポジトリをクローン
-
Discord Bot の準備
- Discord Developer Portal にアクセスし、新しい Application を作成。
BotセクションからTokenを取得。Privileged Gateway Intents欄の MESSAGE CONTENT INTENT を ON に設定。[!IMPORTANT] これを有効にしないとメッセージの読み取りができず、起動時にエラーが発生します。
-
環境変数の設定
.env.exampleをコピーして.envを作成。- 各種 API キーやトークンを記入。
- [推奨] dotenvx による暗号化
- セキュリティ向上のため、
dotenvxを利用して.envを暗号化します。
# dotenvx のインストール (Mac) brew install dotenvx/brew/dotenvx # 暗号化の実行 (.env.keys が生成されます) dotenvx encrypt # 復号 (生テキストに戻す場合) # dotenvx decrypt
- セキュリティ向上のため、
DISCORD_TOKEN: 取得したボットトークン。GEMINI_API_KEY: (任意) ツール作成支援用の Gemini API キー。LM_STUDIO_URL: LM Studio API のエンドポイント。
-
コンテナのビルドと起動
- 暗号化を利用する場合:
.env.keysに記載されたDOTENV_PRIVATE_KEY_DOT_ENVの値を環境変数DOTENV_PRIVATE_KEYとして指定して起動します。podman compose build DOTENV_PRIVATE_KEY="【あなたの.env.keysのキー】" podman compose up -d - 暗号化を利用しない場合:
通常通り起動します。
podman compose build podman compose up -d
- 暗号化を利用する場合:
Bot が起動すると、Discord を通じて AI と対話できます。
- メンション:
@ClawSpore Bot [メッセージ]で AI に話しかけます。 - コマンド:
!ask [メッセージ]でも同様に質問が可能です。 - 疎通確認:
!helloで Bot の応答確認ができます。
指定したログ用チャンネル(デフォルト: #log)に、起動通知やシステムログが送信されます。
主要なプロンプトは prompts/ にまとめられています。
.
├── core/ # 自律判断・ロジック層 (思考)
│ ├── llm_client.py # 各種 LLM へ接続クライアント
│ ├── router.py # ツール選別 (ToolRouter) 実装
│ └── main.py # エントリーポイント
├── interface/ # 外部インターフェース層
│ └── discord_client.py # Discord Bot 実装
├── prompts/ # プロンプト定義集
├── scripts/ # メンテナンス・テスト用スクリプト
├── Dockerfile # コンテナ定義
├── compose.yaml # サービス定義
└── requirements.txt # Python 依存関係
- 基本的な Discord インターフェースの実装
- LM Studio / Gemini 連携基盤の構築
- Podman 上での安全なツール実行環境の構築
- MCP および動的ツール(
create_tool)による機能拡張 - 自己改善・自律思考ループ (ReAct) の安定化
- 人間との協調保護 (Human-in-the-Loop) の実装
- 記憶の永続化 (Memory Persistence) の実装
- 自己診断と自動修復 (Self-Healing) の実装
- 複数セッションの管理と長期記憶 (RAG) の基礎実装
- セキュリティ・ガバナンスと詳細な実行権限管理 (ACL) の基礎実装
- RAG の検索精度向上と長期記憶の自律的な整理(ノイズフィルタリング実装済み)
- ACL の Discord 上からの動的設定機能の実装(
grant_tool,revoke_tool完了) - マルチモーダル対応(画像解析・リサイズ処理実装済み)
- 外部 API 連携ツールのプリセット拡充(メンテナンス、画像解説ツール追加)
- ToolRouter によるツールの動的選別とフィルタリングの実装