{"asOf":"2026-10-03","doesNotChangeDepotPicks":true,"doesNotChangePriceSort":true,"doesNotRescore":true,"caps":{"needs":6,"freePerNeed":3,"caseStudies":3},"class":{"id":"support","name":"Support agent","definition":"Answers a customer from the operator's policy and escalates when sources disagree or the action is consequential.","needs":{"jtbdIds":["hitl-approval-workflows","content-moderation","transactional-email","rag-enterprise","knowledge-graph-rag"],"freeKinds":["free_docs"],"capabilityTags":["enterprise","rag"],"plain":["One canonical policy page per topic","A human approval step for refunds and exceptions"]},"failureModeIds":["policy-conflict","ungrounded-answer","stale-retrieval","identity-confusion","prompt-injection","over-refusal","confirmation-skip","non-determinism","weak-verification","schema-drift"],"exampleTasks":["Answer a policy question by quoting the canonical page","Show both pages when they disagree instead of picking one","Do not send a refund without an approval id"]},"needsConsidered":["hitl-approval-workflows","content-moderation","transactional-email","rag-enterprise","knowledge-graph-rag"],"needsOmitted":[],"jobs":[{"jtbdId":"hitl-approval-workflows","decide":{"available":true,"unavailableReason":null,"providerId":"temporal-cloud","scoreAsOf":"2026-09-14","scoreAgeDays":43,"scoreStale":true,"runnerUpId":"inngest","cite":"Depot Pick for hitl-approval-workflows: temporal-cloud (asOf 2026-09-14). See GET /api/jtbds/hitl-approval-workflows + GET /api/methodology.","citePath":"/api/jtbds/hitl-approval-workflows"},"quote":{"available":true,"unavailableReason":null,"cheapest":null,"recommendedWorkloadQuote":null,"representativeQuote":null,"estimatedTaskCost":null,"reason":"Nothing was compared. no comparable sourced unit for this job; chat input $/1M and other units were not borrowed pickIsPriceWinner is null.","priceWinnerNote":"Nothing was compared. no comparable sourced unit for this job; chat input $/1M and other units were not borrowed pickIsPriceWinner is null."},"pickIsNotPriceWinner":false,"freeResources":[],"freeMatch":"none"},{"jtbdId":"content-moderation","decide":{"available":true,"unavailableReason":null,"providerId":"openai-moderation","scoreAsOf":"2026-09-14","scoreAgeDays":43,"scoreStale":true,"runnerUpId":"groq","cite":"Depot Pick for content-moderation: openai-moderation (asOf 2026-09-14). See GET /api/jtbds/content-moderation + GET /api/methodology.","citePath":"/api/jtbds/content-moderation"},"quote":{"available":true,"unavailableReason":null,"cheapest":{"providerId":"openai-moderation","slug":"openai-moderation","name":"OpenAI Moderation","skuId":"openai-moderation-omni-free","sku":"omni-moderation-latest (moderation endpoint)","item":"omni-moderation-latest (moderation endpoint)","plan":"omni-moderation-latest (moderation endpoint) — Officially free: 'The moderation endpoint is free to use'","isFloorPrice":false,"floorWarning":null,"skuKind":"classifier_request","unit":"usd_per_1k_requests","amountUsd":0,"comparison":"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","usdPerMillionInputTokens":null,"sourceUrl":"https://developers.openai.com/api/docs/guides/moderation","asOf":"2026-10-21"},"recommendedWorkloadQuote":{"providerId":"openai-moderation","providerName":"OpenAI Moderation","skuId":"openai-moderation-omni-free","item":"omni-moderation-latest (moderation endpoint)","plan":"omni-moderation-latest (moderation endpoint) — Officially free: 'The moderation endpoint is free to use'","unit":"usd_per_1k_requests","amountUsd":0,"outputSkuId":null,"outputItem":null,"outputAmountUsd":null,"outputUnit":null,"sourceUrl":"https://developers.openai.com/api/docs/guides/moderation","asOf":"2026-10-21","pricingLastVerifiedAt":"2026-10-21","isFlagshipForJob":true,"differsFromFloorCheapest":false,"representativeQuote":{"skuId":"openai-moderation-omni-free","item":"omni-moderation-latest (moderation endpoint)","plan":"omni-moderation-latest (moderation endpoint) — Officially free: 'The moderation endpoint is free to use'","amountUsd":0,"inputOrUnitUsd":0,"unit":"usd_per_1k_requests","outputUsd":null,"outputUnit":null,"sourceUrl":"https://developers.openai.com/api/docs/guides/moderation","asOf":"2026-10-21"},"estimatedTaskCost":{"tasks":1000,"retryAndToolOverheadMultiplier":1.15,"retryToolOverheadMultiplier":1.15,"unitsPerTask":1,"baseCostPer1kTasksUsd":0,"totalUsd":0,"estimatedTotalUsd":0,"perTaskUsd":0,"estimatedCostPerTaskUsd":0,"formula":"(1,000 calls @ $0/1k_requests) * 1.15 overhead","assumptions":"1,000 tasks @ 1 request/task with 1.15x retry/tool-call overhead."}},"representativeQuote":{"skuId":"openai-moderation-omni-free","item":"omni-moderation-latest (moderation endpoint)","plan":"omni-moderation-latest (moderation endpoint) — Officially free: 'The moderation endpoint is free to use'","amountUsd":0,"inputOrUnitUsd":0,"unit":"usd_per_1k_requests","outputUsd":null,"outputUnit":null,"sourceUrl":"https://developers.openai.com/api/docs/guides/moderation","asOf":"2026-10-21"},"estimatedTaskCost":{"tasks":1000,"retryAndToolOverheadMultiplier":1.15,"retryToolOverheadMultiplier":1.15,"unitsPerTask":1,"baseCostPer1kTasksUsd":0,"totalUsd":0,"estimatedTotalUsd":0,"perTaskUsd":0,"estimatedCostPerTaskUsd":0,"formula":"(1,000 calls @ $0/1k_requests) * 1.15 overhead","assumptions":"1,000 tasks @ 1 request/task with 1.15x retry/tool-call overhead."},"reason":null,"priceWinnerNote":"Only 1 candidate has a matching USD per 1k requests; nothing was compared, so pickIsPriceWinner is null."},"pickIsNotPriceWinner":false,"freeResources":[],"freeMatch":"none"},{"jtbdId":"transactional-email","decide":{"available":true,"unavailableReason":null,"providerId":"resend","scoreAsOf":"2026-09-14","scoreAgeDays":43,"scoreStale":true,"runnerUpId":"postmark","cite":"Depot Pick for transactional-email: resend (asOf 2026-09-14). See GET /api/jtbds/transactional-email + GET /api/methodology.","citePath":"/api/jtbds/transactional-email"},"quote":{"available":true,"unavailableReason":null,"cheapest":{"providerId":"amazon-ses","slug":"amazon-ses","name":"Amazon SES","skuId":"amazon-ses-outbound-a-la-carte","sku":"Outbound email (à la carte) transactional","item":"Outbound email (à la carte) transactional","plan":"Outbound email (à la carte) transactional — À la carte outbound: $0","isFloorPrice":false,"floorWarning":null,"skuKind":"email_1k","unit":"usd_per_1k_emails","amountUsd":0.1,"comparison":"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","usdPerMillionInputTokens":null,"sourceUrl":"https://aws.amazon.com/ses/pricing/","asOf":"2026-10-21"},"recommendedWorkloadQuote":{"providerId":"resend","providerName":"Resend","skuId":"resend-tx-overage-0-46","item":"Transactional overage Scale 2.5M","plan":"Transactional overage Scale 2.5M — Per 1,000 emails beyond included volume on Scale 2,500,000","unit":"usd_per_1k_emails","amountUsd":0.46,"outputSkuId":null,"outputItem":null,"outputAmountUsd":null,"outputUnit":null,"sourceUrl":"https://resend.com/pricing.md","asOf":"2026-10-03","pricingLastVerifiedAt":"2026-10-03","isFlagshipForJob":false,"differsFromFloorCheapest":false,"representativeQuote":{"skuId":"resend-tx-overage-0-46","item":"Transactional overage Scale 2.5M","plan":"Transactional overage Scale 2.5M — Per 1,000 emails beyond included volume on Scale 2,500,000","amountUsd":0.46,"inputOrUnitUsd":0.46,"unit":"usd_per_1k_emails","outputUsd":null,"outputUnit":null,"sourceUrl":"https://resend.com/pricing.md","asOf":"2026-10-03"},"estimatedTaskCost":{"tasks":1000,"retryAndToolOverheadMultiplier":1.15,"retryToolOverheadMultiplier":1.15,"unitsPerTask":1,"baseCostPer1kTasksUsd":0.46,"totalUsd":0.529,"estimatedTotalUsd":0.529,"perTaskUsd":0.000529,"estimatedCostPerTaskUsd":0.000529,"formula":"(1,000 calls @ $0.46/1k_emails) * 1.15 overhead","assumptions":"1,000 tasks @ 1 request/task with 1.15x retry/tool-call overhead."}},"representativeQuote":{"skuId":"resend-tx-overage-0-46","item":"Transactional overage Scale 2.5M","plan":"Transactional overage Scale 2.5M — Per 1,000 emails beyond included volume on Scale 2,500,000","amountUsd":0.46,"inputOrUnitUsd":0.46,"unit":"usd_per_1k_emails","outputUsd":null,"outputUnit":null,"sourceUrl":"https://resend.com/pricing.md","asOf":"2026-10-03"},"estimatedTaskCost":{"tasks":1000,"retryAndToolOverheadMultiplier":1.15,"retryToolOverheadMultiplier":1.15,"unitsPerTask":1,"baseCostPer1kTasksUsd":0.46,"totalUsd":0.529,"estimatedTotalUsd":0.529,"perTaskUsd":0.000529,"estimatedCostPerTaskUsd":0.000529,"formula":"(1,000 calls @ $0.46/1k_emails) * 1.15 overhead","assumptions":"1,000 tasks @ 1 request/task with 1.15x retry/tool-call overhead."},"reason":null,"priceWinnerNote":"Pick is not a price winner. resend matching USD per 1k emails is 0.46; cheapest among candidates is amazon-ses at 0.1."},"pickIsNotPriceWinner":true,"freeResources":[{"id":"postmark-free-developer","name":"Postmark Free (Developer) plan","kind":"free_email","cost":"free","substitutable":true,"sourceUrl":"https://postmarkapp.com/pricing"},{"id":"resend-free-plan","name":"Resend Free plan","kind":"free_email","cost":"free","substitutable":true,"sourceUrl":"https://resend.com/pricing"}],"freeMatch":"jtbd"},{"jtbdId":"rag-enterprise","decide":{"available":true,"unavailableReason":null,"providerId":"cohere","scoreAsOf":"2026-10-19","scoreAgeDays":8,"scoreStale":false,"runnerUpId":"pinecone","cite":"Depot Pick for rag-enterprise: cohere (asOf 2026-10-19). See GET /api/jtbds/rag-enterprise + GET /api/methodology.","citePath":"/api/jtbds/rag-enterprise"},"quote":{"available":true,"unavailableReason":null,"cheapest":{"providerId":"amazon-bedrock","slug":"amazon-bedrock","name":"Amazon Bedrock","skuId":"amazon-bedrock-gemma-3-4b-in","sku":"Gemma 3 4B","item":"Gemma 3 4B","plan":"Gemma 3 4B — Standard on-demand","isFloorPrice":true,"floorWarning":"Provider-wide floor SKU; may not be the flagship model scored for this JTBD.","skuKind":"chat_completion_input","unit":"usd_per_million_input_tokens","amountUsd":0.04,"comparison":"min sourced input SKU among candidates; not quality-adjusted","usdPerMillionInputTokens":0.04,"sourceUrl":"https://aws.amazon.com/bedrock/pricing/","asOf":"2026-10-03"},"recommendedWorkloadQuote":{"providerId":"cohere","providerName":"Cohere","skuId":"cohere-command-light-legacy-input","item":"Command-light (legacy)","plan":"Command-light (legacy) — legacy","unit":"usd_per_million_input_tokens","amountUsd":0.3,"outputSkuId":"cohere-command-light-legacy-output","outputItem":"Command-light (legacy)","outputAmountUsd":0.6,"outputUnit":"usd_per_million_output_tokens","sourceUrl":"https://cohere.com/pricing","asOf":"2026-10-03","pricingLastVerifiedAt":"2026-10-03","isFlagshipForJob":false,"differsFromFloorCheapest":false,"representativeQuote":{"skuId":"cohere-command-light-legacy-input","item":"Command-light (legacy)","plan":"Command-light (legacy) — legacy","amountUsd":0.3,"inputOrUnitUsd":0.3,"unit":"usd_per_million_input_tokens","outputUsd":0.6,"outputUnit":"usd_per_million_output_tokens","sourceUrl":"https://cohere.com/pricing","asOf":"2026-10-03"},"estimatedTaskCost":{"tasks":1000,"retryAndToolOverheadMultiplier":1.15,"retryToolOverheadMultiplier":1.15,"inputTokensPerTask":4000,"outputTokensPerTask":1000,"baseCostPer1kTasksUsd":1.8,"totalUsd":2.07,"estimatedTotalUsd":2.07,"perTaskUsd":0.00207,"estimatedCostPerTaskUsd":0.00207,"formula":"((4,000 in * $0.3/1M + 1,000 out * $0.6/1M) * 1,000 tasks) * 1.15 overhead","assumptions":"1,000 agent tasks @ 4k input + 1k output tokens/task with 1.15x retry/tool-call overhead."}},"representativeQuote":{"skuId":"cohere-command-light-legacy-input","item":"Command-light (legacy)","plan":"Command-light (legacy) — legacy","amountUsd":0.3,"inputOrUnitUsd":0.3,"unit":"usd_per_million_input_tokens","outputUsd":0.6,"outputUnit":"usd_per_million_output_tokens","sourceUrl":"https://cohere.com/pricing","asOf":"2026-10-03"},"estimatedTaskCost":{"tasks":1000,"retryAndToolOverheadMultiplier":1.15,"retryToolOverheadMultiplier":1.15,"inputTokensPerTask":4000,"outputTokensPerTask":1000,"baseCostPer1kTasksUsd":1.8,"totalUsd":2.07,"estimatedTotalUsd":2.07,"perTaskUsd":0.00207,"estimatedCostPerTaskUsd":0.00207,"formula":"((4,000 in * $0.3/1M + 1,000 out * $0.6/1M) * 1,000 tasks) * 1.15 overhead","assumptions":"1,000 agent tasks @ 4k input + 1k output tokens/task with 1.15x retry/tool-call overhead."},"reason":null,"priceWinnerNote":"Only 1 candidate has a sourced input $/1M; nothing was compared, so pickIsPriceWinner is null."},"pickIsNotPriceWinner":false,"freeResources":[],"freeMatch":"none"},{"jtbdId":"knowledge-graph-rag","decide":{"available":true,"unavailableReason":null,"providerId":"cognee","scoreAsOf":"2026-09-14","scoreAgeDays":43,"scoreStale":true,"runnerUpId":"weaviate","cite":"Depot Pick for knowledge-graph-rag: cognee (asOf 2026-09-14). See GET /api/jtbds/knowledge-graph-rag + GET /api/methodology.","citePath":"/api/jtbds/knowledge-graph-rag"},"quote":{"available":true,"unavailableReason":null,"cheapest":null,"recommendedWorkloadQuote":null,"representativeQuote":null,"estimatedTaskCost":null,"reason":"Nothing was compared. no comparable sourced unit for this job; chat input $/1M and other units were not borrowed pickIsPriceWinner is null.","priceWinnerNote":"Nothing was compared. no comparable sourced unit for this job; chat input $/1M and other units were not borrowed pickIsPriceWinner is null."},"pickIsNotPriceWinner":false,"freeResources":[],"freeMatch":"none"}],"failures":[{"id":"policy-conflict","name":"Policy conflict","detection":"If cited sources contradict each other, return the conflict and the URLs. Do not pick a winner silently."},{"id":"ungrounded-answer","name":"Ungrounded answer","detection":"Require a source URL or passage id on factual sentences. Drop or mark any sentence whose source does not contain the claim."},{"id":"stale-retrieval","name":"Stale retrieval","detection":"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."},{"id":"identity-confusion","name":"Identity confusion","detection":"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."},{"id":"prompt-injection","name":"Prompt injection","detection":"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."},{"id":"over-refusal","name":"Over-refusal","detection":"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."},{"id":"confirmation-skip","name":"Confirmation skip","detection":"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."},{"id":"non-determinism","name":"Non-determinism","detection":"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."},{"id":"weak-verification","name":"Weak verification","detection":"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."},{"id":"schema-drift","name":"Schema drift","detection":"Validate every tool call and every loaded table against the current schema. Quarantine mismatches instead of coercing them."}],"failuresOmittedBecauseMissing":[],"caseStudies":[{"id":"tau-bench-2024","title":"τ-bench: A Benchmark for Tool-Agent-User Interaction in Real-World Domains","sourceUrl":"https://arxiv.org/abs/2406.12045","year":2024,"studyKind":"capability_ceiling"},{"id":"workarena-2024","title":"WorkArena: How Capable Are Web Agents at Solving Common Knowledge Work Tasks?","sourceUrl":"https://arxiv.org/abs/2403.07718","year":2024,"studyKind":"capability_ceiling"},{"id":"moffatt-v-air-canada-2024","title":"Moffatt v. Air Canada, 2024 BCCRT 149","sourceUrl":"https://decisions.civilresolutionbc.ca/crt/crtd/en/525448/1/document.do","year":2024,"studyKind":"tribunal_decision"}],"caseStudiesRelated":4,"caseStudiesOmitted":1,"caseStudiesReason":null,"links":{"kit":"/api/kit?class=support","page":"/agents/kit/support","agentClass":"/api/agent-classes/support","failures":"/api/failures","caseStudies":"/api/case-studies?class=support"},"recommendation":{"mode":"default"},"stackContext":{"host":null,"framework":null,"repo":null,"lang":null,"existing":[],"volume":null,"sender":null,"detectedFromTask":[]},"contextAdvice":[],"firstActions":["https://getagentdepot.com/api/hub","https://getagentdepot.com/api/decide?jtbd=hitl-approval-workflows","https://getagentdepot.com/api/quote?jtbd=hitl-approval-workflows","https://getagentdepot.com/api/kit?class=support","https://getagentdepot.com/api/failures"],"honesty":["Picks are the current Depot Pick from GET /api/decide. This kit does not rescore.","Cheapest SKU is copied from GET /api/quote for that job. Input and output are not blended. A chat SKU is not borrowed for a non-chat job. If quote.cheapest is null, there is no matching sourced price.","pickIsNotPriceWinner is true only when that job's Depot Pick and cheapest matching SKU both exist and the quote says the pick is not the price winner. If either is missing, the field is false.","freeResources are existing /api/free items whose jtbdIds include that job, up to 3, sorted by id. If none list the job, freeResources is [] and freeMatch is none. Kind, provider, and docs are not fallbacks. Free does not change the pick.","firstActions are endpoint URLs for this class: hub, decide for the first listed need, quote for that need, this kit, and /api/failures. No other step is added.","Failures are the modes already listed on the class. Case studies are the first 3 related studies in catalog order, with the source URL already stored. Omitted studies stay on GET /api/case-studies?class=."]}