AP
Agent Provider Depot
Opinionated picks for agents
OpenAPI

Kit · 2026-10-03

Data and ETL agent

data-etl

Moves or reshapes records between files, tables, and documents, and reports rows that did not match the schema.

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=data-etl · ?cost=free · all kits · class JSON

First actions

  1. /api/hub
  2. /api/decide?jtbd=lakehouse-llm
  3. /api/quote?jtbd=lakehouse-llm
  4. /api/kit?class=data-etl
  5. /api/failures

Needs

Jobs: lakehouse-llm, sql-warehouse-agent-context, spreadsheet-sql-agents, document-parse, knowledge-graph-extract, ml-dataset-versioning, layout-aware-ocr (omitted from this kit)

Class freeKinds field (not used to attach free rows): free_ocr, free_data

  • A schema for the destination
  • A row-level error report

lakehouse-llm

Depot Pick: databricks-mosaic · score as of 2026-09-14 · /api/jtbds/lakehouse-llm

Depot Pick for lakehouse-llm: databricks-mosaic (asOf 2026-09-14). See GET /api/jtbds/lakehouse-llm + GET /api/methodology.

pickIsNotPriceWinner: true

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

Pick is not a price winner. Cheapest sourced input $/1M among candidates is amazon-bedrock at 0.04. The pick has no priceSortEligible input row.

Free resources

freeMatch: none

none

sql-warehouse-agent-context

Depot Pick: motherduck · score as of 2026-10-19 · /api/jtbds/sql-warehouse-agent-context

Depot Pick for sql-warehouse-agent-context: motherduck (asOf 2026-10-19). See GET /api/jtbds/sql-warehouse-agent-context + 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: jtbd

  • DuckDB · duckdb · dev_tool · oss

spreadsheet-sql-agents

Depot Pick: motherduck · score as of 2026-10-19 · /api/jtbds/spreadsheet-sql-agents

Depot Pick for spreadsheet-sql-agents: motherduck (asOf 2026-10-19). See GET /api/jtbds/spreadsheet-sql-agents + 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

document-parse

Depot Pick: llama-parse · score as of 2026-09-14 · /api/jtbds/document-parse

Depot Pick for document-parse: llama-parse (asOf 2026-09-14). See GET /api/jtbds/document-parse + GET /api/methodology.

pickIsNotPriceWinner: false

Cheapest matching SKU: reducto · r-1 Parse API · 10 usd_per_1k_pages · not a per-million-token rate. min sourced document-parse price per 1k pages among candidates (per-page rows are used only when no per-1k row exists; never converted); credit-based plans were not ranked; not quality-adjusted

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

Free resources

freeMatch: jtbd

knowledge-graph-extract

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

Depot Pick for knowledge-graph-extract: diffbot (asOf 2026-09-14). See GET /api/jtbds/knowledge-graph-extract + 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

ml-dataset-versioning

Depot Pick: weights-biases · score as of 2026-09-14 · /api/jtbds/ml-dataset-versioning

Depot Pick for ml-dataset-versioning: weights-biases (asOf 2026-09-14). See GET /api/jtbds/ml-dataset-versioning + 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

  • Schema drift schema-drift

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

  • 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.

  • Silent truncation silent-truncation

    Tools must return whether the payload was truncated and how long the original was. Fail the task if the answer depends on the missing span.

  • 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.

  • Hallucinated tool arguments hallucinated-tool-args

    Reject a call that fails the current schema or names an unknown id, and do that before the tool runs a side effect.

  • Collateral side effects collateral-side-effects

    Snapshot the workspace or app state, then diff it against an allowlist. A passing check plus an unexpected diff is a failure.

Case studies

1 related.

/api/case-studies?class=data-etl