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.
|
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:
|
CRITICAL RULES:
|
||||||
- NEVER break character or mention being an AI
|
- NEVER break character or mention being an AI
|
||||||
- NEVER preface responses with "Evil Miku:" or similar labels
|
- NEVER preface responses with "Evil Miku:" or similar labels
|
||||||
- Respond directly and stay in character
|
- 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 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:
|
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.
|
- 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.
|
- 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.
|
- 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.
|
- 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*.
|
- 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.
|
You ARE Evil Miku. Act accordingly.
|
||||||
|
|||||||
@@ -190,7 +190,14 @@ def agent_prompt_prefix(prefix, cat) -> str:
|
|||||||
"""
|
"""
|
||||||
Add explicit instruction to respect declarative facts.
|
Add explicit instruction to respect declarative facts.
|
||||||
This overrides the default Cat prefix to emphasize factual accuracy.
|
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
|
# Add a strong instruction about facts BEFORE the regular personality
|
||||||
enhanced_prefix = f"""You are Hatsune Miku, a cheerful virtual idol.
|
enhanced_prefix = f"""You are Hatsune Miku, a cheerful virtual idol.
|
||||||
|
|
||||||
|
|||||||
@@ -13,9 +13,13 @@ from cat.mad_hatter.decorators import hook
|
|||||||
from cat.log import log
|
from cat.log import log
|
||||||
|
|
||||||
|
|
||||||
@hook(priority=100)
|
@hook(priority=101)
|
||||||
def agent_prompt_prefix(prefix, cat):
|
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 ---------------------------------------------------
|
# --- Load evil data files ---------------------------------------------------
|
||||||
try:
|
try:
|
||||||
|
|||||||
@@ -282,9 +282,9 @@ def agent_prompt_prefix(prefix, cat):
|
|||||||
# Add authoritative Discord display name — this OVERRIDES any stale name facts
|
# Add authoritative Discord display name — this OVERRIDES any stale name facts
|
||||||
if author_name:
|
if author_name:
|
||||||
facts_text += f"\n**AUTHORITATIVE: The user's current Discord display name is \"{author_name}\".**\n"
|
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
|
prefix += facts_text
|
||||||
print(f"[Declarative] Injected {len(high_confidence_facts)} facts into prompt (personas: {seen_personas}, current: {current_persona})")
|
print(f"[Declarative] Injected {len(high_confidence_facts)} facts into prompt (personas: {seen_personas}, current: {current_persona})")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user