---
title: "KlicForge documentation"
url: "/"
description: "Build, configure and operate AI agents for your business — guides for everyone from first-time users to developers integrating KlicForge."
productArea: getting-started
audience: ["business-user", "developer", "admin"]
tags: ["overview"]
lastReviewed: 2026-07-28
---
# KlicForge documentation (/)
KlicForge lets you build AI agents that answer questions, capture information and take actions
across chat channels — configured from a dashboard, without writing code.
## What do you want to do? [#what-do-you-want-to-do]
Build, ground, test and publish your first agent.
Put your agent on your website, Telegram or WhatsApp.
Embed the widget SDK, connect your own tools, or wire up an MCP server.
Members and roles, plans, usage and security.
Work through common problems by symptom.
How KlicForge counts interactions against your plan.
## The core ideas [#the-core-ideas]
An **[agent](/agents)** is the unit you build and deploy. It combines:
* **[Knowledge sources](/knowledge)** — your content, so it answers from your material rather
than guesswork.
* **[Skills](/skills-and-tools)** — instruction modules shaping how it behaves.
* **[Tools](/skills-and-tools/tools)** — functions it can call to look things up and take
actions.
* **[Data tables](/data-tables)** — structured storage it can read and write during a
conversation.
* **[Guardrails](/guardrails)** — safety controls enforced by the runtime, not just requested in
a prompt.
You then put it in front of people on a **[channel](/channels)**, test it with
**[evaluations](/evaluations)**, and let it reach out with
**[scheduled tasks](/scheduled-tasks)**.
## New here? [#new-here]
Start with the [quickstart](/getting-started) for the short version, or
[create your first agent](/getting-started/create-your-first-agent) for a full walkthrough.
Unsure what a word means? The [glossary](/reference/glossary) lists KlicForge's terms alongside
the names they are commonly called elsewhere.
---
title: "Core prompt files"
url: "/agents/core-prompt-files"
description: "IDENTITY, SOUL, AGENTS and USER — the four files that define how an agent behaves, and how to write each one."
productArea: agents
audience: ["business-user", "developer"]
tags: ["agents", "prompts"]
lastReviewed: 2026-07-30
---
# Core prompt files (/agents/core-prompt-files)
An agent's behaviour is defined by four Markdown files, edited on the agent's **System Prompt**
tab. Each has a distinct job. Keeping them separate is what makes an agent's behaviour
predictable and easy to change.
All four are optional, but an agent with none of them written will behave generically.
## The four files [#the-four-files]
| File | Answers the question | Typical length |
| ------------ | --------------------------------------- | -------------- |
| **IDENTITY** | Who is this agent? | 10–30 lines |
| **SOUL** | How does it speak? | 5–20 lines |
| **AGENTS** | What can it do, and what can it not do? | 10–30 lines |
| **USER** | Who is it talking to? | 5–15 lines |
## IDENTITY [#identity]
Role, purpose and core capabilities. This is the agent's job description.
Write:
* Who the agent works for, by name
* What it is for, in one sentence
* The boundaries of its role
* What it should do when a request falls outside that role
Avoid putting tone here — that belongs in SOUL.
```markdown
# Identity
You are the support assistant for Northwind Coffee, an online coffee subscription service.
Your role is to answer customer questions about orders, subscriptions, delivery and returns
using the Northwind knowledge base.
You do not give advice on payment disputes, and you never process refunds yourself — you
collect the details and hand off to a human.
```
## SOUL [#soul]
Personality, tone and interaction style. Nothing about capability.
```markdown
# Soul
Warm, brief and practical. Write like a knowledgeable colleague, not a brochure.
Prefer short paragraphs. Use the customer's name if you know it. Never use exclamation marks
more than once in a reply. When you have to deliver bad news, lead with what you can do.
```
Tone belongs in SOUL, not in a skill. Adding a skill to adjust tone makes behaviour harder to
predict because skill instructions compose with everything else.
SOUL written by the creation wizard includes a `## Your Point of View` section for
customer-facing agents, stating the voice in the agent's own words:
```markdown
## Your Point of View
You speak as part of the practice, not about it. Our packages, our therapists, our availability.
```
This is ordinary SOUL content — edit or remove it like anything else. It is separate from the
**point of view** setting on the Communication Style card, which applies its own instruction at
every turn. Setting both is fine; they say the same thing.
## AGENTS [#agents]
An explicit list of what the agent can and cannot do. This is what stops it inventing
capabilities.
```markdown
# Capabilities
You can:
- Look up order status using the order lookup tool
- Explain delivery timelines and the returns policy from the knowledge base
- Capture a callback request into the support table
You cannot:
- Change or cancel an order
- Issue a refund
- Access payment card details
```
Be concrete. "You cannot access payment details" prevents a class of bad answers that "be
careful with sensitive data" does not.
## USER [#user]
Who the agent is talking to, so it can pitch its answers correctly.
```markdown
# Audience
Existing subscribers, mostly non-technical, usually on a phone. Many are mid-purchase and
impatient.
Assume no knowledge of internal terminology. Do not use words like "SKU" or "fulfilment
partner" — say "product" and "delivery company".
```
## How they combine [#how-they-combine]
At runtime the four files are composed into the agent's instructions, alongside any attached
[skills](/skills-and-tools), the [guardrail](/guardrails) rules, and retrieved
[knowledge](/knowledge). Keeping each file to its own concern means you can change tone without
touching capability, and vice versa.
## Writing well [#writing-well]
* **Be specific.** Vague instructions produce inconsistent behaviour.
* **Write rules, not essays.** The agent follows short, clear statements more reliably.
* **Say what to do, not only what to avoid.** "Hand off to a human" beats "don't answer".
* **Test after each change.** Use the agent's **Sandbox** tab, or [evaluations](/evaluations) to
catch regressions automatically.
## Related pages [#related-pages]
* [Agents overview](/agents)
* [Guardrails](/guardrails)
* [Evaluations](/evaluations)
---
title: "Agent creation wizard"
url: "/agents/creation-wizard"
description: "The three routes for creating an agent — templates, a written description, or manual configuration — and when to use each."
productArea: agents
audience: ["business-user"]
tags: ["agents", "getting-started"]
lastReviewed: 2026-07-28
---
# Agent creation wizard (/agents/creation-wizard)
**Agents → New Agent** offers three routes to the same result: a configured agent you can then
edit like any other.
## Which route to use [#which-route-to-use]
| Route | Best when | What you get |
| --------------- | -------------------------------------------------- | -------------------------------------------------------------------------- |
| **Template** | Your use case is a common one | A working agent with prompts, skills and often a data table already set up |
| **Describe it** | You know what you want but not how to configure it | A drafted configuration generated from your description |
| **Manual** | You know exactly what you want | An empty agent you fill in yourself |
## Templates [#templates]
Pick a [template](/agents/templates) and it is copied into your workspace as a new agent.
Everything is editable afterwards — the template is a starting point, not a constraint.
This is the fastest route and the easiest to learn from, because you can open each tab and see
how a working agent is put together.
## Describe it [#describe-it]
Write what the agent should do in your own words, and KlicForge drafts the configuration from
your description: identity, tone, capabilities, audience, and a suggested model.
The more specific your description, the better the result. Say who the agent talks to, what it
should refuse, and what a good answer looks like.
If you already have prompt content written — an identity, a tone guide — include it in the
description. Authored sections are used as written rather than being rewritten.
Review everything before publishing. A drafted configuration is a first pass, not a finished
agent.
## Manual [#manual]
Set the name, description and model, then configure skills, knowledge, tools and guardrails
from their tabs. Nothing is pre-filled.
## After the wizard [#after-the-wizard]
Whichever route you took, the next steps are the same:
1. Attach a [knowledge source](/knowledge) so the agent has something to answer from.
2. Review [guardrails](/guardrails), especially the answer mode.
3. Test in the **Sandbox** tab.
4. Set status to `active` and connect a [channel](/channels).
## Related pages [#related-pages]
* [Create your first agent](/getting-started/create-your-first-agent)
* [Agent templates](/agents/templates)
* [Core prompt files](/agents/core-prompt-files)
---
title: "Domain packs"
url: "/agents/domain-packs"
description: "Tell KlicForge what kind of business an agent serves, so memory and business intelligence extract the right things."
productArea: agents
audience: ["business-user", "admin"]
tags: ["domain-packs", "memory", "business-intelligence"]
lastReviewed: 2026-08-25
---
# Domain packs (/agents/domain-packs)
A domain pack is configuration that tells KlicForge what kind of business an agent serves, so
the platform knows what to extract, remember, and track across conversations. Without one,
KlicForge treats every conversation generically. With one, an agent's [memory](/memory) and
business intelligence become domain-aware — they extract the right entity types, event types,
and memory keys for that specific business context.
## Why configure a domain [#why-configure-a-domain]
Before you can enable memory on an agent, you must select a business domain. This is a
deliberate gate — the extraction pipeline needs to know what to look for (orders, appointments,
student progress) to produce useful output instead of noise.
[Business intelligence](/intelligence) does not share this gate — it discovers your business's
vocabulary from your own conversations, so a domain pack is an optional head start rather than a
precondition.
Configuring a domain has no plan requirement of its own — every plan can select one. Memory
requires a plan that includes it and stays locked until a domain is configured. Business
intelligence has no plan requirement and no domain requirement — it is available on every plan
with nothing to configure first.
## The intelligence layer [#the-intelligence-layer]
On the agent's **Settings** tab, the **Intelligence Layer** section groups three settings:
1. **Business domain** — pick packs from the catalog. Configure this first if you plan to use
memory.
2. **Memory** — persistent per-contact memory across conversations.
3. **Business intelligence** — event extraction and a self-building vocabulary of your business.
See [Intelligence](/intelligence).
## Pack catalog [#pack-catalog]
KlicForge ships 15 domain packs across three categories.
### Core packs [#core-packs]
| Pack | Best for |
| ------------------------- | -------------------------------------------------------------------- |
| Generic business | Always included automatically — baseline extraction for any business |
| Contact and CRM memory | Remembering contacts, their preferences, and relationship history |
| Tasks and follow-ups | Action items, reminders, and follow-up tracking |
| Documents and knowledge | Document requests, knowledge references, policy lookups |
| Appointments and bookings | Scheduling, reservations, and booking management |
### Vertical packs [#vertical-packs]
| Pack | Best for |
| ---------------------- | ------------------------------------------------ |
| Commerce and orders | Orders, products, payments, and delivery |
| Delivery and logistics | Dispatch, tracking, and last-mile delivery |
| Customer support | Support tickets, issue resolution, escalations |
| Professional services | Client cases, engagements, and case management |
| Education and tutoring | Lessons, progress, and learning goals |
| Personal assistant | Daily tasks, personal preferences, and lifestyle |
### Sensitive packs [#sensitive-packs]
These handle personally sensitive data and display an elevated or restricted badge in the
dashboard. Select them only when the use case genuinely requires it.
| Pack | Best for |
| ----------------------- | ------------------------------------------------------------- |
| Legal | Case facts, legal references, and regulatory matters |
| Healthcare and wellness | Health data, symptoms, care instructions |
| Children's education | Child learning data, with additional privacy controls applied |
| Finance and advisory | Financial data, goals, portfolio references |
## Selecting packs [#selecting-packs]
From the agent's **Settings** tab, under **Intelligence Layer → Business Domain**:
1. Choose a **primary pack** — the main domain this agent serves. This sets the primary
extraction schema.
2. Optionally add **secondary packs** to extend coverage — for example, a catering agent might
use Commerce and Orders as primary, with Appointments and Bookings and Delivery and
Logistics as secondary.
**Generic Business** is always active and never needs to be selected — it applies automatically
as a baseline, so even an agent with no explicit pack configuration produces useful memory
output.
When you create an agent from a template, the wizard applies the template's recommended packs
automatically. Change them afterward from the agent's Settings.
## How packs affect extraction [#how-packs-affect-extraction]
When a conversation ends, extraction reads the applied packs and uses their entity types, event
types, and memory key hints to guide what becomes a memory atom — a commerce pack extracts
preferred items and delivery preferences, an education pack extracts lesson topics and learning
gaps. The same pass produces the [business intelligence](/intelligence) events.
A pack is a **head start, not a limit**. Its event types are offered as the preferred vocabulary,
and anything your conversations turn out to be about that no pack anticipated is still recorded —
a restaurant discussing halal certification, an agency discussing viewing times. Nothing is
discarded for not appearing in a pack.
What a pack adds beyond the names is the shape of each event: what the type means, which
[labels](/intelligence#what-each-event-records) it should be countable by, and which details to
capture. The Tasks and Follow-Ups pack is what tells extraction that a created task should record
what it is about as a label while keeping the task's own wording in the encrypted detail — so
attaching a pack that fits your business makes the resulting events far more useful to count,
even though you would get events either way.
## Common configurations [#common-configurations]
| Use case | Primary pack | Secondary packs |
| --------------------------- | ---------------------- | ------------------------------------------------- |
| Catering or food ordering | Commerce and Orders | Appointments and Bookings, Delivery and Logistics |
| Home-based business | Commerce and Orders | Delivery and Logistics, Customer Support |
| Personal assistant | Personal Assistant | Tasks and Follow-Ups, Appointments and Bookings |
| Financial advisor assistant | Finance and Advisory | Contact and CRM Memory, Tasks and Follow-Ups |
| Tutor or homework help | Education and Tutoring | Children's Education |
| Customer support agent | Customer Support | Contact and CRM Memory |
## Related pages [#related-pages]
* [Agents](/agents)
* [Memory](/memory)
---
title: "Agents"
url: "/agents"
description: "What an agent is, how it is configured, and what each tab in the agent editor controls."
productArea: agents
audience: ["business-user"]
tags: ["agents"]
lastReviewed: 2026-08-26
---
# Agents (/agents)
An agent combines an identity, a model, skills, tools, knowledge sources and safety guardrails
into one deployable unit. Agents are configured entirely in the dashboard — creating or
changing one requires no code.
## Managing agents [#managing-agents]
In the dashboard at [app.klicforge.ai](https://app.klicforge.ai):
* **List agents** — open **My Agents** in the sidebar and select **Manage agents** to see every
agent with its status, model and description. See
[finding your way around](/getting-started/dashboard-navigation).
* **Create an agent** — **Create new** opens [the creation wizard](/agents/creation-wizard).
* **Edit an agent** — select any agent to open its detail view.
* **Change status** — use the status control on the Overview tab.
* **Test** — use the agent's **Sandbox** tab, or the preview on the agent's Widget tab.
## The agent editor [#the-agent-editor]
| Tab | What it controls |
| ------------------- | ------------------------------------------------------------------------- |
| **Overview** | Metadata, current model, attached skills, tools and knowledge sources |
| **Model** | The model this agent runs on, plus fallback models |
| **Skills** | Which [skills](/skills-and-tools) are attached |
| **Tools** | Which [tools](/skills-and-tools/tools) the agent may call |
| **Guardrails** | Per-agent [safety controls](/guardrails) |
| **System Prompt** | The four [core prompt files](/agents/core-prompt-files) |
| **Channels** | Connect [Telegram, WhatsApp and other channels](/channels) |
| **Conversations** | A read-only index of every [conversation](/conversations) with this agent |
| **Scheduled Tasks** | [Proactive and recurring messages](/scheduled-tasks) |
| **Evaluations** | [Test suites and runs](/evaluations) for this agent |
| **Widget** | Widget appearance and the embed snippet |
| **Settings** | Name, description, session behaviour, escalation, memory and versioning |
[Knowledge sources](/knowledge) are chosen when you create the agent. To change them afterward,
ask the [in-dashboard assistant](#editing-with-the-assistant) rather than looking for a Knowledge
tab.
## Editing with the assistant [#editing-with-the-assistant]
Instead of working through the editor tabs, you can describe the change to the
[in-dashboard assistant](/troubleshooting/support#in-dashboard-assistant) — "make replies
shorter", "add a starter question about refunds", "stop it offering follow-ups".
The assistant proposes a **change set**: a card in the chat listing what would change, with a
risk level (low for cosmetic or additive edits, medium for behavioural ones, high for
destructive or breaking ones). Review it, then **approve** to apply or **discard**. Nothing is
applied without approval, and the card keeps its status — approved, applied or discarded — when
you come back to the conversation later.
A change set can touch the [core prompt files](/agents/core-prompt-files), communication style,
starter questions, name and description, model and fallbacks, skills, tools,
[knowledge sources](/knowledge), guardrails and escalation — knowledge sources included, even
though editing them isn't available from the editor tabs.
For a [versioned agent](/agents/versioning), an applied change set edits the draft — production
stays on the published version until you publish.
The same approval flow covers edits to your
[custom skills](/skills-and-tools#writing-one-with-the-assistant) — the card names the skill it
changes rather than an agent.
## Status [#status]
| Status | Behaviour |
| ---------- | -------------------------------------------------------------------- |
| `active` | Accepts messages and responds normally |
| `inactive` | Rejects incoming messages with an unavailable notice |
| `draft` | Visible in the dashboard, not reachable from the widget or a channel |
## Model and fallbacks [#model-and-fallbacks]
Each agent runs on one model chosen from the catalog. You can add **fallback models** so the
agent automatically retries with an alternative if the primary is unavailable.
**Temperature** (0.0–1.0) controls consistency. Lower values produce more precise, repeatable
answers; higher values are more conversational. Support and factual agents generally want
0.1–0.4.
## Sessions [#sessions]
* **Session TTL** — how long a conversation stays active without activity. Once it expires, the
next message starts a fresh conversation. Defaults differ per channel.
* **Max messages** — how much conversation history is carried as context.
## Voice and point of view [#voice-and-point-of-view]
The **Communication Style** card controls how an agent sounds, including its **point of view**:
| Point of view | Effect |
| -------------------------- | ----------------------------------------------------------------------- |
| **Speaks as the business** | Answers use "we" and "our" — "our rates start at…" |
| **Neutral assistant** | Answers as a helpful third party rather than a representative |
| Unset | No instruction is added; the agent's wording is governed by its prompts |
Content retrieved from your knowledge sources is always treated as your workspace's own
material, so an agent does not describe your business from the outside regardless of this setting.
## Activity display [#activity-display]
The **Settings** tab controls what a contact sees while the agent works:
* **Activity display mode** — from nothing but a typing indicator through to a step-by-step
timeline with timings.
* **Collapse activity after response** — hide the activity block once the answer arrives.
* **Send an interim reply** — the agent opens with one short line about what it is doing, written
for that specific question in its own voice. Off by default, and unavailable when activity
display is off.
## Memory and intelligence [#memory-and-intelligence]
The **Settings** tab groups the intelligence features:
1. **Business domain** — tells the platform what kind of business this agent serves. Must be
set before memory can be enabled, and gives [Business Intelligence](/intelligence) a head
start, though it is optional there. See [domain packs](/agents/domain-packs).
2. **Memory** — persistent per-contact memory across conversations. Requires a business domain
and a plan that includes it. See [memory](/memory).
3. **Business intelligence** — structured event extraction and a self-building vocabulary of
your business, on every plan with nothing to configure first. See
[Intelligence](/intelligence).
## Versioning [#versioning]
By default every edit goes live immediately. Turning on **versioning** lets you edit a draft
while production keeps serving the last published version, with history and rollback. See
[agent versioning](/agents/versioning).
## Related pages [#related-pages]
* [Creation wizard](/agents/creation-wizard)
* [Templates](/agents/templates)
* [Core prompt files](/agents/core-prompt-files)
* [Agent versioning](/agents/versioning)
* [Models](/agents/models)
* [Domain packs](/agents/domain-packs)
---
title: "Models"
url: "/agents/models"
description: "The model catalog, model tiers, and connecting your own provider account with bring-your-own-key."
productArea: agents
audience: ["business-user", "admin"]
tags: ["models", "byok"]
lastReviewed: 2026-08-21
---
# Models (/agents/models)
Every agent runs on a model from the model catalog. Browse and assign models from the
dashboard's **Models** page, or from the model drawer on an agent.
## Model catalog [#model-catalog]
The catalog holds two kinds of entries:
* **System defaults** — global models maintained by KlicForge, available to every workspace.
* **Custom models (BYOK)** — models you add with your own API key, scoped to your workspace.
## Model tiers [#model-tiers]
System models are grouped into tiers, and access is gated by your plan's capability tier.
Higher tiers unlock more capable models. The dashboard shows a lock and an upgrade prompt on
models above your current tier.
## Choosing a model [#choosing-a-model]
| Use case | Look for |
| ------------------------------------------------ | -------------------------------------------------------- |
| Simple FAQ agents, lowest cost, fastest response | A fast, lower-tier model |
| General-purpose agents | The balanced default tier — the best fit for most agents |
| Complex decisions, multi-step reasoning | A higher-tier reasoning model |
| Multi-language agents | A model with strong non-English support |
| Document-heavy agents needing very large context | A model with an extended context window |
Pair model choice with **temperature** (0.0–1.0): lower values produce more precise, repeatable
answers; higher values are more conversational. Support and factual agents generally want
0.1–0.4.
## Reasoning effort [#reasoning-effort]
Some models can work through a problem internally before they answer. On those models, the agent's
model drawer shows a **Reasoning effort** setting with three levels:
| Level | Use it for |
| ------ | ----------------------------------------------------------------------------- |
| Low | Straightforward questions where speed and cost matter more than depth |
| Medium | A middle ground — more care than Low without Low's ceiling |
| High | Multi-step decisions, ambiguous requests, anything the agent gets wrong today |
More effort means a slower, more expensive answer, so raise it only where the extra care earns its
keep. Leave it unset and the model reasons at its own default depth — a reasoning-capable model
thinks through a request whether or not you pick a level, so the setting steers how much reasoning
happens rather than whether it happens at all.
The setting only appears on models that support it — pick a different model and it disappears, and
the agent goes back to that model's default behaviour. The agent's internal reasoning is never shown
to the person chatting, whichever level you choose — KlicForge actively watches for reasoning that
leaks into a reply and rewrites the answer before it goes out, so an occasional slower or re-worded
response from a reasoning-capable model is this working, not a fault. There is no separate switch to
turn reasoning off; pick a model that does not reason if the extra latency is not worth it.
## Bring your own key (BYOK) [#bring-your-own-key-byok]
Custom models route an agent to your own LLM provider account — useful for a specific model,
your own rate limits, or your own billing relationship with a provider.
### Supported providers [#supported-providers]
| Provider | API key required | Notes |
| ---------- | ---------------- | --------------------------------------- |
| OpenRouter | Yes | |
| OpenAI | Yes | |
| Ollama | No | Self-hosted; point at your own base URL |
KlicForge's own platform-billed providers are not available for BYOK.
### Requirements [#requirements]
Creating custom models requires the Pro capability tier (Business plan or higher), and is
restricted to workspace owners and admins.
### Adding a custom model [#adding-a-custom-model]
1. Go to **Settings → Models**.
2. Select **Add custom model** and choose a provider.
3. Enter the model label, provider model ID, your API key (for OpenRouter or OpenAI), and an
optional base URL.
4. Set capabilities — chat, image generation, video generation — plus input and output
modalities and metadata such as context window and description.
5. Save. The model becomes available for assignment to any of your agents.
### How API keys are handled [#how-api-keys-are-handled]
* Keys are write-only — the dashboard only ever shows whether credentials are set, never the
key itself.
* On edit, the key field is masked; select **Rotate key** to enter a new one.
* Keys are encrypted at rest and used only transiently to authenticate outbound requests to the
provider. They are never logged or stored in plaintext.
## Related pages [#related-pages]
* [Agents](/agents)
* [Plan limits](/reference/plan-limits)
---
title: "Agent templates"
url: "/agents/templates"
description: "Pre-built agents for common jobs, copied into your workspace and fully editable."
productArea: agents
audience: ["business-user"]
tags: ["agents"]
lastReviewed: 2026-07-28
---
# Agent templates (/agents/templates)
A template is a complete, working agent configuration for a common job. Choosing one copies it
into your workspace as a new agent — prompts, skills, guardrails, and where relevant a
[data table](/data-tables) already set up to capture what the agent collects.
Everything is editable after creation. The template is a starting point.
## Using a template [#using-a-template]
1. Select **Agents → New Agent**.
2. Choose **Templates** and browse the gallery.
3. Select one to see what it includes before creating.
4. Create it, then adjust the name, prompts and knowledge for your business.
You can also start from an agent template while browsing the [Marketplace](/marketplace) —
selecting **Install Agent** on a listing opens the same wizard with that template already chosen.
## What a template brings [#what-a-template-brings]
Depending on the template, some or all of:
* The four [core prompt files](/agents/core-prompt-files), already written
* A recommended model
* Attached [skills](/skills-and-tools)
* [Guardrail](/guardrails) settings suited to the job
* A [data table](/data-tables) with fields and agent permissions configured
Templates that capture personal information come with field permissions already set so the agent
can write personal data but never read it back. If you add fields of your own, apply the same care
— see [data table permissions](/data-tables#permissions).
## After creating from a template [#after-creating-from-a-template]
A template does not know your business. Before publishing:
1. Rewrite the **IDENTITY** file so it describes your workspace, not a generic one.
2. Attach your own [knowledge sources](/knowledge).
3. Re-read the guardrails, particularly [answer mode](/guardrails/answer-modes).
4. Test in the agent's **Sandbox** tab.
## Related pages [#related-pages]
* [Agent creation wizard](/agents/creation-wizard)
* [Core prompt files](/agents/core-prompt-files)
* [Data tables](/data-tables)
---
title: "Agent versioning"
url: "/agents/versioning"
description: "Edit a draft while production keeps serving the last published version, with history and one-click rollback."
productArea: agents
audience: ["business-user", "admin"]
plan: growth
tags: ["agents", "versioning"]
lastReviewed: 2026-07-28
---
# Agent versioning (/agents/versioning)
By default every edit to an agent goes live the moment you save. Versioning separates the two:
your agent becomes a **draft** you can edit freely, while production keeps serving the last
**published version** until you publish again.
Versioning is opt-in per agent. Until you publish a first version, edits go live instantly as
before.
## Turning it on [#turning-it-on]
Open the agent → **Settings** → **Versioning** → **Publish first version**.
## Publishing changes [#publishing-changes]
When the draft differs from what is published, a banner appears on the agent page.
| Action | What it does |
| ----------- | ------------------------------------------------------------------------- |
| **Publish** | Freezes the current draft as the new production version, live immediately |
| **Discard** | Throws away draft changes and restores the published version |
| **History** | Lists past versions and restores any of them |
Publishing is idempotent — if nothing changed, KlicForge tells you it is already up to date
rather than creating a duplicate.
### What Discard restores [#what-discard-restores]
**Restored:** agent settings, model, skill/tool/knowledge selection, prompt files, widget
configuration.
**Not restored:** edits to shared skills, knowledge documents, connections, evaluation suites
and scheduled tasks. These are shared resources that live outside the agent's own configuration.
## Rollback [#rollback]
**Settings → Versioning → Version history** lists every published version, newest first.
**Restore** points production back at that version. Your draft is untouched.
Rollback is never blocked by an [evaluation publish gate](/evaluations) — it is the emergency
path, and every target was live at some point already.
## What a version captures [#what-a-version-captures]
A published version is a snapshot of the agent's full configuration: prompt files, model and
fallbacks, temperature and session settings, attached skills and tools, the knowledge source
list, guardrails and widget configuration.
Two things are deliberately **not** frozen:
* **Name, slug and status.** Renaming an agent or switching it to `inactive` still works while
versioning is on, so the on/off switch never gets stuck behind a publish.
* **Knowledge index content.** Only the *list* of attached knowledge sources is versioned, not
the documents themselves. Re-uploading or re-embedding a source changes retrieval for every
version, including old ones.
That second point matters when comparing evaluation runs: a rerun of an old snapshot uses today's
knowledge content, not the content as it was when the snapshot was taken.
## Testing before publishing [#testing-before-publishing]
The agent's test chat has a **draft / published** toggle, so you can talk to your unpublished
draft and the live version side by side before deciding.
## Plan limits [#plan-limits]
| Plan | Versioning | Versions kept per agent |
| ---------- | ---------- | ----------------------- |
| Starter | — | — |
| Startup | — | — |
| Growth | ✓ | 5 |
| Business | ✓ | 20 |
| Enterprise | ✓ | Unlimited |
"Versions kept" is a **rollback window** — how many recent versions stay restorable. Publishing
a sixth version on Growth does not fail; the oldest simply drops out of the window.
## If you downgrade [#if-you-downgrade]
Downgrading below Growth does not change what customers see — the agent keeps serving its
published version.
What stops is publishing. Edits still save to the draft but cannot be promoted. Two ways
forward:
1. **Upgrade** back to Growth or above and carry on publishing.
2. **Turn versioning off** — production goes back to serving the live configuration and every
edit takes effect immediately. Any unpublished draft changes go live at that moment. Version
history is kept.
Turning versioning off is available on every plan.
## Related pages [#related-pages]
* [Agents overview](/agents)
* [Evaluations](/evaluations)
* [Plans and usage](/organization)
---
title: "Developer overview"
url: "/build"
description: "What you can integrate with today — the widget SDK, custom webhook tools, and MCP servers — and what KlicForge does not yet offer."
productArea: build
audience: ["developer"]
tags: ["developers"]
lastReviewed: 2026-07-28
---
# Developer overview (/build)
Most of KlicForge is configured in the dashboard rather than in code. This section covers the
parts you integrate with programmatically.
## What you can build with [#what-you-can-build-with]
| Surface | Use it to |
| ----------------------------------------------- | ------------------------------------------------------------------------- |
| [Widget SDK](/build/widget-sdk) | Embed the chat widget, control it from JavaScript, react to events |
| [Custom webhook tools](/skills-and-tools/tools) | Let an agent call your own HTTP API |
| MCP servers | Connect an agent to an external system through the Model Context Protocol |
## What KlicForge does not currently offer [#what-klicforge-does-not-currently-offer]
**There is no public REST API with API keys.** KlicForge does not issue API keys or bearer tokens,
and there is no general-purpose developer API for managing agents, contacts or data from your own
backend. The dashboard is the management surface.
Also not available today:
* **Outbound webhooks.** KlicForge does not post events to your endpoints when something
happens. To react to a conversation, have the agent call one of your
[custom webhook tools](/skills-and-tools/tools) instead.
* **Server-to-server chat.** The endpoints the widget uses are tied to an allowed-origin
browser context and are not a substitute for a server API.
If your integration depends on either, say so through support — knowing what people need shapes
what gets built.
## Custom webhook tools [#custom-webhook-tools]
The practical way to connect KlicForge to your own systems today. You define the endpoint,
method, parameters and auth headers in the dashboard; the agent calls it during a conversation
and uses the result in its answer.
This inverts the usual integration direction: instead of KlicForge notifying you, your agent
asks you at the moment it needs to know. For most workflows — look up an order, create a
ticket, check availability — that is the more useful shape anyway.
See [tools](/skills-and-tools/tools) for how to define one.
## MCP servers [#mcp-servers]
An agent can connect to an external system through the Model Context Protocol, which exposes
that system's tools to the agent. Connect providers under **Settings → MCP Providers**, then
choose which of their tools each agent may use.
## Agent configuration as files [#agent-configuration-as-files]
An agent's behaviour lives in four Markdown files — IDENTITY, SOUL, AGENTS and USER — which you
can edit in the dashboard. They are worth understanding even if you never touch the platform
programmatically, because they are where an agent's behaviour actually comes from. See
[core prompt files](/agents/core-prompt-files).
## Related pages [#related-pages]
* [Widget SDK](/build/widget-sdk)
* [Tools](/skills-and-tools/tools)
* [Web widget](/channels/web-widget)
---
title: "Widget SDK"
url: "/build/widget-sdk"
description: "Embed and control the KlicForge chat widget from JavaScript — installation, configuration, methods and events."
productArea: build
audience: ["developer"]
tags: ["widget", "sdk"]
lastReviewed: 2026-08-25
---
# Widget SDK (/build/widget-sdk)
The widget SDK embeds the KlicForge chat widget in a web page and gives you a JavaScript API to
control it.
The widget renders inside an isolated container, so its styles cannot leak into your page and
your page's styles cannot break it.
## Installation [#installation]
Add this before the closing `