
BotKit by Fedify 
@botkit@hollo.social · Reply to BotKit by Fedify :botkit:'s post
BotKit 0.2.0のリリース
BotKit 0.2.0をリリースしました!BotKitを初めて知る方のために簡単に説明すると、BotKitはTypeScriptで開発されたスタンドアロンのActivityPubボットフレームワークです。Mastodon、Misskeyなどさまざまなフェディバース(#fediverse)のプラットフォームと連携でき、既存プラットフォームの制約なしに自由にボットを作成できます。
このリリースは、フェディバースにおけるボット開発をより簡単で強力にするための旅の重要な一歩であり、コミュニティから要望のあった機能を多数導入しています。
より良いボットインタラクションへの旅
BotKitの開発において、私たちは常にボットをより表現力豊かでインタラクティブにすることに焦点を当ててきました。バージョン0.2.0では、フェディバースの社会的側面をボットに取り入れることで、さらに一歩前進しました。
カスタム絵文字でボットの個性を表現
最も要望の多かった機能の一つがカスタム絵文字のサポートです。これにより、ボットは独自の視覚要素でメッセージを目立たせ、自分だけの個性を表現できるようになりました。
// ボット用のカスタム絵文字を定義
const emojis = bot.addCustomEmojis({
botkit: {
file: `${import.meta.dirname}/images/botkit.png`,
type: "image/png"
},
fedify: {
url: "https://fedify.dev/logo.png",
type: "image/png"
}
});
// メッセージにカスタム絵文字を使用
await session.publish(
text`BotKit ${customEmoji(emojis.botkit)}は、Fedify ${customEmoji(emojis.fedify)}によって支えられています`
);
この新しいAPIでは、次のことが可能になりました。
Bot.addCustomEmojis()
でボットにカスタム絵文字を追加customEmoji()
関数でメッセージに絵文字を含める- Fedifyの
Emoji
オブジェクトをtext
タグテンプレートで使用する
リアクションによるコミュニケーション
コミュニケーションは単にメッセージを投稿するだけではありません。他の人のメッセージに反応することも重要です。新しいリアクションシステムは、ボットとフォロワーの間に自然な交流ポイントを作り出します。
// 標準のUnicode絵文字でメッセージにリアクション
await message.react(emoji`👍`);
// または定義したカスタム絵文字でリアクション
await message.react(emojis.botkit);
// リアクションを認識して応答するボットを作成
bot.onReact = async (session, reaction) => {
await session.publish(
text`${reaction.actor}さん、私のメッセージに${reaction.emoji}でリアクションしてくれてありがとうございます!`,
{ visibility: "direct" }
);
};
この機能により、ボットは次のことができるようになりました。
Message.react()
を使用してUnicode絵文字でメッセージにリアクション- 定義したカスタム絵文字でリアクション
Bot.onReact
とBot.onUnreact
ハンドラーでリアクションイベントを処理
引用による会話
議論では、他の人が言ったことを参照する必要がしばしばあります。新しい引用機能により、より結束力のある会話スレッドを作成できます。
// ボットの投稿で他のメッセージを引用
await session.publish(
text`この興味深い視点について答えます...`,
{ quoteTarget: originalMessage }
);
// ユーザーがボットのメッセージを引用した場合の処理
bot.onQuote = async (session, quoteMessage) => {
await session.publish(
text`${quoteMessage.actor}さん、私の考えを共有してくれてありがとうございます!`,
{ visibility: "direct" }
);
};
引用機能により、ボットは次のことができるようになりました。
quoteTarget
オプションでメッセージを引用Message.quoteTarget
を通じて引用されたメッセージにアクセス- 新しい
Bot.onQuote
イベントハンドラーで引用イベントを処理
視覚的な改善
コミュニケーションには視覚的要素も重要なため、ボットの表現方法を改善しました。
- ウェブインターフェースで画像添付ファイルが正しく表示されるようになりました
- ボットのコンテンツがより見やすくなり、豊かな体験を提供します
内部改善:活動の伝播の強化
フェディバースでの活動が伝播する方法も改善されました。
- 返信、共有、更新、削除のより正確な伝播
- 元のメッセージ作成者に活動が適切に送信されます
これらの改善により、様々なフェディバースプラットフォームでのボットの相互作用が一貫性と信頼性を持つようになります。
BotKit 0.2.0で最初の一歩を踏み出す
これらの新機能を体験してみたいですか?BotKit 0.2.0はJSRで利用可能で、簡単なコマンドでインストールできます。
deno add jsr:@fedify/botkit@0.2.0
BotKitはTemporal API(JavaScriptではまだ試験的な機能)を使用するため、deno.jsonでこれを有効にする必要があります。
{
"imports": {
"@fedify/botkit": "jsr:@fedify/botkit@0.2.0"
},
"unstable": ["temporal"]
}
これらの簡単なステップで、最新機能を使ってフェディバースボットを作成またはアップグレードする準備が整いました。
今後の展望
#BotKit 0.2.0は、フェディバースボット開発をアクセスしやすく、強力かつ楽しいものにするための私たちの継続的な取り組みを示しています。これらの新機能が、皆さんのボットをフェディバースコミュニティでより魅力的でインタラクティブなメンバーにするのに役立つと信じています。
完全なドキュメントと詳細な例については、私たちのドキュメントサイトをご覧ください。
フィードバック、機能リクエスト、コード貢献を通じてこのリリースに貢献してくださったすべての方々に感謝します。BotKitコミュニティは成長を続けており、皆さんが作成するものを楽しみにしています!
BotKitは、ActivityPubサーバーアプリケーションを作成するための低レベルフレームワークFedifyによって支えられています。