背景
- 最近はローカルDevサーバーでOpenClawを使っている
- サーバーはubuntu serverで、discordとcodexを使う
- 便利だが複数回セットアップするのが大変なのでメモを残す
- 簡単に設定するため、Adminなど権限過多になっているので注意
Discord
Discordの設定
- Discord > Advanced > Developer Mode: ON
Discordのサーバーの作成
- Discord > Navibar > Create My Own > For me and my friends
- channelはprivateにした
DiscordのBotの作成
- Discord Developer Portal で New Application を作成
Bot- usernameとiconの設定をする
- 後々ここのtokenを取得する
Privileged Gateway Intents ですべての項目をON にして保存(以下など)- Message Content Intent
- Server Members Intent
- Presence Intent
- 自分のServerにインストール
- OAuth2 -> URL Generator で Scopeはbot > Permissionは
Administrator を選択 - Guild Installを選択
- 生成された URL をブラウザに貼り付け、自分のサーバーに Bot を招待
Priviledge Gateway Intentsのおすすめ
| オプション | 推奨設定 | 説明 |
|---|
| Public Bot | オフ | オフにすると、あなた(Application Owner)のみがBotをサーバーに招待可能。他者が無断でAI Botを別サーバーに追加するのを防止 |
| Requires OAuth2 Code Grant | オフ | OpenClawはOAuth2認証フローが不要なため、オフのまま |
| Message Content Intent | オン | 必ず有効化。有効でなければBotがメッセージ内容を読み取れない |
| Server Members Intent | 必要に応じて有効化 | エージェントがメンバー情報のクエリやロール権限チェックを必要とする場合に有効化 |
| Presence Intent | オフ | エージェントがメンバーのオンライン/オフライン状態を検知する必要がない限りオフにし、リソースを節約 |
OpenClaw
OpenClawのInstall
これはNixで入れたので割愛。
OpenClawの設定
SSH先でOAuthを開くので、openai codex用にsshのポートフォワードをセットアップする。
1
| ssh dev -L 1455:localhost:1455
|
oepnclawの設定:
openclaw onboard- Risk Acknowledgement: リスクについての確認。y
- Onboarding mode: QuickStart
- Model/auth provider: とりあえずCodex
- API キーの入力や、OAuth によるブラウザ認証(Google Antigravity OAuth など)を行う
- Channel Setup: ここで Discord を選択
- 取得した Discord Bot Token を入力
- これはDiscord Portal > Bot > Reset Tokenボタンから取れる
- Skills/Hooks: とりあえずなし
起動確認
次のコマンドで起動確認した。systemd –userなので、user単位で動いていた。これでBotもうごくようになった。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| ┌── dev ~/dotfiles (main Dirty=) py=3.12.13
└─▶ systemctl --user status openclaw-gateway.service
● openclaw-gateway.service - OpenClaw Gateway (v2026.3.12)
Loaded: loaded (/home/mike/.config/systemd/user/openclaw-gateway.service; enabled; preset: enabled)
Active: active (running) since Mon 2026-03-30 01:01:43 JST; 20min ago
Main PID: 3256295 (openclaw-gatewa)
Tasks: 11 (limit: 37720)
Memory: 642.6M (peak: 652.9M)
CPU: 11.726s
CGroup: /user.slice/user-1000.slice/user@1000.service/app.slice/openclaw-gateway.service
└─3256295 openclaw-gateway
Mar 30 01:02:02 dev node[3256295]: 2026-03-30T01:02:02.721+09:00 [tools] read failed: ENOENT: no such file or directory, access '/home/mike/.openclaw/worksp>
Mar 30 01:02:19 dev node[3256295]: 2026-03-30T01:02:19.143+09:00 [tools] tools.profile (coding) allowlist contains unknown entries (apply_patch, image). The>
Mar 30 01:03:08 dev node[3256295]: 2026-03-30T01:03:08.827+09:00 [tools] tools.profile (coding) allowlist contains unknown entries (apply_patch, image). The>
Mar 30 01:03:38 dev node[3256295]: 2026-03-30T01:03:38.840+09:00 [tools] tools.profile (coding) allowlist contains unknown entries (apply_patch, image). The>
Mar 30 01:07:29 dev node[3256295]: 2026-03-30T01:07:29.671+09:00 [tools] tools.profile (coding) allowlist contains unknown entries (apply_patch, image). The>
Mar 30 01:08:00 dev node[3256295]: 2026-03-30T01:08:00.386+09:00 [tools] tools.profile (coding) allowlist contains unknown entries (apply_patch, image). The>
Mar 30 01:13:46 dev node[3256295]: 2026-03-30T01:13:46.103+09:00 [ws] ⇄ res ✓ channels.status 516ms conn=6e689ce2…8d2d id=c0795fd5…47fa
Mar 30 01:19:27 dev node[3256295]: 2026-03-30T01:19:27.631+09:00 [tools] tools.profile (coding) allowlist contains unknown entries (apply_patch, cron, image>
Mar 30 01:19:51 dev node[3256295]: 2026-03-30T01:19:51.020+09:00 [tools] tools.profile (coding) allowlist contains unknown entries (apply_patch, cron, image>
Mar 30 01:20:05 dev node[3256295]: 2026-03-30T01:20:05.642+09:00 [tools] tools.profile (coding) allowlist contains unknown entries (apply_patch, cron, image>
|
ログ確認
1
2
3
4
5
6
7
8
| └─▶ journalctl --user -u openclaw-gateway.service
Mar 30 01:01:43 dev systemd[3029]: Started openclaw-gateway.service - OpenClaw Gateway (v2026.3.12).
Mar 30 01:01:44 dev node[3256295]: (node:3256295) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative inste>
Mar 30 01:01:44 dev node[3256295]: (Use `node --trace-deprecation ...` to show where the warning was created)
Mar 30 01:01:47 dev node[3256295]: 2026-03-30T01:01:47.207+09:00 [canvas] host mounted at http://127.0.0.1:18789/__openclaw__/canvas/ (root /home/mike/.open>
Mar 30 01:01:47 dev node[3256295]: 2026-03-30T01:01:47.244+09:00 [heartbeat] started
Mar 30 01:01:47 dev node[3256295]: 2026-03-30T01:01:47.248+09:00 [health-monitor] started (interval: 300s, startup-grace: 60s, channel-connect-grace: 120s)
Mar 30 01:01:47 dev node[3256295]: 2026-03-30T01:01:47.252+09:00 [gateway] agent model: openai-codex/gpt-5.4
|
直近のみ。
1
| journalctl --user -u openclaw-gateway.service -n 100 -f
|
clawの設定
設定ファイルは~/.openclaw/workspaceにある。
- IDENTITY.md: AI自身のアイデンティティ(名前、性格、口調など)
- USER.md: ユーザー(自分)に関する情報
- MEMORY.md: 長期記憶。重要な事実や文脈がここに蓄積される
- SOUL.md: AI の行動原理や「魂」にあたる部分。
- このファイルは非常にユニークで、対話を通じて「実行前には必ず確認してほしい」とか「定期的にリポジトリを同期して」といったルールが追記されていく。
- git log で履歴を見ると、AI が指導を受けて成長していく様子が分かる
- AGENTS.md, TOOLS.md: エージェントの構成や使用可能なツールの定義
/statusのコマンドでの、You are not authorized to use this commandエラーの対策。
User > Copy User IDからUserIdをコピーする。
1
| openclaw config set channels.discord.allowFrom '["YOUR_USER_ID"]'
|
左のNaviバーでアイコンを右クリック>ServerIDのコピー。
下のYOUR_SERVER_IDをリプレイスする。
1
2
3
| openclaw config set channels.discord.groupPolicy '"allowlist"' --strict-json
openclaw config set channels.discord.guilds.YOUR_SERVER_ID.requireMention false --strict-json
openclaw config set channels.discord.guilds.YOUR_SERVER_ID.users '["YOUR_USER_ID"]' --strict-json
|
設定のリスタートをする。
1
| openclaw gateway restart
|
設定の変更結果。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| "channels": {
"discord": {
"enabled": true,
"token": "xxx.xxx.xxx",
"groupPolicy": "allowlist",
"streaming": "off",
"allowFrom": [
"YOUR_USER_ID"
],
"guilds": {
"YOUR_SERVER_ID": {
"requireMention": false,
"users": [
"YOUR_USER_ID"
]
}
}
}
},
|
参考文献