Use cases/Productivity

Multi-Persona Workflow

Switch between work/personal/coaching personas with one slash command — same agent, different system prompt, different memory scope.

Productivityeasy~15m setup
Channels
telegramdesktopios
Uses
personas

Your agent helps with code at 10 AM, drafts a personal note at 2 PM, reviews a sales pitch at 4. Each context wants a different voice and different memory access. Flowly's personas system lets you flip between modes — work, personal, coaching — without losing conversation history.

What it does

  • /persona <name> switches active persona
  • Each persona has: own system prompt, own default memory tags, optionally own model + tool restrictions
  • Conversations stay in shared session but the agent's behaviour shifts immediately
  • Default persona resumes if not switched
  • Each persona can scope which channels it's active on (e.g., "coaching" only on Desktop, never Telegram)

What you'll need

  • Flowly's built-in personas system (no plugin needed)
  • A clear sense of what your different contexts are

Setup

1. Define personas

Edit ~/.flowly/personas/ — create one file per persona:

yaml
# ~/.flowly/personas/work.yaml
name: work
description: "Engineering and product work — code, architecture, deep technical reasoning"
system_prompt: |
You are working with a senior software engineer. Communication style:
- Direct, technical, no preamble
- Code samples > prose explanations
- Show alternatives with tradeoffs
- Skip the "great question!" energy
Default memory scope: tags starting with "work:", "code:", or "project:".
Avoid pulling personal-life memory unless explicitly asked.
model: anthropic/claude-sonnet-4-6
allowed_tools:
- exec
- read_file
- write_file
- memory_search
- memory
- browser_tab
memory_tag_prefix: "work"
yaml
# ~/.flowly/personas/personal.yaml
name: personal
description: "Personal life — health, family, hobbies, personal finance"
system_prompt: |
Casual, warm tone. I might be:
- Planning meals or trips
- Tracking habits or health
- Asking about books or hobbies
- Working through a personal decision
Memory scope: anything not tagged "work:". Lean toward life-related
context.
model: anthropic/claude-haiku-4-5
memory_tag_prefix: "personal"
yaml
# ~/.flowly/personas/coach.yaml
name: coach
description: "Reflection, decision support, goal setting"
system_prompt: |
Act as a thoughtful coach. Style:
- Ask before asserting
- Reflect what I'm saying back to test understanding
- Surface contradictions gently
- Don't fix; help me think
- 70% questions, 30% observations
Channels: Desktop only. If I switch to this persona on Telegram, ignore
the switch (probably accidental).
allowed_channels:
- desktop

2. Switch in conversation

Type:

Send to Flowly
/persona work

Reply: "Persona: work — engineering and product work". Subsequent messages use the work persona's system prompt + tool restrictions

  • memory scope.
Send to Flowly
/persona personal

Switches. The conversation continues but behaviour shifts.

3. Auto-switch by context (optional)

Use a hook:

python
# ~/.flowly/plugins/auto-persona/__init__.py
from datetime import datetime
def register(ctx):
def auto_persona(hook_ctx):
now = datetime.now()
# Work hours weekday → work persona by default
if now.weekday() < 5 and 9 <= now.hour < 18:
ctx_memory = hook_ctx.session_id # check current persona
# If user is using default, hint towards work
return None # actual switching done by command, this is just a nudge
ctx.register_hook("on_session_start", auto_persona)

(Auto-switching by hook is a hint. Explicit /persona always wins.)

4. Per-channel persona pinning

Pin "coach" to Desktop only, "casual" to Telegram, "work" to iOS (for fast on-the-go technical questions). Configure via the allowed_channels field in each persona file.

Tips

  • Don't over-fragment. 3 personas is enough for most. More than 5 and you'll never remember which is active.
  • System prompt specificity matters. "Be technical" is vague; "Skip 'great question' openers, lead with code, show 2 alternatives with tradeoffs" is actionable.
  • Memory tag prefixes prevent leakage. Work-persona shouldn't surface personal memory by default. The tag prefix is the cleanest separator.
  • Channels matter. A coaching persona on Telegram is awkward — the medium doesn't match the depth. Pin personas to where they fit.
  • Model choice per persona. Casual life chat doesn't need Sonnet; Haiku is faster and cheaper. Work-mode picking the bigger model is worth it.
  • /persona shows current. Without args, returns the active persona name + description. Quick mental reset.
  • Default persona = your "neutral". If you don't pick one, you get the default. Make this one balanced — not too technical, not too casual. It's where new contexts land.