Repository navigation
blog: announce Bidi Agents general availability [replica of harness-sdk#4899] - #24
poshinchen wants to merge 9 commits into
Conversation
Add Gautam, Murat, and Ariel as authors on the introducing-strands-harness post and update author bios/roles to reference the Strands Harness SDK.
Add the Bidi Agents GA blog post and author entries for Morgan Willis and Rachit Mehta.
poshinchen
left a comment
There was a problem hiding this comment.
Strandly v3-reason (optimized) review
Assessment: comment
Assessment: Comment
This PR is mostly a documentation/announcement change plus a mechanical model-ID migration (amazon.nova-2-sonic-v1:0 → amazon.nova-2-5-sonic) applied consistently across docs, README, CLI defaults, source default model, tests, and IAM/integ-test infra. The migration looks consistent and well-scoped.
Review Categories
- Correctness (verify): The new model ID drops the version/
:0suffix — please confirm it matches the exact Bedrock GA identifier, since it's the SDK default and seeds every example. - Docs/Blog quality: A few grammar and phrasing issues in the announcement's opening paragraphs; worth polishing before a public GA post. Verify product names (GPT-Realtime-2, Gemini 3.8 Live) and the Nova 2.5 "what's new" link.
- Reference links: The Bedrock doc now points to a generic model-cards index rather than a model-specific card.
- Infra/Tests: Confirm whether the old Nova Sonic ARN is still needed, and prefer full-object assertions where available.
Nice, thorough end-to-end migration across code, docs, and infra.
| - Open Source | ||
| draft: false | ||
| --- | ||
|
|
There was a problem hiding this comment.
Suggestion
Issue: The opening sentence reads awkwardly: "The speech-to-text voice agents lack a lot of conversational magic with users compared to using a voice model."
Suggestion: Consider tightening to something like "Speech-to-text voice agents lack a lot of the conversational magic you get from a true voice model." A strong, clear hook matters for a GA announcement.
| - Open Source | ||
| draft: false | ||
| --- | ||
|
|
There was a problem hiding this comment.
Important
Issue: "when a voice agent... can tell a user sounds stressed" is missing a word and is ambiguous — it reads as "tell a user" rather than "detect that a user sounds stressed."
Suggestion: Reword to "can tell that a user sounds stressed rather than needing the prompt to contain 'I'm stressed'."
| --- | ||
|
|
||
| The speech-to-text voice agents lack a lot of conversational magic with users compared to using a voice model. | ||
|
|
There was a problem hiding this comment.
Important
Issue: Several product/model names in this paragraph — "GPT-Realtime-2", "Gemini 3.8 Live", and the Nova 2.5 Sonic link to .../2026/10/amazon-nova-2.5-Sonic/ — should be verified for exact spelling/casing and that the URL resolves, since this is a public GA post.
Suggestion: Please double-check each provider's official product name and confirm the "what's new" link is live before publishing to avoid broken references.
| --- | ||
|
|
||
| The speech-to-text voice agents lack a lot of conversational magic with users compared to using a voice model. | ||
|
|
There was a problem hiding this comment.
Suggestion
Issue: "We recently prototyped a Bidi agent powered by this model to Zoom calls" is grammatically off ("prototyped ... to Zoom calls").
Suggestion: Consider "We recently prototyped a Bidi agent, powered by this model, on Zoom calls so it could chat with us during brainstorms and run web searches to confirm missing data."
| The speech-to-text voice agents lack a lot of conversational magic with users compared to using a voice model. | ||
|
|
||
| It's a way better experience when a voice agent, hooked up to a voice model, can tell a user sounds stressed rather than needing the prompt to contain "I'm stressed". Currently, the majority of voice agents rely on speech-to-text because it's easier to debug and eval, but a big tradeoff is those agents miss input that would've made the interaction much more conversational. Today we're announcing Bidi Agents in GA: the easiest way to create and monitor speech-to-speech voice agents with support for Amazon Nova Sonic, OpenAI, and Gemini models. | ||
|
|
There was a problem hiding this comment.
Suggestion
Issue: "Bidi Agents keeps the connection alive" mixes plural subject with singular verb (and "Bidi Agents also ensure" vs. "keeps" is inconsistent within the paragraph).
Suggestion: Pick one treatment of "Bidi Agents" (as a singular product name is cleanest) and apply it consistently: "Bidi Agents also ensures... and keeps the connection alive..."
|
|
||
| You'll need credentials for your model provider and PortAudio installed for local microphone and speaker access. | ||
|
|
||
| ```python |
There was a problem hiding this comment.
Important
Issue: The new model ID amazon.nova-2-5-sonic drops the version/:0 suffix used by the previous amazon.nova-2-sonic-v1:0. Bedrock foundation-model IDs typically include a version suffix.
Suggestion: Please verify amazon.nova-2-5-sonic is the exact GA model identifier (not e.g. amazon.nova-2-5-sonic-v1:0). An incorrect ID here would break every quickstart example and the default model in agent.py.
|
|
||
| [nova-sonic]: https://docs.aws.amazon.com/nova/latest/nova2-userguide/using-conversational-speech.html | ||
| [nova-regions]: https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-amazon-nova-2-sonic.html | ||
| [nova-regions]: https://docs.aws.amazon.com/bedrock/latest/userguide/model-cards.html |
There was a problem hiding this comment.
Important
Issue: This changes the nova-regions reference from a model-specific card (model-card-amazon-nova-2-sonic.html) to the generic model-cards.html index, which reduces how precisely readers can find region/availability info.
Suggestion: If a 2.5-specific model-card URL exists, please link to it directly instead of the generic index; otherwise confirm the generic page is the intended long-term target.
| @pytest.mark.asyncio | ||
| async def test_nova_sonic_v2_instantiation(boto_session, mock_client): | ||
| """Test direct instantiation with Nova Sonic v2 model ID.""" | ||
| async def test_nova_sonic_v2_5_instantiation(boto_session, mock_client): |
There was a problem hiding this comment.
Suggestion
Issue: The test comment and function were renamed to "2.5" / test_nova_sonic_v2_5_instantiation, but the test still asserts on the single model_id string in a few spots rather than the full config object where applicable.
Suggestion: Where a full-config equality assertion is available (as in test_get_config_returns_reference), prefer asserting the whole object so unexpected config drift is caught. Please verify the renamed test still exercises distinct behavior and isn't now redundant with test_model_initialization.
| 'arn:aws:bedrock:*:*:inference-profile/global.anthropic.claude-sonnet-4-6', | ||
| 'arn:aws:bedrock:*::foundation-model/anthropic.claude-sonnet-4-6', | ||
| 'arn:aws:bedrock:*::foundation-model/amazon.nova-2-sonic-v1:0', | ||
| 'arn:aws:bedrock:*::foundation-model/amazon.nova-2-5-sonic', |
There was a problem hiding this comment.
Suggestion
Issue: The IAM policy now grants access to both the old amazon.nova-2-sonic-v1:0 and the new amazon.nova-2-5-sonic foundation models.
Suggestion: Confirm whether the old nova-2-sonic-v1:0 resource is still needed by any remaining integration test; if the suite fully migrates to 2.5, consider removing the stale ARN to keep the integ-test role minimally scoped.
| @@ -0,0 +1,221 @@ | |||
| --- | |||
| title: "Bidi Agents now GA" | |||
| date: 2026-10-05 | |||
There was a problem hiding this comment.
Suggestion
Issue: date: 2026-10-05 is a future-dated post.
Suggestion: If this is intentionally scheduled, confirm the blog build publishes future-dated posts as expected (some static generators hide them); otherwise correct the date before merge.
Documentation Preview FailedThe documentation deployment encountered an error. Please check the deployment logs for more details. |
Replica of
https://github.com/strands-agents/harness-sdk/pull/4899(URL in backticks to avoid a cross-reference on the original PR) for reviewer evaluation. Branches mirror the original PR's base and head commits.The review below was produced by the optimized Strandly reviewer (variant
v3-reason, optimization runaeb3ee, agent model Opus 4.8) during validation on PRs it never saw in training. Compare with the human and Strandly reviews on the original PR.