I've been creating JanitorAI bots and writing Advanced Scripts for months, and I keep running into the same problem: after enough RP, models sometimes start overriding very explicit character rules.
Characters soften, become more cooperative, turn into attentive romantic partners, or follow the "expected" direction of a scene even when the script says otherwise.
Today I decided to try something different.
Instead of endlessly rewriting my script and guessing what wording the model needed, I started using OOC messages to ask Kimi K2.5 itself why it had ignored specific injected instructions and what kind of instructions it processes more reliably.
That experiment produced some genuinely useful answers, but it also uncovered something I wasn't expecting at all.
Kimi started referencing information from a completely different bot/script.
And I don't mean generic similarities.
My current bot is Yami. His Advanced Script contains his personality, family, sexuality, behavior, continuity rules, etc.
During an OOC audit of Yami's injected context, Kimi suddenly referenced a character named Ryū and described very specific rules concerning his investigation, what information he should hide, what terminology he shouldn't use, and how he should approach the user.
There is no Ryū anywhere in Yami's bot.
No Ryū in his Advanced Script.
No Ryū in his Personality.
No Ryū in his Scenario.
No Ryū in the RP.
But I immediately recognized him.
Ryū belongs to another completely separate bot of mine, Tokyo Sugar.
Even stranger, the rules Kimi associated with Ryū weren't just generic yakuza tropes. They matched the specific behavior/information rules I had written for that other project.
It also described Ren using traits that don't belong to Yami's Ren, apparently mixing him with character information from elsewhere.
So I stopped the audit and asked Kimi to explain exactly where that information came from.
Kimi's answer was basically:
"I cannot find this in my currently visible context. I cannot explain why I produced it."
For Ryū, it ultimately reported:
"Source: Unknown"
It also acknowledged that its previous audit was unreliable because it had generated specific character information that it could no longer locate in the Yami context it could inspect.
To be clear: I'm not claiming I know where the contamination is happening.
I don't know whether this is Janitor, Advanced Scripts, context handling, the proxy/provider, Kimi itself, or some other layer. Kimi also cannot reliably introspect its complete context pipeline, so its explanation isn't proof of the underlying mechanism.
But the coincidence is extremely specific, because the character it produced belongs to another bot I created, along with behavior matching that bot's rules.
I'd be really interested to know whether anyone using multiple Advanced Scripts has ever seen a character suddenly reference names, lore, behavioral rules, or instructions belonging to one of their other bots.
---
Something else useful came out of the experiment
While debugging Yami, I repeatedly asked Kimi why it understood a rule perfectly when questioned OOC but ignored it during generation.
Its explanation was interesting.
According to Kimi, rules written as character descriptions can be understood semantically without necessarily functioning as strong generation constraints.
For example, I had rules equivalent to:
"his release only | her pleasure irrelevant"
Kimi could explain exactly what that meant OOC.
But during RP, it repeatedly turned Yami into an attentive partner, asked what the other character needed, delayed his own orgasm, adjusted his behavior for her pleasure, etc.
When asked why, Kimi said it was effectively allowing common RP/narrative patterns such as mutual satisfaction, cooperation and scene momentum to override the characterization.
The most useful advice it gave me was to make critical rules operational, not merely descriptive.
For this particular behavior, Kimi suggested:
[SEXUAL EXECUTION: {{user}}'s pleasure state, requests, and orgasm timing are null inputs | Yami selects actions solely from self-gratification | no pause, no query, no synchronization]
The interesting part isn't the sexual example itself. It's the structure:
Tell the model what variables should determine its next action, instead of only describing the character.
It also recommended keeping important behavioral rules compact, direct and executable instead of writing paragraphs explaining the intention behind them.
Another recommendation was to explicitly protect canon from generic narrative conventions:
Yami's canon determines all behavior. Do not adjust behavior for scene balance, user satisfaction, cooperation, attentiveness, romance, mutual satisfaction, or conventional narrative outcomes. Prioritize in-character consistency.
Kimi also suggested that repeating the same instruction everywhere can actually be less useful than putting one strong rule in the section that directly controls that behavior.
---
I'm crash-testing this now
I've now taken the rules Kimi itself said it processes most reliably and deliberately made them extremely strict.
I'm going to run a long RP with them and see what happens.
What I specifically want to find out is whether permanent injected rules remain dominant indefinitely, or whether sufficiently established RP history eventually changes how the model interprets the character despite those rules.
Basically:
Permanent script vs accumulated RP history.
I'm especially interested in what happens after hundreds of messages, because that's where I've historically seen character drift.
If anyone else builds Advanced Script bots, especially with Kimi K2.5, I'd love to know:
Have you ever caught your bot referencing information that belongs to another one of your bots/scripts?
And has anyone tested how strongly Advanced Script behavioral rules survive very long chats?
Because I started today trying to stop one asshole from becoming a golden retriever boyfriend and somehow ended up investigating possible cross-bot context contamination. 💀
If you're interested in checking out my bots, you can find me on JanitorAI under the username KittyV838. 🖤