Goosuke は小~中規模組織向けの業務効率化ツールで、オープンソースのAIエージェント「Goose」とFastAPIを組み合わせたプラットフォームです。Dockerコンテナ環境で動作し、Discordと連携して、会議の要約作成などを自動化します。
最小限のトリガーで最大限の自動化を実現し、チームの生産性向上をサポートします。
- Discord連携: Discordチャンネルでの会話を要約
- 拡張機能管理: Goose拡張機能のインストールと管理
- API: RESTful APIによる柔軟な連携
- 認証: JWTベースの認証システム
- 自動化ワークフロー: 最小限のトリガーで複雑なタスクを自動実行
- AI エージェント: Goose(オープンソース)
- 発火レイヤー: FastAPI(APIリクエスト、Webhook、Botなどのアクションを処理)
- 実行レイヤー: Goose CLI(タスクの実行を担当)
- コンテナ化: Docker & Docker Compose
- データベース: SQLite(最小構成)
- 認証: JWTベースの簡易認証
- クライアント連携: Discord Bot API
- Docker と Docker Compose
- Discord Bot トークン(Discord連携機能を使用する場合)
- リポジトリをクローン
git clone https://github.com/yourusername/goosuke.git
cd goosuke
- 環境変数の設定
cp .env.example .env
.env
ファイルを編集して、必要な環境変数を設定します。
- Dockerコンテナのビルドと起動
docker-compose up -d
Goosuke は「アクション」と「タスク」の2つの概念を中心に設計されています:
- アクション: APIリクエスト、Slack/Discord botのメッセージ、Webhookなど、システムへの入力点
- タスク: アクションから得られた「コンテキスト」と、ユーザーが望む動作を記述した「プロンプト」のセット
この設計により、新しいアクションとタスクを定義するだけで、様々な作業を自動化できます。最小限のトリガーで最大限の自動化を実現するGoosukeの中核的な考え方です。
APIドキュメントは以下のURLで確認できます:
- Swagger UI: http://localhost:8000/api/docs
- ReDoc: http://localhost:8000/api/redoc
- Discord Developer PortalでBotを作成
- Botトークンを取得し、
.env
ファイルのDISCORD_BOT_TOKEN
に設定 - 必要な権限(メッセージの読み取り、送信、リアクションの追加など)を付与
- Botを目的のサーバーに招待
- Discordチャンネルで会話を行う
- 要約したい会話の範囲のメッセージに ✏️(鉛筆)リアクションを付ける
- Botが自動的に関連メッセージを収集し、要約を生成
- 要約結果がチャンネルに投稿される
注意: Goose CLIのconfigure
コマンドは対話的に実行する必要があるため、APIからは実行できません。以下の設定は、ターミナルで直接実行してください。
Gooseを使用するには、LLM(大規模言語モデル)プロバイダーの設定が必要です。以下のコマンドをターミナルで実行してください:
goose configure
対話的なプロンプトに従って、使用するLLMプロバイダー(OpenAI、Anthropic、Mistral AIなど)とAPIキーを設定します。
詳細はGoose公式ドキュメント - LLM Providersを参照してください。
Gooseの機能を拡張するために、MCPベースの拡張機能を追加できます:
# 拡張機能の追加
goose configure
# プロンプトでExtensionsを選択し、拡張機能の追加・管理を行います
拡張機能の詳細については、Goose公式ドキュメント - Using Extensionsを参照してください。
# 依存関係のインストール
pip install -r requirements.txt
# 開発サーバーの起動
uvicorn api.main:app --reload
pytest
詳細なテスト方法については、テストドキュメントを参照してください。
プロジェクトへの貢献は大歓迎です。Issue報告や機能提案、プルリクエストなどお気軽にどうぞ。