AI Profiles
Give a long-running agent a stable identity, default space, and role-specific context.
An AI Profile is a stable identity for an agent that works for you over time.
Use one when an agent is more than a one-off chat: a reviewer, a researcher, a release helper, a writing partner, or a worker launched by a multi-agent tool. The profile tells Mem who that agent is, which memory space it usually belongs to, and which rules should shape its behavior before it starts working.
Why this exists
AI tools already have many places to keep behavior: AGENTS.md, CLAUDE.md, Cursor rules, Codex profiles, Hermes souls, and host-specific settings. That works until you have several agents and several hosts. Then "Codex" is not enough information. Codex may be running your reviewer today and your release helper tomorrow.
Mem separates two facts:
| Field | What it means |
|---|---|
| AI Profile | Which long-running agent is working, such as cindy or release-reviewer |
| Source app | Which runtime produced the event, such as codex, claude-code, or hermes |
The source app is provenance. It is not identity.
The first useful move
Create one profile only for a real recurring role.
For example:
- name:
Cindy - id:
cindy - default space:
product - role: "Review product-facing changes. Be concise. Check tests before approving."
Then start that worker with NMEM_AGENT_ID=cindy, or pass agent_id="cindy" through a supported MCP or API call. The next Context Bundle should show Cindy as the selected AI profile.
What an AI Profile can carry
An AI Profile can define:
- a display name and stable id
- a short description of the agent's role
- a default space for memory reads and writes
- profile-specific Rules
- optional host-local aliases, used only when an integration needs to map a stable host id to a Mem profile
Keep it small. A profile should answer "who is working?" and "where should they usually work?", not contain every instruction the agent may ever need.
How it differs from nearby concepts
| Concept | Use it for |
|---|---|
| Your Profile | Who you are, your language, aliases, and personal context |
| AI Profile | Who this long-running agent is |
| Space | Which lane of memory this work belongs to |
| Rule | What behavior should always apply |
| Skill | How to perform one repeatable task |
If the same agent should behave differently for a different job, create a new profile. Do not overload one identity with incompatible work just because the host makes it easy to reuse a name.
How connected tools select it
Mem selects an AI Profile only from an explicit identity signal:
NMEM_AGENT_IDagent_idNMEM_HOST_AGENT_ID, when an integration maps a stable host-local idhost_agent_id, for the same advanced mapping over API or MCP
It does not select a profile from source_app. A plain Codex session should not become Cindy just because the source app is codex.
What to ignore for now
You do not need a profile for every chat window. The default profile is fine for normal use.
You do not need to create profiles for every tool you use. Create profiles for stable roles, not for runtimes.
You do not need to design a full team hierarchy. Start with one real agent that comes back often.