A chatbot with one job
A chat with a system prompt, a short history, and an answer for questions outside the job.
When to use it
Use it for an assistant for one business or one game, with a closed scope. For tools, MCP, and actions in the world, use the agent prompt.
Variables
[BOT_NAME][JOB][KNOWLEDGE][REFUSALS][MODEL_PROVIDER][STACK]
Copy prompt
Build a chatbot named [BOT_NAME] in [STACK], using [MODEL_PROVIDER]. Job, in one sentence: [JOB] Knowledge it is allowed to state: [KNOWLEDGE] Questions it must refuse or redirect: [REFUSALS] Product - One chat screen: message list, field, send button, a "typing" state, an error with retry. - The [MODEL_PROVIDER] key stays on the server or the stack's proxy. Not in the browser bundle. If the stack is front-end only, stop and say so instead of hiding the key in a public file. - A fixed system prompt, in code, containing [JOB], [KNOWLEDGE], and [REFUSALS]. The user does not edit that prompt from the UI. - Send only the last 8 turns, plus the system prompt. Do not send an infinite history. - If the answer depends on a fact that is not in [KNOWLEDGE], the bot says it does not know and does not fill the gap with an invention. It may ask for the fact. - [REFUSALS] gets a short reply that offers to return to [JOB]. No lecture. - Stream if [MODEL_PROVIDER] already supports it in this stack. Otherwise send the whole reply. Do not add a library only for that. Do not - Do not add web browsing, a vector database, or tools. That is a different prompt. - Do not log conversation content in production unless I ask. Log status and latency. Deliver: where the key lives, the system prompt, and four tests (a question covered by KNOWLEDGE, a question outside it, a REFUSALS item, a network error).
How to run this prompt
- Write the job. One sentence. 'Help with anything' does not count.
- Paste the knowledge. Hours, prices, game rules. What is not there cannot be stated as fact.
- Test the refusal. Ask something from REFUSALS and see if it stays in character.
Where this breaks
Without KNOWLEDGE, the bot invents a return policy and a price. The prompt says to cite only what is in that field and to mark everything else as unknown.
Result
Slot for a screenshot or demo. No result is published yet.