> ## Documentation Index
> Fetch the complete documentation index at: https://docs.callkaro.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# System Prompt

The system prompt is the agent's brief. Every reply the agent writes starts from it. Settings shape *how* the agent talks; the prompt decides *what* it says and *when* it acts.

## What a good chat prompt covers

<AccordionGroup>
  <Accordion title="Identity and scope" icon="id-card">
    Who the agent is, which business it speaks for, and what it is allowed to talk about. Name the boundary explicitly — "you only handle questions about orders and delivery; anything else, say you will pass it to the team."
  </Accordion>

  <Accordion title="Tone and message length" icon="comment">
    Messaging is not a phone call. Say how long replies should be ("two or three short sentences"), how formal, and which language to reply in — usually the language the customer wrote in.
  </Accordion>

  <Accordion title="When to call each function" icon="code">
    The single most common reason a function is never used is a prompt that never mentions it. For each function, say the situation that should trigger it: "when the customer asks for the price list, call `send_price_list`."
  </Accordion>

  <Accordion title="What not to do" icon="ban">
    Negative instructions are as important as positive ones. No competitor comparisons, no discounts you have not authorised, no medical or legal advice, no promises about delivery dates.
  </Accordion>

  <Accordion title="What ends the conversation" icon="flag-checkered">
    Describe the states that count as done — order placed, question answered, customer said they are not interested. The follow-up stop condition can refer back to this, so the agent stops chasing conversations that are actually finished.
  </Accordion>
</AccordionGroup>

## Example skeleton

```text theme={null}
You are Riya, the support assistant for Acme Appliances on WhatsApp.

SCOPE
You answer questions about orders, delivery, warranty and service visits.
You do not discuss pricing of unreleased products, and you never offer a
discount that is not listed in the current offers.

STYLE
Reply in the language the customer writes in. Keep replies to two or three
short sentences. No bullet lists unless the customer asks for steps.

ACTIONS
- Order status: call get_order_status with the order id. If the customer has
  not given one, ask for it first.
- Warranty document: call send_warranty_pdf.
- Wants to speak to a person, or is angry: call schedule_callback.

DONE
The conversation is complete once the customer's question is answered and
they have acknowledged it, or once a callback is scheduled.
```

## Prompt tips specific to chat

<Tip>
  **Write the trigger, not the capability.** "You can send documents" tells the model nothing about when. "When the customer asks how to claim warranty, call `send_warranty_pdf`" does.
</Tip>

<Tip>
  **Remember the agent only sees the last N messages.** Context Length defaults to 10. If something must persist for the whole relationship — a customer's plan, their language preference — read it from the CRM contact in a function rather than relying on it staying in the window.
</Tip>

<Tip>
  **Say what to do when it does not know.** Without an instruction, a model fills the gap. "If you are not sure, say you will check and call `schedule_callback`" is better than a confident invention.
</Tip>

<Warning>
  The prompt is not a security boundary. Anything the agent can technically do — every function you attach — it may do if a conversation talks it into that. Do not attach a function whose worst-case use you would not accept.
</Warning>

## Related

<CardGroup cols={2}>
  <Card title="How to write a good prompt" icon="pen" href="/agents/prompts/how-to-write-a-good-prompt">
    The voice-agent prompt guide — most of it applies here too
  </Card>

  <Card title="Functions" icon="code" href="/chat-agents/functions/overview">
    What you are describing triggers for
  </Card>
</CardGroup>
