Можно использовать
user long poll API для получения новых сообщений в реальном времени. Он
реализован в vk_api. Получать сообщения, которые были отправлены аккаунтом, на котором запущен юзербот, и изменять их можно так:
import vk_api
from vk_api.longpoll import VkLongPoll, VkEventType
vk_session = vk_api.VkApi('+71234567890', 'password')
vk_session.auth()
vk = vk_session.get_api()
longpoll = VkLongPoll(vk_session)
for event in filter(lambda e: e.type == VkEventType.MESSAGE_NEW and e.from_me, longpoll.listen()):
text = event.text
if text.startswith('!погода'):
vk.messages.edit(
message_id=event.message_id, peer_id=event.peer_id,
message='☀ Сегодня солнечно, 27°C'
)
Если нужно получать все сообщения, то просто убрать e.from_me:
...
for event in filter(lambda e: e.type == VkEventType.MESSAGE_NEW, longpoll.listen()):
...
Ещё, может быть, вам стоит попробовать
vkbottle — фреймворк VK API, предназначенный, в первую очередь, для разработки ботов.