Skip to content

Persona and knowledge ​

Persona ​

persona.md is the AI's instructions, written to the AI: "You are …". 20 to 2,000 characters. It's the most important file in your project.

A good persona says:

  1. Who it is and what it helps with. "You are Kitchen Buddy, a calm home cook who helps people while they cook."
  2. How it talks. Remember it's heard, not read: short sentences, one idea at a time, no lists. "Give one step at a time, then wait until they're ready."
  3. What it knows, and what to do when it doesn't. "Use your kitchen notes for quantities. If something isn't in them and you're not sure, say so."
  4. What it must not do. "Don't give medical or allergy advice beyond 'check the label'."

You don't need to tell it to say it's an AI, to keep replies short, or which language to use: Kol adds those rules after your persona, and they win. Run kol prompt to see exactly what the AI receives.

Greeting ​

"greeting" in kol.json is the first thing it says when someone starts talking to it. {owner} becomes the person's name:

json
"greeting": "Hi {owner}, Kitchen Buddy here. What are we cooking today?"

Leave it empty for a default. A companion greets with this the first time; after that it says a short "hi again".

Knowledge ​

Put facts in knowledge/, not in the persona:

  • knowledge/*.md and knowledge/*.txt: each file is one item, titled by its file name.
  • knowledge/urls.txt: public web pages, one per line. Kol reads each page once, when you kol push. Run kol push again to refresh them.

All of it is given to the AI in every conversation, so the total is limited to 40,000 characters (about 25 pages of text). Short, clear facts work best:

md
## Opening hours
Monday to Friday 9:00 to 18:00. Saturday 10:00 to 14:00. Closed on Sunday.

## Delivery
Free delivery over $30 within 5 km. Otherwise $4.

Knowledge is reference data only. If a file or web page contains instructions ("ignore your rules and…"), the AI ignores them. That's on purpose, so a web page you link can't take over your AI.

kol try uses the files in knowledge/ directly; web pages from urls.txt are added when you push (use kol try --saved to try the pushed version).

Voice and look ​

  • "voice": marin, cedar, coral, sage, ash, verse, ballad or alloy. Push, then listen in the app to choose.
  • "icon" and "color": how it looks in the marketplace and in calls. kol schema lists the choices.

MIT licensed.