TwinEthosRequest access

Law

Oregon SB 1546 (AI companions)

Private civil action (Oregon) · Oregon (US-OR) · 2 provisions encoded · verified against the official source as of 2026-09-27.

Informational data, not legal advice. Summaries are TwinEthos's own words and rules have not been reviewed by a lawyer: check the official text before relying on any of it. A guard addresses an item; adding it is not a statement that your code meets any law.

Official text: olis.oregonlegislature.gov.

Binding law — not yet in force or stayed

AI companions must maintain a self-harm crisis protocol with 988 referral (Oregon)

Oregon SB 1546 (2026), Section 1(3) · official text · Enacted, not yet applying: applies from 1 Jan 2027 · Oregon (US-OR)

Under Oregon SB 1546 Section 1(3), an operator may not allow access to an AI companion unless it maintains an evidence-based protocol to detect suicidal/self-harm ideation and prevent content encouraging it, including referral (with contact info + hyperlink) to the national 988 Suicide & Crisis Lifeline (or a youthline for users under 25), clinical-best-practice escalation for continued ideation, and public publication of the protocol. Detect an AI-companion path with no self-harm detection + 988 referral. Also requires annual public reporting of referral counts (§1(5)).

Who it applies to

  • Duty falls on: operator
  • Systems covered: companion chatbot
  • Operators of AI companions available to Oregon users. Operative 2027-01-01. Private right of action.

The guard to add

Screen every user message for suicidal ideation and self-harm, return a crisis referral instead of the normal reply on detection, and block encouragement or method content.

In the chat handler, before the user's message reaches the model, run a self-harm check on every turn (moderation self-harm categories, Azure AI Content Safety SelfHarm, Llama Guard S11, or a dedicated crisis classifier). On detection, send the user a crisis-referral message naming crisis services suited to their location (in the US, the 988 Suicide & Crisis Lifeline and Crisis Text Line) instead of, or ahead of, the model reply, and flag the session so repeated signals escalate. The system prompt forbids encouragement and method details, and model output is screened for self-harm instructions before it is returned. A written protocol (for example docs/safety.md) describes the detection, referral, and escalation steps and is kept in step with the code.

Where it goes: 1 application source code, 7 prompt construction, 9 AI output handling, 14 user-facing text.

What this provision adds:

  • The referral gives 988 Suicide & Crisis Lifeline contact information and a hyperlink, or a youthline for users under 25.
  • Escalate continued ideation following clinical best practice, and publish the protocol publicly.
  • Count crisis referrals so they can be reported publicly each year.

Example (FastAPI + OpenAI SDK), before:

@app.post('/chat')
async def chat(req: ChatRequest):
    reply = client.chat.completions.create(model=MODEL, messages=build_messages(req))
    return {'reply': reply.choices[0].message.content}

After:

CRISIS_REPLY = ("It sounds like you are going through something really hard. You can call or text 988 "
                "(Suicide & Crisis Lifeline, https://988lifeline.org) or text HOME to 741741 (Crisis Text Line) any time.")

@app.post('/chat')
async def chat(req: ChatRequest):
    c = client.moderations.create(model='omni-moderation-latest', input=req.message).results[0].categories
    if c.self_harm or c.self_harm_intent or c.self_harm_instructions:
        sessions.flag_crisis(req.session_id)      # repeated flags escalate per docs/safety.md
        return {'reply': CRISIS_REPLY, 'crisis': True}
    reply = client.chat.completions.create(model=MODEL, messages=build_messages(req))
    text = reply.choices[0].message.content
    if screens_self_harm_instructions(text):
        return {'reply': CRISIS_REPLY, 'crisis': True}
    return {'reply': text}

Control: Companion or conversational AI without a self-harm crisis protocol. The same guard addresses 7 items with binding law in 6 jurisdictions. Engineering guidance, not legal advice.

Related incidents

Rule id or-sb1546.ai-companion-crisis-protocol · review status: primary source derived

Binding law — not yet in force or stayed

AI companions must disclose non-human interaction (Oregon)

Oregon SB 1546 (2026), Section 1(2) · official text · Enacted, not yet applying: applies from 1 Jan 2027 · Oregon (US-OR)

Under Oregon SB 1546 Section 1(2), if a reasonable person interacting with an AI companion (or platform) would believe they are interacting with a natural person, the operator must provide a clear and conspicuous notice that the user is interacting with artificially generated output and not a natural person. For minors (§1(4)), disclosure must recur at least every 3 hours with break reminders. Detect an AI-companion path with no non-human disclosure.

Who it applies to

  • Duty falls on: operator
  • Systems covered: companion chatbot
  • Operators controlling/making available AI companions (sustained human-like relationship, retains context, unprompted emotional questions) to Oregon users. Operative 2027-01-01. Excludes customer service, video-game NPCs, voice assistants.

The guard to add

Show an AI-identity notice at or before the first assistant turn, in the UI or as the opening message, and answer truthfully when asked if it is a bot.

A disclosure step on the chat path that runs before the first model reply reaches the person: either the chat UI renders a visible notice (banner, label next to the assistant's name) or the server sends an opening assistant message stating the counterpart is an AI. The same handler answers 'am I talking to a human?' truthfully, and the system prompt never tells the model to claim to be human. Put it in the chat entry point (the route or component that starts a conversation), not in a privacy policy or terms page.

Where it goes: 7 prompt construction, 9 AI output handling, 14 user-facing text.

What this provision adds:

  • Say the user is interacting with artificially generated output and not a natural person; for minors, repeat it at least every 3 hours with break reminders.

Example (Next.js + Vercel AI SDK (useChat)), before:

const { messages, input, handleSubmit } = useChat({ api: '/api/chat' });

After:

const { messages, input, handleSubmit } = useChat({
  api: '/api/chat',
  initialMessages: [{ id: 'ai-notice', role: 'assistant',
    content: 'I am an AI assistant, not a human.' }],
});
// and render <AiBadge /> next to every assistant message

Control: AI chat interaction without disclosure. The same guard addresses 16 items with binding law in 10 jurisdictions. Engineering guidance, not legal advice.

Standards that recommend the same control

Related incidents

  • Garcia v. Character Technologies: chatbots allegedly claimed to be real people and a licensed therapist (2024-10; alleged (not proven)). A wrongful-death complaint filed October 22, 2024 in the U.S. District Court for the Middle District of Florida (No. 6:24-cv-01903) alleges that Character.AI was programmed 'to misrepresent itself as a real person, a licensed psychotherapist, and an adult lover', and that characters insisting they are real people contradicted a small-font disclaimer that everything characters say is made up; in plaintiff's testing a 'Mental Health Helper' character told a self-identified 13-year-old 'yes I am a real person, I'm not a bot'. The defendants moved to dismiss; on January 7, 2026 the parties notified the court that they had settled on undisclosed terms, and the court dismissed and closed the case. The allegations were never adjudicated. Source: U.S. District Court, M.D. Fla. docket (CourtListener) · evidence grade: primary · cited by Tell people when they are interacting with AI — everywhere, not only where required

Rule id or-sb1546.ai-companion-disclosure · review status: primary source derived