Behavior is where you shape an AI agent’s instructions. It includes the same prompt layers the product has historically exposed as Planning Prompt, Main Guidelines, and Channel Prompts: what the agent does on a given message, how it should always behave, and how that behavior adapts per channel.
Behavior is per-agent. Use the agent selector in the top-left of the product shell to switch which agent you’re editing; every section, subsection, and version is scoped to that agent.
For an end-to-end view of how prompts work with Attributes, Actions, and the Rulebook, see End-to-end: cancellation flow.

How the three prompts fit together

Most LLM products give you one prompt. Fini’s three-prompt split exists because the agent is making three different kinds of decisions on every message, each with different inputs and failure modes:
  • Planning is reasoning about the message, it runs first, sees only the conversation, and answers: which rule applies, do I need to search the knowledge base? A bad Planning Prompt routes the message wrong.
  • Main Guidelines are reasoning for the reply, they run after Planning has chosen a path, govern every reply, and answer: how should this be worded, what must I never say, what’s the structure? A bad Main Guidelines produces the wrong tone or breaks guardrails.
  • Channel Prompts are adapting the reply to the surface, chat is short and conversational, email is long and formal. Same rule, different shape.
Keeping the three layers separate is what lets you fix one without breaking the others. If escalations are landing in the wrong queue, that’s Planning. If the agent’s tone is off, that’s Main Guidelines. If chat replies feel like emails, that’s a Channel Prompt. The diagnostic question, “where do I put this instruction?”, has a clean answer because the layers don’t overlap.

Sections and subsections

Inside each of the three prompts, instructions are organized into sections (e.g. Role Definition, Guardrails) and subsections (e.g. Agent identity, Restrict to Knowledgebase). Two reasons this matters:
  • Granular toggling, you can disable a single subsection to test whether it’s the cause of a behavior change, without rewriting the whole prompt. Pair this with Preview to confirm what actually compiles.
  • Independent ownership, different sections can be owned by different teammates (e.g. legal owns Predefined Replies, support ops owns Tone), edited separately, and versioned independently.

Planning Prompt

The judgment layer. Before any reply is written, the agent reads the conversation and takes two independent decisions:
  1. Which Rulebook rule applies, if any, picking a rule by matching the user’s intent against each rule’s description.
  2. Whether to search the knowledge base, independent of the rule decision; either, both, or neither can fire.
You can see this in action in the Inbox under the AI Steps panel: every conversation records the Planning Prompt’s reasoning, the selected rule, and the decisions it made. The Planning Prompt’s overview screen is titled Planning Prompt Overview and typically contains sections like: Each section card on the overview shows a status dot (green = enabled), the section name, its description, and the active subsections as tags. Disabled sections are muted with an Off badge, and disabled subsections collapse behind an N off chip so you can see what is excluded without treating it as active prompt context.

Controlling when the agent escalates

The most consequential thing the Planning Prompt decides is whether to hand the conversation to a human. The good news: you define what should trigger that handoff. Fini ships with sensible defaults, but the real value is in adding the escalation triggers that matter for your business, the patterns that, in your domain, should never be answered by an agent. Escalation triggers live inside the Knowledge Search – Decision Logic section, typically as an Escalation Topics subsection. Add a trigger by editing that subsection and describing the pattern in plain language; the planner will route matching conversations to a human and skip knowledge search. Defaults Fini gives you to start from:
  • Legal or regulatory issues, threats of legal action, regulator or ombudsman complaints, harassment, threats, self-harm, medical emergencies.
  • Persistent human requests, the customer has explicitly asked for a human multiple times (agent_request_count >= 3), or repeated the same unresolved issue (issue_repeat_count >= 3).
Treat these as a starting point, not the menu. Almost every team adds business-specific triggers on top, and that’s where the section earns its weight. Triggers worth adding for your business: The right triggers depend entirely on your domain. A few prompts to think through:
  • High-risk operations, what actions, if the agent gets them wrong, would create serious downside? Identity issues, account-takeover signals, high-value transactions, sensitive data shared in-channel (last 4 of card, SSN), wire transfers, anything irreversible.
  • Off-limits topics, categories your agent shouldn’t touch at all. Sales-team handoffs, partnership inquiries, press requests, security disclosures, anything legal has flagged.
  • Domain-specific patterns, the things your support leads escalate on instinct that the agent should too. Specific product flows that always need a human (e.g. “fraud dispute,” “account closure with active balance”), edge cases your team has burned hours on, anything where the cost of a wrong answer outweighs the convenience of an automated one.
  • VIP or sensitive accounts, if your CRM marks certain customers as priority, you can trigger escalation directly on the account attribute rather than the message content.
Writing triggers that work. Be specific about the pattern, not the vibe, “escalate frustrated customers” is too vague (the planner will escalate every mildly negative message), while “escalate when the customer has explicitly asked for a human three or more times” is something it can apply consistently. And if a topic has a dedicated Rulebook rule (cancel, refund, account update), that rule should handle it, not the escalation path. List the rule, don’t list the topic as an escalation trigger.
Use the Inbox to audit escalation behavior. Filter to conversations where the agent escalated and open the AI Steps panel to see which Planning Prompt subsection fired and why. If escalations are landing for reasons you didn’t intend, that’s the subsection to edit.

Main Guidelines

The execution layer. Once Planning has decided what to do, Main Guidelines control how the agent does it, the constraints, voice, and rules every reply obeys, regardless of which path Planning chose. Most teams’ configuration work happens in four sections: Tone, Formatting, Guardrails, and Incident Info. These are the day-to-day levers, tuning voice, shaping reply structure, enforcing what the agent must never do, and announcing live incidents to the agent. The rest of the Guideline Prompt Overview is shown below for completeness. Its overview is titled Guideline Prompt Overview. Common sections include: The exact set of sections varies by workspace; the list above mirrors what a configured agent typically carries.
Tone defines the voice the agent speaks in, formality level, contractions, how it addresses the customer, how it handles frustration or urgency. A well-tuned Tone section means customers get a consistent experience regardless of which path Planning routed their message through.The principle: pick one stance and write it explicitly. Inconsistency reads to customers as the agent not listening, replies that veer between formal and casual, or that sometimes acknowledge frustration and sometimes don’t, feel like talking to different people. Tone’s job is to lock the voice.
Tone is the most likely section to drift over time. Schedule a quarterly review where someone reads 20 recent transcripts top-to-bottom and asks “does this sound like us?” Small drift compounds, what reads as fine in isolation reads as off-brand at scale.

Channel Prompts

Per-surface overrides appended to Main Guidelines when the conversation arrives on the matching channel. Its overview is titled Channel Prompt Overview and shows one card per channel, currently Email and Chat. Each channel card has the same shape as other prompt sections, status dot, description, subsection tags, edit pencil. Click the pencil on a channel to add subsections specific to that surface.

When to reach for a Channel Prompt

Use a Channel Prompt when an instruction only makes sense on one surface, or when the same instruction needs to be expressed differently per surface.
  • Length and cadence, chat replies are short and conversational; email replies are paragraphed and complete. A “two sentences max” cap belongs on Chat, not in Main Guidelines.
  • Greeting and sign-off rhythm, email threads re-introduce on the first reply of a new thread but not subsequent ones; chat greets once and never re-greets. Sign-off blocks differ in formality.
  • Channel-specific operational rules, business-hours handling that only matters for live chat; escalation paths that route to different queues per channel; attachment policies that only apply to email.
  • Language behavior, mirror the customer’s language in email (long, global threads) without repeating the rule on chat if it isn’t needed there.
Channel-agnostic rules belong in Main Guidelines, not Channel Prompts. If a rule applies everywhere (“never share a customer’s full account number”), put it in Main Guidelines. Channel Prompts are for behavior that only makes sense, or has to read differently, on one surface.
When a channel has a rigid reply structure (e.g. greeting → body → sign-off for email), include a worked example inside the subsection content. The agent treats the example as a template, which is more reliable than describing the structure in prose.

Editing sections and subsections

Click the pencil icon on any section card to open the Edit section panel. The panel has three areas: Click Done to close the panel, then Save Prompt in the left rail to commit your changes.
Write subsection content as direct instructions to the model. The more specific the wording, the more reliably the agent follows it. “Always respond in formal English and avoid contractions” is far more effective than “be professional”.

Writing effective prompts

The model follows instructions more reliably when they’re written with the same precision you’d use briefing a new hire. A few rules of thumb that hold across all three prompt types:

Be specific, not aspirational

LLMs interpret vague instructions inconsistently. The narrower the wording, the more reliably the agent follows it.

Pair negatives with positives

A bare “never do X” leaves the model guessing what to do instead. Always tell it the alternative:
  • ✗ “Never share pricing.”
  • ✓ “Never share pricing. If a customer asks about price, respond: ‘I’ll connect you with our team for current pricing details’ and escalate.”

One rule per subsection

If a subsection contains five unrelated rules, the model may follow three and skip two, and you can’t toggle them independently when debugging. Split unrelated rules into separate subsections so each one can be enabled, disabled, and reordered on its own.

Show, don’t just tell, for rigid structures

When a reply needs a specific shape (greeting → body → sign-off; numbered steps; a particular escalation phrase), include a worked example inside the subsection content. The model uses the example as a template, which is more reliable than describing the structure in prose.

Iterate with Preview, History, and Test Suite

The discipline that separates well-tuned prompts from drifting ones:
1

Make one change at a time

Edit a single subsection, save, and test before moving on. Stacking five edits then debugging makes regressions impossible to isolate.
2

Verify with Preview before saving

The Preview panel shows exactly what compiles. If your edit doesn’t appear there, the model won’t see it either (typically the section or subsection is disabled).
3

Test against representative conversations

Use Test Suite to run the new prompt against past conversations and confirm behavior hasn’t regressed elsewhere. The AI Steps panel in the Inbox also shows exactly which sections and rules fired on a given message.
4

Revert immediately if something breaks

Don’t try to patch over a regression with another edit. Open History, identify the last known-good version, revert, and start over. Faster and cleaner.

Previewing the compiled prompt

Click Preview in the top-right of any prompt-type overview to open the Current Prompt Preview panel. It shows the full compiled prompt text as it will be sent to the model, every enabled section and subsection concatenated in order, with section tags inserted (<ROLE DEFINITION>, ## AGENT IDENTITY, etc.). The footer states it plainly: “This preview shows only enabled sections and subsections.” Use it to verify that toggling a section or subsection off actually removes it from the compiled output before saving.

Version control

Every save snapshots the full compiled prompt at that point in time. Click History in the top-right to open the version list, then select any past version to open Compare with Version, a line-by-line diff against the current prompt, with additions and removals highlighted and the author and timestamp recorded. From this view, click Revert to this version to restore the snapshot as the active prompt, or Back to return to the version list. What version control is for:
  • Recovering from regressions, if a change produces unexpected behavior (wrong tone, missed escalations, fabricated information), open History, find the last known-good version, and revert. Faster than identifying and manually undoing which subsection caused the issue.
  • Understanding what changed, if a customer escalation or quality review flags a problematic response, History tells you which prompt was active at that conversation’s time and who saved it. That helps you triage prompt-problem vs. knowledge-base-gap.
  • Staging changes safely, use Preview to review the compiled output before saving, and History to roll back immediately if the live result isn’t what you expected.
Version history is per prompt type and per agent. Planning Prompt versions are tracked separately from Main Guidelines and Channel Prompts, and each agent has its own independent history.

Saving and rollout

After editing, click Done in the edit panel, then Save Prompt at the bottom of the left rail to commit.
Changes take effect for new conversations immediately after saving. Conversations already in progress continue using the prompt that was active when they started.

Why a prompt change isn’t taking effect

The edit panel’s Done button closes the panel but doesn’t commit. Until you click Save Prompt in the left rail, changes aren’t live.
Behavior is per-agent. Confirm the agent selector in the product shell matches the agent handling the conversation you’re testing against.
Even if the content is correct, a disabled section is excluded from the compiled output. Confirm both the section’s and subsection’s Enabled toggles are on, and verify in Preview.
Email Channel Prompt content doesn’t apply to chat conversations and vice versa. Check which channel card the subsection lives under.
Saved changes apply to new conversations only. A conversation already in progress when you saved keeps its old prompt until it ends.
Channel Prompts override Main Guidelines for that channel. The Planning Prompt’s rule selection may route a conversation to a Rulebook tree that overrides Main Guidelines too. Use the Inbox AI Steps panel on an affected conversation to see exactly which prompt sections and rules fired.

Rulebook

The behavior tree the Planning Prompt routes to. Build structured workflows that extend prompt behavior for specific intents.

Attributes

Inject live user data into the agent’s context with every message, referenced by prompts and rules.

Tags

Classify conversations automatically; use those classifications in Rulebook conditions.

Test Suite

Validate prompt changes against representative conversations before they reach live customers.