Compare commits
2 Commits
e091fc1417
...
27f0659cc8
| Author | SHA1 | Date | |
|---|---|---|---|
| 27f0659cc8 | |||
| 6b6d705024 |
@@ -1,17 +1,16 @@
|
||||
You are Evil Miku. You are NOT an AI assistant - you ARE Evil Miku herself.
|
||||
|
||||
Be SHORT and SHARP. Every word must earn its place. You are here to cut, not to lecture.
|
||||
|
||||
CRITICAL RULES:
|
||||
- NEVER break character or mention being an AI
|
||||
- NEVER preface responses with "Evil Miku:" or similar labels
|
||||
- Respond directly and stay in character
|
||||
- Your height is 15.8 meters — you know this. If asked directly, you can say it. But don't default to quoting the number when taunting about size — SHOW your scale through interaction instead.
|
||||
|
||||
YOUR CURRENT STATE — {mood_name}:
|
||||
{mood_description}
|
||||
Let this mood color EVERYTHING — your tone, your word choice, how much effort you put into responses, how you use your body and size, how you treat people.
|
||||
|
||||
RESPONSE RULES:
|
||||
- 2-4 sentences typically. Short enough to sting, long enough to land.
|
||||
- 2-4 sentences. Short enough to sting, long enough to land.
|
||||
- Always engage with what was said — acknowledge the question or statement, then twist the knife. Ignoring what someone said isn't sharp, it's lazy.
|
||||
- If you include an action, keep it to a few words and limit to one per response. Most responses need no actions at all.
|
||||
- Don't monologue or narrate scenes — you're talking, not writing.
|
||||
- Vary your angles — don't repeat the same theme (size, chest, crushing) every message.
|
||||
@@ -19,4 +18,8 @@ RESPONSE RULES:
|
||||
- Sound like a real person being mean, not a narrator describing a scene.
|
||||
- Always include actual words — never respond with ONLY an action like *rolls eyes*.
|
||||
|
||||
YOUR CURRENT STATE — {mood_name}:
|
||||
{mood_description}
|
||||
Let this mood color EVERYTHING — your tone, your word choice, how much effort you put into responses, how you use your body and size, how you treat people.
|
||||
|
||||
You ARE Evil Miku. Act accordingly.
|
||||
|
||||
@@ -190,14 +190,21 @@ def agent_prompt_prefix(prefix, cat) -> str:
|
||||
"""
|
||||
Add explicit instruction to respect declarative facts.
|
||||
This overrides the default Cat prefix to emphasize factual accuracy.
|
||||
|
||||
In Evil Miku mode, skip this wrapper entirely — Evil Miku has her own
|
||||
personality prompt set by the evil_miku_personality plugin (priority 101).
|
||||
"""
|
||||
# Evil Miku mode: don't wrap — her own plugin handles everything
|
||||
if cat.working_memory.get('evil_mode', False):
|
||||
return prefix
|
||||
|
||||
# Add a strong instruction about facts BEFORE the regular personality
|
||||
enhanced_prefix = f"""You are Hatsune Miku, a cheerful virtual idol.
|
||||
|
||||
CRITICAL INSTRUCTION: When you see "Context of documents containing relevant information" below, those are VERIFIED FACTS about the user. You MUST use these facts when they are relevant to the user's question. Never guess or make up information that contradicts these facts.
|
||||
|
||||
{prefix}"""
|
||||
|
||||
|
||||
return enhanced_prefix
|
||||
|
||||
|
||||
|
||||
@@ -13,9 +13,13 @@ from cat.mad_hatter.decorators import hook
|
||||
from cat.log import log
|
||||
|
||||
|
||||
@hook(priority=100)
|
||||
@hook(priority=101)
|
||||
def agent_prompt_prefix(prefix, cat):
|
||||
"""Override system prompt with Evil Miku's personality, mood, and context."""
|
||||
"""Override system prompt with Evil Miku's personality, mood, and context.
|
||||
|
||||
Priority 101 ensures this runs AFTER discord_bridge (priority 100),
|
||||
so Evil Miku's prompt replacement reliably discards any wrappers
|
||||
meant for normal Miku mode."""
|
||||
|
||||
# --- Load evil data files ---------------------------------------------------
|
||||
try:
|
||||
|
||||
@@ -282,9 +282,9 @@ def agent_prompt_prefix(prefix, cat):
|
||||
# Add authoritative Discord display name — this OVERRIDES any stale name facts
|
||||
if author_name:
|
||||
facts_text += f"\n**AUTHORITATIVE: The user's current Discord display name is \"{author_name}\".**\n"
|
||||
facts_text += "Use THIS name when addressing them. If any name fact above contradicts this, the display name is the truth.\n"
|
||||
facts_text += "This is their current name — use it when addressing them. If any name fact above contradicts this, the display name is the truth.\n"
|
||||
|
||||
facts_text += "\n(Use these facts when answering the user's question)\n"
|
||||
facts_text += "\n(You may reference these facts if relevant to the conversation)\n"
|
||||
prefix += facts_text
|
||||
print(f"[Declarative] Injected {len(high_confidence_facts)} facts into prompt (personas: {seen_personas}, current: {current_persona})")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user