Repository navigation
Add switchable agent profiles with isolated persona context #3486
Description
Summary
Implement agent profiles so users can switch between different agent personas, such as marketing, product manager, or coder, with each profile carrying its own context and working setup.
Problem
Today OpenHuman behaves like one shared agent identity. Users who work across different roles or workflows need separate agent modes with different memory, connected accounts, skills, and MCP servers, without manually reconfiguring the app each time.
This hurts users who want clear boundaries between work contexts, for example keeping a marketing agent focused on campaign memory and tools while a coder agent uses development connectors and coding skills.
Constraints:
- Profile-specific state should be clearly separated where it affects agent behavior.
- Shared product surfaces such as Compose and the global skills catalog should remain global unless explicitly scoped later.
- Switching profiles should be obvious, fast, and safe.
- Privacy and data boundaries must be clear to users.
Solution (optional)
Add a profile model that scopes agent persona, memory, connectors, enabled skills, MCP servers, and default routing preferences. Keep shared components like Compose and the global skills catalog available across profiles, while allowing each profile to choose which skills/connectors/MCP servers are active for that persona.
Possible profile examples:
- Marketing
- Product manager
- Coder
- Personal assistant
- Custom profile
Acceptance criteria
- Profile creation — Users can create, rename, delete, and switch agent profiles.
- Persona configuration — Each profile can define persona/instructions, default behavior, and role-specific preferences.
- Memory isolation — Each profile has its own memory/context boundary, with clear behavior for shared/global memory if supported.
- Connector scoping — Each profile can enable or disable connected apps independently.
- Skills and MCP scoping — Each profile can choose active skills and MCP servers independently, while shared skill definitions remain global.
- Shared surfaces preserved — Compose and other intentionally global components continue to work across profiles.
- Safe switching — Switching profiles updates active memory, connector, skill, and MCP context without leaking stale state from the previous profile.
- UX clarity — The UI makes the active profile visible and explains what is profile-specific vs global.
- Regression safety — Unit, integration, or E2E coverage verifies profile switching, scoped memory/connectors, and global shared components.
- Diff coverage ≥ 80% — the implementing PR meets the changed-lines coverage gate (Vitest + cargo-llvm-cov, enforced by
.github/workflows/coverage.yml).
Related
- Follow-up from product planning discussion around role-specific agent experiences.
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsDone
Activity
senamakel commentedon Jul 23, 2026
Automated triage: closing as completed.
This issue requested switchable agent profiles with isolated persona context. PR #5118 ("feat: hermes-style agent profile homes — per-profile SOUL.md, workspace, memory, skills, cron attribution") shipped today (2026-07-23) and directly implements the core requested functionality:
dedicatedMemoryflag (per-profile memory subtree)dedicatedWorkspaceflag (per-profile cwd via WorkspaceDescriptor)The one acceptance criterion not explicitly addressed is connector scoping (per-profile enabled/disabled connected apps). This was deliberately listed as a follow-up in PR #5118 and would make a good follow-up issue if needed.
Reopen if connector scoping or any other specific acceptance criterion is needed beyond what was shipped.