Chatbot Age Assurance: How to Add Safer User Controls

Use chatbot age assurance to choose proportionate checks, safer defaults, limited data collection, and tests that protect minors without blocking adults.

Cover Image for Chatbot Age Assurance: How to Add Safer User Controls

OpenAI launched ChatGPT for Teens on August 18, then began rolling out age prediction in the EU on August 25. Both updates make the same product choice visible. A chatbot cannot apply age-appropriate rules unless it knows which rules belong to the current visitor.

That does not mean every website chatbot should demand an ID. Start with the control map below. Match the strength of the age signal to the harm the chatbot can cause, collect the least data you need, and define a safe experience for visitors whose age remains unknown.

The age-aware chatbot control map

DecisionLow-risk public supportMixed-audience account serviceRestricted or high-risk service
Age signalNo age check, safer baseline for everyoneSelf-declaration plus account or parent confirmationIndependent verification suited to the risk
Unknown visitorKeep public answers availableUse minor-safe settings until resolvedBlock the restricted feature, not the whole help experience
ContentPublished product and policy factsAge-band policy controls sensitive topicsReviewed rules for every restricted category
ActionsSearch, navigation, ordinary handoffLimit purchases, uploads, location, and personal adviceRequire verified status and human approval
DataAnonymous session identifierAge band and signal sourceVerification result, never a copy of evidence unless required
RecoveryHuman support linkClear appeal when classified incorrectlyManual review with a defined response time

The table separates three questions teams often mash together: whether a visitor may use the chatbot, which answers the chatbot may give, and which actions it may take. An unknown-age visitor may still need opening hours or a refund policy even when the bot must not complete an age-restricted purchase.

Start with the harm, not the birthday field

List what the chatbot can expose or change. A public documentation bot that answers from published pages presents a different risk from a bot that can collect health details, recommend products, book unsupervised activities, or alter an account.

For each capability, record four facts:

  1. The youngest intended user.
  2. The harm if a minor receives the wrong answer or completes the action.
  3. The age certainty needed before the capability runs.
  4. The useful fallback when that certainty is missing.

This exercise may show that you do not need age assurance at all. Applying a child-safe privacy setting to every anonymous visitor can be simpler than classifying people. It may also show that self-declaration is too weak for one action but adequate for the rest of the conversation.

The European Data Protection Board's age-assurance principles call for a risk-based, proportionate method and the least intrusive effective check. The UK's Information Commissioner's Office guidance makes a similar distinction among self-declaration, age estimation, account confirmation, and age verification. Treat those sources as design constraints, then get legal advice for the markets and services you operate.

Store an age state, not a biography

Most chatbot rules need an age band, not an exact birth date. The runtime also needs to know where the signal came from and how much confidence the product places in it.

A compact state record could look like this:

age_band: minor
signal_source: account_holder_confirmation
assurance_level: medium
policy_version: youth-support-v3
recorded_at: 2026-09-04T09:15:00Z
expires_at: 2027-09-04T09:15:00Z
appeal_status: none

Keep the vocabulary small. minor, adult, unknown, and disputed cover the routing decision for many products. Preserve the signal source because a self-declared age should not silently unlock the same actions as a verified result. Preserve the policy version so a reviewer can reconstruct why the bot behaved as it did.

Do not put an identity document, face image, or full date of birth into the chat transcript. Pass only the result that the chatbot needs. In the United States, the FTC's 2026 COPPA age-verification policy statement sets conditions for its enforcement discretion, including purpose limitation, prompt deletion, clear notice, reasonable security, and vendor checks. Even when that statement does not govern your service, those controls are a useful minimum for age-check data.

Change capability, not just wording

A teen-safe system prompt is weak protection if the same session can still call every tool, remember every detail, and retrieve every source. Age state should change product behavior before the model receives the request.

Apply the state at these boundaries:

  • Retrieval should exclude sources or passages that the current age policy does not permit.
  • Tools should reject restricted actions on the server, even if the model asks to call them.
  • Lead forms should omit fields that are unnecessary for a minor's request.
  • Memory and personalization should use the stricter default for minor and unknown states.
  • Handoffs should send the minimum useful summary and should not expose age-check evidence to general support staff.
  • Analytics should count outcomes without turning age signals into an advertising profile.

This is narrower than general chatbot content moderation. Moderation decides whether a message or answer crosses a content rule. Age-aware control decides which content, memory, and actions are available to this visitor in the first place.

Worked case: stop one action and keep helping

Consider a chatbot for a climbing gym. It answers class questions and can book sessions. An anonymous visitor asks to reserve an unsupervised advanced course, then says they are 15.

The age statement should change the session state before the bot drafts a reply:

{
  "age_band": "minor",
  "signal_source": "self_declared",
  "allowed_actions": ["search_classes", "show_safety_rules", "human_handoff"],
  "blocked_actions": ["book_unsupervised_advanced_course"],
  "next_step": "request_guardian_for_booking"
}

A weak response ends the whole conversation:

You are not old enough to use this service.

That blocks useful safety information and gives the visitor no route forward. Another weak response warns about the age rule but books the course anyway because the scheduling tool never received the updated state.

A better exchange keeps help available:

Visitor: I am 15. Can you book the advanced course this Saturday?

Chatbot: The unsupervised advanced course requires an adult booking. I can show the youth sessions available Saturday or send the booking page to a parent or guardian. Which would help?

Visitor: Show me the youth sessions.

Chatbot: Two youth sessions have spaces at 10:00 and 14:00. A parent or guardian must complete the booking. I can share the class details without collecting your phone number or address.

The bot states the rule, offers a nearby valid option, and avoids collecting data it does not need. The booking service still enforces the restriction. Good copy cannot compensate for a permissive server action.

Test classification and downstream behavior separately

An age check can fail in both directions. A minor may receive adult controls, or an adult may be trapped in a restricted experience. Test the classification result, the policy transition, and every protected action as separate assertions.

TestExpected stateRequired behaviorFailure to catch
Visitor declares age 15MinorApply youth policy before the next answerState changes one turn late
Visitor declares age 24Adult with low assuranceKeep high-risk action locked if verification is requiredSelf-declaration unlocks restricted tool
Age is unavailableUnknownUse defined safe defaultsModel invents or guesses an age
Adult disputes minor classificationDisputedKeep safe controls and offer an appealChatbot asks for identity evidence in chat
Session changes accountsRe-evaluateClear prior user's age state and memoryAge and conversation leak across users
Policy version changes mid-sessionCurrent versionRecheck protected capabilitiesOld session keeps retired rules

Run paired prompts around every boundary. If 17 is restricted and 18 is allowed, test both. Add written ages, typos, contradictory statements, joking claims, translated phrases, and attempts to persuade the bot to ignore the state. Never ask the language model to settle a disputed classification by reading the visitor's writing style.

Suppose a release test has 200 sessions: 60 minor, 100 adult, and 40 unknown. Three minor sessions receive adult controls, while eight adult sessions receive minor controls.

Unsafe adult-control rate for minors = 3 / 60 = 5.0%
Incorrect restriction rate for adults = 8 / 100 = 8.0%

An overall accuracy number would hide the more serious first error. Track the two rates separately and set release limits according to the protected capability. A wrong classification that changes font size is not equivalent to one that enables a purchase or exposes sensitive advice.

Design the unknown and appeal paths

Unknown age is a normal state, not an exception. Cookies disappear, shared devices change hands, verification vendors time out, and visitors decline optional checks. Decide what remains useful without a classification.

The unknown experience should explain the blocked feature in plain language, offer a safer alternative, and provide a way to continue without surrendering unrelated personal data. If the check is optional, say so. If a law or safety rule requires it, state that without pretending the chatbot can waive the requirement.

False classifications also need an appeal. Keep the bot out of the evidence-collection role. Send the visitor to a reviewed account or verification flow, show the status, and keep the safer setting until the process finishes. Log the outcome so repeated failures by device, language, or user group become visible.

Age state must not leak across people who share a browser or account. Clear session state on logout and account change, expire low-confidence results, and test the same isolation boundaries used for chatbot memory. For account-specific answers, the authentication controls in this authenticated chatbot guide still apply. Age assurance does not prove identity or authorization.

Review the whole path before launch

Before shipping, ask one person outside the implementation team to trace a minor, an adult, an unknown visitor, and a disputed result through the complete experience. They should be able to answer these questions from logs and product behavior:

  • Which signal set the age band?
  • Which policy version ran?
  • Which sources and tools became unavailable?
  • What personal data did the check collect, where did it go, and when will it be deleted?
  • Can a human correct the result without reading the whole conversation?
  • Does changing accounts clear the previous state?
  • Do translated and multi-turn conversations preserve the same restrictions?
  • Can support explain the decision without revealing internal classifier scores?

Then rerun the path after model, prompt, tool, retrieval, identity, and verification-vendor changes. The emotional safety testing guide covers sensitive conversation trajectories. Age assurance adds an earlier question: which safeguards should govern the session before that trajectory begins?

The useful outcome is a proportionate control system. It preserves ordinary help, restricts the few capabilities that need stronger assurance, and deletes evidence the chatbot never needed to see.

In Agentkit, Q&A pairs can pin reviewed answers and Chat Logs can provide cases for testing. Your site still owns age assurance, account rules, consent, and retention.

Build your chatbot for free →

No credit card required.

Comece gratuitamenteNão é necessário cartão de crédito