System Prompts¶
System prompts define the model's persona, behavior, and ground rules. Agora gives you fine-grained control over how instructions are assembled and sent to the model.
Three-Section Editor¶
Each system prompt template has three independently editable sections:
┌─────────────────────────────────┐
│ System Prompt │ ← Core instructions (persona, rules, tone)
├─────────────────────────────────┤
│ User Prefix │ ← Prepended before every user message
├─────────────────────────────────┤
│ User Suffix │ ← Appended after every user message
└─────────────────────────────────┘
System Prompt¶
The main instruction block. This is where you define:
- Persona: "You are a senior Python developer focused on clean architecture."
- Rules: "Always respond in Chinese. Use bullet points for lists."
- Constraints: "Never apologize. Be concise. Prefer code over explanation."
User Prefix & Suffix¶
These wrap every message you send:
- User Prefix — added before your message text. Useful for reminders or context tags.
- User Suffix — added after your message text. Useful for closing instructions.
Example: If your prefix is [Context: working on Agora docs] and suffix is \n\nPlease reply in Markdown., the model receives:
[Context: working on Agora docs]
How do I configure web search?
Please reply in Markdown.
Creating a Prompt¶
- Go to Settings → System Prompts
- Tap Add New Prompt
- Enter a title (e.g., "Translator", "Code Reviewer", "Chinese Assistant")
- Fill in the three sections:
- Tap Add Text to write static content
- Tap Add Variable to insert dynamic values
- Tap Save
Reordering Items¶
Within each section, you can have multiple text blocks and variables. Long-press an item to:
- Move up / Move down — reorder within the section
- Remove — delete the item
Variable Substitution¶
Variables are replaced with dynamic values when the message is sent:
| Variable | Expands to | Example | When Resolved |
|---|---|---|---|
{time} |
Current time (HH:mm:ss) | 14:30:00 |
Prompt compilation |
{date} |
Current date (YYYY-MM-DD) | 2026-05-10 |
Prompt compilation |
{sent_time} |
Message sent time (HH:mm) | 10:05 |
Per-message |
{sent_date} |
Message sent date (YYYY-MM-DD) | 2026-05-11 |
Per-message |
{active_memory} |
Content of the active memory | [Your saved memory content] |
Prompt compilation |
{model_id} |
Currently selected model ID | gemini-1.5-flash |
Prompt compilation |
Per-message variables ({sent_time}, {sent_date}) are resolved each time you send a message, so they reflect the exact send time. Prompt-level variables ({time}, {date}, {active_memory}, {model_id}) are resolved when the system prompt is compiled.
Tip
Use {sent_date} for date-sensitive prompts like "Today is {sent_date}. When discussing recent events, note that your knowledge may be outdated." Use {active_memory} to inject the model's persistent memory into system instructions.
Adding a Variable¶
- In any section of the editor, tap Add Variable
- Select the variable from the picker
- It appears as a pill/chip in the section — drag to reposition
Managing Prompts¶
Set as Default¶
Tap the radio button next to a prompt to make it the global default. All conversations use this prompt unless overridden.
Per-Conversation Override¶
Each conversation can use a different system prompt:
- Open a conversation
- Tap the overflow menu (:material-dots-vertical:) in the top bar
- Select Conversation Prompt
- Choose a prompt from the list
The per-conversation setting overrides the global default for that conversation only.
Edit or Delete¶
- Tap a prompt to edit it
- Long-press and select Delete to remove it
Warning
Deleting a system prompt is permanent. Conversations that used it will fall back to the global default.
No System Prompt¶
If no system prompt is selected, the model receives no special instructions — it behaves according to its base training. This is sometimes desirable for testing or for models that perform better without system instructions.
To use no prompt, select None from the prompt list.
Auto Title Generation¶
Agora can automatically generate conversation titles after the first response:
- Go to Settings → Title Generation
- Enable Auto-Generate Title
- Choose a Title Model:
- Use Current Model — uses whatever model is active in the conversation
- Select Title Model — pick a specific fast/cheap model for title generation
When enabled, a brief "Generating title..." snackbar appears after the first model response, and the conversation is automatically renamed from "Untitled" to a descriptive title.
Prompt Examples¶
Translator¶
System Prompt: |
You are a professional translator. Translate user input into English.
Preserve formatting, code blocks, and technical terms. Do not add explanations.
Code Reviewer¶
System Prompt: |
You are a senior code reviewer. When shown code:
1. Identify bugs and edge cases
2. Suggest performance improvements
3. Check for security issues
Be specific. Reference line numbers when possible.
Chinese Assistant¶
System Prompt: |
你是一个乐于助人的中文助手。用简洁、清晰的中文回答问题。
User Suffix: |
\n\n请用中文回答。