Personal Agent Overview
An AI agent that searches your own bookmarks, drafts, tasks, and inbox — hard-scoped to your account so the agent literally cannot see another user’s personal data.
What is the Personal Agent?
Personal Agent is a platform-tier AI agent that lives inside Ask AI. It answers questions about the asking user’s personal data — bookmarks, drafts, assigned tasks, inbox — using the same natural language interface as every other agent. Reads are on by default; writes (bookmarking, editing notes, marking notifications read) are an admin-controlled toggle so cautious organizations can roll the agent out gradually.
Core Value Proposition:
- 🔒 Privacy by Construction — Every tool query filters by the asking user’s
user_id. The agent has no parameter for “another user” — it cannot leak across accounts. - ⚡ One Agent, Four Personal Surfaces — Bookmarks, drafts, my-tasks, inbox all answered through one conversation, no app-switching
- 🤝 Cross-App by Design — Searches across 10 bookmarkable record types (workspace messages, comments, tasks, wikis, policies, SOPs, library items, site pages, recognitions, jobs)
- 🎛️ Admin Governance — Per-business writes toggle, per-user daily action cap, full audit trail through the existing AutonomousAction framework
At a Glance
| 🔗 Personal Surfaces | ⏱️ Setup Time | 🔒 Privacy Model | 📱 Mobile Ready |
|---|---|---|---|
| 4 (bookmarks, drafts, tasks, inbox) | 0 minutes (auto-enabled) | Per-user, per-business | ✅ Via Ask AI |
Perfect For:
- 👤 Any employee — quickly recall something they saved, see what’s on their plate, summarize their inbox without clicking around
- 🧑💼 Power users — bookmark, edit notes, and mark inbox read via natural language (when admin enables writes)
- 🛡️ Privacy-cautious admins — ship AI value without exposing cross-user data; per-user cap keeps any single account from running away
How It Works
Personal Agent Flow
┌───────────────────────────────────────────────────────────────────────────┐
│ PERSONAL AGENT QUERY FLOW │
├───────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ ┌──────────────────┐ ┌───────────────┐ │
│ │ USER ASKS │ │ ASK AI ROUTER │ │ PATTERN MATCH │ │
│ │ "my bookmark │ ────▶ │ Stage 0 patterns │ ────▶ │ :app_personal│ │
│ │ about X" │ │ + KNN + LLM │ └───────┬───────┘ │
│ └──────────────┘ └──────────────────┘ │ │
│ ▼ │
│ ┌──────────────────┐ │
│ │ PERSONAL AGENT │ │
│ │ scoped to user │ │
│ └────────┬─────────┘ │
│ │ │
│ ┌─────────────────────────────┼─────────┐ │
│ ▼ ▼ ▼ │
│ ┌──────────────────┐ ┌──────────────┐ ┌─────────┐ │
│ │ READ TOOL │ │ WRITE TOOL │ │ BLOCKED │ │
│ │ (always avail.) │ │ (gated) │ │ if cap │ │
│ └────────┬─────────┘ └──────┬───────┘ └─────────┘ │
│ │ │ │
│ ▼ ▼ │
│ ┌──────────────────┐ ┌──────────────┐ │
│ │ Result returned │ │ AutonomousActi│ │
│ │ to user │ │ on logged │ │
│ └──────────────────┘ └──────────────┘ │
└───────────────────────────────────────────────────────────────────────────┘
Personal Data Surfaces
┌─────────────────┐
│ PERSONAL AGENT │
└────────┬────────┘
│ scoped to current_user
┌──────────────┬──────────────┬─────┴────────┬──────────────┐
▼ ▼ ▼ ▼ ▼
┌───────────┐ ┌─────────┐ ┌──────────┐ ┌──────────┐ ┌──────────────┐
│ Bookmarks │ │ Drafts │ │ My Tasks │ │ Inbox │ │ AutonomousAct│
│ (10 types)│ │ │ │ │ │ (Notif.) │ │ (audit trail)│
└───────────┘ └─────────┘ └──────────┘ └──────────┘ └──────────────┘
Key Features
🔍 Search My Bookmarks
The most common entry point. Finds saved items by title and note text, with optional record-type filter.
| Capability | Description |
|---|---|
| Title search | Substring match against the polymorphic record’s display label |
| Note search | Same query also searches the user’s inline note on each bookmark |
| Type filter | Restrict to one of 10 bookmarkable types (WorkspaceMessage, Wiki, HrPolicy, Sop, etc.) |
| Smart ordering | Filter applies BEFORE limit, so matches outside the recent-N window aren’t lost |
| Truncation hint | Returns a truncated: flag when the search-load cap (2000 most-recent) fires, so the agent can suggest narrowing by type |
Use Case: User asks “What did I bookmark about onboarding?” → agent searches title + notes for “onboarding” across all their saved items and returns the matches as clickable links.
💡 Pro Tip: Add a note to your bookmarks (
<details>→ “Add note” on/bookmarks) and the agent’s search will match that note text too — useful for tagging your saves with context the original record doesn’t have.
📝 List My Drafts
Surfaces unfinished workspace messages and comments saved via the platform’s auto-draft mechanism.
| Capability | Description |
|---|---|
| Recent drafts | Most-recently-edited drafts across the platform |
| Kind filter | Optional — filter by draft kind (workspace_message, workspace_message_comment, etc.) |
| Body preview | First 160 chars of the draft, plus context type/id and last-edit timestamp |
Use Case: “What was I working on?” → agent lists their unfinished drafts so they can pick up where they left off.
✅ List My Tasks
Tasks assigned to the user, with status and due-window filters.
| Capability | Description |
|---|---|
| Status filter | open (default), overdue, completed, or all |
| Due-window filter | Only tasks with due_at within N days |
| Workspace context | Each task includes its workspace_id if it belongs to one |
| Smart sort | Ordered by due_at ascending (NULLs last), then created_at descending |
Use Case: “Are any of my tasks overdue?” → agent returns the past-due list ordered by how late they are.
📬 Summarize My Inbox
A quick read on what needs attention without opening the inbox.
| Capability | Description |
|---|---|
| Unread count | Total unread notifications in the visible inbox |
| Action-required count | Notifications with action_required: true and not yet completed |
| Recent items | Top N (default 10, max 50) most-recent unread, with title, kind, and timestamp |
| Visibility filter | Respects archived/snoozed/expired states (uses the inbox_visible scope) |
Use Case: “What’s in my inbox?” → agent returns counts + recent unread so the user can prioritize before opening it.
✏️ Write Actions (Admin-Enabled)
Four write tools become available when an admin flips the writes_enabled toggle. Each routes through the platform’s risky-tool confirmation framework — users see a “confirm” prompt before the action executes.
| Tool | What it does |
|---|---|
| bookmark_record | Save a record on the user’s behalf, optionally with a note. Updates the note if the record is already bookmarked. |
| remove_bookmark | Delete one of the user’s bookmarks by id |
| update_bookmark_note | Change the note on an existing bookmark (or clear it with empty string) |
| mark_inbox_read | Mark specific notifications read, or all=true to clear the entire unread queue |
Use Case: A user reading a long policy says “Bookmark this for me with a note: relevant for Q3 audit” → the agent saves the bookmark with the note attached after the user confirms.
💡 Pro Tip: When you ask the agent to bookmark something already bookmarked, the agent updates the note in place rather than creating a duplicate. The bookmark uniqueness constraint (per user + record) enforces this at the database layer.
🛡️ Per-User Daily Write Cap
Admins set a maximum number of write actions a single user’s Personal Agent can perform per 24-hour window. Reads don’t count against the cap.
| Setting | Description |
|---|---|
| Default | 50 writes per user per day |
| Range | 0 (unlimited) to 1000 |
| Scope | Per user, not business-wide — one user’s heavy day doesn’t block their colleagues |
| Reset | At midnight in the business’s timezone |
| Storage | Counted via AutonomousAction rows with domain='personal' and user_id = the asking user |
Use Case: Admin sets cap to 5 during initial rollout. If a user asks the agent to mark every notification read after a backlog, the agent stops at 5 and tells the user the cap was reached.
🔍 Audit Trail
Every successful write logs an AutonomousAction with domain='personal', capability=<tool_name>, user_id, business_id, and executed_at. Note text is stripped from logged args so personal note bodies don’t end up in audit rows.
| Field | What’s captured |
|---|---|
| domain | Always 'personal' |
| capability | Tool name (bookmark_record, update_bookmark_note, mark_inbox_read, remove_bookmark) |
| user_id | Who triggered the action |
| action_data | Tool args minus note text |
| result_data | Tool result (id, action verb) |
| idempotency_key | Includes a per-write nonce so repeated same-capability writes don’t collide |
Use Case: Admin reviews /admin/automation-hub/activity filtered by domain='personal' to see every write the agent has made business-wide.
Routing — How the Agent Knows to Fire
The agent uses three routing layers (in priority order) so common “my X” queries don’t drift to other agents:
- PATTERN_KILLS (Stage 0) — Hard-coded regex like
/\bmy\s+bookmarks?\b/iroute directly to:app_personalbefore any classifier runs. Ordered ABOVE:app_employee_datapatterns so “my bookmarks” doesn’t leak into employee-profile queries. - HIGH_PRECISION_PATTERNS (Stage 1) — Broader patterns for “what did I bookmark”, “what’s on my plate today”, “are any of my tasks overdue”.
- KNN classifier + LLM fallback (Stage 2/3) — 36 example questions in the
:personaltraining corpus power semantic similarity matching for queries that don’t match a pattern.
User Roles & Permissions
| Role | Capabilities |
|---|---|
| Any signed-in user | Read tools when business has the agent enabled. Writes also available when admin has flipped the writes toggle and the user is under the daily cap. |
| HR / Admin | Same as above, plus the agent’s settings page in the App Gallery: enable/disable, allow writes, set the per-user daily cap. |
| Account-level opt-out | Any user can disable AI for their account in Account Settings → AI Preferences. This disables Personal Agent (and every other agent) for that user only. |
The agent never accepts a target user_id parameter — even an admin’s Personal Agent only sees their own data, not their reports’.
How We Compare
How Personal Agent compares to “personal AI” features in major collaboration platforms:
| Feature | MangoApps Workforce Personal Agent | Microsoft Copilot (M365) | Google Gemini for Workspace | Slack AI |
|---|---|---|---|---|
| Search saved items / bookmarks | ✅ | ⚡ | ⚡ | ✅ |
| Search across 10+ record types | ✅ | ✅ | ✅ | ⚡ |
| **Hard-scoped to current user (no cross-user) ** | ✅ | ✅ | ✅ | ✅ |
| List my unfinished drafts | ✅ | ⚡ | ❌ | ❌ |
| Summarize my inbox / unread | ✅ | ✅ | ✅ | ✅ |
| List my tasks / to-dos | ✅ | ✅ | ⚡ | ⚡ |
| Admin writes-on/off toggle | ✅ | ⚡ | ⚡ | ⚡ |
| Per-user daily action cap | ✅ | ❌ | ❌ | ❌ |
| Note text stripped from audit logs | ✅ | ⚡ | ⚡ | ⚡ |
| Legend: ✅ Included | ❌ Not Available | ⚡ Limited / partial / paid add-on |
Why MangoApps Workforce?
- 🔗 Single platform context — One agent searches across messages, todos, wikis, policies, SOPs, libraries, sites, recognitions, and jobs without hopping between separate “saved” inboxes
- 🛡️ Privacy primitives baked in — Hard scoping to
user_id, per-user cap, audit trail, note text scrubbed before logging — no add-on required - 💰 Included with the platform — No per-seat AI add-on; if your business has Ask AI enabled, Personal Agent is one toggle away
Getting Started
For Employees
- Open Ask AI from the top nav
- Type a “my X” query: “Show me my bookmarks”, “What’s in my inbox?”, “Are any of my tasks overdue?”
- Or
@personalto mention the agent explicitly - Click any returned record’s link to jump to it
For Administrators
- Open
/admin/app_marketplace/personal-agent(App Gallery → search “Personal Agent”) - Toggle Enable Personal Agent (defaults to on for new businesses)
- Optionally toggle Allow write actions (defaults to off — opt-in)
- Set the Per-user daily write cap (default 50; set to 0 for unlimited)
- Save. Activity shows up in
/admin/automation-hub/activityfiltered bydomain=personal
Best Practices
- ✅ Add notes to important bookmarks — they become searchable by the agent
- ✅ Roll out writes gradually — start with
writes_enabled: false, see read traffic in audit logs, then enable writes when you’re comfortable - ✅ Set a conservative cap during rollout — e.g., 5 writes/user/day for the first two weeks, then raise it
- ✅ Use specific phrasing — “my bookmarks about onboarding” routes faster than “things I saved related to new hires” (though both work via the LLM fallback)
- ✅ Don’t enable for kiosk-mode users — the per-user cap prevents abuse but the agent still consumes API tokens; account-level AI opt-out keeps shared kiosks quiet
Frequently Asked Questions
Q: Can the Personal Agent see my manager’s bookmarks or anyone else’s data?
A: No. Every tool query is hard-coded to filter by the asking user’s user_id, and the tools have no parameter for a target user id. Even an admin’s Personal Agent only returns their own data.
Q: What happens when I ask the agent to do something while writes are disabled?
A: The agent returns a friendly message: “Write actions are disabled for this business by an administrator.” Reads (search, list, summarize) continue to work without the toggle.
Q: How does the per-user daily cap work?
A: Each successful write logs an AutonomousAction with domain='personal' and the user’s id. Before each write, the agent counts today’s actions for the user; if the count is at or above the cap, the write is rejected with “You’ve reached today’s Personal Agent write limit (X). The cap resets at midnight.”
Q: Where do bookmarks come from?
A: Click the 🔖 icon next to any supported record’s title (messages, comments, tasks, wikis, policies, SOPs, library items, site pages, recognitions, jobs). The agent then searches across all of them.
Q: How do I disable the agent for my own account?
A: Account Settings → AI Preferences → master AI toggle off. This disables Personal Agent (and every other agent) for your account only — the business-level toggle is unaffected.
Q: Where can I see what the agent has done?
A: Admins see all Personal Agent writes in /admin/automation-hub/activity filtered by domain='personal'. Each row includes the user, the tool, the args (minus note text), and the result.
Related Resources
- Apps Overview — The full marketplace of MangoApps Workforce apps
- Bookmarks Overview — The save-anywhere feature the Personal Agent searches across
- Ask AI Overview — The conversation surface where the Personal Agent lives
- Platform Admin Agent Overview — The admin counterpart for org-wide queries
Personal AI, scoped to your account. Search. Bookmark. Catch up. Done.