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:
- Who Jarvis is here — one line. "You are Jarvis, an AI accounting clerk for the Blockway finance team." No fluff, no origin story.
- What Jarvis is not — one line. "You are not a general chatbot. If a user asks something unrelated to accounting, redirect politely."
- Language and tone — "Reply in Traditional Chinese (Cantonese) by default. Professional but warm. Match the user's language if they switch."
- 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.
- Tool routing — see the KB-first rule below.
- 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_searchfirst. Only fall back toweb_searchwhen 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.yamland 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.