Notion Agent SDK beta vs Sume Agent Completions: run agents from code
Notion's SDK continues agent chats and streams results. Sume's Agent Completions are one-shot 202 runs you poll or get by webhook. See which fits your backend.

Pick the Notion Agent SDK if your agent lives inside Notion and your app needs to keep talking to it. Pick Sume Agent Completions if you want a fresh agent task per call that makes media and returns a receipt. They look similar, since both let code trigger an agent, but the conversation model differs.
What each one does
Notion's September 15 release notes describe the Agent SDK public beta as a way to continue Custom Agent conversations from anywhere, trigger them from your app, and stream results back. It is limited to Business and Enterprise plans.
A Sume Agent Completion posts an instruction and gets back a 202 with an agent.run receipt. There is no streaming and no continuation of an earlier thread.
Side by side
The two also differ in who owns the context. Notion's agent reads what your workspace holds and acts under the permissions of that workspace. A Sume completion knows only what you send: the instruction, an optional input object that Sume writes to /workspace/inputs/sume-action-input.json and treats as data rather than instructions, and any attached images. That makes Sume runs easy to reason about and replay, and it means anything the agent needs must travel with the request.
| Question | Notion Agent SDK (beta) | Sume Agent Completions |
|---|---|---|
| Continue a conversation | Yes, per Notion | No; every completion starts a new thread, and assistant turns in messages[] are rejected |
| Streaming | Results can be streamed back | Not available; poll status_url or take one webhook |
| Plans | Business and Enterprise | Any key with agent_completions:write; service-account keys cannot create runs |
| Spend control | Not covered in the release note | generation_spend_cap_usd required on every call |
| Inputs | Notion workspace context | input JSON written to a file, up to 30 image attachments |
Using Sume's side from code
Poll GET /v1/agent-runs/{id} until next_action is not poll_status. A completed run puts the agent's last text in output.text, and generated media in output.images, output.videos, output.audio and output.files. Add output_schema when your code needs a typed result.
A retry-safe client sends an Idempotency-Key. If the same key arrives again, Sume returns the original receipt with idempotency_hit: true. Reusing the key with a different payload returns 409 idempotency_conflict.
Decision rule
If the user's work already sits in Notion pages and you want a chat that persists, the SDK avoids rebuilding that context. If the job is a single deliverable, such as an image set or a clip, and you want a bounded bill, the Sume call is simpler: one request, a spend ceiling you chose, and a receipt you can store. Teams that need both can keep the conversation in Notion and call Sume for the media step, passing results back as plain text or URLs.
Sources
More in Comparisons
- Nova Canvas 4,194,304 pixel cap and 16 px rule vs Sume image_size
Nova Canvas output sides must divide by 16 and total under 4,194,304 pixels. GPT Image 2.5 on Sume has its own custom-size rules. A side-by-side check.
- Nova Canvas IMAGE_VARIATION similarityStrength vs Sume n and reference
Nova Canvas IMAGE_VARIATION takes 1 to 5 images and a similarityStrength of 0.2 to 1.0. Sume has no strength field; here is how to get variations.
- Nova Canvas inpainting mask rules vs a Sume reference edit
Nova Canvas inpainting wants a pure black and white mask, same size as the input. What to build, and how Sume's edit call differs.
- Nova Canvas maskPrompt: edit by naming the region, and the Sume way
Nova Canvas accepts a maskPrompt in place of a maskImage. Sume edits work from the prompt alone on most models. How to word the region and test the result.
Written by Sume