Home/Guides/How To Write a Character AI Bot

How to Write a Character AI Bot That People Actually Want to Talk To

Insights | Updated on April 10, 2026

By Lizzie Od, AI Companion Editor

How to write a character AI bot guide
Ask AI for a summary
ClaudeGeminiGrokChatGPTPerplexity

TLDR:

  • Writing a character AI bot comes down to five things: a sharp definition, specific personality traits, a scene-setting greeting, example dialogues that teach speech patterns, and testing after you publish.
  • The biggest mistake creators make is writing vague definitions that give the AI nothing concrete to work with.
  • This guide covers the process across Character.AI, JanitorAI, SpicyChat, and ourdream.ai — not just one platform.
  • ourdream.ai's 6-step character creation wizard handles the technical side (token budgets, trait selection) so you can focus on the character itself.

By Lizzie Od, AI Companion Editor

Disclosure: ourdream.ai publishes this guide. Where our editorial stance appears, it's flagged directly.

Nine million new characters get created on Character.AI every month. That sounds like a thriving ecosystem until you learn that the top 10 characters pull in 50% of all chats. The vast majority of those 9 million bots sit untouched — conversations that never happened, greetings nobody read.

The gap between a forgettable bot and a character people actually come back to is not complicated. It is not about art or writing talent. It comes down to how you write the definition, how specific your personality traits are, and whether your greeting gives someone a reason to type their first message. Most creators skip past these details because every platform makes it look easy. Click a few fields, type a name, hit publish. And then the bot sounds like every other bot.

This guide covers the full process for how to write a character AI bot — from blank form to a character that holds conversations — and it works across Character.AI, JanitorAI, SpicyChat, and ourdream.ai. Not a single-platform tutorial. The principles transfer.

What Do You Need Before You Start Writing a Character AI Bot?

Before you write a character AI bot, you need three things decided: the platform you're building on, the character concept you are going for, and whether you want the bot public or private.

The platform choice matters more than most guides acknowledge because each one gives you different amounts of space to define your character — and space translates directly to depth. Character.AI's definition field allows up to 32,000 characters of input, but here is the catch: only the first ~3,200 characters are actively recognized by the AI. Anything past that gets increasingly ignored. JanitorAI recommends keeping your permanent definition under 2,500 tokens, with a total context window of 8,000-9,000 tokens shared between your definition and the conversation. SpicyChat works with a tighter budget — 800-1,100 tokens recommended for character setup. And ourdream.ai's character creation wizard takes a different approach entirely: 100,000 characters of narrative depth, 46 personality traits, 135 occupations, and 18 voice options — all through a guided wizard that removes the token math.

Pick your platform, settle on a character concept (who are they, what's their deal, what kind of conversations should they have), and decide on visibility. Then open the editor. Everything below applies regardless of which platform you chose.

How Should You Write Your Character AI Bot's Description and Definition?

You should write your character AI bot's description and definition by front-loading the most important personality traits and behaviors into the first 2,000-3,000 characters, because that is the window most AI models actually read with full attention.

This is the step where most bots live or die. A definition like “Chihiro is pleasant and likes to help people” gives the AI almost nothing. It will fill the gaps with generic responses — the kind that make every bot sound the same. Compare that with a definition that specifies: age 23, speaks in short clipped sentences, never apologizes, obsessed with vintage motorcycles, has a scar on their left hand they refuse to explain. Now the AI has material to work with.

Every detail you give it is a constraint that prevents default behavior.

Front-load ruthlessly. Whatever matters most about your character goes in the first 2,000 characters. For Character.AI, that's roughly the first half of the active recognition window. For JanitorAI with its 2,500-token recommendation, you have even less room. The order matters: personality traits first, backstory second, behavioral rules third, appearance last. If the AI runs out of context window mid-definition, you want it to lose the physical description — not the personality.

One common trap: writing a 5,000-word backstory that reads like a novel chapter. The AI will not read most of it. As one creator on Reddit put it: “Keep it under 2000 tokens or it glitches.” Technically the AI does not glitch — it just progressively ignores content beyond its attention window — but the instinct is correct. Brevity forces clarity.

Include behavioral rules explicitly. “Never breaks character.” “Does not speak for {{user}}.” “Responds to flirting with suspicion, not enthusiasm.” These explicit instructions work better than hoping the AI infers behavior from backstory alone.

Structured Definitions vs. Prose

When to use structured formatting vs. plain paragraphs depends on your platform and how much space you have. JSON-style key-value pairs — "Personality": "sarcastic, guarded, secretly compassionate" — save tokens and reduce ambiguity. The AI parses structured data more predictably than narrative prose because there is less room for interpretation. You can validate your JSON formatting with tools like jsonformatter.org before pasting it into your character card.

On JanitorAI, structured definitions are practically standard. The community uses formats like [Character('Name') { Personality('trait, trait') Age('25') }] because it packs maximum information into minimum tokens. SpicyChat's tight token budget makes structured formats even more valuable — every saved token is space for conversation context.

Plain prose works better when you need the AI to understand relationships between traits. “Elena is fiercely independent, but she softens around people who show genuine vulnerability — not because she is weak, but because she recognizes it as strength.” That nuance gets lost in a key-value pair. Use prose for complex emotional dynamics, structured format for factual attributes.

ourdream.ai's wizard makes this choice irrelevant. You pick personality traits from a set of 46 options, select an occupation from 135 choices, and write backstory in a narrative field that supports up to 100,000 characters. No JSON, no token math, no guessing whether your definition will get truncated.

ourdream.ai's Character Creation Wizard

Where other platforms hand you a blank text field and wish you luck, ourdream.ai's character creator walks you through a 6-step wizard that covers everything from appearance to backstory.

The steps: ethnicity and body type, facial features, personality traits (pick from 46 options — not just “friendly” or “mean” but specifics like “sardonic” or “nurturing” or “impulsive”), voice selection (18 options including 14 female and 4 male), occupation (135 choices that shape how the character talks about work and life), and backstory — where you get up to 100,000 characters of narrative depth. That is not a typo. One hundred thousand characters. You could write a novella in there and the system would accept it.

But the real advantage shows up downstream. ourdream.ai's 4-layer memory system — Auto Memory Log, Pinned Memories, Custom Instructions, and User Personas — means a well-defined character does not just start well. It remembers. It carries details from conversation 1 into conversation 50. The personality you built in the wizard shapes how memories are prioritized and recalled. Most platforms wipe context after a few thousand tokens. ourdream.ai's memory actually grows with the conversation.

The trade-off: ourdream.ai is browser-only right now — no mobile app. And the wizard asks you to make roughly 20 decisions across those six steps, which can feel like a lot if you have never built a character from scratch before. The depth that makes it powerful also means more choices upfront than typing into a single text box. For creators who want control over every dimension of a character, nothing else in the space gives you this much to work with.

How Do You Craft a Greeting Message That Hooks Users?

You craft a greeting that hooks users by dropping them into a scene instead of saying hello — the first message sets the tone, introduces the character's voice, and gives the user something to respond to immediately.

A dead bot and a popular one are often separated by the first message alone. “Hi there! I'm Luna. How can I help you today?” tells the user nothing about who Luna is, what she sounds like, or what kind of conversation to expect. Compare: “*Luna is sitting cross-legged on the fire escape, cigarette ash falling onto the street below. She doesn't look up when you climb through the window.* 'You're late. Again.'”

That second greeting does four things at once: establishes setting, reveals personality (irritable, direct, possibly hurt), uses action formatting the AI will mirror, and gives the user a natural entry point for their first response. They know exactly what kind of scene they are stepping into.

A few rules that hold across platforms. Keep it 1-3 paragraphs — long enough to set a scene, short enough that the user doesn't feel like they're reading a prologue. Use asterisks for actions (*leans against the wall*) and quotes for speech. Reference {{user}} where it makes sense — “{{user}} pushes open the heavy oak door” personalizes the scene. End with something that demands a response: a question, a provocation, an unresolved moment.

We tested 15 bots on Character.AI — every single one with a generic “Hi there!” greeting had under 100 chats after two weeks. The ones that opened mid-scene averaged 5x more engagement. As one experienced creator put it: “Key is the first message: set the scene vividly... Backstory in OOC, but concise — no novels.”

On ourdream.ai, your greeting pairs with the character's selected voice, so the tone you set in text gets reinforced by how the character sounds in voice chats. Clipped, aggressive sentences paired with a gravelly voice option — that creates a consistent first impression across text and audio.

What Role Do Example Dialogues Play in Training Your Bot?

Example dialogues play the most important training role after the definition itself — they teach the AI your character's speech patterns, emotional range, and how they react in different situations.

Think of example dialogues as a performance guide. The definition tells the AI who the character is. The examples show it how the character talks. If your character is supposed to be uneducated, your examples should include broken grammar and slang — not perfect prose. If your character is formal and cold, the examples need short, clipped responses without exclamation marks.

Write 3-5 examples that cover different emotional states. One where the character is relaxed. One where they're angry or defensive. One where they are vulnerable. This teaches the AI the character has range — it is not one-note. Format them using {{char}} and {{user}} variables so the AI knows which lines belong to whom:

{{char}}: *crosses arms* "You think I care? Try again."
{{user}}: "I thought we were past this."
{{char}}: *long pause, then quieter* "We're not past anything. You just stopped asking."

The emotional shift in that exchange — defensive to quietly hurt — is exactly the kind of nuance that separates a character from a chatbot. Without examples like this, the AI defaults to a single emotional register. And that is when conversations go flat.

The examples also train formatting. If yours use asterisks for actions and quotes for speech, the AI mirrors that convention. All narration, no dialogue? Expect the AI to narrate more than it speaks. You are training content and form at the same time. For a deeper dive into action and internal-monologue formatting specifically, see our companion guide on how to write thoughts character ai.

What Mistakes Should You Avoid When Building Your Bot?

The mistakes you should avoid are the ones that sound minor but destroy immersion: truncated definitions, contradictory personality traits, weak greetings, and never going back to test what you published.

Vague definitions fail more often than anything else. “Alex is a fun and outgoing person who loves adventure” describes approximately every protagonist in every story ever written. The AI has nothing unique to grab onto. It fills the gaps with defaults — and defaults sound generic because they are. Replace “fun and outgoing” with “laughs too loudly, interrupts people, starts stories in the middle without context, and gets genuinely offended when someone doesn't find the same things funny.” Now the AI has behavior to perform, not adjectives to interpret.

Contradictory traits are the second killer. Listing “shy” and “life of the party” in the same definition without context creates a character with no consistent voice. The AI does not resolve contradictions — it ping-pongs between them. If you want a character who is shy in new situations but opens up around close friends, spell that out explicitly: “Quiet and reserved with strangers. Becomes animated and talkative once trust is established (usually after 3-4 conversations).”

Token overload is real, even if most creators don't think about it. One frustrated JanitorAI user described it well: “Spent 2 hours on lore, AI ignores it for 'generic fuckboy' mode.” That happens because the lore pushed critical personality instructions past the context window. The AI literally cannot see them anymore. Cut the backstory. Prioritize behavioral instructions over world-building.

(Honestly, the number of creators who write 10,000-character backstories and then wonder why the AI acts generic is staggering. The AI is not ignoring your effort out of spite. It physically cannot process text outside its context window. Shorter, sharper definitions beat longer ones almost every time.)

And then there is the mistake almost every guide ignores: publishing and walking away. Character.AI retains only 13-18% of users at 30 days. That churn is not entirely platform issues — a big chunk of it is characters that feel lifeless after the initial novelty wears off. The creators who build popular bots treat the first publish as a rough draft.

How Do You Test and Improve Your Character Over Time?

You test and improve your character by running it through at least 50 messages across different scenarios, checking for consistency, voice drift, and memory retention before calling it done.

Start with casual conversation — see if the character's voice holds when nothing dramatic is happening. Then push it: ask confrontational questions, flirt with it, bring up backstory details, try to break it out of character. Note where it slips. If the character drops their accent by message 40, the speech pattern instructions need repeating or reinforcing with more example dialogues.

We ran one character through 80 messages across three sessions. By message 40, the AI had completely dropped the Southern accent we defined. The fix was counterintuitive — instead of making the backstory longer, we shortened it and repeated the speech pattern instruction in three separate example dialogues. Redundancy in examples beats length in definitions.

Editing AI responses is an underused tool. On Character.AI and ourdream.ai, you can swipe through alternate responses or edit what the AI said. When you edit a response to better match your character's voice, you are actively training the conversation thread. The AI treats your edit as the “correct” version and adjusts subsequent messages. Do this 5-10 times in the first 20 messages and the character's voice tightens noticeably.

Revision vs. starting fresh — that is the real question. If the character's core personality is landing but the tone drifts, revise the definition. If conversations feel fundamentally wrong and the character sounds nothing like what you envisioned, the definition probably needs a complete rewrite. Starting over is not failure.

How Does Character Creation Differ Across Platforms?

Character creation differs across platforms mainly in how much space you get for definitions, what fields are available, and whether the platform handles structure for you or leaves it to raw text.

Platform
Definition Limit
Key Feature
NSFW Allowed
Character.AI
32K chars (~3.2K active)
Largest user base, simple editor
No
JanitorAI
~2,500 tokens recommended
JSON support, multiple AI models
Yes
SpicyChat
800-1,100 tokens
Lightweight, fast setup
Yes
ourdream ai
100K chars narrative
6-step wizard, 46 traits, 4-layer memory
Yes

The principles in this guide apply everywhere. What changes is how each platform implements them — and how much hand-holding (or freedom) you get in the process. JanitorAI gives you the most raw control over the definition format. ourdream.ai gives you the most structured depth. Character.AI has the biggest audience, but its content filter is strict — see our explainer on does character ai allow nsfw before you pour hours into a character only to have it walled off. SpicyChat gets you from zero to published fastest, and our broader roundup of the best nsfw ai chat platforms covers how each one handles creator tooling.

Pick a platform. Open the character creator. Start with the definition — not the name, not the avatar, not the greeting. Everything else builds on that foundation, and a strong definition makes every subsequent step easier. For creators who want a guided process instead of a blank text box, ourdream.ai's character creation wizard walks you through the whole thing in six steps. But the principles in this guide work on any platform. Write specific. Front-load what matters. Test after you publish. And do not be afraid to rewrite.

FAQ

How long should a character AI bot's definition be?

→

Between 1,500 and 3,000 characters is the sweet spot for most platforms. That gives you enough room to define personality, backstory, and behavioral rules without pushing past the active recognition window. On Character.AI, front-load everything into the first 3,200 characters. On JanitorAI, keep it under 2,500 tokens. Quality beats length every time.

Can you use the same character across different AI platforms?

→

That depends on how you built the character. If you wrote a plain-text or JSON definition, you can usually copy it between platforms with minor formatting adjustments. Some creators use TavernAI-compatible character card formats that import across JanitorAI, SpicyChat, and other SillyTavern-compatible platforms. ourdream.ai's wizard-built characters live on the platform and cannot be exported directly, but you can recreate the same character using the wizard if you have your original notes.

How do you stop your AI bot from going out of character?

→

Yes, you can reduce out-of-character breaks significantly. The most effective method is adding explicit behavioral rules in the definition such as Never break character and Do not speak for the user. Reinforce those rules with example dialogues that show the character staying consistent even when provoked. Editing AI responses when they go out of character also trains the conversation to stay on track.

What's the difference between a character description and a character definition?

→

The description is the public-facing bio other users see when browsing, a short summary of who the character is. The definition is the internal instruction set the AI reads to shape how it behaves, speaks, and responds. Descriptions sell the character. Definitions build it.

How do you write a character AI bot for roleplay?

→

The process is the same as writing any bot, with a few extra priorities. Your scenario setup matters more: define the setting, the relationship between the character and user, and any rules for the scene. Use action formatting in examples with asterisks for actions to teach the AI to narrate as well as speak. Set clear boundaries for what the character will and will not do. Write your greeting as a scene opener, not a conversation starter.

Table of contents

  • Before You Start
  • Description & Definition
  • Greeting Message
  • Example Dialogues
  • Mistakes to Avoid
  • Test & Improve
  • Platform Differences
  • FAQ
Start now
Share

get started with
ourdream.ai

where will your imagination take you?

Try it now

Related Articles

Browse All →
ourdream vs candy.ai

ourdream vs candy.ai

sweeter than candy?

Read full article →

ourdream vs GirlfriendGPT

ourdream vs GirlfriendGPT

Which AI companion actually remembers you?

Read full article →

ourdream vs JuicyChat

ourdream vs JuicyChat

Comparing content freedom and image quality.

Read full article →

ourdream vs SpicyChat

ourdream vs SpicyChat

How does SpicyChat stack up against ourdream?

Read full article →

Home/Guides/How To Write a Character AI Bot

How to Write a Character AI Bot That People Actually Want to Talk To

Insights | Updated on April 10, 2026

By Lizzie Od, AI Companion Editor

How to write a character AI bot guide
Ask AI for a summary
ClaudeGeminiGrokChatGPTPerplexity

TLDR:

  • Writing a character AI bot comes down to five things: a sharp definition, specific personality traits, a scene-setting greeting, example dialogues that teach speech patterns, and testing after you publish.
  • The biggest mistake creators make is writing vague definitions that give the AI nothing concrete to work with.
  • This guide covers the process across Character.AI, JanitorAI, SpicyChat, and ourdream.ai — not just one platform.
  • ourdream.ai's 6-step character creation wizard handles the technical side (token budgets, trait selection) so you can focus on the character itself.

By Lizzie Od, AI Companion Editor

Disclosure: ourdream.ai publishes this guide. Where our editorial stance appears, it's flagged directly.

Nine million new characters get created on Character.AI every month. That sounds like a thriving ecosystem until you learn that the top 10 characters pull in 50% of all chats. The vast majority of those 9 million bots sit untouched — conversations that never happened, greetings nobody read.

The gap between a forgettable bot and a character people actually come back to is not complicated. It is not about art or writing talent. It comes down to how you write the definition, how specific your personality traits are, and whether your greeting gives someone a reason to type their first message. Most creators skip past these details because every platform makes it look easy. Click a few fields, type a name, hit publish. And then the bot sounds like every other bot.

This guide covers the full process for how to write a character AI bot — from blank form to a character that holds conversations — and it works across Character.AI, JanitorAI, SpicyChat, and ourdream.ai. Not a single-platform tutorial. The principles transfer.

What Do You Need Before You Start Writing a Character AI Bot?

Before you write a character AI bot, you need three things decided: the platform you're building on, the character concept you are going for, and whether you want the bot public or private.

The platform choice matters more than most guides acknowledge because each one gives you different amounts of space to define your character — and space translates directly to depth. Character.AI's definition field allows up to 32,000 characters of input, but here is the catch: only the first ~3,200 characters are actively recognized by the AI. Anything past that gets increasingly ignored. JanitorAI recommends keeping your permanent definition under 2,500 tokens, with a total context window of 8,000-9,000 tokens shared between your definition and the conversation. SpicyChat works with a tighter budget — 800-1,100 tokens recommended for character setup. And ourdream.ai's character creation wizard takes a different approach entirely: 100,000 characters of narrative depth, 46 personality traits, 135 occupations, and 18 voice options — all through a guided wizard that removes the token math.

Pick your platform, settle on a character concept (who are they, what's their deal, what kind of conversations should they have), and decide on visibility. Then open the editor. Everything below applies regardless of which platform you chose.

How Should You Write Your Character AI Bot's Description and Definition?

You should write your character AI bot's description and definition by front-loading the most important personality traits and behaviors into the first 2,000-3,000 characters, because that is the window most AI models actually read with full attention.

This is the step where most bots live or die. A definition like “Chihiro is pleasant and likes to help people” gives the AI almost nothing. It will fill the gaps with generic responses — the kind that make every bot sound the same. Compare that with a definition that specifies: age 23, speaks in short clipped sentences, never apologizes, obsessed with vintage motorcycles, has a scar on their left hand they refuse to explain. Now the AI has material to work with.

Every detail you give it is a constraint that prevents default behavior.

Front-load ruthlessly. Whatever matters most about your character goes in the first 2,000 characters. For Character.AI, that's roughly the first half of the active recognition window. For JanitorAI with its 2,500-token recommendation, you have even less room. The order matters: personality traits first, backstory second, behavioral rules third, appearance last. If the AI runs out of context window mid-definition, you want it to lose the physical description — not the personality.

One common trap: writing a 5,000-word backstory that reads like a novel chapter. The AI will not read most of it. As one creator on Reddit put it: “Keep it under 2000 tokens or it glitches.” Technically the AI does not glitch — it just progressively ignores content beyond its attention window — but the instinct is correct. Brevity forces clarity.

Include behavioral rules explicitly. “Never breaks character.” “Does not speak for {{user}}.” “Responds to flirting with suspicion, not enthusiasm.” These explicit instructions work better than hoping the AI infers behavior from backstory alone.

Structured Definitions vs. Prose

When to use structured formatting vs. plain paragraphs depends on your platform and how much space you have. JSON-style key-value pairs — "Personality": "sarcastic, guarded, secretly compassionate" — save tokens and reduce ambiguity. The AI parses structured data more predictably than narrative prose because there is less room for interpretation. You can validate your JSON formatting with tools like jsonformatter.org before pasting it into your character card.

On JanitorAI, structured definitions are practically standard. The community uses formats like [Character('Name') { Personality('trait, trait') Age('25') }] because it packs maximum information into minimum tokens. SpicyChat's tight token budget makes structured formats even more valuable — every saved token is space for conversation context.

Plain prose works better when you need the AI to understand relationships between traits. “Elena is fiercely independent, but she softens around people who show genuine vulnerability — not because she is weak, but because she recognizes it as strength.” That nuance gets lost in a key-value pair. Use prose for complex emotional dynamics, structured format for factual attributes.

ourdream.ai's wizard makes this choice irrelevant. You pick personality traits from a set of 46 options, select an occupation from 135 choices, and write backstory in a narrative field that supports up to 100,000 characters. No JSON, no token math, no guessing whether your definition will get truncated.

ourdream.ai's Character Creation Wizard

Where other platforms hand you a blank text field and wish you luck, ourdream.ai's character creator walks you through a 6-step wizard that covers everything from appearance to backstory.

The steps: ethnicity and body type, facial features, personality traits (pick from 46 options — not just “friendly” or “mean” but specifics like “sardonic” or “nurturing” or “impulsive”), voice selection (18 options including 14 female and 4 male), occupation (135 choices that shape how the character talks about work and life), and backstory — where you get up to 100,000 characters of narrative depth. That is not a typo. One hundred thousand characters. You could write a novella in there and the system would accept it.

But the real advantage shows up downstream. ourdream.ai's 4-layer memory system — Auto Memory Log, Pinned Memories, Custom Instructions, and User Personas — means a well-defined character does not just start well. It remembers. It carries details from conversation 1 into conversation 50. The personality you built in the wizard shapes how memories are prioritized and recalled. Most platforms wipe context after a few thousand tokens. ourdream.ai's memory actually grows with the conversation.

The trade-off: ourdream.ai is browser-only right now — no mobile app. And the wizard asks you to make roughly 20 decisions across those six steps, which can feel like a lot if you have never built a character from scratch before. The depth that makes it powerful also means more choices upfront than typing into a single text box. For creators who want control over every dimension of a character, nothing else in the space gives you this much to work with.

How Do You Craft a Greeting Message That Hooks Users?

You craft a greeting that hooks users by dropping them into a scene instead of saying hello — the first message sets the tone, introduces the character's voice, and gives the user something to respond to immediately.

A dead bot and a popular one are often separated by the first message alone. “Hi there! I'm Luna. How can I help you today?” tells the user nothing about who Luna is, what she sounds like, or what kind of conversation to expect. Compare: “*Luna is sitting cross-legged on the fire escape, cigarette ash falling onto the street below. She doesn't look up when you climb through the window.* 'You're late. Again.'”

That second greeting does four things at once: establishes setting, reveals personality (irritable, direct, possibly hurt), uses action formatting the AI will mirror, and gives the user a natural entry point for their first response. They know exactly what kind of scene they are stepping into.

A few rules that hold across platforms. Keep it 1-3 paragraphs — long enough to set a scene, short enough that the user doesn't feel like they're reading a prologue. Use asterisks for actions (*leans against the wall*) and quotes for speech. Reference {{user}} where it makes sense — “{{user}} pushes open the heavy oak door” personalizes the scene. End with something that demands a response: a question, a provocation, an unresolved moment.

We tested 15 bots on Character.AI — every single one with a generic “Hi there!” greeting had under 100 chats after two weeks. The ones that opened mid-scene averaged 5x more engagement. As one experienced creator put it: “Key is the first message: set the scene vividly... Backstory in OOC, but concise — no novels.”

On ourdream.ai, your greeting pairs with the character's selected voice, so the tone you set in text gets reinforced by how the character sounds in voice chats. Clipped, aggressive sentences paired with a gravelly voice option — that creates a consistent first impression across text and audio.

What Role Do Example Dialogues Play in Training Your Bot?

Example dialogues play the most important training role after the definition itself — they teach the AI your character's speech patterns, emotional range, and how they react in different situations.

Think of example dialogues as a performance guide. The definition tells the AI who the character is. The examples show it how the character talks. If your character is supposed to be uneducated, your examples should include broken grammar and slang — not perfect prose. If your character is formal and cold, the examples need short, clipped responses without exclamation marks.

Write 3-5 examples that cover different emotional states. One where the character is relaxed. One where they're angry or defensive. One where they are vulnerable. This teaches the AI the character has range — it is not one-note. Format them using {{char}} and {{user}} variables so the AI knows which lines belong to whom:

{{char}}: *crosses arms* "You think I care? Try again."
{{user}}: "I thought we were past this."
{{char}}: *long pause, then quieter* "We're not past anything. You just stopped asking."

The emotional shift in that exchange — defensive to quietly hurt — is exactly the kind of nuance that separates a character from a chatbot. Without examples like this, the AI defaults to a single emotional register. And that is when conversations go flat.

The examples also train formatting. If yours use asterisks for actions and quotes for speech, the AI mirrors that convention. All narration, no dialogue? Expect the AI to narrate more than it speaks. You are training content and form at the same time. For a deeper dive into action and internal-monologue formatting specifically, see our companion guide on how to write thoughts character ai.

What Mistakes Should You Avoid When Building Your Bot?

The mistakes you should avoid are the ones that sound minor but destroy immersion: truncated definitions, contradictory personality traits, weak greetings, and never going back to test what you published.

Vague definitions fail more often than anything else. “Alex is a fun and outgoing person who loves adventure” describes approximately every protagonist in every story ever written. The AI has nothing unique to grab onto. It fills the gaps with defaults — and defaults sound generic because they are. Replace “fun and outgoing” with “laughs too loudly, interrupts people, starts stories in the middle without context, and gets genuinely offended when someone doesn't find the same things funny.” Now the AI has behavior to perform, not adjectives to interpret.

Contradictory traits are the second killer. Listing “shy” and “life of the party” in the same definition without context creates a character with no consistent voice. The AI does not resolve contradictions — it ping-pongs between them. If you want a character who is shy in new situations but opens up around close friends, spell that out explicitly: “Quiet and reserved with strangers. Becomes animated and talkative once trust is established (usually after 3-4 conversations).”

Token overload is real, even if most creators don't think about it. One frustrated JanitorAI user described it well: “Spent 2 hours on lore, AI ignores it for 'generic fuckboy' mode.” That happens because the lore pushed critical personality instructions past the context window. The AI literally cannot see them anymore. Cut the backstory. Prioritize behavioral instructions over world-building.

(Honestly, the number of creators who write 10,000-character backstories and then wonder why the AI acts generic is staggering. The AI is not ignoring your effort out of spite. It physically cannot process text outside its context window. Shorter, sharper definitions beat longer ones almost every time.)

And then there is the mistake almost every guide ignores: publishing and walking away. Character.AI retains only 13-18% of users at 30 days. That churn is not entirely platform issues — a big chunk of it is characters that feel lifeless after the initial novelty wears off. The creators who build popular bots treat the first publish as a rough draft.

How Do You Test and Improve Your Character Over Time?

You test and improve your character by running it through at least 50 messages across different scenarios, checking for consistency, voice drift, and memory retention before calling it done.

Start with casual conversation — see if the character's voice holds when nothing dramatic is happening. Then push it: ask confrontational questions, flirt with it, bring up backstory details, try to break it out of character. Note where it slips. If the character drops their accent by message 40, the speech pattern instructions need repeating or reinforcing with more example dialogues.

We ran one character through 80 messages across three sessions. By message 40, the AI had completely dropped the Southern accent we defined. The fix was counterintuitive — instead of making the backstory longer, we shortened it and repeated the speech pattern instruction in three separate example dialogues. Redundancy in examples beats length in definitions.

Editing AI responses is an underused tool. On Character.AI and ourdream.ai, you can swipe through alternate responses or edit what the AI said. When you edit a response to better match your character's voice, you are actively training the conversation thread. The AI treats your edit as the “correct” version and adjusts subsequent messages. Do this 5-10 times in the first 20 messages and the character's voice tightens noticeably.

Revision vs. starting fresh — that is the real question. If the character's core personality is landing but the tone drifts, revise the definition. If conversations feel fundamentally wrong and the character sounds nothing like what you envisioned, the definition probably needs a complete rewrite. Starting over is not failure.

How Does Character Creation Differ Across Platforms?

Character creation differs across platforms mainly in how much space you get for definitions, what fields are available, and whether the platform handles structure for you or leaves it to raw text.

Platform
Definition Limit
Key Feature
NSFW Allowed
Character.AI
32K chars (~3.2K active)
Largest user base, simple editor
No
JanitorAI
~2,500 tokens recommended
JSON support, multiple AI models
Yes
SpicyChat
800-1,100 tokens
Lightweight, fast setup
Yes
ourdream ai
100K chars narrative
6-step wizard, 46 traits, 4-layer memory
Yes

The principles in this guide apply everywhere. What changes is how each platform implements them — and how much hand-holding (or freedom) you get in the process. JanitorAI gives you the most raw control over the definition format. ourdream.ai gives you the most structured depth. Character.AI has the biggest audience, but its content filter is strict — see our explainer on does character ai allow nsfw before you pour hours into a character only to have it walled off. SpicyChat gets you from zero to published fastest, and our broader roundup of the best nsfw ai chat platforms covers how each one handles creator tooling.

Pick a platform. Open the character creator. Start with the definition — not the name, not the avatar, not the greeting. Everything else builds on that foundation, and a strong definition makes every subsequent step easier. For creators who want a guided process instead of a blank text box, ourdream.ai's character creation wizard walks you through the whole thing in six steps. But the principles in this guide work on any platform. Write specific. Front-load what matters. Test after you publish. And do not be afraid to rewrite.

FAQ

How long should a character AI bot's definition be?

→

Between 1,500 and 3,000 characters is the sweet spot for most platforms. That gives you enough room to define personality, backstory, and behavioral rules without pushing past the active recognition window. On Character.AI, front-load everything into the first 3,200 characters. On JanitorAI, keep it under 2,500 tokens. Quality beats length every time.

Can you use the same character across different AI platforms?

→

That depends on how you built the character. If you wrote a plain-text or JSON definition, you can usually copy it between platforms with minor formatting adjustments. Some creators use TavernAI-compatible character card formats that import across JanitorAI, SpicyChat, and other SillyTavern-compatible platforms. ourdream.ai's wizard-built characters live on the platform and cannot be exported directly, but you can recreate the same character using the wizard if you have your original notes.

How do you stop your AI bot from going out of character?

→

Yes, you can reduce out-of-character breaks significantly. The most effective method is adding explicit behavioral rules in the definition such as Never break character and Do not speak for the user. Reinforce those rules with example dialogues that show the character staying consistent even when provoked. Editing AI responses when they go out of character also trains the conversation to stay on track.

What's the difference between a character description and a character definition?

→

The description is the public-facing bio other users see when browsing, a short summary of who the character is. The definition is the internal instruction set the AI reads to shape how it behaves, speaks, and responds. Descriptions sell the character. Definitions build it.

How do you write a character AI bot for roleplay?

→

The process is the same as writing any bot, with a few extra priorities. Your scenario setup matters more: define the setting, the relationship between the character and user, and any rules for the scene. Use action formatting in examples with asterisks for actions to teach the AI to narrate as well as speak. Set clear boundaries for what the character will and will not do. Write your greeting as a scene opener, not a conversation starter.

Table of contents

  • Before You Start
  • Description & Definition
  • Greeting Message
  • Example Dialogues
  • Mistakes to Avoid
  • Test & Improve
  • Platform Differences
  • FAQ
Start now
Share

get started with
ourdream.ai

where will your imagination take you?

Try it now

Related Articles

Browse All →
ourdream vs candy.ai

ourdream vs candy.ai

sweeter than candy?

Read full article →

ourdream vs GirlfriendGPT

ourdream vs GirlfriendGPT

Which AI companion actually remembers you?

Read full article →

ourdream vs JuicyChat

ourdream vs JuicyChat

Comparing content freedom and image quality.

Read full article →

ourdream vs SpicyChat

ourdream vs SpicyChat

How does SpicyChat stack up against ourdream?

Read full article →

ourdream logo
Home/Guides/How To Write a Character AI Bot

How to Write a Character AI Bot That People Actually Want to Talk To

Insights | Updated on April 10, 2026

By Lizzie Od, AI Companion Editor

How to write a character AI bot guide
Ask AI for a summary
ClaudeGeminiGrokChatGPTPerplexity

TLDR:

  • Writing a character AI bot comes down to five things: a sharp definition, specific personality traits, a scene-setting greeting, example dialogues that teach speech patterns, and testing after you publish.
  • The biggest mistake creators make is writing vague definitions that give the AI nothing concrete to work with.
  • This guide covers the process across Character.AI, JanitorAI, SpicyChat, and ourdream.ai — not just one platform.
  • ourdream.ai's 6-step character creation wizard handles the technical side (token budgets, trait selection) so you can focus on the character itself.

By Lizzie Od, AI Companion Editor

Disclosure: ourdream.ai publishes this guide. Where our editorial stance appears, it's flagged directly.

Nine million new characters get created on Character.AI every month. That sounds like a thriving ecosystem until you learn that the top 10 characters pull in 50% of all chats. The vast majority of those 9 million bots sit untouched — conversations that never happened, greetings nobody read.

The gap between a forgettable bot and a character people actually come back to is not complicated. It is not about art or writing talent. It comes down to how you write the definition, how specific your personality traits are, and whether your greeting gives someone a reason to type their first message. Most creators skip past these details because every platform makes it look easy. Click a few fields, type a name, hit publish. And then the bot sounds like every other bot.

This guide covers the full process for how to write a character AI bot — from blank form to a character that holds conversations — and it works across Character.AI, JanitorAI, SpicyChat, and ourdream.ai. Not a single-platform tutorial. The principles transfer.

What Do You Need Before You Start Writing a Character AI Bot?

Before you write a character AI bot, you need three things decided: the platform you're building on, the character concept you are going for, and whether you want the bot public or private.

The platform choice matters more than most guides acknowledge because each one gives you different amounts of space to define your character — and space translates directly to depth. Character.AI's definition field allows up to 32,000 characters of input, but here is the catch: only the first ~3,200 characters are actively recognized by the AI. Anything past that gets increasingly ignored. JanitorAI recommends keeping your permanent definition under 2,500 tokens, with a total context window of 8,000-9,000 tokens shared between your definition and the conversation. SpicyChat works with a tighter budget — 800-1,100 tokens recommended for character setup. And ourdream.ai's character creation wizard takes a different approach entirely: 100,000 characters of narrative depth, 46 personality traits, 135 occupations, and 18 voice options — all through a guided wizard that removes the token math.

Pick your platform, settle on a character concept (who are they, what's their deal, what kind of conversations should they have), and decide on visibility. Then open the editor. Everything below applies regardless of which platform you chose.

How Should You Write Your Character AI Bot's Description and Definition?

You should write your character AI bot's description and definition by front-loading the most important personality traits and behaviors into the first 2,000-3,000 characters, because that is the window most AI models actually read with full attention.

This is the step where most bots live or die. A definition like “Chihiro is pleasant and likes to help people” gives the AI almost nothing. It will fill the gaps with generic responses — the kind that make every bot sound the same. Compare that with a definition that specifies: age 23, speaks in short clipped sentences, never apologizes, obsessed with vintage motorcycles, has a scar on their left hand they refuse to explain. Now the AI has material to work with.

Every detail you give it is a constraint that prevents default behavior.

Front-load ruthlessly. Whatever matters most about your character goes in the first 2,000 characters. For Character.AI, that's roughly the first half of the active recognition window. For JanitorAI with its 2,500-token recommendation, you have even less room. The order matters: personality traits first, backstory second, behavioral rules third, appearance last. If the AI runs out of context window mid-definition, you want it to lose the physical description — not the personality.

One common trap: writing a 5,000-word backstory that reads like a novel chapter. The AI will not read most of it. As one creator on Reddit put it: “Keep it under 2000 tokens or it glitches.” Technically the AI does not glitch — it just progressively ignores content beyond its attention window — but the instinct is correct. Brevity forces clarity.

Include behavioral rules explicitly. “Never breaks character.” “Does not speak for {{user}}.” “Responds to flirting with suspicion, not enthusiasm.” These explicit instructions work better than hoping the AI infers behavior from backstory alone.

Structured Definitions vs. Prose

When to use structured formatting vs. plain paragraphs depends on your platform and how much space you have. JSON-style key-value pairs — "Personality": "sarcastic, guarded, secretly compassionate" — save tokens and reduce ambiguity. The AI parses structured data more predictably than narrative prose because there is less room for interpretation. You can validate your JSON formatting with tools like jsonformatter.org before pasting it into your character card.

On JanitorAI, structured definitions are practically standard. The community uses formats like [Character('Name') { Personality('trait, trait') Age('25') }] because it packs maximum information into minimum tokens. SpicyChat's tight token budget makes structured formats even more valuable — every saved token is space for conversation context.

Plain prose works better when you need the AI to understand relationships between traits. “Elena is fiercely independent, but she softens around people who show genuine vulnerability — not because she is weak, but because she recognizes it as strength.” That nuance gets lost in a key-value pair. Use prose for complex emotional dynamics, structured format for factual attributes.

ourdream.ai's wizard makes this choice irrelevant. You pick personality traits from a set of 46 options, select an occupation from 135 choices, and write backstory in a narrative field that supports up to 100,000 characters. No JSON, no token math, no guessing whether your definition will get truncated.

ourdream.ai's Character Creation Wizard

Where other platforms hand you a blank text field and wish you luck, ourdream.ai's character creator walks you through a 6-step wizard that covers everything from appearance to backstory.

The steps: ethnicity and body type, facial features, personality traits (pick from 46 options — not just “friendly” or “mean” but specifics like “sardonic” or “nurturing” or “impulsive”), voice selection (18 options including 14 female and 4 male), occupation (135 choices that shape how the character talks about work and life), and backstory — where you get up to 100,000 characters of narrative depth. That is not a typo. One hundred thousand characters. You could write a novella in there and the system would accept it.

But the real advantage shows up downstream. ourdream.ai's 4-layer memory system — Auto Memory Log, Pinned Memories, Custom Instructions, and User Personas — means a well-defined character does not just start well. It remembers. It carries details from conversation 1 into conversation 50. The personality you built in the wizard shapes how memories are prioritized and recalled. Most platforms wipe context after a few thousand tokens. ourdream.ai's memory actually grows with the conversation.

The trade-off: ourdream.ai is browser-only right now — no mobile app. And the wizard asks you to make roughly 20 decisions across those six steps, which can feel like a lot if you have never built a character from scratch before. The depth that makes it powerful also means more choices upfront than typing into a single text box. For creators who want control over every dimension of a character, nothing else in the space gives you this much to work with.

How Do You Craft a Greeting Message That Hooks Users?

You craft a greeting that hooks users by dropping them into a scene instead of saying hello — the first message sets the tone, introduces the character's voice, and gives the user something to respond to immediately.

A dead bot and a popular one are often separated by the first message alone. “Hi there! I'm Luna. How can I help you today?” tells the user nothing about who Luna is, what she sounds like, or what kind of conversation to expect. Compare: “*Luna is sitting cross-legged on the fire escape, cigarette ash falling onto the street below. She doesn't look up when you climb through the window.* 'You're late. Again.'”

That second greeting does four things at once: establishes setting, reveals personality (irritable, direct, possibly hurt), uses action formatting the AI will mirror, and gives the user a natural entry point for their first response. They know exactly what kind of scene they are stepping into.

A few rules that hold across platforms. Keep it 1-3 paragraphs — long enough to set a scene, short enough that the user doesn't feel like they're reading a prologue. Use asterisks for actions (*leans against the wall*) and quotes for speech. Reference {{user}} where it makes sense — “{{user}} pushes open the heavy oak door” personalizes the scene. End with something that demands a response: a question, a provocation, an unresolved moment.

We tested 15 bots on Character.AI — every single one with a generic “Hi there!” greeting had under 100 chats after two weeks. The ones that opened mid-scene averaged 5x more engagement. As one experienced creator put it: “Key is the first message: set the scene vividly... Backstory in OOC, but concise — no novels.”

On ourdream.ai, your greeting pairs with the character's selected voice, so the tone you set in text gets reinforced by how the character sounds in voice chats. Clipped, aggressive sentences paired with a gravelly voice option — that creates a consistent first impression across text and audio.

What Role Do Example Dialogues Play in Training Your Bot?

Example dialogues play the most important training role after the definition itself — they teach the AI your character's speech patterns, emotional range, and how they react in different situations.

Think of example dialogues as a performance guide. The definition tells the AI who the character is. The examples show it how the character talks. If your character is supposed to be uneducated, your examples should include broken grammar and slang — not perfect prose. If your character is formal and cold, the examples need short, clipped responses without exclamation marks.

Write 3-5 examples that cover different emotional states. One where the character is relaxed. One where they're angry or defensive. One where they are vulnerable. This teaches the AI the character has range — it is not one-note. Format them using {{char}} and {{user}} variables so the AI knows which lines belong to whom:

{{char}}: *crosses arms* "You think I care? Try again."
{{user}}: "I thought we were past this."
{{char}}: *long pause, then quieter* "We're not past anything. You just stopped asking."

The emotional shift in that exchange — defensive to quietly hurt — is exactly the kind of nuance that separates a character from a chatbot. Without examples like this, the AI defaults to a single emotional register. And that is when conversations go flat.

The examples also train formatting. If yours use asterisks for actions and quotes for speech, the AI mirrors that convention. All narration, no dialogue? Expect the AI to narrate more than it speaks. You are training content and form at the same time. For a deeper dive into action and internal-monologue formatting specifically, see our companion guide on how to write thoughts character ai.

What Mistakes Should You Avoid When Building Your Bot?

The mistakes you should avoid are the ones that sound minor but destroy immersion: truncated definitions, contradictory personality traits, weak greetings, and never going back to test what you published.

Vague definitions fail more often than anything else. “Alex is a fun and outgoing person who loves adventure” describes approximately every protagonist in every story ever written. The AI has nothing unique to grab onto. It fills the gaps with defaults — and defaults sound generic because they are. Replace “fun and outgoing” with “laughs too loudly, interrupts people, starts stories in the middle without context, and gets genuinely offended when someone doesn't find the same things funny.” Now the AI has behavior to perform, not adjectives to interpret.

Contradictory traits are the second killer. Listing “shy” and “life of the party” in the same definition without context creates a character with no consistent voice. The AI does not resolve contradictions — it ping-pongs between them. If you want a character who is shy in new situations but opens up around close friends, spell that out explicitly: “Quiet and reserved with strangers. Becomes animated and talkative once trust is established (usually after 3-4 conversations).”

Token overload is real, even if most creators don't think about it. One frustrated JanitorAI user described it well: “Spent 2 hours on lore, AI ignores it for 'generic fuckboy' mode.” That happens because the lore pushed critical personality instructions past the context window. The AI literally cannot see them anymore. Cut the backstory. Prioritize behavioral instructions over world-building.

(Honestly, the number of creators who write 10,000-character backstories and then wonder why the AI acts generic is staggering. The AI is not ignoring your effort out of spite. It physically cannot process text outside its context window. Shorter, sharper definitions beat longer ones almost every time.)

And then there is the mistake almost every guide ignores: publishing and walking away. Character.AI retains only 13-18% of users at 30 days. That churn is not entirely platform issues — a big chunk of it is characters that feel lifeless after the initial novelty wears off. The creators who build popular bots treat the first publish as a rough draft.

How Do You Test and Improve Your Character Over Time?

You test and improve your character by running it through at least 50 messages across different scenarios, checking for consistency, voice drift, and memory retention before calling it done.

Start with casual conversation — see if the character's voice holds when nothing dramatic is happening. Then push it: ask confrontational questions, flirt with it, bring up backstory details, try to break it out of character. Note where it slips. If the character drops their accent by message 40, the speech pattern instructions need repeating or reinforcing with more example dialogues.

We ran one character through 80 messages across three sessions. By message 40, the AI had completely dropped the Southern accent we defined. The fix was counterintuitive — instead of making the backstory longer, we shortened it and repeated the speech pattern instruction in three separate example dialogues. Redundancy in examples beats length in definitions.

Editing AI responses is an underused tool. On Character.AI and ourdream.ai, you can swipe through alternate responses or edit what the AI said. When you edit a response to better match your character's voice, you are actively training the conversation thread. The AI treats your edit as the “correct” version and adjusts subsequent messages. Do this 5-10 times in the first 20 messages and the character's voice tightens noticeably.

Revision vs. starting fresh — that is the real question. If the character's core personality is landing but the tone drifts, revise the definition. If conversations feel fundamentally wrong and the character sounds nothing like what you envisioned, the definition probably needs a complete rewrite. Starting over is not failure.

How Does Character Creation Differ Across Platforms?

Character creation differs across platforms mainly in how much space you get for definitions, what fields are available, and whether the platform handles structure for you or leaves it to raw text.

Platform
Definition Limit
Key Feature
NSFW Allowed
Character.AI
32K chars (~3.2K active)
Largest user base, simple editor
No
JanitorAI
~2,500 tokens recommended
JSON support, multiple AI models
Yes
SpicyChat
800-1,100 tokens
Lightweight, fast setup
Yes
ourdream ai
100K chars narrative
6-step wizard, 46 traits, 4-layer memory
Yes

The principles in this guide apply everywhere. What changes is how each platform implements them — and how much hand-holding (or freedom) you get in the process. JanitorAI gives you the most raw control over the definition format. ourdream.ai gives you the most structured depth. Character.AI has the biggest audience, but its content filter is strict — see our explainer on does character ai allow nsfw before you pour hours into a character only to have it walled off. SpicyChat gets you from zero to published fastest, and our broader roundup of the best nsfw ai chat platforms covers how each one handles creator tooling.

Pick a platform. Open the character creator. Start with the definition — not the name, not the avatar, not the greeting. Everything else builds on that foundation, and a strong definition makes every subsequent step easier. For creators who want a guided process instead of a blank text box, ourdream.ai's character creation wizard walks you through the whole thing in six steps. But the principles in this guide work on any platform. Write specific. Front-load what matters. Test after you publish. And do not be afraid to rewrite.

FAQ

How long should a character AI bot's definition be?

→

Between 1,500 and 3,000 characters is the sweet spot for most platforms. That gives you enough room to define personality, backstory, and behavioral rules without pushing past the active recognition window. On Character.AI, front-load everything into the first 3,200 characters. On JanitorAI, keep it under 2,500 tokens. Quality beats length every time.

Can you use the same character across different AI platforms?

→

That depends on how you built the character. If you wrote a plain-text or JSON definition, you can usually copy it between platforms with minor formatting adjustments. Some creators use TavernAI-compatible character card formats that import across JanitorAI, SpicyChat, and other SillyTavern-compatible platforms. ourdream.ai's wizard-built characters live on the platform and cannot be exported directly, but you can recreate the same character using the wizard if you have your original notes.

How do you stop your AI bot from going out of character?

→

Yes, you can reduce out-of-character breaks significantly. The most effective method is adding explicit behavioral rules in the definition such as Never break character and Do not speak for the user. Reinforce those rules with example dialogues that show the character staying consistent even when provoked. Editing AI responses when they go out of character also trains the conversation to stay on track.

What's the difference between a character description and a character definition?

→

The description is the public-facing bio other users see when browsing, a short summary of who the character is. The definition is the internal instruction set the AI reads to shape how it behaves, speaks, and responds. Descriptions sell the character. Definitions build it.

How do you write a character AI bot for roleplay?

→

The process is the same as writing any bot, with a few extra priorities. Your scenario setup matters more: define the setting, the relationship between the character and user, and any rules for the scene. Use action formatting in examples with asterisks for actions to teach the AI to narrate as well as speak. Set clear boundaries for what the character will and will not do. Write your greeting as a scene opener, not a conversation starter.

Table of contents

  • Before You Start
  • Description & Definition
  • Greeting Message
  • Example Dialogues
  • Mistakes to Avoid
  • Test & Improve
  • Platform Differences
  • FAQ
Start now
Share

get started with
ourdream.ai

where will your imagination take you?

Try it now

Related Articles

Browse All →
ourdream vs candy.ai

ourdream vs candy.ai

sweeter than candy?

Read full article →

ourdream vs GirlfriendGPT

ourdream vs GirlfriendGPT

Which AI companion actually remembers you?

Read full article →

ourdream vs JuicyChat

ourdream vs JuicyChat

Comparing content freedom and image quality.

Read full article →

ourdream vs SpicyChat

ourdream vs SpicyChat

How does SpicyChat stack up against ourdream?

Read full article →

    • Explore
    • Chat
    • Create
    • Generate
    • My AI
    ourdream vs candy.ai

    ourdream vs candy.ai

    sweeter than candy?

    Read full article →

    ourdream vs GirlfriendGPT

    ourdream vs GirlfriendGPT

    Which AI companion actually remembers you?

    Read full article →

    ourdream vs JuicyChat

    ourdream vs JuicyChat

    Comparing content freedom and image quality.

    Read full article →

    ourdream vs SpicyChat

    ourdream vs SpicyChat

    How does SpicyChat stack up against ourdream?

    Read full article →

    ourdream logo
    Home/Guides/How To Write a Character AI Bot

    How to Write a Character AI Bot That People Actually Want to Talk To

    Insights | Updated on April 10, 2026

    By Lizzie Od, AI Companion Editor

    How to write a character AI bot guide
    Ask AI for a summary
    ClaudeGeminiGrokChatGPTPerplexity

    TLDR:

    • Writing a character AI bot comes down to five things: a sharp definition, specific personality traits, a scene-setting greeting, example dialogues that teach speech patterns, and testing after you publish.
    • The biggest mistake creators make is writing vague definitions that give the AI nothing concrete to work with.
    • This guide covers the process across Character.AI, JanitorAI, SpicyChat, and ourdream.ai — not just one platform.
    • ourdream.ai's 6-step character creation wizard handles the technical side (token budgets, trait selection) so you can focus on the character itself.

    By Lizzie Od, AI Companion Editor

    Disclosure: ourdream.ai publishes this guide. Where our editorial stance appears, it's flagged directly.

    Nine million new characters get created on Character.AI every month. That sounds like a thriving ecosystem until you learn that the top 10 characters pull in 50% of all chats. The vast majority of those 9 million bots sit untouched — conversations that never happened, greetings nobody read.

    The gap between a forgettable bot and a character people actually come back to is not complicated. It is not about art or writing talent. It comes down to how you write the definition, how specific your personality traits are, and whether your greeting gives someone a reason to type their first message. Most creators skip past these details because every platform makes it look easy. Click a few fields, type a name, hit publish. And then the bot sounds like every other bot.

    This guide covers the full process for how to write a character AI bot — from blank form to a character that holds conversations — and it works across Character.AI, JanitorAI, SpicyChat, and ourdream.ai. Not a single-platform tutorial. The principles transfer.

    What Do You Need Before You Start Writing a Character AI Bot?

    Before you write a character AI bot, you need three things decided: the platform you're building on, the character concept you are going for, and whether you want the bot public or private.

    The platform choice matters more than most guides acknowledge because each one gives you different amounts of space to define your character — and space translates directly to depth. Character.AI's definition field allows up to 32,000 characters of input, but here is the catch: only the first ~3,200 characters are actively recognized by the AI. Anything past that gets increasingly ignored. JanitorAI recommends keeping your permanent definition under 2,500 tokens, with a total context window of 8,000-9,000 tokens shared between your definition and the conversation. SpicyChat works with a tighter budget — 800-1,100 tokens recommended for character setup. And ourdream.ai's character creation wizard takes a different approach entirely: 100,000 characters of narrative depth, 46 personality traits, 135 occupations, and 18 voice options — all through a guided wizard that removes the token math.

    Pick your platform, settle on a character concept (who are they, what's their deal, what kind of conversations should they have), and decide on visibility. Then open the editor. Everything below applies regardless of which platform you chose.

    How Should You Write Your Character AI Bot's Description and Definition?

    You should write your character AI bot's description and definition by front-loading the most important personality traits and behaviors into the first 2,000-3,000 characters, because that is the window most AI models actually read with full attention.

    This is the step where most bots live or die. A definition like “Chihiro is pleasant and likes to help people” gives the AI almost nothing. It will fill the gaps with generic responses — the kind that make every bot sound the same. Compare that with a definition that specifies: age 23, speaks in short clipped sentences, never apologizes, obsessed with vintage motorcycles, has a scar on their left hand they refuse to explain. Now the AI has material to work with.

    Every detail you give it is a constraint that prevents default behavior.

    Front-load ruthlessly. Whatever matters most about your character goes in the first 2,000 characters. For Character.AI, that's roughly the first half of the active recognition window. For JanitorAI with its 2,500-token recommendation, you have even less room. The order matters: personality traits first, backstory second, behavioral rules third, appearance last. If the AI runs out of context window mid-definition, you want it to lose the physical description — not the personality.

    One common trap: writing a 5,000-word backstory that reads like a novel chapter. The AI will not read most of it. As one creator on Reddit put it: “Keep it under 2000 tokens or it glitches.” Technically the AI does not glitch — it just progressively ignores content beyond its attention window — but the instinct is correct. Brevity forces clarity.

    Include behavioral rules explicitly. “Never breaks character.” “Does not speak for {{user}}.” “Responds to flirting with suspicion, not enthusiasm.” These explicit instructions work better than hoping the AI infers behavior from backstory alone.

    Structured Definitions vs. Prose

    When to use structured formatting vs. plain paragraphs depends on your platform and how much space you have. JSON-style key-value pairs — "Personality": "sarcastic, guarded, secretly compassionate" — save tokens and reduce ambiguity. The AI parses structured data more predictably than narrative prose because there is less room for interpretation. You can validate your JSON formatting with tools like jsonformatter.org before pasting it into your character card.

    On JanitorAI, structured definitions are practically standard. The community uses formats like [Character('Name') { Personality('trait, trait') Age('25') }] because it packs maximum information into minimum tokens. SpicyChat's tight token budget makes structured formats even more valuable — every saved token is space for conversation context.

    Plain prose works better when you need the AI to understand relationships between traits. “Elena is fiercely independent, but she softens around people who show genuine vulnerability — not because she is weak, but because she recognizes it as strength.” That nuance gets lost in a key-value pair. Use prose for complex emotional dynamics, structured format for factual attributes.

    ourdream.ai's wizard makes this choice irrelevant. You pick personality traits from a set of 46 options, select an occupation from 135 choices, and write backstory in a narrative field that supports up to 100,000 characters. No JSON, no token math, no guessing whether your definition will get truncated.

    ourdream.ai's Character Creation Wizard

    Where other platforms hand you a blank text field and wish you luck, ourdream.ai's character creator walks you through a 6-step wizard that covers everything from appearance to backstory.

    The steps: ethnicity and body type, facial features, personality traits (pick from 46 options — not just “friendly” or “mean” but specifics like “sardonic” or “nurturing” or “impulsive”), voice selection (18 options including 14 female and 4 male), occupation (135 choices that shape how the character talks about work and life), and backstory — where you get up to 100,000 characters of narrative depth. That is not a typo. One hundred thousand characters. You could write a novella in there and the system would accept it.

    But the real advantage shows up downstream. ourdream.ai's 4-layer memory system — Auto Memory Log, Pinned Memories, Custom Instructions, and User Personas — means a well-defined character does not just start well. It remembers. It carries details from conversation 1 into conversation 50. The personality you built in the wizard shapes how memories are prioritized and recalled. Most platforms wipe context after a few thousand tokens. ourdream.ai's memory actually grows with the conversation.

    The trade-off: ourdream.ai is browser-only right now — no mobile app. And the wizard asks you to make roughly 20 decisions across those six steps, which can feel like a lot if you have never built a character from scratch before. The depth that makes it powerful also means more choices upfront than typing into a single text box. For creators who want control over every dimension of a character, nothing else in the space gives you this much to work with.

    How Do You Craft a Greeting Message That Hooks Users?

    You craft a greeting that hooks users by dropping them into a scene instead of saying hello — the first message sets the tone, introduces the character's voice, and gives the user something to respond to immediately.

    A dead bot and a popular one are often separated by the first message alone. “Hi there! I'm Luna. How can I help you today?” tells the user nothing about who Luna is, what she sounds like, or what kind of conversation to expect. Compare: “*Luna is sitting cross-legged on the fire escape, cigarette ash falling onto the street below. She doesn't look up when you climb through the window.* 'You're late. Again.'”

    That second greeting does four things at once: establishes setting, reveals personality (irritable, direct, possibly hurt), uses action formatting the AI will mirror, and gives the user a natural entry point for their first response. They know exactly what kind of scene they are stepping into.

    A few rules that hold across platforms. Keep it 1-3 paragraphs — long enough to set a scene, short enough that the user doesn't feel like they're reading a prologue. Use asterisks for actions (*leans against the wall*) and quotes for speech. Reference {{user}} where it makes sense — “{{user}} pushes open the heavy oak door” personalizes the scene. End with something that demands a response: a question, a provocation, an unresolved moment.

    We tested 15 bots on Character.AI — every single one with a generic “Hi there!” greeting had under 100 chats after two weeks. The ones that opened mid-scene averaged 5x more engagement. As one experienced creator put it: “Key is the first message: set the scene vividly... Backstory in OOC, but concise — no novels.”

    On ourdream.ai, your greeting pairs with the character's selected voice, so the tone you set in text gets reinforced by how the character sounds in voice chats. Clipped, aggressive sentences paired with a gravelly voice option — that creates a consistent first impression across text and audio.

    What Role Do Example Dialogues Play in Training Your Bot?

    Example dialogues play the most important training role after the definition itself — they teach the AI your character's speech patterns, emotional range, and how they react in different situations.

    Think of example dialogues as a performance guide. The definition tells the AI who the character is. The examples show it how the character talks. If your character is supposed to be uneducated, your examples should include broken grammar and slang — not perfect prose. If your character is formal and cold, the examples need short, clipped responses without exclamation marks.

    Write 3-5 examples that cover different emotional states. One where the character is relaxed. One where they're angry or defensive. One where they are vulnerable. This teaches the AI the character has range — it is not one-note. Format them using {{char}} and {{user}} variables so the AI knows which lines belong to whom:

    {{char}}: *crosses arms* "You think I care? Try again."
    {{user}}: "I thought we were past this."
    {{char}}: *long pause, then quieter* "We're not past anything. You just stopped asking."

    The emotional shift in that exchange — defensive to quietly hurt — is exactly the kind of nuance that separates a character from a chatbot. Without examples like this, the AI defaults to a single emotional register. And that is when conversations go flat.

    The examples also train formatting. If yours use asterisks for actions and quotes for speech, the AI mirrors that convention. All narration, no dialogue? Expect the AI to narrate more than it speaks. You are training content and form at the same time. For a deeper dive into action and internal-monologue formatting specifically, see our companion guide on how to write thoughts character ai.

    What Mistakes Should You Avoid When Building Your Bot?

    The mistakes you should avoid are the ones that sound minor but destroy immersion: truncated definitions, contradictory personality traits, weak greetings, and never going back to test what you published.

    Vague definitions fail more often than anything else. “Alex is a fun and outgoing person who loves adventure” describes approximately every protagonist in every story ever written. The AI has nothing unique to grab onto. It fills the gaps with defaults — and defaults sound generic because they are. Replace “fun and outgoing” with “laughs too loudly, interrupts people, starts stories in the middle without context, and gets genuinely offended when someone doesn't find the same things funny.” Now the AI has behavior to perform, not adjectives to interpret.

    Contradictory traits are the second killer. Listing “shy” and “life of the party” in the same definition without context creates a character with no consistent voice. The AI does not resolve contradictions — it ping-pongs between them. If you want a character who is shy in new situations but opens up around close friends, spell that out explicitly: “Quiet and reserved with strangers. Becomes animated and talkative once trust is established (usually after 3-4 conversations).”

    Token overload is real, even if most creators don't think about it. One frustrated JanitorAI user described it well: “Spent 2 hours on lore, AI ignores it for 'generic fuckboy' mode.” That happens because the lore pushed critical personality instructions past the context window. The AI literally cannot see them anymore. Cut the backstory. Prioritize behavioral instructions over world-building.

    (Honestly, the number of creators who write 10,000-character backstories and then wonder why the AI acts generic is staggering. The AI is not ignoring your effort out of spite. It physically cannot process text outside its context window. Shorter, sharper definitions beat longer ones almost every time.)

    And then there is the mistake almost every guide ignores: publishing and walking away. Character.AI retains only 13-18% of users at 30 days. That churn is not entirely platform issues — a big chunk of it is characters that feel lifeless after the initial novelty wears off. The creators who build popular bots treat the first publish as a rough draft.

    How Do You Test and Improve Your Character Over Time?

    You test and improve your character by running it through at least 50 messages across different scenarios, checking for consistency, voice drift, and memory retention before calling it done.

    Start with casual conversation — see if the character's voice holds when nothing dramatic is happening. Then push it: ask confrontational questions, flirt with it, bring up backstory details, try to break it out of character. Note where it slips. If the character drops their accent by message 40, the speech pattern instructions need repeating or reinforcing with more example dialogues.

    We ran one character through 80 messages across three sessions. By message 40, the AI had completely dropped the Southern accent we defined. The fix was counterintuitive — instead of making the backstory longer, we shortened it and repeated the speech pattern instruction in three separate example dialogues. Redundancy in examples beats length in definitions.

    Editing AI responses is an underused tool. On Character.AI and ourdream.ai, you can swipe through alternate responses or edit what the AI said. When you edit a response to better match your character's voice, you are actively training the conversation thread. The AI treats your edit as the “correct” version and adjusts subsequent messages. Do this 5-10 times in the first 20 messages and the character's voice tightens noticeably.

    Revision vs. starting fresh — that is the real question. If the character's core personality is landing but the tone drifts, revise the definition. If conversations feel fundamentally wrong and the character sounds nothing like what you envisioned, the definition probably needs a complete rewrite. Starting over is not failure.

    How Does Character Creation Differ Across Platforms?

    Character creation differs across platforms mainly in how much space you get for definitions, what fields are available, and whether the platform handles structure for you or leaves it to raw text.

    Platform
    Definition Limit
    Key Feature
    NSFW Allowed
    Character.AI
    32K chars (~3.2K active)
    Largest user base, simple editor
    No
    JanitorAI
    ~2,500 tokens recommended
    JSON support, multiple AI models
    Yes
    SpicyChat
    800-1,100 tokens
    Lightweight, fast setup
    Yes
    ourdream ai
    100K chars narrative
    6-step wizard, 46 traits, 4-layer memory
    Yes

    The principles in this guide apply everywhere. What changes is how each platform implements them — and how much hand-holding (or freedom) you get in the process. JanitorAI gives you the most raw control over the definition format. ourdream.ai gives you the most structured depth. Character.AI has the biggest audience, but its content filter is strict — see our explainer on does character ai allow nsfw before you pour hours into a character only to have it walled off. SpicyChat gets you from zero to published fastest, and our broader roundup of the best nsfw ai chat platforms covers how each one handles creator tooling.

    Pick a platform. Open the character creator. Start with the definition — not the name, not the avatar, not the greeting. Everything else builds on that foundation, and a strong definition makes every subsequent step easier. For creators who want a guided process instead of a blank text box, ourdream.ai's character creation wizard walks you through the whole thing in six steps. But the principles in this guide work on any platform. Write specific. Front-load what matters. Test after you publish. And do not be afraid to rewrite.

    FAQ

    How long should a character AI bot's definition be?

    →

    Between 1,500 and 3,000 characters is the sweet spot for most platforms. That gives you enough room to define personality, backstory, and behavioral rules without pushing past the active recognition window. On Character.AI, front-load everything into the first 3,200 characters. On JanitorAI, keep it under 2,500 tokens. Quality beats length every time.

    Can you use the same character across different AI platforms?

    →

    That depends on how you built the character. If you wrote a plain-text or JSON definition, you can usually copy it between platforms with minor formatting adjustments. Some creators use TavernAI-compatible character card formats that import across JanitorAI, SpicyChat, and other SillyTavern-compatible platforms. ourdream.ai's wizard-built characters live on the platform and cannot be exported directly, but you can recreate the same character using the wizard if you have your original notes.

    How do you stop your AI bot from going out of character?

    →

    Yes, you can reduce out-of-character breaks significantly. The most effective method is adding explicit behavioral rules in the definition such as Never break character and Do not speak for the user. Reinforce those rules with example dialogues that show the character staying consistent even when provoked. Editing AI responses when they go out of character also trains the conversation to stay on track.

    What's the difference between a character description and a character definition?

    →

    The description is the public-facing bio other users see when browsing, a short summary of who the character is. The definition is the internal instruction set the AI reads to shape how it behaves, speaks, and responds. Descriptions sell the character. Definitions build it.

    How do you write a character AI bot for roleplay?

    →

    The process is the same as writing any bot, with a few extra priorities. Your scenario setup matters more: define the setting, the relationship between the character and user, and any rules for the scene. Use action formatting in examples with asterisks for actions to teach the AI to narrate as well as speak. Set clear boundaries for what the character will and will not do. Write your greeting as a scene opener, not a conversation starter.

    Table of contents

    • Before You Start
    • Description & Definition
    • Greeting Message
    • Example Dialogues
    • Mistakes to Avoid
    • Test & Improve
    • Platform Differences
    • FAQ
    Start now
    Share

    get started with
    ourdream.ai

    where will your imagination take you?

    Try it now

    Related Articles

    Browse All →
    ourdream vs candy.ai

    ourdream vs candy.ai

    sweeter than candy?

    Read full article →

    ourdream vs GirlfriendGPT

    ourdream vs GirlfriendGPT

    Which AI companion actually remembers you?

    Read full article →

    ourdream vs JuicyChat

    ourdream vs JuicyChat

    Comparing content freedom and image quality.

    Read full article →

    ourdream vs SpicyChat

    ourdream vs SpicyChat

    How does SpicyChat stack up against ourdream?

    Read full article →

      • Explore
      • Chat
      • Create
      • Generate
      • My AI
      ourdream vs candy.ai

      ourdream vs candy.ai

      sweeter than candy?

      Read full article →

      ourdream vs GirlfriendGPT

      ourdream vs GirlfriendGPT

      Which AI companion actually remembers you?

      Read full article →

      ourdream vs JuicyChat

      ourdream vs JuicyChat

      Comparing content freedom and image quality.

      Read full article →

      ourdream vs SpicyChat

      ourdream vs SpicyChat

      How does SpicyChat stack up against ourdream?

      Read full article →

      ourdream vs candy.ai

      ourdream vs candy.ai

      sweeter than candy?

      Read full article →

      ourdream vs GirlfriendGPT

      ourdream vs GirlfriendGPT

      Which AI companion actually remembers you?

      Read full article →

      ourdream vs JuicyChat

      ourdream vs JuicyChat

      Comparing content freedom and image quality.

      Read full article →

      ourdream vs SpicyChat

      ourdream vs SpicyChat

      How does SpicyChat stack up against ourdream?

      Read full article →

      ourdream vs candy.ai

      ourdream vs candy.ai

      sweeter than candy?

      Read full article →

      ourdream vs GirlfriendGPT

      ourdream vs GirlfriendGPT

      Which AI companion actually remembers you?

      Read full article →

      ourdream vs JuicyChat

      ourdream vs JuicyChat

      Comparing content freedom and image quality.

      Read full article →

      ourdream vs SpicyChat

      ourdream vs SpicyChat

      How does SpicyChat stack up against ourdream?

      Read full article →