Agents
The Sume video agent from code: Agent Completions, scheduled runs, MCP tools and timeouts, programmatic tool calling, and guardrails for paid APIs.
Start with What is a video agent? How Sume defines and runs one

ChatGPT confirms write tools; Sume MCP also gates them by scope
ChatGPT developer mode asks before write actions. Sume's hosted MCP adds a second gate: OAuth mcp:write, an idempotency_key and an optional max_spend_usd.

Claude 'Allow always' on a paid Sume tool: what still caps spend
Claude custom connectors let you approve a tool once and keep approving it. For a paid Sume tool, the scope, idempotency key and max_spend_usd still apply.

Does the Sume run spend cap include the LLM turn? No, only generation
On a Sume run receipt, billable_amount_usd_micros is generation spend only; the agent's LLM turn bills a separate Agent wallet. How to budget both.

Five generate_image calls in one turn: Sume MCP create budget
Hosted Sume MCP gives paid creates their own budget (20 per principal, 64 per process) and queues a call up to 20 seconds before wait_busy.

Sume jobs_wait limits: 20 ids and 55 seconds per call
Hosted Sume MCP jobs_wait takes at most 20 job ids of 256 characters and waits up to 55 seconds. How to wait on a 30-clip storyboard in groups.

primary_output_key: which output key is a Sume agent run's headline
Set primary_output_key on a Sume agent run so a backend can read one URL; the receipt resolves it into primary_output_url once the run completes.

Seedance video agent in ChatGPT and Claude: Sume MCP compared
InfoseekAI put a Seedance video agent into ChatGPT and Claude over MCP on Oct 1, 2026. What a hosted MCP server like Sume's gives you instead, and when.

Spend guard layers for an unattended Sume video agent, in order
Five layers cap a Sume agent that runs unattended: key scope, per-run cap, max_spend_usd and dry_run, generation admission, and the wallet. What each one stops.

One Sume schedule on a clock and on call: api_trigger_enabled
A Sume cron schedule can also set api_trigger_enabled to accept API runs. trigger_type is fixed at create time, so choose once. Overlap defaults to skip.

Sume schedule cron field: expr, IANA timezone and next_run_at
A Sume schedule's cron object holds expr, timezone and next_run_at, or null for an API-only schedule. How to read when the next run is due over the API.

Sume schedule cap null or 0: what a per-run override can do
A per-run generation_spend_cap_usd lowers a Sume schedule's cap but never raises it; null drops that ceiling, 0 is rejected, and wallet limits still apply.

Why the Sume API hides a schedule's instructions text
GET /v1/actions returns the cron, model, cap and schema of a Sume schedule but not its instructions text. Read and edit instructions in the dashboard.

Weekly new-model watcher as a Sume schedule: schema without links
A scheduled watcher that lists new AI models fails if its output schema holds vendor page URLs. Use host-only fields and read each run with the actions API.

Launch-day run of a Sume schedule: one key per model, input as data
Start a schedule run the day a model launches with POST /v1/actions/{id}/runs. Send the model name as input data and derive the Idempotency-Key from it.

Which Sume key scope starts a Format, schedule or agent run
formats:write starts a Format run, actions:write a schedule run, agent_completions:write an agent run. Older keys lack them, and service keys can't start some.

script_run on Sume MCP: what the sandbox cannot call, and its budgets
Sume's script_run tool runs JavaScript that calls other tools with await sume.call. It has 5 to 55 second timeouts, call budgets, and no discovery tools.

Sume jobs_wait with 20 ids: one unknown id fails the whole call
A batch jobs_wait takes 1 to 20 ids. One unknown or foreign-workspace id makes the full call fail, so validate ids with jobs_list or jobs_status first.

Instagram or TikTok link to a visual check on Sume MCP, in 5 calls
The Sume MCP chain for a social video link is crawl_media, media-imports_create, jobs_wait, media-imports_get, then video_inspect on the Sume URL.

Sume hosted MCP is not Studio Agent: the one URL to put in your client
Put https://mcp.sume.com/mcp into Claude, Cursor or Codex. Studio Agent is the in-app product, not a customer MCP server, so there is no second URL to add.

Failed Sume job over MCP: read jobs_get, because jobs_result gives 409
For a failed Sume job, jobs_result returns 409 job_not_completed. Read error.public_reason with jobs_get, report it, and do not resubmit the same paid payload.

jobs_cancel on Sume MCP: Write scope, idempotency_key, early moment
jobs_cancel is a write tool marked destructive. It needs the mcp:write scope or an API key, an idempotency_key, and a job that has not started generating.

jobs_wait returned early during a deploy: retry the same job ids
A Sume MCP jobs_wait can return before its 50 second slice when the API host is draining for a deploy. The job is fine: call jobs_wait again on the same ids.

jobs_wait with timeout_seconds 0: a single status snapshot on Sume MCP
Sume's jobs_wait accepts timeout_seconds 0 to 600 (clamped to 55) and interval_seconds 1 to 60. A value of 0 reads the status once and returns right away.

poll_after_seconds in Sume MCP results: where the 5 comes from
Sume MCP jobs_status and jobs_wait results add poll_after_seconds for running jobs: the API's own interval, else 5. It is null once the job is terminal.

Preflight a paid Sume MCP call: balance_get, then dry_run
Before a paid Sume tool call, an agent should read the balance and run the tool with dry_run=true. Then submit with a fresh idempotency_key and an optional cap.

Sonnet 5.5 scores 70.6% on Terminal-Bench 4.0: cap Sume calls anyway
A benchmark score says how well Sonnet 5.5 finishes tasks, not what a Sume call may cost. Put generation_spend_cap_usd on every Agent Completion it starts.

DeepSeek V4.1 Flash sees images: hand one to a Sume Agent Completion
V4.1 Flash is described as natively multimodal. To act on an image with Sume, pass it as an input_image attachment on an Agent Completion, up to 30 per run.

usage.cap on a Format run: an agent reads remaining_usd_micros
A Format run receipt splits its spend cap into limit, counted and remaining USD micros. A supervising agent can read headroom before it asks for more work.

OpenAI Tier 1 is 200 requests a minute: poll Sume jobs in batches
A job-polling loop burns a 200 requests-a-minute limit fast. One batched jobs_wait on up to 20 Sume job ids replaces dozens of status calls.

tts_source_get and verify_spine: check a voiceover vs its script
Sume's hosted MCP has two free read tools for voiceover work. One returns the accepted script for tts_create, the other compares chosen TTS jobs to it.

generate_video MCP defaults to sume/auto; REST requires model
The generate_video MCP tool defaults model to sume/auto, but POST /v1/videos requires model. Same payload schema; the MCP server adds the default.

Sume skipped run with previous_run_active: what it means, what to do
A scheduled Sume run is skipped with skip_reason previous_run_active when the last one is still going. It is not billed work. How to detect it and avoid it.

A decision model's confidence is not a spend cap: Sume's real gates
Strands Decider and Clef return confidence scores. Only the Sume gates in this table, from idempotency_key to the required spend cap, limit what a run can cost.

Fire a Sume schedule from a decision, not a clock: API trigger
Set api_trigger_enabled on a Sume schedule, let Clef or Decider decide when it is worth running, then POST /v1/actions/{action_id}/runs with an idempotency key.

Clef-flash as a yes/no gate before a paid Sume Agent Completion
Cloudflare's Clef-flash returns typed answers with probabilities. Put one in front of POST /v1/agent/completions as a filter, keep the spend cap as the guard.

Scheduled run cap null: no ceiling, but wallet and limits still bind
Sending generation_spend_cap_usd null drops the automation ceiling for one run. Wallet balance, admission and org limits still apply, and 0 is a 400.

script_run budget stop: split the batch and wait outside the script
A Sume script_run budget stop (timeout, call or paid budget) means the script asked for more than allowed. Split it, or return job ids and wait outside.

What a Sume MCP create result tells the agent to call next
A Sume MCP create result carries agent.next_step: jobs_wait with the job_id and timeout 50, plus poll_after_seconds 5. Follow it; do not resubmit.

Agent says Sume MCP is down after one timeout: retry once, name it
One errored or timed-out Sume MCP call is just that call failing. Retry it once, report that tool's error, and never say the server is down.

Sume MCP tool_name_typo: avatar_image_to_video_create is a typo
avatar_image_to_video_create gives tool_not_found; the real name is avatar-image-to-video_create. Sume sends did_you_mean and a tools_schema next_step.

Sume MCP returned a tool descriptor, not a result: it did not run
If a Sume MCP call returns a tool name, description and schema instead of a result, the tool did not run. Re-call with the namespaced name your client lists.

Agent Completion or three API calls for a render-trim-caption chain
If the steps are fixed, call the endpoints. If the task changes on every call, an Agent Completion with a required spend cap fits. How the two compare.

API-triggered scheduled run: key per week, not $(uuidgen)
The docs' example sends Idempotency-Key: $(uuidgen), which changes on every retry. Derive the key from the week so a retry returns the same run.

Make a video from a URL in Claude or Cursor: crawl_scrape, Wan 3.0
Alibaba's Wan 3.0 reads webpages; Sume's request has no web_url. In Claude or Cursor use hosted MCP: crawl_scrape the page, then generate_video with wan-3.0.

Parallel tool calls on a voice agent: one idempotency key each
ElevenLabs agents default enable_parallel_tool_calls to true. If tools start paid jobs, give each call its own key and wait on all job ids in one batch.

Cursor Projects coordinator fan-out: size waves from generation_limits
A Cursor coordinator that delegates to subagents can overrun a Sume workspace. Budget new in-flight jobs from generation_limits, not from wave_size_hint.

Claude Code 2.1.289 agent.spawn: teammates share one Sume queue
Claude Code 2.1.289 adds agent.spawn for teammates. Teammates sharing a Sume workspace share its concurrency limit and queue, so plan the width of the fan-out.

OpenAI Dots x Runway: brief a dot, it plans shots. The Sume loop
Runway's Oct 1 changelog lists OpenAI Dots x Runway for all plans: brief a dot, it plans shots, Runway shoots. The same loop with Sume MCP tools.