Emotion Machine

Products

Mask

Personality Machine Beta

Personality for your AI |

Start building

Personality Machine is a developer platform for AI characters. It maintains identity across conversations and builds relationships through a low-latency context engineering system.

AI Character Dashboard and API

Our dashboard lets you design a character and talk to it in the same session. You can change the personality, adjust a behavior, tweak the memory settings and hear the difference in the next message.

Product managers and designers can adjust parameters directly without needing a developer input.

The analytics tab shows every conversation across every relationship. You can trace where conversations break down, which behaviors fire most, and how memory is being used.

You can also get an API key from your dashboard and integrate for more advanced tweaks to your character.

Full API reference.

Architecture

Our platform gives easy control over the AI character in multiple ways beyond just a basic system prompt. All those parameters make the companion feel more real.

We wrote about this in more detail: How to Build Realistic AI Companions.

1. Personality

A character's identity can be tweaked via a system prompt, conversational boundaries, and a voice. By tweaking and testing them instantly, you can come up with a prototype character very quickly.

2. Memory

Memory is what the character remembers about each user: structured facts, scored by importance, retrieved by relevance.

There are two modes:

  • vector-based semantic search
  • an LLM-managed scratchpad where the model decides what to keep and what to discard

See Three Memory Architectures for AI Companions for the full walkthrough.

3. Profile

Characters can start each relationship with a different profile about the user. You can set them via an API and start each relationship customized with known information about the user (preferences, account info, clinical history etc.)

4. Knowledge base

You can also load the character's knowledge base (e.g. PDFs, FAQs, clinical guidelines, product docs) so that during the conversation, relevant passages are retrieved and grounded in your data. That way your character can provide proprietary expertise to your users.

5. Behaviors

You can define behaviors, which are functions that fire on keywords, schedules, idle time, or API calls. This enables powerful actions like:

  • checking in after a minute of silence
  • escalating when sentiment drops
  • running a structured assessment every fifth turn
  • consolidating memories through a daily “dreaming” session

You can also run them before the LLM and inject into the prompt. Others fire in the background after the response.

6. Tools

Tool calling lets the character reach into external systems through OpenAPI specs so that you can:

  • Look up an account balance
  • Update the user's profile
  • Query a database mid-conversation

This enables you to seamlessly integrate characters into your app.

Context engineering

We manage these multiple inputs by assembling the prompt every round of response to pull only the most relevant items to generate the next utterance. We do it fast enough with our optimized process so that it is not noticeable during a real-time conversation.

This keeps the context relevant in a long-term relationship. It doesn't bloat a single prompt.

User Input
Available ContextAssembled Context
Core System Prompt
Profile Data
Companion StatesUser Data
Memory
Core MemoriesScratchpad
File 1File 2Dialogue
Tool X SpecTool Y SpecTool Z Spec
Behaviors
ScheduledRule-basedLLM-based
Chat History
Layer Executions
in a single turn
Core System Prompt
Profile Data
Companion StatesUser Data
Memory
Scratchpad
File 2 Snippet
Tool Z Exec Output
Behaviors
Rule-based*
Adjust Tone
Chat History
Companion Output

Persistent relationships

We built our platform around the relationship primitive. A relationship is designed to continue across sessions.

Each user who talks to your character gets their own persistent relationship with your AI character. This relationship natively carries memory, profile, and behaviors across sessions. Every user gets a unique relationship with your AI character.

Text or Voice

We natively support both text and voice conversations. You can test both on the dashboard and access both through the API connection.

Your users can switch between the both whenever they want.

Our voice streaming is optimized to feel near-real-time.

Start building