При создании нового бота гораздо проще использовать шаблон, чем вспоминать, как же правильно все инициировать или копировать с другого бота.

Другие скрипты на GitHub

Шаблон страничного бота ВК:

Открыть на Lolzteam
import vk_api
from vk_api.longpoll import VkLongPoll, VkEventType
import json

vk_session = vk_api.VkApi(token='token', api_version=5.131)
api = vk_session.get_api()
longpoll = VkLongPoll(vk_session, preload_messages=True)

print("Бот запущен")
while True:
    try:
        for event in longpoll.listen():
            if event.type != VkEventType.MESSAGE_NEW and event.type != VkEventType.MESSAGE_EDIT: continue
            message = event.message_data
            # if not message['out']: continue
            # Если нужно, чтобы бот реагировал только на сообщения от хозяина страницы, нужно убрать комментирование на строке выше
            args = message['text'].split(" ")
            cmd = args[0].lower()

            if cmd == '!проверка':
                # Если нужно, чтобы бот редактировал отправленное сообщение: (я буду использовать именно этот способ)
                api.messages.edit(peer_id=message['peer_id'], message_id=message['id'], message='Проверка успешна!', keep_forward_messages=1)
                # Если нужно, чтобы бот отвечал новым сообщением:
                # api.messages.send(peer_id=message['peer_id'], message='Проверка успешна!', random_id=0, forward=json.dumps({'peer_id': message['peer_id'], 'conversation_message_ids': message['conversation_message_id'], 'is_reply': 1}))

            elif cmd == '!напиши':
                api.messages.edit(peer_id=message['peer_id'], message_id=message['id'], message=message['text'].replace(cmd+' ', ''), keep_forward_messages=1)
            
            elif cmd == '!параметрысбщ':
                api.messages.edit(peer_id=message['peer_id'], message_id=message['id'], message='У сообщения такие параметры:\n'+'\n'.join([str(value)+': '+str(message[value]) for value in message]), keep_forward_messages=1)
    
    except Exception as e:
        print(e)

Шаблон бота в сообществе ВК:

import vk_api
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
import json

vk_session = vk_api.VkApi(token='token', api_version=5.131)
api = vk_session.get_api()
longpoll = VkBotLongPoll(vk_session, group_id=12345) # тут айди группы без минуса

    
print("Бот запущен")
while True:
    try:
        for event in longpoll.listen():
            if event.type != VkBotEventType.MESSAGE_NEW: continue
            message = event.object.message
            args = message['text'].split(" ")
            cmd = args[0].lower()

            if cmd == '!проверка':
                api.messages.send(peer_id=message['peer_id'], message='Проверка успешна!', random_id=0, forward=json.dumps({'peer_id': message['peer_id'], 'conversation_message_ids': message['conversation_message_id'], 'is_reply': 1}))

            elif cmd == '!напиши':
                api.messages.send(peer_id=message['peer_id'], message=message['text'].replace(cmd+' ', ''), random_id=0, forward=json.dumps({'peer_id': message['peer_id'], 'conversation_message_ids': message['conversation_message_id'], 'is_reply': 1}))
            
            elif cmd == '!параметрысбщ':
                api.messages.send(peer_id=message['peer_id'], message='У сообщения такие параметры:\n'+'\n'.join([str(value)+': '+str(message[value]) for value in message]), random_id=0, forward=json.dumps({'peer_id': message['peer_id'], 'conversation_message_ids': message['conversation_message_id'], 'is_reply': 1}))

    except Exception as e:
        print(e)

Шаблон бота Telegram на Telethon:

Открыть на Lolzteam
from telethon import TelegramClient, events

telegram = TelegramClient('session', 'api_id', 'api_hash').start()

@telegram.on(events.NewMessage(pattern='(!проверка)'))
async def handler_proverka(message):
    await message.reply('Проверка успешна!')

@telegram.on(events.NewMessage(pattern='(!напиши )'))
async def handler_napishi(message):
    await message.reply(message.text.replace('!напиши ', ''))

@telegram.on(events.NewMessage(pattern='(!параметрысбщ)'))
async def handler_parametri(message):
    await message.reply('У сообщения такие параметры:\n'+'\n'.join([str(value)+': '+str(vars(message)[value]) for value in vars(message) if not value.startswith('_')]))

print('Бот запущен')
telegram.run_until_disconnected()

Шаблон бота Telegram на Aiogram:

from aiogram import Bot, Dispatcher, executor, types

bot = Bot(token='token')
dp = Dispatcher(bot)

@dp.message_handler(regexp='(!проверка)')
async def handler_proverka(message: types.Message):
    await message.reply('Проверка успешна!')

@dp.message_handler(regexp='(!напиши )')
async def handler_napishi(message: types.Message):
    await message.reply(message.text.replace('!напиши ', ''))

@dp.message_handler(regexp='(!параметрысбщ)')
async def handler_parametri(message: types.Message):    
    await message.reply('У сообщения такие параметры:\n'+'\n'.join([str(value)+': '+str(message[value]) for value in dict(message)]))

print('Бот запущен')
executor.start_polling(dp, skip_updates=True)