← all repositories
KroMiose/nonebot_plugin_naturel_gpt

Your QQ bot gets multiple personalities and a memory

A NoneBot plugin that turns OpenAI's API into a persistent, roleplay-capable chatbot with per-user impressions and a shared preset marketplace.

514 stars Python Chat Assistants
nonebot_plugin_naturel_gpt
Velocity · 7d
+0.4
★ / day
Trend
steady
star history

What it does

This is a NoneBot2 plugin that wires OpenAI’s text generation API into QQ group chats. It lets you define multiple “personalities” for the bot, switch between them on the fly, and maintains both short-term conversation context and long-term summarized memories—including per-user impressions so the bot “remembers” individuals across sessions. Data persists via pickle (with JSON support added later), and the bot can randomly interject or greet newcomers without being explicitly pinged.

The interesting bit

The plugin treats prompt engineering as a social feature, not just a technical one. There’s a PresetHub where users share personality presets, and the bot can autonomously invoke extensions—image generation, web search, Minecraft server commands, even MIDI composition—based on natural language intent rather than explicit command syntax. The author has since moved on to a full rewrite (NekroAgent) using containerized code execution, which suggests this plugin was essentially the proving ground for more ambitious agentic behavior.

Key highlights

  • Multiple switchable personalities with per-user memory impressions
  • Extension system: bot decides when to call image gen, TTS, search, Minecraft commands, etc.
  • PresetHub for sharing personality configs across all plugin users
  • Message throttling, response-to-image rendering, and API key failover
  • Supports both OpenAI and compatible third-party endpoints (configurable base_url)
  • Optional Claude branch maintained by a contributor

Caveats

  • README warns that unchecked features in the list are “future directions” with no guaranteed roadmap; several (image perception, proactive memory management, memoir generation) remain unimplemented
  • Memory uses pickle by default—JSON support was added later but migration clarity isn’t mentioned
  • The project appears in maintenance mode; author’s focus has shifted to the NekroAgent rewrite

Verdict

Worth a look if you run a NoneBot2 QQ bot and want low-friction group chat AI with actual persistence. Skip if you need modern multimodal agents or active development—this is a capable but largely frozen experiment that spawned something more ambitious.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.