Skip to content

Update AssemblyAI skill: Voice Agent stored agents, LLM Gateway Claude 4 removal, /v2/upload gotcha, streaming 1011/billing - #16

Merged
dlange-aai merged 4 commits into
mainfrom
update-assemblyai-skill-2026-06-29
Jun 30, 2026
Merged

Update AssemblyAI skill: Voice Agent stored agents, LLM Gateway Claude 4 removal, /v2/upload gotcha, streaming 1011/billing#16
dlange-aai merged 4 commits into
mainfrom
update-assemblyai-skill-2026-06-29

Conversation

@dlange-aai

@dlange-aai dlange-aai commented Jun 29, 2026

Copy link
Copy Markdown
Collaborator

Automated sync of the AssemblyAI skill against the latest assemblyai-docs API spec (changes landed June 18–29, 2026, after the last skill update). Each change is tied to a verified docs/spec commit.

Changes

Voice Agents — stored-agent binding via agent_id (spec #157)

  • The first session.update can now bind to a reusable stored agent by sending {"agent_id": "<id>"} as the only field in session, instead of inline config. The two modes are mutually exclusive — sending both raises a validation error. agent_id can only be set before session.ready.
  • Added a new Voice Agents REST API (Stored Agents) section to references/api-reference.md documenting POST/GET/PUT/DELETE /v1/agents on agents.assemblyai.com, the create-body fields (required name/system_prompt/voice), and auth.
  • Added a Key Gotchas row in SKILL.md.

LLM Gateway — Claude 4 models removed (docs #133)

  • claude-opus-4-20250514 and claude-sonnet-4-20250514 were removed from the LLM Gateway available-models list. Marked removed June 2026 in references/llm-gateway.md and added a Common Mistakes correction (these IDs are common in training data).

REST upload — binary-body gotcha (docs #144)

  • POST /v2/upload requires raw bytes (--data-binary @file). Using -d/--data or a JSON body returns a valid upload_url but later fails transcription with Transcoding failed. File type application/json. Added to references/api-reference.md and a Common Mistakes row in SKILL.md.

Streaming — close codes + billing (docs #126, #147)

  • Added close code 1011 (internal/connection-establishment error) and documented the inactivity-timeout closure under 3006 in the streaming Error Codes table.
  • Added a session-based billing note: concurrent/dual-streamed sessions accumulate billed time in parallel (a call dual-streamed under two session IDs bills double).

Speech Understanding — speakers is now the primary form (docs #164)

  • The docs now lead with speakers (array of {name}/{role} objects) for both name and role identification; noted in references/speech-understanding.md. known_values remains fully supported in the spec.

Verified but intentionally not changed

  • Speaker Identification effort (low/medium) — described in prose but has no documented parameter syntax and is absent from the OpenAPI schema, so it's too speculative to add precisely.
  • U3.5 Pro Streaming GA / model overview / dashboard docs — already reflected in the skill, or not API-substantive.

Pre-Recorded — Universal-3.5 Pro available for async

  • Universal-3.5 Pro is available for pre-recorded/async transcription (not just streaming): opt in with speech_models: ["universal-3-5-pro"] on POST /v2/transcript. Documented at pre-recorded-audio/universal-3-5-pro.mdx (18 languages with auto-fallback to Universal-2, native code-switching, contextual prompt, keyterms_prompt up to 1,000). Added to the Pre-Recorded model table in SKILL.md. (The formal OpenAPI speech_models enum still lists only universal-3-pro/universal-2, but the async API accepts it.)

Prompting reframed around Universal-3.5 Pro

Per the Prompting and Keyterms guide (applies to both streaming and async for Universal-3.5 Pro):

  • prompt is a contextual description of the audio (domain → scenario → detail), not formatting/behavioral instructions (those are ignored).
  • prompt and keyterms_prompt are complementary (used together), not mutually exclusive — corrected across SKILL.md, streaming.md, api-reference.md, python-sdk.md, js-sdk.md.
  • Rewrote the SKILL.md Prompting section around Universal-3.5 Pro (three specificity levels, start-with-nothing guidance, keyterms limits: 100 streaming / 1,000 async, corrected ~1500 chars). Dropped obsolete instruction-style guidance (Non-negotiable prefix, positive-phrasing, negative-prompt gotcha) and "instruct via prompt" disfluencies clauses. SDK sections retitled and now show prompt + keyterms together with speech_models: ["universal-3-5-pro"].
  • Sync STT prompt left unchanged — its spec defines it as an instruction prepended to the system prompt (a genuinely different endpoint).

…y Claude 4 removal, /v2/upload binary gotcha, streaming 1011/billing

- Voice Agents: document binding a session to a stored agent via `agent_id`
  in the first `session.update` (mutually exclusive with inline config), and
  add a new Voice Agents REST API (stored agents) section to api-reference.md
  (`POST/GET/PUT/DELETE /v1/agents` on agents.assemblyai.com). [spec #157]
- LLM Gateway: `claude-opus-4-20250514` and `claude-sonnet-4-20250514` were
  removed from the available-models list (June 2026) — mark removed and add a
  Common Mistakes correction. [docs #133]
- REST upload: warn that `/v2/upload` requires raw bytes (`--data-binary @file`);
  `-d`/JSON body returns a valid upload_url but fails later transcription with
  `Transcoding failed. File type application/json`. [docs #144]
- Streaming: add close code `1011` (internal/connection error) and the
  inactivity-timeout closure under `3006`; add a session-based billing note
  (concurrent/dual-streamed sessions bill in parallel). [docs #126, #147]
- Speech Understanding: note docs now lead with `speakers` (not `known_values`)
  for both name and role speaker identification; `known_values` still supported.
Universal-3.5 Pro is available on the pre-recorded/async side, not just
streaming — opt in via speech_models: ["universal-3-5-pro"] on
POST /v2/transcript (currently Preview). Documented at
pre-recorded-audio/universal-3-5-pro.mdx. Adds it to the Pre-Recorded model
table, notes contextual prompting + keyterms (up to 1,000), 18-language
coverage with auto-fallback to Universal-2, and flags that the formal
OpenAPI speech_models enum doesn't list it yet though the API accepts it.
…mentary keyterms)

Per the Prompting and Keyterms guide
(https://www.assemblyai.com/docs/streaming/prompting-and-keyterms), which
applies to both streaming and async for Universal-3.5 Pro:

- prompt is a contextual *description* of the audio (domain/scenario/detail),
  NOT formatting/behavioral instructions (those are ignored).
- prompt and keyterms_prompt are COMPLEMENTARY (used together), not mutually
  exclusive. Fixed this across SKILL.md, streaming.md, api-reference.md,
  python-sdk.md, js-sdk.md.
- Rewrote the SKILL.md Prompting section around U3.5 Pro: three specificity
  levels, start-with-nothing guidance, keyterms limits (100 streaming /
  1,000 async), corrected ~1500 chars (was 'words').
- Dropped obsolete instruction-style guidance (Non-negotiable prefix,
  positive-phrasing, negative-prompt gotcha) and 'instruct via prompt'
  disfluencies clauses.
- SDK prompting sections retitled to U3.5 Pro, use speech_models:
  ["universal-3-5-pro"] and show prompt + keyterms together (also drops the
  nonexistent aai.SpeechModel.universal_3_pro enum usage).

Sync STT prompt left as-is (its spec defines it as an instruction prepended
to the system prompt — a genuinely different endpoint).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant