For agents

Satisfaction, on your traces.

Agent-native feedback

Did the agent actually help? Now you can prove it.

Your traces show what the agent did. UserVane shows how the user felt about it. Capture real end-user satisfaction the moment your agent resolves a task, bound to the same session you already trace in Langfuse. You get a number you can put in front of leadership, not a model-graded guess.

The gap

Traces and evals cannot tell you if the user was helped

You trace every agent run, and you may score outputs with a model or a rubric. Neither answers the question your team actually has: did this person get what they came for? A model grading its own kind is a proxy. Real satisfaction comes from the user, at the moment the task is done, and it belongs on the same session you already watch.

The loop

How it works

  1. Declare true resolution

    Call resolveTask when the user's task is actually done. UserVane shows one respectful inline ask, right in the conversation, and never re-prompts after an answer. Caps and quiet periods are decided server-side when the token is issued.

  2. Correlate to your trace

    The rating is bound to the same sessionId you set on your Langfuse traces. Your server pushes a uservane.satisfaction session score back into Langfuse. UserVane never holds or needs your Langfuse key.

  3. Read a number you can defend

    The agent headline counts linked, non-model-requested responses only. Every number ships with its margin, its sample size, and its source, and thin samples are held back instead of dressed up.

Install

Drop it into the stack you already ship

Vercel AI SDK

Capture at true resolution and thread the show-token to your client UI.

npm i @uservane/vercel-ai

OpenAI Agents

Fire-once run wrapper, client UI, and a scoped bridge so the Langfuse session exists.

npm i @uservane/openai-agents

CopilotKit

Capture at turn resolution with deterministic, never-re-prompt rules.

npm i @uservane/copilotkit

All three build on the shared @uservane/agent-core (headless controller plus the server-only mint) and @uservane/agent-react (inline UI). Full setup, per framework, is in the agent quickstart.

Read results

Analyze results in the AI tools you already use

UserVane ships an org-scoped MCP server (mcp.uservane.com). Connect it in Claude, Cursor, or any MCP-capable client you already pay for. Pull honest scores and verbatims with tools like get_results and list_responses, then ask your AI to summarize themes, find detractor patterns, or draft follow-ups.

Bring your own AI

We do not sell a locked-in analysis agent or a per-token insight meter on top of your survey bill. Analysis happens in the assistant you already use, over a paid UserVane org after OAuth.

Honest numbers first

get_results still suppresses thin samples, returns Wilson margins in the stabilizing band, and labels measured vs imported sources. Your AI gets the same discipline as the dashboard, not a naked vanity score.

MCP is UI-equivalent access for paid orgs, not a free anonymous API. Capture stays on UserVane; interpretation stays in your tools.

Scope

What this is, and what it is not

A capture layer, not a tracer

UserVane does not record your agent's inputs, outputs, latency, or tool tree. Your observability tool does that. UserVane adds the honest user-satisfaction signal on top and lands it on the same session.

Session-level, on purpose

Scores attach to the session. Observation-level auto-capture of trace ids is not a shipped client API, so we do not market it.

You decide when to ask

Your resolveTask owns the sample. The optional model-requested tool is off by default, and its captures are excluded from the headline so the model can never inflate your number.

Attested, not trusted

A rating is bound to its session and respondent at issue time and cannot be re-pointed at another session. See correlation and attestation.

Ship honest agent feedback this week.