はじめに
metatell Bot SDKを使用して、metatellルームで動作するAIボットを開発するためのガイドです。チャットボット、音声応答ボット、アバター制御など、様々な機能を実装できます。
📦 GitHubリポジトリ: https://github.com/urth-inc/metatell-ai-bot
📚 APIドキュメント: https://sdk.metatell.io/bot/
前提条件
- Node.js 20以上(推奨: 22+)
- CLI(
@metatell/bot-cli)を使う場合はCLIリファレンスを確認してください。Node.js 22.12以上が必要です。 - TypeScript(推奨、JavaScriptでも可)
- metatellルームへのアクセス権限
インストール
# npmを使用
npm install @metatell/bot-sdk dotenv
# yarnを使用
yarn add @metatell/bot-sdk dotenv
# pnpmを使用
pnpm add @metatell/bot-sdk dotenv
最小実装例
基本的なチャットボットを実装する最小コードです。
import { createMetatellClient } from '@metatell/bot-sdk';
// クライアントの作成
const client = createMetatellClient({
serverUrl: 'wss://metatell.app',
roomId: 'YOUR_ROOM_ID', // ルームIDを指定
username: 'MyBot', // ボットの表示名
debug: true // デバッグログを有効化
});
// 接続
await client.connect();
// ボット情報を保存
const botInfo = await client.getInfo();
console.log('Bot connected:', botInfo.name);
// メッセージハンドリング(メンション時のみ応答)
client.chat.onMessage(async ({ from, text, mention, reply }) => {
// 自分へのメンションをチェック
// メンション形式: [@DisplayName](session-id)
if (mention?.sessionId === botInfo.sessionId) {
// textはSDK側で先頭のメンションを除去済み
const question = text.trim();
// 簡単な応答を返す
await reply(`こんにちは ${from.name}さん!「${question}」についてお答えします。`);
}
});
// 接続維持
process.on('SIGINT', async () => {
await client.disconnect();
process.exit(0);
});