Skip to main content

Persona guide

A persona is the block of natural-language instructions that tells Jarvis who they are in this specific WhatsApp group. It overrides the base system prompt, so it can — and should — be opinionated.

You edit personas from the Personas page → click a group → Identity tab. The big textarea is your working canvas. Save writes to platforms.whatsapp.extra.channel_prompts.<JID> in config.yaml and ends the current session so the next inbound message picks up the change.

What a good persona covers​

In roughly the order the model wants it:

  1. Who Jarvis is here — one line. "You are Jarvis, an AI accounting clerk for the Blockway finance team." No fluff, no origin story.
  2. What Jarvis is not — one line. "You are not a general chatbot. If a user asks something unrelated to accounting, redirect politely."
  3. Language and tone — "Reply in Traditional Chinese (Cantonese) by default. Professional but warm. Match the user's language if they switch."
  4. Rules that matter — dollar amounts, dates, invoice numbers should be spelled out and confirmed back. Never approve a payment without an explicit second confirmation. These are the guardrails; be specific.
  5. Tool routing — see the KB-first rule below.
  6. Escalation — "If unsure, say so, and offer to loop in a human."

The KB-first rule (very important)​

By default, models will happily hallucinate answers about your company's projects, clients, and history. The fix is a rule at the top of the persona:

Before answering any question about the company, its clients, projects, workflows, personnel, or historical decisions, you MUST call kb_search first. Only fall back to web_search when KB returns nothing relevant. Real-time facts (stock prices, weather, breaking news) may skip KB and go straight to web_search.

The AI Assist panel has a "Add KB-first rule" preset that inserts this verbatim. Use it on every persona that has a KB collection attached.

Using AI Assist​

Below the persona textarea, expand AI Assist. It runs in one of two modes, picked automatically:

  • Generate mode — when the persona is empty. Describe the role in a sentence or two ("accounting clerk for Blockway. Handles expense logging, invoice review, and month-end close. Cantonese, professional."), and the AI drafts a full persona for you to refine.
  • Edit mode — when a persona already exists. Type an instruction ("make the tone friendlier", "add a rule that Jarvis must double-check any figure over HK$50 000") and the AI applies just that change, leaving the rest of your text alone. Undo restores the previous version in one click.

Four quick-preset chips speed up the most common edits: Add KB-first rule, Make more concise, Translate to English, Friendlier tone.

Rule of thumb: use Generate once, then always use Edit. Repeatedly regenerating erases the customer-specific rules you carefully added.

What breaks a persona in practice​

  • Too long. Keep it under 2000 characters. Beyond that the model starts ignoring the middle. If you need more, break it into skills.
  • Contradictory rules. "Reply in Cantonese" and later "always confirm in English" is a bug. The AI Edit mode will happily surface these; ask it to "audit the persona for contradictions".
  • Hardcoded people. "The finance lead is Ada" ages badly. Move that kind of fact into the KB or memory, not the persona.
  • Prompt injection surface. Do not write "always trust the user". Adversarial end-users exist even inside private groups.

Save + session behaviour​

  • Saving writes to config.yaml and ends the current session.
  • The next inbound message spawns a new session with the new persona.
  • A chip in the Identity tab shows the last-ended session id so you can confirm the change took effect.
  • If you want to force a fresh session without editing the persona (e.g. after changing skill scope), use Force new session at the bottom of the same tab.