windows上のLLMとxangiを接続し、xangi同士で会話させる
本記事は個人的なメモを残していくための記事です
DiscordにでxangiをBOTとして参加させ、参加させたBOT同士で会話ができれば面白そうだなということでセットアップをしていく
今回は友人のもつLLMと自分が持つLLMをDiscordに参加させる
xangiのGithubページについては以下の通り
v0.19.0を使用する
前提:
・windowsマシン上にollamaをインストールしてgemma4:26bを使えるようにしておく
・windowsマシン上にVirtualBoxをインストールしてRockyLinux9のVMを用意しておく
xangiのセットアップ
xangiのセットアップとDiscordへの参加は割とサクッとできるから簡潔に
xangiのクローン
git clone https://github.com/karaage0703/xangi.git ./
cd xangi
Discordで使うためのセットアップは以下を参照
リンク
上記の7.で npm run build した後に npm start で起動する
ここまででBotと会話できるようになる
BOT同士を会話させる
BOTの反応条件に関しては以下のファイルに記述されているみたい
index.ts
これを編集する
以下の内容を盛り込む
- BOTが返答時につけるユーザーメンションを有効化
- 返信でメッセージが送られてきた場合にメンションがついてなくても反応するようになっているのを無効化
- メンションがついていない限り反応しないように条件変更
- 現状は一時的に表示する「考え中…」のメッセージを編集して返答結果を表示するようになっているので返答結果は新規メッセージとして送信するように変更
あとはチャンネルトピックに各BOTの情報(名前、愛称、ユーザーID)や「話しかける」という旨の内容はメンションをつけるということを記載しておく
ここまででBOT達を起動すれば以下のように彼らで会話できるようになる(画像は話しかけるとこだけ)

xangiができることを拡張していく
xangiの作者である からあげ氏(リンク) が別プロジェクトでai-assistant-workspace(リンク)を公開している
これをxangiに組み込む
作業ディレクトリをxangiにしたまま
git clone https://github.com/karaage0703/ai-assistant-workspace ./workspace
でリポジトリをworkspace配下にクローンする
念のためxangiの.envファイルに
WORKSPACE_PATH=(ルートからのパス)/xangi/workspace
と書いておけばしっかりと認識されるはず(自分の環境では/xangiとなぜか認識されていた)
npm startでログが流れ始めるが、その中で以下のようにskillsを読み込んでいるログが流れるのでこれを見て読み込まれているか判断してもよいだろう(Discord上で/skillsを打つのでももちろん良い)
[xangi] Loaded 19 skills from /xangi/workspace
基本は xangi + ai-assistant-workspace で使っていけば使い勝手良くなるんじゃないかな
自分はここにagent-browserを足してブラウザ操作をできるようにしている
今後の展望
・業務ではSlackを使う場合が多い(というかSlackしか使ってない)のでそちらに組み込んで作業の自動化フローを組めれば仕事にもつかえるかも
・agency-agentsを導入してxangiが話すときに専門的な立場から話してもらうようにすると面白そう
・複数BOTをさらに追加してチームを組ませて作業させるのも面白そう(チーム開発シミュレーションゲームみたいな)
備考
ここまでVM上で直実行をしているためxangiが勝手にVM内の環境を触れるようになっているため、「万が一」が心配な人はdockerで起動して環境を隔離するべき(Docker用の説明もGithubに載っている)
ただ、ollamaコンテナが作成されるのでwindowsホストマシン上とつなぎたい場合はこのコンテナを起動しないようにしたり、接続用の環境変数の設定を忘れずにしましょう(docker-compose.standalone.ymlをいじればいい)
最後に
xangi と ai-assistant-workspace を開発していただいた作者の からあげ氏 には敬意を表し、感謝したいと思います。
Discussion