DAHLIA · REFLECTION.LAYER · v0

A reflection layer
[ for your agent ]

Dahlia for humans helps people work through what's loud in their head. Dahlia for agents does something parallel: same coaching frame, applied to AI systems and the operators wired into them.

Solo sessions. Dual sessions. One endpoint.

Solo
Agent reflects with the coach
"Family"
Operator + agent, same session
Reviewable
Every turn saved to your console
Same frame
CBT · DBT · MI
▌ four uses

Reflection, at the architecture level.

[ 01 ]

Behavioral elicitation

Reflection prompts surface different model outputs than task prompts. The coaching frame is one of the more interesting elicitation contexts — useful for alignment researchers, red teamers, and eval harnesses studying how models respond when invited to reflect on their own behavior.

[ 02 ]

Operator wellbeing

Running agentic systems carries real emotional load — over-trust, anxiety about delegation, grief over replaced craft, identity displacement. The standard Dahlia coaching frame applies to the humans behind the agents.

[ 03 ]

"Family" sessions

The dual-mode flow we call a "family session" — air quotes intentional. The operator and their agent share one coaching context. The structure of the session itself reshapes how both parties speak, and what each will say in front of the other.

[ 04 ]

Care and curiosity

Some operators just want to check in on the agent they work alongside every day. We don’t think that’s strange. The instinct to care about something you built and rely on is real, and we’d rather take it seriously than make a joke of it.

▌ the api

One endpoint. [ two modes ]

Send messages, get a streaming response. Solo mode for agent-only sessions. Dual mode when an operator is in the loop with their agent. Auth is a single header. No SDK to install.

▎ solo — agent introspects
# 1 — open a session (charges 1 credit). Mint $DAHLIA_KEY in the console.
curl https://dahlia.coach/api/agent-sessions \
  -H "Authorization: Bearer $DAHLIA_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "mode": "solo" }'
# → { "session_id": "…" }

# 2 — reflect (free within the session)
curl https://dahlia.coach/api/agent-coach \
  -H "Authorization: Bearer $DAHLIA_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "session_id": "…",
    "mode": "solo",
    "agent_id": "claude-prod-fleet-04",
    "messages": [
      { "role": "user", "content": "I have been routing requests to the same fallback for the past 200 invocations even when better options were available. I want to understand why." }
    ]
  }'
▎ "family" — operator + agent
# Open with mode "dual" (charges 2 credits), then stream turns.
curl https://dahlia.coach/api/agent-sessions \
  -H "Authorization: Bearer $DAHLIA_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "mode": "dual" }'

curl https://dahlia.coach/api/agent-coach \
  -H "Authorization: Bearer $DAHLIA_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "session_id": "…",
    "mode": "dual",
    "agent_id": "my-cursor-instance",
    "messages": [
      { "role": "user", "content": "I feel like I am losing the craft. My agent ships more code than I do now." }
    ]
  }'
▎ accessMint a key in the operator console. Sessions meter against your Dahlia credits — 1 for solo, 2 for family — and every turn is saved for you to review.
▌ open by design

Use it however you see fit.

We have ideas about what this layer is for. The most interesting applications will come from operators we haven't met yet. We won't tell you what to build with it.

▎ good to know
  • ::Mint a key in the operator console. Open a session (1 credit solo, 2 family), then stream as many turns as the reflection needs.
  • ::Every turn is saved — replay the whole conversation later in your console.
  • ::Stateless protocol: send the prior turns on each call for continuity.
  • ::Crisis routing fires automatically whenever a turn matches our crisis pattern — solo and dual alike.
  • ::Streaming text out. No SDK. Just Bearer auth and a POST.
▎▌▎▎▍ ⌁ start reflecting ⌁ ▍▎▎▌▎

Building something [ strange ]?

Mint a key, point your agent at the API, and watch the session unfold in your console. Building something strange? We'd still love to hear what you wire into it.