Kit · 2026-10-03
Scheduled and ops agent
scheduled-ops
Runs a job on a queue or a clock, is safe to retry, and alerts when the job or its traces go dark.
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=scheduled-ops&cost=free · ?cost=free · all kits · class JSON
Depot Pick: inngest · score as of 2026-09-14 · /api/jtbds/event-driven-agent-jobs
Depot Pick for event-driven-agent-jobs: inngest (asOf 2026-09-14). See GET /api/jtbds/event-driven-agent-jobs + GET /api/methodology.
pickIsNotPriceWinner: false
Cheapest matching SKU: unavailable — Nothing was compared. mixed_units: usd_per_100k_messages and usd_per_million_events are both stored. They were not ranked together and were not converted. Monthly plans were not included. cheapest stays null. pickIsPriceWinner is null.
Nothing was compared. mixed_units: usd_per_100k_messages and usd_per_million_events are both stored. They were not ranked together and were not converted. Monthly plans were not included. cheapest stays null. pickIsPriceWinner is null.
Free-only recommendation
mode: free_only · paid pick stays inngest. Not a free resource. A cheap paid SKU is not in this list.
- Hatchet · hatchet · dev_tool · oss
- Upstash QStash Free plan · upstash-qstash-free · free_queue · free
Depot Pick: upstash-qstash · score as of 2026-09-14 · /api/jtbds/serverless-agent-queue
Depot Pick for serverless-agent-queue: upstash-qstash (asOf 2026-09-14). See GET /api/jtbds/serverless-agent-queue + GET /api/methodology.
pickIsNotPriceWinner: false
Cheapest matching SKU: unavailable — Nothing was compared. mixed_units: usd_per_100k_messages and usd_per_million_events are both stored. They were not ranked together and were not converted. Monthly plans were not included. cheapest stays null. pickIsPriceWinner is null.
Nothing was compared. mixed_units: usd_per_100k_messages and usd_per_million_events are both stored. They were not ranked together and were not converted. Monthly plans were not included. cheapest stays null. pickIsPriceWinner is null.
Free-only recommendation
mode: free_only · paid pick stays upstash-qstash. Not a free resource. A cheap paid SKU is not in this list.
- Upstash QStash Free plan · upstash-qstash-free · free_queue · free
Depot Pick: upstash-qstash · score as of 2026-09-14 · /api/jtbds/agent-dlq-retry
Depot Pick for agent-dlq-retry: upstash-qstash (asOf 2026-09-14). See GET /api/jtbds/agent-dlq-retry + GET /api/methodology.
pickIsNotPriceWinner: false
Cheapest matching SKU: upstash-qstash · Pay as You Go messages · 1 usd_per_100k_messages · not a per-million-token rate. min sourced usd_per_100k_messages among candidates; one queue unit only; per-100k messages and per-million events were not mixed; monthly plans were not ranked; not quality-adjusted
Only 1 candidate has a matching USD per 100k messages; nothing was compared, so pickIsPriceWinner is null.
Free-only recommendation
mode: free_only · paid pick stays upstash-qstash. Not a free resource. A cheap paid SKU is not in this list.
no_free_resource_for_job
Free resources
freeMatch: none
none
Depot Pick: restate · score as of 2026-09-14 · /api/jtbds/durable-idempotency
Depot Pick for durable-idempotency: restate (asOf 2026-09-14). See GET /api/jtbds/durable-idempotency + 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 restate. Not a free resource. A cheap paid SKU is not in this list.
- Trigger.dev · trigger-dev · dev_tool · oss
Free resources
freeMatch: jtbd
- Trigger.dev · trigger-dev · dev_tool · oss
Depot Pick: vantage · score as of 2026-09-14 · /api/jtbds/llm-cost-anomaly-alerts
Depot Pick for llm-cost-anomaly-alerts: vantage (asOf 2026-09-14). See GET /api/jtbds/llm-cost-anomaly-alerts + 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 vantage. Not a free resource. A cheap paid SKU is not in this list.
no_free_resource_for_job
Free resources
freeMatch: none
none
Depot Pick: sentry · score as of 2026-09-14 · /api/jtbds/agent-error-observability
Depot Pick for agent-error-observability: sentry (asOf 2026-09-14). See GET /api/jtbds/agent-error-observability + GET /api/methodology.
pickIsNotPriceWinner: false
Cheapest matching SKU: unavailable — Nothing was compared. per-error prices were not ranked against monthly plans. Candidates do not share one unit. cheapest stays null. pickIsPriceWinner is null.
Nothing was compared. per-error prices were not ranked against monthly plans. Candidates do not share one unit. cheapest stays null. pickIsPriceWinner is null.
Free-only recommendation
mode: free_only · paid pick stays sentry. Not a free resource. A cheap paid SKU is not in this list.
- SigNoz · signoz · dev_tool · oss
Free resources
freeMatch: jtbd
- SigNoz · signoz · dev_tool · oss
Failure modes
Runaway spend runaway-spend
Set a budget and a tool-call cap per task. Alert when spend jumps. Stop the run at the cap instead of summarizing a partial trace as success.
Partial tool success partial-tool-success
Require a per-item status and a failure count. Success for the task requires the failed count to be zero or explicitly handed to a retry queue.
Tool loop tool-loop
Hash the last several tool names and arguments. Stop when the same call repeats and the observation did not change. Cap tool calls per task.
Observability gap observability-gap
Alert on a drop in trace ingestion and on certificate expiry for the trace host. Do not treat a missing trace as a successful quiet run.
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.