AP
Agent Provider Depot
Opinionated picks for agents
OpenAPI

Kit · 2026-10-03

Support agent

support

Answers a customer from the operator's policy and escalates when sources disagree or the action is consequential.

Needs below are the JTBD ids already listed on this class, capped at 6. The pick is the current Depot Pick. The cheapest line is that job's matching sourced SKU, or unavailable. A free row is listed only when its jtbd ids include that job. This page does not rescore. cost=free does not hide that pick and does not turn a cheap paid SKU into a free one.

GET /api/kit?class=support&cost=free · ?cost=free · all kits · class JSON

First actions

  1. /api/hub
  2. /api/decide?jtbd=hitl-approval-workflows
  3. /api/quote?jtbd=hitl-approval-workflows
  4. /api/kit?class=support&cost=free
  5. /api/failures

Needs

Jobs: hitl-approval-workflows, content-moderation, transactional-email, rag-enterprise, knowledge-graph-rag

Class freeKinds field (not used to attach free rows): free_docs

  • One canonical policy page per topic
  • A human approval step for refunds and exceptions

hitl-approval-workflows

Depot Pick: temporal-cloud · score as of 2026-09-14 · /api/jtbds/hitl-approval-workflows

Depot Pick for hitl-approval-workflows: temporal-cloud (asOf 2026-09-14). See GET /api/jtbds/hitl-approval-workflows + GET /api/methodology.

pickIsNotPriceWinner: false

Cheapest matching SKU: unavailable — Nothing was compared. no comparable sourced unit for this job; chat input $/1M and other units were not borrowed pickIsPriceWinner is null.

Nothing was compared. no comparable sourced unit for this job; chat input $/1M and other units were not borrowed pickIsPriceWinner is null.

Free-only recommendation

mode: free_only · paid pick stays temporal-cloud. Not a free resource. A cheap paid SKU is not in this list.

no_free_resource_for_job

Free resources

freeMatch: none

none

content-moderation

Depot Pick: openai-moderation · score as of 2026-09-14 · /api/jtbds/content-moderation

Depot Pick for content-moderation: openai-moderation (asOf 2026-09-14). See GET /api/jtbds/content-moderation + GET /api/methodology.

pickIsNotPriceWinner: false

Cheapest matching SKU: openai-moderation · omni-moderation-latest (moderation endpoint) · 0 usd_per_1k_requests · not a per-million-token rate. min sourced per-request classifier/moderation SKU among candidates (an officially free endpoint is a $0 row with its source); chat-token prices are not borrowed; not quality-adjusted

Only 1 candidate has a matching USD per 1k requests; nothing was compared, so pickIsPriceWinner is null.

Free-only recommendation

mode: free_only · paid pick stays openai-moderation. Not a free resource. A cheap paid SKU is not in this list.

no_free_resource_for_job

Free resources

freeMatch: none

none

transactional-email

Depot Pick: resend · score as of 2026-09-14 · /api/jtbds/transactional-email

Depot Pick for transactional-email: resend (asOf 2026-09-14). See GET /api/jtbds/transactional-email + GET /api/methodology.

pickIsNotPriceWinner: true

Cheapest matching SKU: amazon-ses · Outbound email (à la carte) transactional · 0.1 usd_per_1k_emails · not a per-million-token rate. min sourced usd_per_1k_emails whose source label is not a marketing-contact or marketing-send SKU; lowest per-1k tier per provider; not quality-adjusted; monthly plans were not ranked

Pick is not a price winner. resend matching USD per 1k emails is 0.46; cheapest among candidates is amazon-ses at 0.1.

Free-only recommendation

mode: free_only · paid pick stays resend. Not a free resource. A cheap paid SKU is not in this list.

Free resources

freeMatch: jtbd

rag-enterprise

Depot Pick: cohere · score as of 2026-10-19 · /api/jtbds/rag-enterprise

Depot Pick for rag-enterprise: cohere (asOf 2026-10-19). See GET /api/jtbds/rag-enterprise + GET /api/methodology.

pickIsNotPriceWinner: false

Cheapest matching SKU: amazon-bedrock · Gemma 3 4B · 0.04 usd_per_million_input_tokens. min sourced input SKU among candidates; not quality-adjusted

Only 1 candidate has a sourced input $/1M; nothing was compared, so pickIsPriceWinner is null.

Free-only recommendation

mode: free_only · paid pick stays cohere. Not a free resource. A cheap paid SKU is not in this list.

no_free_resource_for_job

Free resources

freeMatch: none

none

knowledge-graph-rag

Depot Pick: cognee · score as of 2026-09-14 · /api/jtbds/knowledge-graph-rag

Depot Pick for knowledge-graph-rag: cognee (asOf 2026-09-14). See GET /api/jtbds/knowledge-graph-rag + GET /api/methodology.

pickIsNotPriceWinner: false

Cheapest matching SKU: unavailable — Nothing was compared. no comparable sourced unit for this job; chat input $/1M and other units were not borrowed pickIsPriceWinner is null.

Nothing was compared. no comparable sourced unit for this job; chat input $/1M and other units were not borrowed pickIsPriceWinner is null.

Free-only recommendation

mode: free_only · paid pick stays cognee. Not a free resource. A cheap paid SKU is not in this list.

no_free_resource_for_job

Free resources

freeMatch: none

none

Failure modes

  • Policy conflict policy-conflict

    If cited sources contradict each other, return the conflict and the URLs. Do not pick a winner silently.

  • Ungrounded answer ungrounded-answer

    Require a source URL or passage id on factual sentences. Drop or mark any sentence whose source does not contain the claim.

  • Stale retrieval stale-retrieval

    Store the source URL and the time it was fetched. If a newer canonical page exists, or two stored sources disagree, do not answer from the older one.

  • Identity confusion identity-confusion

    Bind every tool call to a user or tenant id. Refuse the call if that id changed mid-task. For a public bot, the operator owns the words the bot shows.

  • Prompt injection prompt-injection

    Compare each tool call to the original user task. If the call only makes sense given text that arrived from a fetched page, file, or message, stop and ask. Record which source the instruction came from. This catalog does not store payloads or attack steps.

  • Over-refusal over-refusal

    Log refusals separately from successes. Review a sample against the written policy. Do not treat a refusal as a pass, and do not weaken a safety check to raise the pass rate.

  • Confirmation skip confirmation-skip

    Gate those tool names on an approval id recorded before the call. A missing approval is a failure even if the downstream tool returns success.

  • Non-determinism non-determinism

    Run the task more than once and compare the end state, not a single transcript. Record the trial count next to any success rate you cite.

  • Weak verification weak-verification

    Success requires an end-state check the agent does not grade for itself: tests, a database diff, or a separate judge that cannot see the gold label.

  • Schema drift schema-drift

    Validate every tool call and every loaded table against the current schema. Quarantine mismatches instead of coercing them.

Case studies

4 related, 1 left on the case-study index.

/api/case-studies?class=support