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. Agents that cannot spend use ?cost=free and must not treat the paid pick as free.
GET /api/kit?class=support · ?cost=free · all kits · class JSON
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 resources
freeMatch: none
none
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 resources
freeMatch: none
none
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.
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 resources
freeMatch: none
none
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 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.