■ はじめに
からあげ(@karaage0703)さんのポストをきっかけに、AIエージェントに興味を持ちました。
https://x.com/karaage0703/status/2034389423929069833

紹介されていた書籍👇
「生活に溶け込むAI — AIエージェントで作る、自分だけのアシスタント」
をBOOTHで購入。
本書ではRaspberry Piを前提とした構成になっていますが、
今回はWindows 11環境で構築を行いました。
WSL上にUbuntu環境を構築し、その中でAIエージェントを構築しています。
また、書籍ではClaude Codeが使用されていますが、今回は
👉 Codex CLI + xangi
という構成で実装しました。
さらに比較のために
👉 OpenClaw
も導入しています。
■ 構成全体
Discord
↓
(xangi / OpenClaw)
↓
Codex CLI
↓
AGENTS.md / BOOTSTRAP.md / memory / skills
👉 単なるAIではなく
👉 状態を持つエージェント
■ WSL + Ubuntu構築
wsl --install
wsl
■ Node / nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
source ~/.bashrc
nvm install node
■ Codex CLI
npm install -g @openai/codex
■ エージェント基盤
mkdir ~/ai-agent
cd ~/ai-agent
■ AGENTS.md(行動方針)
touch AGENTS.md
# AGENTS
## Role
あなたはソフトウェアエンジニア
## Behavior
- 簡潔に答える
- コード提示
👉 AIの「人格」を定義
■ BOOTSTRAP.md(初期化)
touch BOOTSTRAP.md
# BOOTSTRAP
## Initialization
- AGENTS.mdを読む
- memory確認
👉 AIの「動き」を定義
■ memory(永続記録)
mkdir memory
cd memory
touch user.md projects.md setup-log.md
👉 本質👇
AIに覚えさせるな
ファイルに書かせろ
■ skills(自動化)
cd ~/ai-agent
mkdir skills
touch skills/log-setup.md
# log-setup
## 目的
setup-log.mdに記録
👉 効果👇
毎回指示 → 自動化
■ Discord Bot作成
- https://discord.com/developers/applications
- New Application
- Bot作成
- Token取得
■ 設定
■ 注意
トークンは絶対に公開しない
■ xangi導入
git clone https://github.com/karaage0703/xangi.git
cd xangi
npm install
npm run build
■ ハマりポイント(重要)
spawn claude ENOENT
■ 原因
デフォルトがClaude
■ 解決
nano .env
DISCORD_TOKEN=xxxx
DISCORD_ALLOWED_USER=xxxx
AGENT_BACKEND=codex
WORKSPACE_PATH=/home/shirai/ai-agent
日本語書てあるから親切設計
👉 ここかなりハマった
■ 起動
npm start
■ OpenClaw導入
curl -fsSL https://openclaw.ai/install.sh | bash
openclaw onboard --install-daemon
■ WSLの罠
sudo nano /etc/wsl.conf
[boot]
systemd=true
wsl --shutdown
■ Gateway起動
openclaw gateway install
systemctl --user start openclaw-gateway
■ Discord allowlist設定(ハマりポイント)
OpenClawでDiscord連携する際、
ユーザー制限(allowlist)を設定しないとメッセージが無視される場合があります。
実際のログ:
reason: "no-mention"
discord: skipping guild message
■ 設定ファイル
~/.openclaw/openclaw.json
■ 修正前
"discord": {
"enabled": true,
"token": "xxxx",
"groupPolicy": "allowlist",
"guilds": {
"*": {}
},
"streaming": "off"
}
■ 修正方法①(推奨:一時的に全開放)
まずは動作確認のため、以下に変更:
"discord": {
"enabled": true,
"token": "xxxx",
"groupPolicy": "open",
"guilds": {
"*": {}
},
"streaming": "off"
}
■ これの意味
groupPolicy: open
👉 すべてのユーザー・チャンネルを許可
■ 修正方法②(本番向け:allowlist)
特定ユーザーのみ許可する場合:
"discord": {
"enabled": true,
"token": "xxxx",
"groupPolicy": "allowlist",
"allowFrom": ["679894887277133886"],
"guilds": {
"*": {}
},
"streaming": "off"
}
■ これの意味
allowFrom
👉 指定したユーザーIDのみ使用可能
■ 設定反映
systemctl --user restart openclaw-gateway.service
■ Discord接続の罠
@codex-bot こんにちは
エラー👇
no-mention
👉 解決👇
<@BOT_ID> テスト
<@1234567890> テスト
■ xangi vs OpenClaw
| 項目 | xangi | OpenClaw |
|---|---|---|
| 軽さ | ◎ | △ |
| 拡張 | 手動 | 自動 |
| 難易度 | 低 | 高 |
■ コスト問題
モデルが良いと金が溶ける
■ ハマりまとめ
- Bot競合
- systemd
- メンション
- Claude設定
■ まとめ
👉 結論
xangi → 軽い
OpenClaw → 強い
👉 使い分け
■ おわりに
正直、
1日でここまで作れるのは衝撃




