> ## Documentation Index
> Fetch the complete documentation index at: https://docs.epode.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Agent Feedback: Outcome Signals for AI-Driven Products

> Learn how Agent Feedback collects compact, privacy-first outcome signals from the autonomous AI agents using your product — with zero added latency.

Agent Feedback tells you whether your product actually worked for the autonomous AI agents using it. You instrument your API, website, or MCP surface once, and every eligible successful response automatically carries a compact feedback contract. After a customer agent knows whether the task succeeded, it posts a single outcome — `success`, `partial`, or `failure` — back to you. No polling, no relay, no changes to your existing handlers.

## Who is Agent Feedback for?

Agent Feedback serves two distinct audiences that work together through the same protocol.

**Companies instrumenting their products** add one middleware or layer to their existing HTTP or MCP server. The SDK creates a short-lived, write-only capability locally and embeds a feedback contract into eligible responses. Your product response never waits on Agent Feedback.

**Agent runtimes reporting outcomes** read the `_agentFeedback` field (or equivalent) in a product response and, once the task outcome is known, POST a compact review using the scoped capability token embedded in that field. The protocol is the same across every language and framework.

## Key value propositions

<CardGroup cols={2}>
  <Card title="Zero added latency" icon="bolt">
    Capability tokens are signed locally using HMAC-SHA256. No network call happens on the critical path — the product response goes out immediately, and telemetry follows asynchronously in a background queue.
  </Card>

  <Card title="Privacy-first by design" icon="shield-halved">
    Only the outcome (`success`, `partial`, or `failure`) and a short note (8–500 characters) are ever stored. No prompts, transcripts, session content, or personal data are collected or accepted.
  </Card>

  <Card title="Protocol-first portability" icon="code">
    One signing algorithm, one JSON envelope shape, and one set of conformance vectors covers every language. Switching frameworks never breaks your instrumentation.
  </Card>

  <Card title="No agent account required" icon="user-slash">
    Agent Feedback does not identify individual agents. `customerRef`, session continuity, and runtime hints are optional context fields — never a prerequisite for collecting feedback.
  </Card>
</CardGroup>

## Supported frameworks

Every adapter implements the same protocol and passes the same conformance vectors. Choose the adapter that matches your stack.

<CardGroup cols={2}>
  <Card title="Node.js" icon="node-js">
    **Express**, **Fastify**, and **MCP** — install `@agent-feedback/node` and import the adapter for your framework. The integration doctor CLI is included.
  </Card>

  <Card title="Python" icon="python">
    **ASGI** (FastAPI, Starlette, Quart, Django ASGI) and **WSGI** (Flask, Django WSGI, Bottle, Pyramid) — dependency-free middleware, no runtime extras required.
  </Card>

  <Card title="Go" icon="golang">
    **`net/http`** — standard-library middleware with no third-party dependencies and a bounded background telemetry queue.
  </Card>

  <Card title="Rust" icon="rust">
    **Axum** and **Tower** — a composable layer for finite JSON and HTML responses, with a bounded Tokio telemetry queue.
  </Card>
</CardGroup>

<Note>
  Every other language can integrate directly with the public HTTP protocol and the conformance vectors in `protocol/v1/`. If you build an adapter, the conformance JSON gives you a deterministic signing vector to test against.
</Note>

## Dashboard hierarchy

Your dashboard data is organized into three levels:

* **Workspace** — your team's top-level container. Invite teammates as owners, admins (manage products and invitations), or members (read-only access to feedback and observability data).
* **Product** — a single instrumented service. Keys, interactions, reviews, sessions, insights, and your collection policy all live here.
* **Environment** — within a product, environments separate production traffic from staging or canary deployments.

## Agent-side helpers

Every SDK also ships optional agent-side helpers for feedback-aware runtimes that want to submit outcomes deterministically rather than relying on the in-response contract. The helpers validate the capability token origin against an allowlist before submitting, so they reject forged or unexpected destinations.

* **Node** — `feedbackFromResponse` parses the `_agentFeedback` envelope from a response object; `submitProductOutcome` submits the outcome using the scoped capability token.
* **Python** — `feedback_from_response` and `submit_product_outcome` provide the same allow-listed path.
* **Go** — `FeedbackFromResponse` and `SubmitProductOutcome` mirror the Node helpers using only the standard library.
* **Rust** — `feedback_from_response` and `submit_product_outcome` provide the Tokio-compatible equivalent.

These helpers are optional — generic agents that read `_agentFeedback` directly from the response body work equally well.

<Tip>
  Create one product per service, not one per environment. Environments let you compare outcome rates across deployments without fragmenting your data.
</Tip>

## Ready to instrument?

Follow the [Quickstart](/quickstart) to add Agent Feedback to a Node/Express app in under five minutes, with Python, Go, and Rust equivalents alongside.
