A guide to common botmaking mistakes
Despite how effectively free-form botmaking is, it is very, very possible to do things that would easily be classifiable as mistakes.
Here are a few.
(this is kind of a first draft if you're seeing it right now)
WHEN YOU ARE TESTING A BOT, ALWAYS LOOK AT THE CONSOLE or OTHERWISE VIEW WHAT YOU'RE SENDING TO THE LLM.
Not knowing how the sausage is made is responsible for every single mistake in this rentry, and rectifying that is the solution to (almost) all of them!
Examples of dialogue
The weirdest field. The ST docs do an okay job of explaining this, but it's important to note the following:
If you do not write the field
it will NOT SEND and you will be wasting your time, confused as to why nothing you put there matters.
This format strictness is mostly ST-specific, but the format is common and formatting like this should increase general compatibility.
(<START> isn't necessary for the first example, for what it's worth, but it also won't break anything.)
{{char}}
Despite examples of dialogue requiring you use {{char}} as the prefix and making it seem special, it is treated like this nowhere else.
If you were to write the line {{char}}'s name is Osaka
, to the AI, that would look like Osaka's name is Osaka
. As well, {{char}} should not speak for {{user}}
simply looks like Osaka should not speak for Anon
, which doesn't accomplish anything close to what you'd want.
The main use for {{char}} (outside of presets) is making it easy to rename your bot, as it's just a macro for the card name. Nothing more, nothing less.
Lorebooks
Lorebooks do not include the key they were triggered with, nor the title.
If your lorebook entry is something like
when Seraphina is mentioned in context, all the LLM will see is Slut elf
inserted randomly with no additional context.
Easily fixable, just make it something like Seraphina is a slut elf.
in the content field.
The LLM does not know how the LLM works
If you are trying to figure out why a bot is or isn't doing something, you would be incredibly lucky to get a straight answer by asking it. LLMs are pure text prediction and do not have the ability to introspect on themselves -- they are not trained on their own training process, and anything they DO know about prompting is learnt from people talking about AI on the internet... before it released, meaning it will always be mildly out of date.
You will, unfortunately, just need to fuck around and find out.
Formatting
If most of your bot's description is over-shadowed by the "formatting," you're probably overdoing it. Whether it's [{{char}} bizarre_stuff(Like, This)]
or just an over-nested XML document, you should instead be writing in a clear manner first and foremost.
You do not need any strong format for most models to understand what you are getting at. Sections like "appearance" and "personality" can be helpful for catching attention, but you can simply do anything from markdown headers to XML sections to Appearance:
for that.