Prerequisites
Teams MCP server connected and authenticated (
msteams in /mcp)Telegram transport configured (for receiving private VP notifications)
At least 20+ recent Teams conversations (for quality persona generation)
Step 1: Configure Your Identity
Add your email address(es) to.env so VP knows which messages are yours:
Step 2: Enable VP
Start Octo and run:.octo/virtual-persona/ and starts the polling loop. Check that everything is running:
- VP enabled: yes
- Poller running: yes
- Allow list: 0 users (this is correct — monitor-only mode)
Step 3: Generate Your Persona
This is the most important step. VP needs to learn your communication style from your actual conversations.- Fetching conversations — pulls 30-50 Teams chats via MCP
- Per-conversation analysis — analyzes each chat individually (you’ll see progress)
- Web research — searches for your public presence (articles, talks, GitHub)
- Synthesis — merges everything into a communication profile
- Prompt generation — creates the system prompt that defines your VP voice
Persona generation uses Octo’s full agent stack for web research, synthesis, and prompt generation. This gives much richer results than simple LLM calls.
Review the Results
- Prompt:
.octo/virtual-persona/system-prompt.md— edit to fine-tune your voice - Analysis:
.octo/virtual-persona/communication-analysis.json— your behavioral profile - Web research:
.octo/virtual-persona/web-research.md— public presence findings
Step 4: Monitor Mode (Passive)
At this point VP is running but in monitor-only mode. For every incoming Teams message:- VP reads and classifies it
- If it needs a response, VP generates a suggested answer via Octo
- The suggestion is sent to you privately (Telegram/console) — never to the sender
- You decide whether to reply yourself or ignore it
Monitor mode is the safest way to start. You see every VP decision without any risk of unwanted messages being sent. Stay in this mode until you’re comfortable with VP’s classification accuracy.
Step 5: Allow Auto-Responses
Once you trust VP’s judgment for specific people, grant them auto-respond access:Confidence Tuning
Adjust per-user confidence with modifiers:Dry-Run Testing
Test VP’s decision for a specific person without sending anything:Step 6: Handle Escalations
When VP can’t handle a message confidently, it escalates silently:- You receive a private Telegram notification with full context, confidence score, and a suggested answer
- The thread is locked — VP won’t respond until you release it
- The sender sees nothing — they’re just waiting for your reply
Responding via Telegram
The fastest way to handle escalations is to reply directly to the Telegram notification:- Reply with text — your reply is sent to the Teams chat, delegation auto-released
- Reply “ignore” — the chat is muted, delegation released
Manual Release
If you handled it in Teams directly:Step 7: Priority Users & Ignoring Chats
Priority Users
Some contacts should never be ignored — their messages should always be processed even in muted chats:Ignoring Noisy Chats
Mute bot channels, automated notifications, or large group chats:Step 8: People Profiles
VP tracks interaction patterns. View someone’s profile:casual_technical (default for engineers), casual, semi_formal
Configuration Reference
All VP settings via.env:
| Variable | Default | Description |
|---|---|---|
VP_ENABLED | true | Master switch |
VP_SELF_EMAILS | (empty) | Your email(s), comma-separated |
VP_POLL_INTERVAL | 2m | How often to check Teams (30s, 2m, 1h, or bare seconds) |
VP_ACTIVE_HOURS_START | 08:00 | Start of active hours (local time) |
VP_ACTIVE_HOURS_END | 22:00 | End of active hours (local time) |
Gradual Rollout Strategy
Week 1: Monitor Only
Enable VP with an empty allow list. Watch decisions via
/vp audit and /vp stats. Tune the persona prompt if needed.Week 2: Allow Close Collaborators
Add 2-3 people you work with daily. Monitor their auto-responses via
/vp audit. Adjust confidence modifiers.Troubleshooting
VP poller starts but no messages are processed
VP poller starts but no messages are processed
Check that
VP_SELF_EMAILS is set correctly in .env. Without it, VP may skip all messages or try to process your own.Persona generation finds no conversations
Persona generation finds no conversations
Ensure the Teams MCP server is authenticated. Run
/mcp to check server status. You may need to re-authenticate with mcp__msteams__login.VP responses don't sound like me
VP responses don't sound like me
Re-run
/vp persona generate with more conversations available, or manually edit .octo/virtual-persona/system-prompt.md to adjust phrasing and rules.Too many escalations
Too many escalations
VP is being too conservative. Lower the confidence threshold by adding positive modifiers to your allowed users:
/vp allow user@company.com +15VP responded when it shouldn't have
VP responded when it shouldn't have
Add the user to the block list:
/vp block user@company.com. Review the audit log: /vp audit 10. Consider lowering their confidence modifier.
