---
title: "Forget golden set rows"
method: POST
path: "/api/agent-examples/forget"
tags: ["agent_examples"]
---

# Forget golden set rows

`POST /api/agent-examples/forget`

## Request

- Base URL: `https://beta.getsales.io/unibox/v1`
- URL: `https://beta.getsales.io/unibox/v1/api/agent-examples/forget`
- Auth: HTTP bearer and API key in header `Team-SID`

Forget every golden set row a filter names at once: one sender profile's history, a source, a thread, the edits waiting for a Keep. A bare call is a 422; result.forgotten says how many went. The answers forgotten are not learned again.

Contract:
- MCP tool `forget_agent_examples`, registry package `mcp.unibox/agent_examples`, mount `unibox.agent-memory`.
- Operation `action`, response envelope `action`.
- Flags: dangerous: the MCP layer gates it behind a preview/commit token, and the effect cannot be undone through this API; mass action: this verb's own request accepts a filter or targets[] set, which the owning service drains.

## Request body

- ForgetAgentExamplesRequest: Request body of `forget_agent_examples`.
  - `filter` object, required: The rows to forget, at least one field: { sender_profile_sid: { eq } } forgets what one sender profile taught, { source: { eq: "history" } } the harvest, { proposed: { eq: true } } every edit waiting for a Keep. A bare call is a 422.
    - `q` string: Free text over the situation, the answer and the note (forget takes it too); in mode semantic, the situation to match, required there.
    - `sid` object: Row sid(s), ub_eg_ prefix.
      - `eq` string: Golden set row sid (ub_eg_…).
      - `in` string[]
    - `agent_sid` object: Whose Golden set (ub_ag_…, block 10, 2026-10-30); left out, the team's default agent's.
      - `eq` string
    - `sender_profile_sid` object: What one sender profile's replies taught (ub_sp_…); { is_null: true } for the pairs typed by hand.
      - `eq` string
      - `in` string[]
      - `is_null` boolean
    - `conversation_sid` object: The rows read from one thread (ub_cv_…).
      - `eq` string
      - `in` string[]
    - `message_sid` object: Whether a message is in the set already (ub_ms_…).
      - `eq` string
      - `in` string[]
    - `document_sid` object: The dialogues kept from one conversations upload (ub_cu_…); { is_null: true } for every other source.
      - `eq` string
      - `in` string[]
      - `is_null` boolean
    - `tier` object: { eq: "golden" } is what people vouched for.
      - `eq` 'golden' | 'auto'
      - `in` string[]
    - `source` object: Where the rows came from.
      - `eq` 'history' | 'own_send' | 'approved_edit' | 'remembered' | 'document' | 'manual'
      - `in` string[]
    - `kind` object: reply or followup; mode semantic takes a plain value.
      - `eq` 'reply' | 'followup'
      - `in` string[]
    - `channel` object: The channel the answers went on; mode semantic takes a plain value and adds the rows with none.
      - `eq` 'linkedin' | 'email'
      - `in` string[]
      - `is_null` boolean
    - `scenario_key` object: The classified scenario of the situation.
      - `eq` string
      - `in` string[]
      - `is_null` boolean
    - `embedding_state` object: { eq: "failed" } lists the rows whose vector could not be written.
      - `eq` 'pending' | 'ready' | 'failed'
      - `in` string[]
    - `proposed` object: true: the edits waiting for a Keep (From your edits); false: the rows in the set.
      - `eq` boolean
      - `ne` boolean
    - `golden_by` object: Who kept the row, by the actor sid in its golden_by identity (us_mb_… for a member); { is_null: true } for the rows nobody kept by hand (block AC5).
      - `eq` string
      - `in` string[]
      - `is_null` boolean
    - `answered_at` object: ISO 8601 range of when the answers went out.
      - `gte` string
      - `lte` string
      - `gt` string
      - `lt` string
    - `created_at` object: ISO 8601 range.
      - `gte` string
      - `lte` string
      - `gt` string
      - `lt` string

## Response `200`

`action` success envelope.

- ForgetAgentExamplesResponse
  - `success` true, required
  - `operation` 'action', required
  - `action` string, required: kebab-case verb; matches the route segment.
  - `item` unknown, required
  - `result` object, required
    - `forgotten` integer, required: How many rows were forgotten.
  - `meta` object, required
    - `trace_id` string, required: UUID v7; same 128-bit value as the X-Trace-Id header.
    - `span_id` string, required: 16 hex chars, root span of this request.
    - `timestamp` string, required: ISO 8601 UTC (Y-m-dTH:i:sZ), response time.
    - `duration_ms` integer, required: Server-side wall clock.
    - `team_sid` string, nullable: The team this call ran in (the token team, or the team_sid override). Null when unauthenticated; absent from pre-2026-08-20 backends.
    - `actor_type` string, nullable: user | agent | api_key | system. Null when unauthenticated; absent from pre-2026-08-20 backends.

## Other responses

- `4XX`: MCP error envelope. `error.code` is one of validation_failed, nothing_to_update, not_found, relation_not_found, invalid_transition, limit_exceeded, payment_required, duplicate_rejected, conflict, delete_blocked, unauthorized, forbidden, rate_limited, not_implemented.
- `5XX`: MCP error envelope with `error.code` internal_error or service_unavailable.

---

[API](https://skmtc.dev/getsales/apis/getsales-public-contract-gs-service-unibox.md) - [All operations](https://skmtc.dev/getsales/apis/getsales-public-contract-gs-service-unibox/llms.txt) - [OpenAPI document](https://skmtc.dev/getsales/apis/getsales-public-contract-gs-service-unibox/revisions/8f1bc317897f?raw)
