OpenClawをOCI上のVM(Always Free)に構築してAutonomous AI Databaseを管理させてみたかった
今回は、Oracle Cloud Infrastructure (OCI) のAlways Free環境を活用して、OpenClawを構築し、さらにそこからAutonomous AI Databaseを操作できるようにしてみた記録をまとめました。
OpenClawについては色々話題になっていたので、試しにやってみようという感じです。
目次
OpenClawについて
OpenClawは、Discordや他のチャットプラットフォームと連携して会話ができるAIエージェントシステムです。
今回はこいつをOCIのVM上に住まわせて、チャット経由でデータベースの管理をお願いできるようにあげるのが目標です。
- 公式サイト: https://openclaw.ai
- GitHub: https://github.com/openclaw/openclaw
今回やりたいこと
構成はこんな感じです。すべてOCIのAlways Free枠で収めています。
- インフラ: OCI Compute Instance (VM.Standard.A1.Flex, ARM64)
- データベース: Oracle Autonomous Database (Always Free)
- インターフェース: Discord
- 主役: OpenClaw
DiscordからOpenClawに「〇〇のデータ教えて」とか「〇〇のデータ削除して」とかって言ったら、裏でAutonomous DatabaseにSQL投げて結果を返してくれる、みたいなことができると最高です。
前提環境
- OCI上でUbuntu 24.04 (ARM64) のVMが起動していること
- Autonomous Database (ADB) が構築済みであること
OpenClawの構築
ここではOpenClawのインストール、設定、Discordとの連携、Discordからの会話確認までを行います。
まずはVMが作りたてなら、aptアップデートから始めましょう。
そして最低限、Node.jsとGitのインストールが必要です。
インストールしてバージョンチェックまで出来ればOK!
sudo apt update && sudo apt upgrade -y
sudo apt install -y git curl
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
nvm install 24
node -v
npm -v
git --version
OpenClawをインストールします。
手順は公式ドキュメントから引用。
npm i -g openclaw
これだけ!
次にOpenClawの設定に必要なDiscord Botの設定や、AIエージェントのAPIトークンを設定します。
まずはDiscord Botから。
Discord Developer Portalにアクセス。
ApplicationsからNew Applicationを選択して、今回のOpenClaw用のDiscord Botを新規作成します。
BotタブからBotちゃんに必要な権限などを設定して、「Reset Token」を押してトークンを取得します。
また、作ったBotちゃんを自分のDiscordサーバーに追加するために、OAuth2タブから「URL Generator」を選択して、必要な権限を設定して「Generate URL」を押してURLを取得します。
次にAIエージェントのAPIトークンの取得です。
無料で使えるGeminiとOpenAIの安価なgpt-4o-miniモデルをつかいました。
Google AI StudioとOpenAIのAPIプラットフォームから取得してください。
取得出来たら、OpenClawを起動させて設定していきます。
openclaw onboard
「こいつはメッチャ権限強くてリスクある奴やけど分かってんな?(意訳)」と聞かれるので、Yesと答えておきましょう。
覚悟がないものは、ここでNoを選んで終了です!!
設定モードはクイックスタートでいいと思います。
特定項目を自分で設定したいなら、Manualを選択してください。
モデルに関して、スクショはGoogleバージョンですが、自分の好きなモデルを選んでください。
使用するチャットはDiscordです。
Google ChatやWhatsApp、LINEまでいろいろなチャットに対応していました。
Discordを選択したら、発行したBotトークンを入力しましょう。
どのチャンネルにアクセスさせたいかの制限も行うことができます。
サーバー名#チャンネル名で指定します。
特にない場合はNoでよいです。
skillsというか、拡張機能?みたいなものを設定します。
今回は特に何も設定しませんでしたが、後から設定することも可能です。
その他もろもろAPIを聞かれましたが、今回は全部SKIPしました。
必要な設定が済んだら、いよいよ起動となります。
Hatch in TUI(recommended)を選択しましょう。
ステータス確認コマンドを打って、起動していればOKです。
OpenClaw status
ここまで出来たら、DiscordにOpenClawのBotちゃんを招待して、「こんにちは!」から始めましょう。
無事に返答が来れば、OpenClawの基本構築は完了です。
VMからAutonomous AI Databaseへの接続設定
ここが今回の技術的なキモです!
OpenClawが動いているUbuntu VMから、ADBに接続できるようにOracle Instant Clientをセットアップします。
ARM64環境なので、対応するパッケージを選ぶ必要があります。
1. 依存ライブラリの準備
Ubuntu 24.04 (Noble) 以降ではライブラリ名が変わっているので、互換性のための設定が必要でした。
sudo apt update
sudo apt install -y libaio1t64 unzip curl
# シンボリックリンク作成
sudo ln -s /usr/lib/aarch64-linux-gnu/libaio.so.1t64 /usr/lib/aarch64-linux-gnu/libaio.so.1
2. Instant Clientのダウンロードと配置
Oracleの公式サイトから ARM64 (aarch64) 用の Basic Package と SQL*Plus Package (Ver 23ai) をダウンロードして、VMに転送します。
今回は /opt/oracle に配置しました。
# 解凍と権限設定
cd /opt/oracle
sudo unzip instantclient-basic-linux.arm64-23.26.0.0.0.zip
sudo unzip instantclient-sqlplus-linux.arm64-23.26.0.0.0.zip
sudo chown -R oracleadmin:oracleadmin /opt/oracle
3. 環境変数の設定
パスを通さないと動かないので、 /etc/profile.d/oracle.sh を作成してシステム全体で使えるようにしました。
echo 'export PATH=/opt/oracle/instantclient-basic-linux.arm64-23.26.0.0.0/instantclient_23_26:$PATH' | sudo tee /etc/profile.d/oracle.sh
echo 'export LD_LIBRARY_PATH=/opt/oracle/instantclient-basic-linux.arm64-23.26.0.0.0/instantclient_23_26' | sudo tee -a /etc/profile.d/oracle.sh
4. 接続テスト
設定ができたら sqlplus で接続確認です!
ここで ORA-12506 エラーが出たりしましたが、OCI側のACL(アクセス制御リスト)にVMのIPを追加するのを忘れていました…。
sqlplus 'OPENCLAW/"Welcome#1234"@OpenClawtest_medium'
無事にSQL*Plusでログインできれば、VMからの接続経路は確保完了です。
Discord経由でOpenClawからDBを操作する
いよいよ本番。DiscordでOpenClawに話しかけてみます。
一旦は何も知らないと思うので、コマンドを渡して結果を聞いてみました。
これは普通に返してくれた。
2度目は自然言語だけで聞いてみました。
これもキチンと返してくれました。
いくつか操作を試してみましたが、AIの性能によってしまうのかある程度ポンコツでした。
多分、きちんと課金すればキッチリやってくれるのだと思います。
お金に余裕があれば、上位のモデルで試してみたいと思います。
余裕があれば・・・
感想
まずは純粋にOCIのAlways Free環境だけで、これだけのAIエージェント基盤が作れるのはすごいですね。
特にUbuntu ARM環境でのOracle Clientセットアップは少しクセがありましたが(ライブラリ周りとか)、一度構築してしまえば安定して動いています。
あとはエージェントがどこまで賢くやってくれるかかなと思います。
AWR分析とかまでやってくれるのであれば、結構いいんじゃないかと思います。
今回は構築して少し触っただけなので、今後はどこまでやれるのか色々と試していきたいと思います。
ご参考までに。
























