fix(agent): use unique block ids for text/thinking stream events#2002
Open
liulangjietou wants to merge 1 commit into
Open
fix(agent): use unique block ids for text/thinking stream events#2002liulangjietou wants to merge 1 commit into
liulangjietou wants to merge 1 commit into
Conversation
Text/thinking block events were emitted with hardcoded block ids
("text"/"thinking"), violating the documented contract that blockId
uniquely identifies each content block. Allocate a unique id per block
in ModelCallBlockLifecycle (consistent across Start/Delta/End of the
same block), following the existing tool-call block precedent.
Fixes agentscope-ai#1899
|
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
AgentScope-Java Version
2.0.0-RC4 (main, latest)
Description
ReActAgent'''s streaming block events for text and thinking blocks were emittedwith hardcoded block ids ("text" / "thinking"), which violates the documented
contract that blockId uniquely identifies each content block. Tool-call block
events in the same code path already use a unique
toolId, so this bringstext/thinking blocks in line with that existing precedent.
Fix:
ModelCallBlockLifecyclenow lazily allocates a unique block id (samegeneration scheme as
replyId:UUID.randomUUID().toString().replace("-", ""))when a text/thinking block starts, and reuses that id across the block'''s
Start/Delta/End events. Two hardcoded call sites were fixed — the primary
emitBlockEventspath and a second duplicate path further down the file.No public API changes; no existing test asserted on the literal "text"/"thinking"
ids, so this is behavior-compatible for all in-repo consumers.
Fixes #1899
Checklist
mvn spotless:applymvn test)