> ## 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 Dashboard: Products, Keys, and Teams

> Navigate the Agent Feedback dashboard to create products, manage API keys, review outcomes and sessions, set collection policy, and manage your team.

The Agent Feedback dashboard is where you set up your integrations, review the outcome data your agents produce, and manage your team. Everything in the dashboard is organized under a four-level hierarchy — workspace, product, environment, and integration — so data from different products never overlaps and each team member sees only what their role permits.

## Hierarchy

```
Workspace
└── Product
    └── Environment
        └── Integration
```

Your **workspace** is the top-level container tied to your OS Account organization. Inside a workspace you create one or more **products** — each representing a distinct API, website, or MCP surface you want to instrument. Within each product, **environments** (for example, Production and Staging) separate your deployment stages. Within each environment, **integrations** hold the specific middleware configurations and API keys.

<Note>
  New workspaces guide you through creating your first product and a Production environment before entering integration setup. Existing workspaces already have a default product and Production environment created during migration.
</Note>

## Creating a product and getting an API key

<Steps>
  <Step title="Open your workspace">
    Sign in to the Agent Feedback dashboard and select your workspace from the top navigation. If you are creating a workspace for the first time, the onboarding flow takes you directly to product creation.
  </Step>

  <Step title="Create a product">
    Click **New product** and give it a name that identifies the surface you are instrumenting — for example, `Search API` or `Docs Site`. The product name appears in dashboard filters and in team notifications.
  </Step>

  <Step title="Select an environment">
    After the product is created, select or create the environment you want to instrument — for example, **Production** or **Staging**. The dashboard then opens the integration setup view for that environment.
  </Step>

  <Step title="Enter integration setup">
    Select the runtime adapter that matches your stack (Express, Fastify, MCP, ASGI, `net/http`, Axum, or generic HTTP).
  </Step>

  <Step title="Generate an API key">
    In the **API keys** section of the integration view, click **Create key**. The dashboard generates a key in the format `af_live_<32 hex>_<secret>` and displays it once. Copy it immediately and store it in your secrets manager or environment configuration.
  </Step>

  <Step title="Add the key to your middleware">
    Set the key as the `AGENT_FEEDBACK_KEY` environment variable (or pass it as `apiKey` in your middleware options). Deploy your application and the SDK begins creating interactions on the next eligible response.
  </Step>
</Steps>

## What you see per product

Each product has its own dedicated dashboard view. The tabs and sections available are:

<CardGroup cols={2}>
  <Card title="Interactions" icon="list-check">
    Total instrumented responses over the selected time window, with a classification breakdown showing the ratio of confirmed to unclassified interactions, surface type, and per-operation drill-down.
  </Card>

  <Card title="Outcomes" icon="chart-bar">
    Aggregated `success`, `partial`, and `failure` tallies. Includes note samples and trends over time so you can spot regressions in product reliability from the agent's perspective.
  </Card>

  <Card title="Reviews" icon="star">
    Individual outcome records with their full note text, submission timestamp, capability expiry, and the interaction they belong to. Useful for qualitative analysis.
  </Card>

  <Card title="Sessions" icon="layer-group">
    Continuity groups of related interactions. Sessions are only created when company-provided, MCP, or signed-continuation proof is present — never inferred from time windows.
  </Card>

  <Card title="Insights" icon="lightbulb">
    Derived signals computed from your outcome data, such as the operations with the highest failure rates and trends across customer references.
  </Card>

  <Card title="Collection policy" icon="sliders">
    Controls what the middleware collects, which endpoints are included or excluded, and the feedback mode (`auto` or `ask`). See below for details.
  </Card>
</CardGroup>

## API key management

You can create and revoke API keys at any time from the **API keys** section of any integration.

* **Key format**: `af_live_<32 lowercase hex key ID>_<secret with at least 20 characters>`
* **Creating a key**: keys are generated server-side and displayed exactly once. Store them immediately in your secrets manager.
* **Revoking a key**: click **Revoke** next to any key. Revocation is immediate — all capability tokens signed with that key are rejected with `401` from that moment forward. Existing outcome records are preserved.

<Warning>
  Revoking a key invalidates all tokens that were signed with it, including any still-valid capabilities already embedded in responses that have been served but not yet acted on by agents. Rotate keys during low-traffic windows when possible.
</Warning>

## Collection policy

The collection policy for a product controls which requests are eligible for instrumentation and how aggressively the SDK requests feedback.

You find the collection policy settings under the **Collection policy** tab inside each product. From there you can configure:

* **Include paths** — glob patterns for the routes you want to instrument (for example, `/search`, `/docs/*`). If you leave this empty, the SDK instruments all eligible routes.
* **Exclude paths** — glob patterns for routes you want to suppress. The SDK always excludes health endpoints, asset files, and its own endpoints regardless of this setting.
* **Feedback mode** — `auto` instructs the agent to submit autonomously; `ask` makes submission conditional on the agent already knowing the outcome.

Changes to the collection policy take effect when you redeploy your application with the updated SDK configuration.

## Team management

Your workspace supports multiple OS Account users organized into three roles.

<CardGroup cols={3}>
  <Card title="Owner" icon="crown">
    Full control over the workspace. Owners can invite and remove teammates, change any team member's role (including promoting to Owner), manage all products, and delete the workspace.
  </Card>

  <Card title="Admin" icon="shield-halved">
    Can create and manage products, generate and revoke API keys, and invite new Members. Admins cannot change roles or remove other Admins and Owners.
  </Card>

  <Card title="Member" icon="eye">
    Read-only access to feedback data, outcome reviews, sessions, and observability information. Members cannot create products, manage keys, or change team settings.
  </Card>
</CardGroup>

### Inviting teammates

<Steps>
  <Step title="Open team settings">
    From the workspace settings menu, select **Team**.
  </Step>

  <Step title="Send an invitation">
    Click **Invite teammate** and enter the recipient's OS Account email address or handle. Select the role you want to assign.
  </Step>

  <Step title="Share the link">
    The dashboard generates a seven-day invitation link. You can copy it and send it directly. The recipient must sign in with the OS Account that matches the email or handle you specified.
  </Step>

  <Step title="Acceptance">
    Once the recipient accepts, they appear in your team list with the assigned role. You can change their role or remove them at any time from the **Team** settings page.
  </Step>
</Steps>

<Tip>
  Invitation links are bound to the recipient's OS Account identity. Forwarding a link to a different person will not work — they must sign in with the account that was invited.
</Tip>
