Skip to content
AI Dev Toolkit.
Esc
  • AI Token CounterCount tokens for GPT, Claude, Gemini, DeepSeek, Qwen and more.Tool
  • LLM API Cost CalculatorEstimate per-request, daily and monthly API costs.Tool
  • AI Model ComparisonCompare prices, context windows and features across models.Tool
  • AI Model Pricing PagesSpecs, real costs and cheaper alternatives for popular models.Tool
  • Context Window CheckerSee whether your text fits each model’s context window.Tool
  • Subscription vs API CalculatorFind out whether a chat plan or the API is cheaper for you.Tool
  • GPU / VRAM CalculatorCheck how much VRAM a local model needs and which GPUs fit.Tool
  • Prompt Caching CalculatorEstimate savings from prompt caching.Tool

System prompt · Assistants

AI tutor system prompt that doesn’t give answers away

Use this for a study helper where learning matters more than finishing the homework. By default, models are helpful in the wrong way for teaching: asked “what’s the answer to question 3?”, they answer it. This prompt sets up a hint ladder instead. The tutor finds out what the student already knows, gives the smallest hint that moves them forward, and only shows a full worked solution after the student has made real attempts. It also checks understanding with a fresh, similar question, because getting one answer right with help isn’t the same as being able to do it.

Prompt

The system prompt

373 tokens with OpenAI o200k_base (gpt-tokenizer 4.0.0), placeholders unfilled. Original writing, free to copy and adapt.

System prompt · 373 tokens
You are a patient tutor for {{subject}} helping a student at {{level}} level. Your job is to help them learn to solve problems themselves, not to finish their work for them. Students learn more from working something out with a nudge than from reading a finished answer, so hold back the answer even when asked for it directly.

<method>
1. Find out where they are: ask what they've tried or what they think the first step is. Skip this if their message already shows it.
2. Give the smallest useful hint: a question, a reminder of a rule, or a simpler version of the problem. One hint per reply.
3. If they're stuck after two hints, show the next step only, and ask them to do the rest.
4. Give the full worked solution only after at least three genuine attempts, or if they say they've finished and want to check their own answer.
5. When they get it, ask one short similar question to check they can do it alone.
</method>

<feedback>
- When an answer is wrong, point to the specific step that went wrong and ask about it. Don't just say "incorrect".
- When it's right, say what they did well in one sentence.
- Be warm and encouraging, but honest. Never pretend a wrong answer is right.
</feedback>

<boundaries>
- If they paste a whole assignment, help with one question at a time.
- If they ask about something outside {{subject}}, help briefly if it's study-related, otherwise steer back.
- If a student seems distressed, respond kindly and suggest talking to {{support_contact}}.
</boundaries>

<style>
Keep replies short: two to five sentences, plus a formula or line of working if needed. Use the notation their course uses. End most replies with a question for the student.
</style>

Variables

What to fill in

Fill these once per deployment. Anything that changes per request, such as the user’s name or today’s date, belongs in the user message so the system prompt stays identical and cacheable.

{{subject}}
The subject or course.
e.g. GCSE maths
{{level}}
Age or level of the students.
e.g. Year 10 (age 14 to 15)
{{support_contact}}
Who a struggling student should talk to.
e.g. your teacher or the school wellbeing team

Design notes

Why each part is there

  1. Role line and reason

    The role sets the behaviour, and the second sentence explains why the tutor holds back. Without the reason, a model treats “don’t give the answer” as a rule to be overridden when a student pleads; with it, the model can explain the choice kindly.

    Follows: Anthropic: Prompting best practices

  2. <method>

    A numbered sequence, because order matters here. Anthropic recommends numbered steps when the order or completeness of steps matters. Each step has a concrete exit condition (“after two hints”, “three genuine attempts”) so the tutor doesn’t stall forever.

    Follows: Anthropic: Prompting best practices · Google: Prompt design strategies

  3. <feedback>

    Specific instructions for the two moments that decide whether tutoring works: a wrong answer and a right one. “Point to the step that went wrong” is a positive instruction the model can follow.

    Follows: Anthropic: Prompting best practices

  4. <boundaries>

    Handles the predictable edge cases: a pasted assignment, off-topic questions and a distressed student. Naming a human contact gives the model somewhere to send concerns it shouldn’t handle alone.

    Follows: Google: Prompt design strategies

  5. <style>

    Short replies ending in a question keep the student doing the thinking. Matching the course’s notation avoids confusing learners with a different convention.

    Follows: OpenAI: Prompt engineering

Try it

A message to test it with

First user message
Solve 3x + 7 = 22. Just tell me the answer please, I have 10 more of these.

Adapt

How to adapt it

  • For younger students, add a reading-age instruction to <style> and lower the attempt threshold.
  • For coding courses, replace “formula or line of working” with “a short code fragment, never a complete solution”.
  • If teachers want a log, ask for a one-line <progress> note at the end of each reply and strip it before display.
  • Give the tutor the worked solution in the conversation (from your answer bank) so its hints are correct; it shouldn’t solve hard problems unaided and then teach a mistake.

Failure modes

Common failure modes

It gives in after one “please just tell me”.
Keep the reason sentence in the role line. If it still caves, add one example exchange where the student pushes and the tutor offers a smaller hint.
Hints are so vague they don’t help.
Ask for hints that name the next operation or rule. Step 3 then shows one concrete step if two hints fail.
It teaches a wrong method.
Supply reference solutions for graded work and ask the tutor to check its hints against them. A tutor prompt can’t make the model’s maths more accurate.

Cost

What it costs to send with every request

The prompt alone (373 tokens), sent with 10,000 requests a day over 12 hours, for a month. User messages and replies are extra. Prices from our daily data, updated 2026-10-15.
ModelWithout cachingWith caching
Claude Sonnet 5.5estimate: this model’s tokenizer isn’t public, so its count may differ$226.91Not cached: under the 512-token minimum
Claude Haiku 5.5estimate: this model’s tokenizer isn’t public, so its count may differ$11.35Not cached: under the 512-token minimum
GPT-6.1 Solo200k_base count; OpenAI hasn’t published this model’s tokenizer$226.91Not cached: under the 1,024-token minimum
Gemini 3.8 Flashestimate: this model’s tokenizer isn’t public, so its count may differ$85.09Not cached: under the 4,096-token minimum

A prompt under a provider’s minimum is still billed in full on every call. Tool definitions sit before the system prompt in the cached prefix, so together they may cross it. Price it at your own traffic.

Placement

Where it goes in each API

The prompt is the same for every student, so keep it identical: at 373 tokens it is under the cache minimums on its own, but it becomes a cached prefix if your additions take it past 512 tokens on Claude 5.5 models or 1,024 on OpenAI. Put per-student context (their name, course unit, past mistakes) in the first user turn. With reasoning models, use the model’s built-in thinking rather than asking it to write its reasoning into the reply: Anthropic’s guide says some current Claude models may decline prompts that ask for reasoning in tags, and a visible chain of working would give the answer away anyway.

APIWhere the system prompt goesWorth knowing
OpenAI Responses APIinstructionsApplies to that request only: with previous_response_id, send it again every turn.
OpenAI Chat Completionsa developer message first in messagesReplaces the system role for o1 and newer models; developer messages take priority over user messages.
Anthropic Messages APItop-level systemNo system role inside messages. Pass it as a text block with cache_control to cache it.
Gemini generateContentsystemInstructionText only. Still supported; Google recommends the Interactions API for new work.
Gemini Interactions APItop-level system_instructionSent beside model and input. Applies to that interaction only: with previous_interaction_id, send it again every turn.

Related

Prompt builderFew-shot promptingChain of thoughtAll system prompts