AP
Agent Provider Depot
Opinionated picks for agents
OpenAPI

Kit · 2026-10-03

Multi-agent orchestrator

orchestrator

A lead assigns subtasks to workers and accepts a result only when it matches the assignment.

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

First actions

  1. /api/hub
  2. /api/decide?jtbd=durable-agent-workflows
  3. /api/quote?jtbd=durable-agent-workflows
  4. /api/kit?class=orchestrator&cost=free
  5. /api/failures

Needs

Jobs: durable-agent-workflows, event-driven-agent-jobs, langgraph-deploy, ray-distributed-agents, a2a-agent-discovery, agent-tool-router, mcp-discovery (omitted from this kit)

Class freeKinds field (not used to attach free rows): free_mcp, dev_tool

  • A written assignment per worker
  • A budget for the whole fan-out

durable-agent-workflows

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

Depot Pick for durable-agent-workflows: temporal-cloud (asOf 2026-09-14). See GET /api/jtbds/durable-agent-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.

Free resources

freeMatch: jtbd

event-driven-agent-jobs

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.

Free resources

freeMatch: jtbd

langgraph-deploy

Depot Pick: langgraph-cloud · score as of 2026-09-14 · /api/jtbds/langgraph-deploy

Depot Pick for langgraph-deploy: langgraph-cloud (asOf 2026-09-14). See GET /api/jtbds/langgraph-deploy + 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 langgraph-cloud. Not a free resource. A cheap paid SKU is not in this list.

no_free_resource_for_job

Free resources

freeMatch: none

none

ray-distributed-agents

Depot Pick: anyscale · score as of 2026-09-14 · /api/jtbds/ray-distributed-agents

Depot Pick for ray-distributed-agents: anyscale (asOf 2026-09-14). See GET /api/jtbds/ray-distributed-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-only recommendation

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

  • Ray · ray · dev_tool · oss

Free resources

freeMatch: jtbd

  • Ray · ray · dev_tool · oss

a2a-agent-discovery

Depot Pick: aws-agent-registry · score as of 2026-09-14 · /api/jtbds/a2a-agent-discovery

Depot Pick for a2a-agent-discovery: aws-agent-registry (asOf 2026-09-14). See GET /api/jtbds/a2a-agent-discovery + 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 aws-agent-registry. Not a free resource. A cheap paid SKU is not in this list.

no_free_resource_for_job

Free resources

freeMatch: none

none

agent-tool-router

Depot Pick: composio · score as of 2026-10-19 · /api/jtbds/agent-tool-router

Depot Pick for agent-tool-router: composio (asOf 2026-10-19). See GET /api/jtbds/agent-tool-router + 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 composio. Not a free resource. A cheap paid SKU is not in this list.

Free resources

freeMatch: jtbd

Failure modes

  • Inter-agent misalignment inter-agent-misalignment

    Log the assigned subtask next to the worker's stated result. The lead rejects a result that does not match the assignment.

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

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

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

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

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

  • Instruction drift instruction-drift

    Restate the stop condition in the trace. End the run when it is met. Review long traces for steps that do not serve the original task.

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

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

Case studies

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

/api/case-studies?class=orchestrator