Skip to content

Repository files navigation

Agent Feedback

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.

Protocol-first integrations

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.

Repository

  • backend/ — Rust/Axum/PostgreSQL API, OS Accounts dashboard, migrations, and acceptance tests
  • sdk/node/@agent-feedback/node with Express, Fastify, MCP, and the integration doctor
  • sdk/python/ — dependency-free ASGI/WSGI middleware and agent helper
  • sdk/go/ — standard-library HTTP middleware and agent helper
  • sdk/rust/ — Axum/Tower middleware and agent helper
  • protocol/v1/ — language-neutral schemas, signing algorithm, and conformance vector
  • examples/node-express/ — hosted JSON API example
  • examples/node-fastify/ — hosted agent-readable website example
  • examples/node-mcp/ — hosted stateful MCP example
  • examples/python-asgi/ — FastAPI/ASGI product example
  • examples/go-http/ — standard-library Go product example
  • examples/rust-axum/ — Rust Axum product example
  • examples/customer-agent-http/ — optional deterministic HTTP/HTML agent-side adapter
  • app/ — public product site deployed with Sites

Legacy Rust examples and prototype data remain for migration evidence but are not the v2 integration path.

Production

The Fastify example and public Sites URL are assigned during the v2 rollout.

Cross-language canary

About

Protocol-first outcome feedback from customer agents, with Node, Python, Go, Rust, and MCP integrations.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages