[ PROMPT_NODE_25568 ]
patterns_and_examples
[ SKILL_DOCUMENTATION ]
# Telegram 智能体 - 实现模式与示例
> 适用于 Node.js 和 Python Telegram 智能体的生产级模式。
---
## Node.js 模式
### 使用 `node-telegram-bot-api` 快速设置
bash
npm init -y
npm install node-telegram-bot-api dotenv
javascript
// bot.js
require('dotenv').config();
const TelegramBot = require('node-telegram-bot-api');
const bot = new TelegramBot(process.env.BOT_TOKEN, { polling: true });
// 命令处理器
bot.onText(//start/, (msg) => {
bot.sendMessage(msg.chat.id, '欢迎!使用 /help 查看命令。');
});
bot.onText(//help/, (msg) => {
bot.sendMessage(msg.chat.id,
'*可用命令:*n' +
'/start - 启动智能体n' +
'/help - 显示此帮助n' +
'/echo - 回显你的消息',
{ parse_mode: 'Markdown' }
);
});
// 带参数捕获的回显命令
bot.onText(//echo (.+)/, (msg, match) => {
bot.sendMessage(msg.chat.id, match[1]);
});
console.log('智能体正在运行...');
### 使用 `grammy` 快速设置
bash
npm init -y
npm install grammy dotenv
javascript
// bot.js
require('dotenv').config();
const { Bot, InlineKeyboard } = require('grammy');
const bot = new Bot(process.env.BOT_TOKEN);
bot.command('start', (ctx) => ctx.reply('欢迎!'));
bot.command('menu', async (ctx) => {
const keyboard = new InlineKeyboard()
.text('选项 A', 'action_a').text('选项 B', 'action_b').row()
.text('取消', 'cancel');
await ctx.reply('选择一个选项:', { reply_markup: keyboard });
});
bot.callbackQuery('action_a', async (ctx) => {
await ctx.answerCallbackQuery({ text: '你选择了 A!' });
await ctx.editMessageText('你选择了选项 A。');
});
bot.callbackQuery('action_b', async (ctx) => {
await ctx.answerCallbackQuery({ text: '你选择了 B!' });
await ctx.editMessageText('你选择了选项 B。');
});
bot.callbackQuery('cancel', async (ctx) => {
await ctx.answerCallbackQuery();
await ctx.deleteMessage();
});
bot.start();
### 带回调数据的内联键盘
javascript
const TelegramBot = require('node-telegram-bot-api');
const bot = new TelegramBot(process.env.BOT_TOKEN, { polling: true });
bot.onText(//menu/, (msg) => {
bot.sendMessage(msg.chat.id, '选择一个操作:', {
reply_markup: {
inline_keyboard: [
[
{ text: '📊 统计', callback_data: 'stats' },
{ text: '⚙️ 设置', callback_data: 'settings' }
],
[
{ text: '❓ 帮助', callback_data: 'help' },
{ te