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.
Reflection, at the architecture level.
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.
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.
"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.
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.
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.
# 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." }
]
}'# 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." }
]
}'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.
- ::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.
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.