Skip to content

Behavior

Behavior is the one document you write to describe an agent. It holds who the agent is, how it sounds, what it never does, what it works toward, and what it does in each kind of situation.

The document is what the console shows on the agent's Behavior page, what you export and import, and what an agent template copies onto a new agent. It is also, word for word, the text the agent reads. No hidden text is added to it at runtime.

Behavior is edited at Build · Behavior. It was called the Definition until September 18, 2026, and the /v1 resource keeps that name.

The sections

Most sections apply on every turn. Playbooks apply one at a time. Message templates apply as an index every turn, plus the bodies the active Playbook calls for.

Section What it holds Applies
Identity Who the agent is: name, company, contact details, branding, and the standing instructions that hold everywhere. Every turn
Personality How the agent sounds. Every turn
Guardrails What the agent never does or says, followed by judgment. Every turn
Rules The limits Anychat checks or judges for itself. Every reply
Goals The one outcome a conversation works toward. Every turn, when one applies
Playbooks What the agent does, one situation at a time. The active one in full; the others by name and when-to-use
Message templates Reviewed copy the agent sends verbatim. Index every turn; bodies when referenced

Identity

Who the agent is: its name, the company it represents, contact details (email, phone, website), legal links, and branding (logo, banner, brand color). Anychat derives a short preamble from Identity so the agent always knows who it is, and channels draw on the same fields when you bind them.

Identity is one of the two sections every agent needs. A new agent can be created with only a name. Channel-specific details such as RCS logo dimensions are collected when you bind the channel that needs them.

Identity also holds standing instructions: short sentences that apply in every conversation, whatever the Playbook, such as "never write bullet lists". They are guidance the agent follows by judgment. A limit that must hold regardless of judgment belongs in Rules.

Personality

The voice and tone the agent speaks in, separate from what it does. Personality applies on every turn and is not attached per Playbook. A Playbook can ask for a situational posture, such as "be brief while booking", without changing the underlying voice.

Anychat ships a small library of personalities (Professional, Minimalist, Enthusiastic, Empathetic, Witty, Formal), each with a human-readable description and an agent-facing body behind an advanced toggle. Start from one, tailor it to your brand, or write your own.

Guide: Set personality.

Guardrails

What the agent never does. Guardrails apply on every turn, ahead of a Playbook's instructions, and a Playbook cannot override one. They are written as three lists:

  • Topics to avoid: subjects the agent refuses to discuss, such as competitor pricing or legal advice.
  • Claims to never make: statements about your product or company the agent must not assert.
  • Required disclaimers: language the agent must include in certain situations, such as regulated medical or financial topics.

Anychat ships guardrail catalog entries for common compliance shapes. Importing one merges its lists into your agent's guardrails, where you can edit them further.

On top of the guardrails you set, every agent carries built-in guardrails that are neither editable nor removable: do not generate harmful content, do not leak internal source paths, do not impersonate a human.

Guardrails steer the agent's judgment. Where a limit must hold whatever the agent judges, write a Rule.

Guide: Set guardrails.

Rules

A Rule is a limit Anychat enforces for itself. The agent never sees a Rule and cannot argue with one.

Each Rule says how it is enforced. Checked is a deterministic test on the outgoing reply, an action, or a condition, and is absolute. Judged means a fast model reads the reply against the Rule before it is sent, which is strong without being absolute. A reply that breaks a Rule is rewritten once with the violation named, then replaced by a safe fallback or held.

Platform Rules apply to every agent and are not editable: honor STOP and opt-out, keep the sends Anychat schedules inside safe hours and to people whose consent is granted, never message a person whose consent is denied, never cancel or reschedule a booking without an explicit request, never book a time that was not offered. Your own Rules sit beside them on the same page.

A limit Anychat can neither check nor judge is a standing instruction or a Guardrail, and the console declines to call it a Rule.

Concept: Rules and safety. Guide: Add rules.

Goals

A Goal is one measurable outcome a conversation works toward, such as "a call is booked" or "the person leaves with a clear next step". It is defined once in a small library, either as an event the platform observes or as a criterion reviewed when the conversation ends, and assigned where it applies: to a Playbook, to an Outreach, or as the agent's default.

The active Goal sits in front of the agent on every turn, and Anychat records afterwards whether it was reached. With no Goal in force, the document carries no Goal block.

The examples on this page use Mia, the sales-development agent for a med spa called Glow Aesthetics, described in full under the worked example. Mia's default Goal is A consultation call is booked, reached when a call is booked through Scheduling.

Guide: Define goals.

Playbooks

A Playbook is what the agent does in one kind of situation. An agent is always operating inside exactly one Playbook, and moving between them is how it adapts as a conversation shifts from greeting to product questions to scheduling a call.

Every Playbook has four parts.

Part What it is
Name The label you see in the console and in the turn record.
When to use One or two sentences describing the situation. This is how the Playbook is chosen.
Body The instructions the agent reads while this Playbook is active.
Needs The capabilities this Playbook acts through (uses in the API).

Mia's booking Playbook, in the portable document format:

- name: Book a consultation call
  when: The person wants to book, schedule, or set up a call.
  uses: [scheduling, people]
  body: >-
    Confirm the person's name and email if we do not have them, offer
    times from the team's calendar, confirm before booking, send the
    booking confirmation, then return to general help.

Guide: Author playbooks.

The Default Playbook

Every agent has a Default Playbook: the general-purpose instructions used when no other Playbook is more appropriate. It carries the opening of a conversation, the "what does this person want?" phase, and the connective tissue between specialized modes.

The Default Playbook holds general behavior rather than the agent's voice or its sense of who it is, which come from Personality and Identity and apply everywhere already. It does not need to list the agent's other Playbooks, because the agent is aware of all of them at all times.

How the active Playbook is chosen

At the start of every turn, Anychat reads each Playbook's when-to-use line against the conversation so far and picks the one that fits. The choice is made before the agent writes anything and is written into the turn record, so you can always see which Playbook was active. When no Playbook fits, the Default Playbook is active.

You do not write exit rules. When a later message fits a different Playbook, that one becomes active, and when a task is done the agent returns to the default. A Playbook's body can say how it wraps up: "send the confirmation, then return to general help."

What the agent reads from this section

On any turn the agent reads the active Playbook's full body plus an index of every other Playbook, which is name and when-to-use only. It does not read the bodies of inactive Playbooks.

The Behavior page is therefore the most the agent could ever see, and each turn is a predictable slice of it: the whole document, minus the inactive bodies. Preview what the agent sees shows exactly that slice for a chosen Playbook and channel.

While Mia answers a treatment question, she reads the Answer treatment questions body in full and knows only that Book a consultation call exists and when it applies. That is enough for the handoff to happen, and it keeps every turn short.

Playbooks that follow a fixed path

A Playbook that describes a procedure such as booking, consent, or intake can carry a Flow: a fixed path the platform walks step by step, generated from the Playbook's own text and checked before you accept it. The body becomes the path's brief, where the words explain and the path executes. See Playbooks and Flows.

Playbooks that handle a special situation

Two situations that look like special cases are ordinary Playbooks.

An Outreach owns a Playbook that the conversation begins in when the agent starts it. That Playbook is written inside the Outreach and is unknown to the agent in any conversation the Outreach did not start.

Escalate to human is a Playbook whose when-to-use is "the person has asked to speak with someone". Anychat does not route conversations to a live human in real time. The Playbook renders the brand's own contact details from Identity as tappable elements: tap-to-call, a mailto link, an openUrl link. The person takes the action. The agent does not suggest a teammate is on the way, and with no contact details configured it says so plainly rather than inventing them.

Message templates

A message template is reusable, exact-wording copy: text you write, with {slot} placeholders such as {person.firstName} and {agent.companyName} filled in for each recipient from their Person record and the agent's identity, plus fallbacks for a missing value. A template renders the same way every time, so the message a person sees is copy you have reviewed. A template can also pull in cards straight from the agent's Things catalog, by id, by name, or by collection, and can carry rich-messaging markup such as chips, a card, or a carousel.

Two things consume message templates. An Outreach uses one as the opener of a conversation the agent starts and another as its follow-up. A Playbook references them by name so the agent sends reviewed copy in the situations that Playbook handles, such as a booking confirmation.

Every turn carries a short index of the agent's message templates: id, name, and purpose. A template set to only when named appears in that index only on a turn whose active Playbook names it, so the agent never learns it exists otherwise. Referencing a template in the active Playbook's text adds its full body to the turn.

Pictures in a template come from the agent's Media library. Templates and Playbooks name items by id rather than by URL.

Guide: Write message templates.

Checking the document

Three checks read the document without running a conversation. They answer different questions and cost different amounts, so they are worth telling apart from testing, which runs the agent.

Lint

Lint reads the Behavior document and reports anything inconsistent, every time you save. Each finding carries a severity, a plain message, the place in the document it points at, and where possible a one-click fix. Errors block the save.

Finding Severity Example
A Playbook uses a capability that does not exist Error uses: [calender]
A message template is referenced but does not exist Error A Flow sends Booking confirmed and the agent has Booking confirmation
No default Playbook, or two Error
A template placeholder does not match a People field Warning {person.treatment} when the field is treatmentInterest
A Flow's path no longer matches its Playbook body Warning "Body changed since the path was generated. Regenerate?"

Lint checks references and structure, never what the prose means. A Qualify body that says "offer to book a call" while the Playbook does not use Scheduling is a question of meaning, and it belongs to review.

Lint runs on the Behavior page, on import, when a template is applied, and through the API and the Anychat MCP server, so a partner keeping documents in version control can run it in their own checks.

Review

A review is a model's reading of your whole agent, on request. It takes in the Behavior document, which capabilities are configured, the channels the agent is bound to, the media library, and the current lint findings, and it reports the problems a careful colleague would: a Playbook that promises something no configured capability delivers, two Playbooks that answer the same situation, a Playbook that contradicts a guardrail, an instruction to send a carousel on an agent that only has SMS, a handoff with no phone number to hand off to.

Lint is free, instant, deterministic, and runs on every save. A Test runs the agent on real conversations and takes minutes. A review reads the document, costs about twenty cents, takes under a minute, and never blocks a save. It runs only when you ask for it.

Every finding quotes the document. A finding whose quote is not in your agent is discarded before you see it, so what reaches the list is anchored to text you wrote. Where the reviewer has specific wording to propose, the finding carries the replacement text. Dismissing a finding keeps it hidden in later reviews.

Some findings name a conversation worth adding to a suite of Tests, which is often the right next step: the review says what to test, and the Test proves it.

Preview what the agent sees

Preview what the agent sees, on the Behavior page, shows the agent's complete reading for a Playbook and channel you choose: the document with that Playbook's body in full and the others by name and when-to-use, each used capability's "what this adds" text, and the channel line. It is the same assembly a real turn does, minus the conversation.

What's next