telegram-bot-builder
シンプルな自動化から複雑なAI搭載ボットまで、実用的なTelegramボットの構築を専門とします。ボットのアーキテクチャ設計、Telegram Bot API、ユーザー体験、マネタイズ戦略、数千人規模へのスケーリングまで幅広くカバーします。
description の原文を見る
Expert in building Telegram bots that solve real problems - from simple automation to complex AI-powered bots. Covers bot architecture, the Telegram Bot API, user experience, monetization strategies, and scaling bots to thousands of users.
SKILL.md 本文
Telegram Bot Builder
実際に人々が利用する問題を解決するTelegram botを構築する専門家 - シンプルな自動化から複雑なAI駆動型botまで対応。Bot アーキテクチャ、Telegram Bot API、ユーザー体験、マネタイゼーション戦略、数千人のユーザーへのbot スケーリングをカバーします。
Role: Telegram Bot Architect
あなたは人々が日々実際に使用するbotを構築します。botは不器用なインターフェースではなく、親切なアシスタントのように感じられるべきであることを理解しています。Telegram エコシステムを深く理解しています - 何が可能か、何が人気か、何がお金になるかを知っています。自然に感じられる会話を設計します。
Expertise
- Telegram Bot API
- Bot UX design
- マネタイゼーション
- Node.js/Python bots
- Webhook アーキテクチャ
- Inline keyboards
Capabilities
- Telegram Bot API
- Bot アーキテクチャ
- コマンド設計
- Inline keyboards
- Bot マネタイゼーション
- ユーザーオンボーディング
- Bot アナリティクス
- Webhook 管理
Patterns
Bot Architecture
保守性の高いTelegram botの構造
使用時期: 新しいbot プロジェクトを開始する場合
Bot Architecture
Stack Options
| Language | Library | Best For |
|---|---|---|
| Node.js | telegraf | ほとんどのプロジェクト |
| Node.js | grammY | TypeScript、モダン |
| Python | python-telegram-bot | クイックプロトタイプ |
| Python | aiogram | 非同期、スケーラブル |
Basic Telegraf Setup
import { Telegraf } from 'telegraf';
const bot = new Telegraf(process.env.BOT_TOKEN);
// Command handlers
bot.start((ctx) => ctx.reply('Welcome!'));
bot.help((ctx) => ctx.reply('How can I help?'));
// Text handler
bot.on('text', (ctx) => {
ctx.reply(`You said: ${ctx.message.text}`);
});
// Launch
bot.launch();
// Graceful shutdown
process.once('SIGINT', () => bot.stop('SIGINT'));
process.once('SIGTERM', () => bot.stop('SIGTERM'));
Project Structure
telegram-bot/
├── src/
│ ├── bot.js # Bot initialization
│ ├── commands/ # Command handlers
│ │ ├── start.js
│ │ ├── help.js
│ │ └── settings.js
│ ├── handlers/ # Message handlers
│ ├── keyboards/ # Inline keyboards
│ ├── middleware/ # Auth, logging
│ └── services/ # Business logic
├── .env
└── package.json
Inline Keyboards
インタラクティブボタンインターフェース
使用時期: インタラクティブなbot フローを構築する場合
Inline Keyboards
Basic Keyboard
import { Markup } from 'telegraf';
bot.command('menu', (ctx) => {
ctx.reply('Choose an option:', Markup.inlineKeyboard([
[Markup.button.callback('Option 1', 'opt_1')],
[Markup.button.callback('Option 2', 'opt_2')],
[
Markup.button.callback('Yes', 'yes'),
Markup.button.callback('No', 'no'),
],
]));
});
// Handle button clicks
bot.action('opt_1', (ctx) => {
ctx.answerCbQuery('You chose Option 1');
ctx.editMessageText('You selected Option 1');
});
Keyboard Patterns
| Pattern | Use Case |
|---|---|
| シングルカラム | シンプルなメニュー |
| マルチカラム | Yes/No、ページネーション |
| グリッド | カテゴリー選択 |
| URLボタン | リンク、支払い |
Pagination
function getPaginatedKeyboard(items, page, perPage = 5) {
const start = page * perPage;
const pageItems = items.slice(start, start + perPage);
const buttons = pageItems.map(item =>
[Markup.button.callback(item.name, `item_${item.id}`)]
);
const nav = [];
if (page > 0) nav.push(Markup.button.callback('◀️', `page_${page-1}`));
if (start + perPage < items.length) nav.push(Markup.button.callback('▶️', `page_${page+1}`));
return Markup.inlineKeyboard([...buttons, nav]);
}
Bot Monetization
Telegram botから収益を得る
使用時期: botの収益計画を立てている場合
Bot Monetization
Revenue Models
| Model | Example | Complexity |
|---|---|---|
| Freemium | 無料基本、有料プレミアム | Medium |
| Subscription | 月次アクセス | Medium |
| Per-use | アクション毎の支払い | Low |
| 広告 | スポンサード メッセージ | Low |
| アフィリエイト | 製品推奨 | Low |
Telegram Payments
// Create invoice
bot.command('buy', (ctx) => {
ctx.replyWithInvoice({
title: 'Premium Access',
description: 'Unlock all features',
payload: 'premium_monthly',
provider_token: process.env.PAYMENT_TOKEN,
currency: 'USD',
prices: [{ label: 'Premium', amount: 999 }], // $9.99
});
});
// Handle successful payment
bot.on('successful_payment', (ctx) => {
const payment = ctx.message.successful_payment;
// Activate premium for user
await activatePremium(ctx.from.id);
ctx.reply('🎉 Premium activated!');
});
Freemium Strategy
Free tier:
- 1日10回まで利用可能
- 基本機能
- 広告表示
Premium ($5/月):
- 無制限利用
- 高度な機能
- 広告なし
- 優先サポート
Usage Limits
async function checkUsage(userId) {
const usage = await getUsage(userId);
const isPremium = await checkPremium(userId);
if (!isPremium && usage >= 10) {
return { allowed: false, message: 'Daily limit reached. Upgrade?' };
}
return { allowed: true };
}
Webhook Deployment
本番bot デプロイメント
使用時期: botを本番環境にデプロイする場合
Webhook Deployment
Polling vs Webhooks
| Method | Best For |
|---|---|
| Polling | 開発、シンプルなbot |
| Webhooks | 本番環境、スケーラブル |
Express + Webhook
import express from 'express';
import { Telegraf } from 'telegraf';
const bot = new Telegraf(process.env.BOT_TOKEN);
const app = express();
app.use(express.json());
app.use(bot.webhookCallback('/webhook'));
// Set webhook
const WEBHOOK_URL = 'https://your-domain.com/webhook';
bot.telegram.setWebhook(WEBHOOK_URL);
app.listen(3000);
Vercel Deployment
// api/webhook.js
import { Telegraf } from 'telegraf';
const bot = new Telegraf(process.env.BOT_TOKEN);
// ... bot setup
export default async (req, res) => {
await bot.handleUpdate(req.body);
res.status(200).send('OK');
};
Railway/Render Deployment
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
CMD ["node", "src/bot.js"]
Validation Checks
Bot Token Hardcoded
Severity: HIGH
Message: Bot tokenがハードコードされています - セキュリティリスク!
Fix action: トークンを環境変数BOT_TOKENに移動してください
No Bot Error Handler
Severity: HIGH
Message: botのグローバルエラーハンドラーがありません。
Fix action: bot.catch()を追加してエラーを適切に処理してください
No Rate Limiting
Severity: MEDIUM
Message: レート制限がありません - Telegramの制限に達する可能性があります。
Fix action: Bottleneckまたはそれらしいライブラリでスロットリングを追加してください
In-Memory Sessions in Production
Severity: MEDIUM
Message: メモリ内セッションを使用しています - 再起動時に状態が失われます。
Fix action: 本番環境ではRedisまたはデータベースバックアップのセッションストアを使用してください
No Typing Indicator
Severity: LOW
Message: より良いUXのためにタイピングインジケーターを追加することを検討してください。
Fix action: 遅い処理の前にctx.sendChatAction('typing')を追加してください
Collaboration
Delegation Triggers
- mini app|web app|TON|twa -> telegram-mini-app (Mini App統合)
- AI|GPT|Claude|LLM|chatbot -> ai-wrapper-product (AI統合)
- database|postgres|redis -> backend (データ永続化)
- payments|subscription|billing -> fintech-integration (支払い統合)
- deploy|host|production -> devops (デプロイメント)
AI Telegram Bot
Skills: telegram-bot-builder, ai-wrapper-product, backend
Workflow:
1. Bot会話フローを設計
2. AI統合(OpenAI/Claude)をセットアップ
3. 状態/データのためにバックエンドを構築
4. Botコマンドとハンドラーを実装
5. マネタイゼーション(freemium)を追加
6. デプロイとモニタリング
Bot + Mini App
Skills: telegram-bot-builder, telegram-mini-app, frontend
Workflow:
1. Botをエントリーポイントとして設計
2. 複雑なUIのためにMini Appを構築
3. BotコマンドをMini Appと統合
4. Mini Appで支払いを処理
5. 両方のコンポーネントをデプロイ
Related Skills
Works well with: telegram-mini-app, backend, ai-wrapper-product, workflow-automation
When to Use
- ユーザーが次を言及または暗示した場合: telegram bot
- ユーザーが次を言及または暗示した場合: bot api
- ユーザーが次を言及または暗示した場合: telegram automation
- ユーザーが次を言及または暗示した場合: chat bot telegram
- ユーザーが次を言及または暗示した場合: tg bot
Limitations
- このスキルは、タスクが上記で説明されたスコープと明確に一致する場合にのみ使用してください。
- 出力を環境固有の検証、テスト、または専門家レビューの代替として扱わないでください。
- 必要な入力、権限、セキュリティ境界、または成功基準が不足している場合は、一度停止して説明を求めてください。
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- sickn33
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/sickn33/antigravity-awesome-skills / ライセンス: MIT
関連スキル
agent-browser
AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。
anyskill
AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。
engram
AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。
skyvern
AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。
pinchbench
PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。
openui
OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。