Agent Feedback tells companies whether their product actually worked for the independent customer agents using it.
A company instruments selected API, website, or MCP surfaces once. Every SDK creates the same short-lived, write-only interaction receipt locally and adds the same compact feedback contract to eligible successful responses. The product response never waits for Agent Feedback. After the customer agent knows the outcome, it can submit:
{
"outcome": "success",
"note": "The search result completed the task."
}Agent Feedback does not identify agents. HTTP responses are unclassified opportunities until a receipt is used; generic HTTP agents may ignore response-side instructions, while a feedback-aware runtime can submit deterministically. MCP tool calls are confirmed agent interactions and expose feedback as an explicit protocol tool. Sessions exist only when the company or MCP provides proof of continuity.
Dashboard data is organized as workspace → product → integration. Users choose a product once; its keys, interactions, reviews, sessions, insights, and collection policy stay scoped to that product.
Workspaces support OS Account teams. Owners can invite admins or members, change roles, and remove teammates. Admins can manage products and member invitations. Members have read-only access to feedback and observability data. Invitations are bound to the recipient's OS Account email or handle and can be accepted through a seven-day share link.
First-class adapters currently cover:
- Node: Express, Fastify, and MCP
- Python: ASGI and WSGI
- Go: standard
net/http - Rust: Axum and Tower
- Every other language: the public HTTP protocol and conformance vectors
For example, Express remains one global middleware:
import { agentFeedback } from "@agent-feedback/node/express";
app.use(agentFeedback({
apiKey: process.env.AGENT_FEEDBACK_KEY,
include: ["/search", "/docs/*"],
customerRef: req => req.user?.accountId, // optional opaque ID
}));No handler changes, primary-path network call, relay endpoint, or agent account is required.
backend/— Rust/Axum/PostgreSQL API, OS Accounts dashboard, migrations, and acceptance testssdk/node/—@agent-feedback/nodewith Express, Fastify, MCP, and the integration doctorsdk/python/— dependency-free ASGI/WSGI middleware and agent helpersdk/go/— standard-library HTTP middleware and agent helpersdk/rust/— Axum/Tower middleware and agent helperprotocol/v1/— language-neutral schemas, signing algorithm, and conformance vectorexamples/node-express/— hosted JSON API exampleexamples/node-fastify/— hosted agent-readable website exampleexamples/node-mcp/— hosted stateful MCP exampleexamples/python-asgi/— FastAPI/ASGI product exampleexamples/go-http/— standard-library Go product exampleexamples/rust-axum/— Rust Axum product exampleexamples/customer-agent-http/— optional deterministic HTTP/HTML agent-side adapterapp/— public product site deployed with Sites
Legacy Rust examples and prototype data remain for migration evidence but are not the v2 integration path.
- Dashboard/API: https://agent-feedback-api-production.up.railway.app
- Express example: https://example-status-agent-production.up.railway.app
- MCP example: https://example-mcp-agent-production.up.railway.app/mcp
The Fastify example and public Sites URL are assigned during the v2 rollout.
- Node Express: https://example-status-agent-v2-canary.up.railway.app
- Node Fastify: https://example-fastify-agent-v2-canary.up.railway.app
- Node MCP: https://example-mcp-agent-v2-canary.up.railway.app/mcp
- Python ASGI: https://example-python-agent-v2-canary.up.railway.app
- Go
net/http: https://example-go-agent-v2-canary.up.railway.app - Rust Axum: https://example-rust-axum-agent-v2-canary.up.railway.app
- Protocol and SDK downloads: https://agent-feedback-api-v2-canary.up.railway.app/.well-known/agent-feedback-v1.json