For the complete documentation index, see llms.txt. This page is also available as Markdown.

System Prompts

A system prompt is the standing instruction given to a language model before it sees any user question. Under Settings → Intelligence → Kaiya & AI → System Prompts, admins can set the model's role, the rules it must follow, and the format its answer has to take. Kaiya does not run on a single prompt; it uses a large library of them, one per task, so that the model handling SQL generation gets different instructions from the model writing a summary.

This page exposes that library for viewing and editing. Editing a prompt changes how Kaiya behaves for every user in the workspace.

The two layers

Prompts are split into two independent groups, each with its own selector. Understanding the split matters, because the same underlying task can appear in both.

Implementation Layer: Prompts that carry out a task. These define what the model does mechanically: choosing a workflow, generating a plan, building a component, extracting a summary.

Examples in this layer include Orchestrator, Insight App – Plan Generation, Insight App – JSX Build Agent (Modular), Agentic Insights – Planner, Agentic Insights – WebSearch, CMS – Anchor Decision, and Workflow Descriptions.

Behavioural Layer: Prompts that shape how the model conducts itself while doing the work: tone, style, and output conventions. Entries in this layer are suffixed "(Behavioural)".

Examples include Analytic Planner, Simplified Text2SQL, Text2SQL Reflection, Chart config generation, Title narration realtime, Title narration non-realtime, DeepInsight Planner (Behavioural), DeepInsight Summary (Behavioural), Mission Planner (Behavioural), Mission Patch (Behavioural), PDF HTML Generator (Behavioural), PPT Codegen (Behavioural), and DOCX Codegen (Behavioural).

The two selectors are independent. Choosing a prompt in one layer does not change the other, and each layer can display a prompt at the same time.

Finding a prompt

Click Select a prompt on either layer. The dropdown contains a Search box at the top. Type any part of a prompt name to narrow the list.

At the bottom of every dropdown is Clear Filter. This deselects the currently loaded prompt and returns that layer to its empty state.

Viewing a prompt

Selecting a prompt loads it below the dropdown, with:

  • The prompt name as a heading.

  • Last Updated, showing the date and time the prompt was last changed.

  • The prompt body, rendered as formatted text with headings, lists, bold, and inline code styling. The panel scrolls internally; these prompts run long.

Two buttons sit at the bottom: Delete and Edit.

Editing a prompt

Clicking Edit swaps the rendered view for a plain-text editor showing the prompt's raw source. Two things become visible here that the rendered view hides:

Markdown formatting. Headings appear as ###, bold as **text**, and inline code inside backticks. The rendered view above is simply this markdown displayed with styling applied.

Jinja templating. Prompts contain template expressions that are filled in at runtime rather than being fixed text. Two forms appear:

  • {% ... %} — statements that set values or control logic. For example, {% set text_language = text_language | default("English", true) %} assigns a language variable and falls back to English when none is supplied.

  • {{ ... }} — placeholders that insert a value into the text. {{ text_language }} is replaced with the actual language when the prompt runs.

Treat these expressions as functional code. Deleting or mistyping one can break the prompt or cause the model to receive a literal {{ text_language }} instead of a real value.

Click Save to apply your changes or Cancel to discard them and return to the rendered view. Save stays inactive until you change something.

Before you edit

These prompts govern Kaiya's behavior across the whole workspace. Practical precautions:

  • Copy the existing prompt text somewhere safe before changing it, so you can restore the original.

  • Change one prompt at a time and test the affected workflow, rather than editing several at once.

  • Leave the Jinja expressions and any named flags such as deep_insight_workflow or requireUserApprovalOnSwitch exactly as they are unless you know what consumes them.

  • Note the Last Updated timestamp first, in case someone else is working on the same prompt.

Last updated

Was this helpful?