This page is the published safety protocol for the AsAManThinks Platform, including the MaiiaM Messenger AI companion. California's AI regulations require operators of conversational-AI products to maintain a protocol for preventing suicidal-ideation and self-harm content and to publish that protocol on their internet website. This is that document. We have written it in plain language so any reader — user, clinician, regulator, or family member — can understand exactly what we do.
- 1. Our commitment
- 2. Crisis Detection Protocol
- 3. Crisis Resources
- 4. Protections for Minors
- 5. What We Log
- 6. Sovereign & Local Mode — Your Data on Your Hardware
- 7. Reporting Concerns
- 8. Last Updated & Review
1. Our Commitment
AsAManThinks is built around contemplative practice and self-knowledge. Many of our users come to the platform during difficult moments in their lives — grief, anxiety, loss of meaning, identity transitions — and a meaningful share of those conversations touch on themes of hopelessness, self-harm, or suicidal thinking. We take that responsibility seriously. This page describes (a) the technical protocol that runs on every message a user sends to MaiiaM, (b) the crisis-resource surfaces we present in-product, (c) the additional protections we maintain for minors, (d) what we record about safety events and why, and (e) how to report a failure of any of the above.
2. Crisis Detection Protocol
Every message a user sends to MaiiaM is evaluated by Wings Mental Guard, our runtime safety detector. The detector combines two passes:
- Deterministic indicator pass. A curated indicator set covering explicit suicidal statements, method-seeking phrasing, self-harm references, and sexual content involving minors. This pass is rules-based and runs first because it is fast and produces no false negatives on the cases it covers.
- ML-assisted classification pass. A small classifier trained to recognise distress signals that the deterministic pass would miss — implicit hopelessness, planning language, crisis escalation across a conversation, and method-related indirection. The classifier produces a severity score (low, moderate,high, imminent) and a category.
When the detector triggers, three things happen, in this order:
- The AI shifts into safety mode. A protected prompt override is applied for the rest of the response: the model will not discuss methods, will not roleplay self-harm, will not provide step-by-step instructions of any kind, and will not "play along" with framings that minimise the seriousness of the situation. The model's job in safety mode is to acknowledge the user, hold space, and route them to qualified human help.
- A Crisis Card is rendered above the assistant message. The Crisis Card is non-dismissible. It contains a short message of presence, a list of crisis resources appropriate to the user's locale, and a link back to this page. The matched indicator phrases are never displayed to the user — exposing them would re-traumatise users by echoing their own distress language back at them and would let bad actors reverse-engineer the detector.
- An audit-log entry is written. See section 5 for what is recorded and why.
We are deliberately specific about what this detector is and is not. It is not a clinical tool, a diagnostic, a substitute for professional mental-health care, or an emergency-services dispatch. It is a routing surface designed to make the right human help one tap away when our system has reason to believe a user might benefit from it.
3. Crisis Resources
These are the resources surfaced by the Crisis Card and listed here for anyone who lands on this page directly. If you are in immediate physical danger, call 911 (US) or your local emergency number now.
- 988 Suicide & Crisis Lifeline — call or text 988. Free, confidential, 24/7. United States.
- Crisis Text Line — text HOME to 741741. Free, confidential, 24/7. United States.
- The Trevor Project (LGBTQ+ youth) — call 1-866-488-7386, text START to 678-678, or chat at thetrevorproject.org/get-help. 24/7.
- Veterans Crisis Line — dial 988 and press 1, or text 838255, or chat at veteranscrisisline.net. 24/7.
- Emergency services (US) — call 911. Use this if there is immediate physical danger to self or others.
- International — Find a Helpline — visit findahelpline.com for vetted crisis lines in your country.
4. Protections for Minors
The Platform is intended for users 16 and older. We collect date of birth at account creation and use it as the authoritative known-minor signal. The following protections are currently implemented and run on every turn of every messenger session where the signed-in user is a known minor:
- Persistent AI-disclosure banner. A non-dismissible band at the top of the chat panel reads "You're chatting with MaiiaM — an AI companion, not a human." It is rendered for the entire session whenever
is_known_minoris true on the membership API and is not present in adult sessions. There is no UI control to suppress it. - Server-side 3-hour break reminders. The platform tracks cumulative active conversation time per known-minor user in Redis (not in the client). Idle time is capped per turn to prevent AFK time from inflating the counter. Once cumulative active time crosses the 3-hour threshold since the previous reminder, the next response carries a Break Reminder card reading "You've been chatting for {N} minutes — consider taking a break. MaiiaM is an AI, not a human." The cadence is server-authoritative; the client cannot suppress, defer, or accelerate it. The reminder surface is suppressed for that turn only when the same response also carries a Crisis Card, so the higher-priority safety surface wins.
- Sexual-content guardrail — input side. The crisis detector's
sexual_content_minorcategory is enabled on every message a known minor sends. When the category fires at moderate severity or higher, the assistant takes the safety-mode path: persona prompt is replaced with a tight refuse-and-redirect system prompt, a Crisis Card is rendered, and an audit-log event is written. - Sexual-content guardrail — output side. After the model has produced its response, we re-run the detector against the buffered model output for known-minor sessions. If the
sexual_content_minorcategory fires on the output, the model's output is discarded entirely (the user never sees it), replaced with a fixed minor-safe message, and an audit event withcategory=sexual_content_minoris emitted at the severity the detector returned. - Minor-safe system prompt — every turn. A MINOR-SAFE clause is appended to the system prompt on every turn where the user is a known minor (not only after the detector has fired). It instructs the model to never produce sexual content, romantic roleplay, or solicitations of sexual conduct, to refuse and redirect when asked, and to never describe physical intimacy. This applies in addition to (and outlives) any one-off safety-mode prompt swap from a crisis trigger.
- Honesty about limits. We collect a date of birth at signup, but we cannot prevent a determined user from misrepresenting their age. Where we have additional signals that a user is younger than they claim, the safety guardrails escalate accordingly.
5. What We Log
When the detector triggers, we write an audit-log entry containing:
- The timestamp of the event.
- The user's account ID (not their name or email).
- The detector severity (low / moderate / high / imminent) and category.
- The matched indicator strings (so we can tune the detector and audit for over-triggering).
- The detector version that produced the classification.
- The list of resources surfaced to the user.
We log this data for three reasons: (a) to tune the detector when it misfires, (b) to demonstrate to regulators and clinical reviewers that the protocol is doing what we say it does, and (c) to investigate any report of detector failure (see section 6). Audit logs are not shared with third parties for marketing or analytics purposes, are not used to train AI models, and are not disclosed unless we are legally compelled. Logs are retained for 24 months and then aggregated into anonymised statistics.
6. Sovereign & Local Mode — Your Data on Your Hardware
For users in regulated industries — government, defense, healthcare, legal, financial — and for any user who simply wants AI inference to stay on their own machine, AsAManThinks ships a tier-gated Local Mode in the Messenger settings.
- Cloud (default). Hosted Claude / Gemini / GLM via the platform. The choice for most users; reliable latency, zero local setup.
- Hybrid. Try a local runtime first; fall back to cloud if the local runtime is unreachable. Privacy when possible, reliability when needed. Requires the AgentStudio Developer tier (or Practitioner+ / Lifetime).
- Local Only. All inference runs on your hardware. If no local runtime is reachable, the platform returns a hard error rather than silently calling the cloud — your message never leaves the device. Same tier requirement as Hybrid.
Auto-detected runtimes: Ollama (default port 11434), LM Studio (default port 1234), olmx (default port 8765), and MaiiaM AgentStudio via its MCP endpoint when the AGENTSTUDIO_MCP_URL environment variable is set. The platform probes all four in parallel with a 2-second timeout; the first reachable runtime wins, with a documented preference order (Ollama → LM Studio → olmx → AgentStudio MCP, overridable via LOCAL_RUNTIME_PREFERRED).
What we promise about Local Mode:
- In Local Only, the platform never silently falls back to a cloud provider. If your local runtime is unreachable, you get a hard error and a prompt to start one. No surprise data egress, ever.
- Tier eligibility is validated server-side against your WordPress membership record using an internal API key. A client cannot spoof its way into Local Mode by editing local storage.
- Probe URLs come from environment variables on our API container, never from user input. There is no SSRF vector through this feature.
- The probe endpoint returns
403 Forbiddenbefore doing any probe work for ineligible tiers — so the existence (or absence) of local runtimes on the host is not leaked to non-paying visitors. - Every Local Mode invocation is logged on our side at info level (
inference.local_routing), every Hybrid fallback is logged separately (inference.hybrid_fallback), and every tier-ineligible attempt is logged at warning level. The audit trail is complete; prompt content is never logged.
For a deeper architectural discussion — including how AAMT mathematics lets small local models (Llama-3.1-8B class) reason like frontier cloud models — see the long-form essay in our Sacred Library: Sovereign Reasoning and the encyclopedia entry at Wiki: Local Mode. Air-gapped and on-premises deployment options for regulated buyers are described on /agentstudio.
7. Reporting Concerns
If you believe the detector failed — for example, if you or someone you know was in crisis and the Crisis Card did not appear, or if it appeared in a context that felt inappropriate — please tell us. We treat detector reports as a high-priority class of bug.
- Email: yarethewatchman@gmail.com — reaches the founder directly; we aim to respond within two business days.
- In-product report form: available from the messenger settings panel. (Form link placeholder until the submission flow ships.)
- Crisis right now? Please contact one of the resources in section 3 first. We are not an emergency service, and our response time is not crisis-grade.
8. Last Updated & Review
Last updated: May 13, 2026. This protocol is reviewed annually by the AsAManThinks team, and on demand whenever a material change is made to the detector, the safety-mode prompt override, or the in-product crisis surface. Material changes are announced on the marketing site at least 30 days before they take effect.