[Bug]: ConversationCompactor#truncateToolUseArgs drops Msg id/metadata/timestamp/usage and ToolUseBlock content/metadata/state
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 82/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- java
- Ambito
- ai-infra-agents
Direzione di ricerca
Leggi ConversationCompactor.java in corrispondenza di truncateToolUseArgs e confronta la sua logica di ricostruzione con il modello pruneToolResults di #3326. Aggiungi o estendi i test di troncamento per confermare che l’argomento venga accorciato mentre i campi del messaggio e di ToolUseBlock elencati nell’issue vengono preservati; il lavoro è terminato quando questi test passano.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Describe the bug
When tool-use arguments are truncated during compaction, both the message and the block are rebuilt from scratch, and most of their fields are lost.
- ConversationCompactor.java#L701:
The rebuilt message gets a new random id,return Msg.builder().role(msg.getRole()).name(msg.getName()).content(newBlocks).build();timestampbecomes "now", andmetadataandusageare lost. - ConversationCompactor.java#L726:
The rebuilt block losesreturn ToolUseBlock.builder().id(tu.getId()).name(tu.getName()).input(newInput).build();content(the raw argument JSON),metadata(for example Gemini'sthoughtSignature, see ToolUseBlock.java#L37) andstate.
Impact
- Anything keyed on message id breaks once argument truncation runs. That includes UI deduplication, mapping persisted messages back to rendered ones, and snapshot/rollback comparisons. Application-level markers stored in message metadata disappear as well.
- Gemini may reject replayed tool calls that no longer carry their thought signature.
To Reproduce
- Enable compaction with tool-argument truncation.
- Create an assistant message whose
ToolUseBlockhas a large argument, and setmetadataon both the message and the block. - Trigger compaction so that the message lands in the truncation range. The resulting message has a different id, a new timestamp, and no metadata.
Expected behavior
Truncation only shortens the argument values. Identity and metadata are preserved.
Suggested fix
Apply the same pattern as #3326, which did this for pruneToolResults:
Msg.builder().id(msg.getId()).role(msg.getRole()).name(msg.getName())
.metadata(msg.getMetadata()).timestamp(msg.getTimestamp()).usage(msg.getUsage())
.content(newBlocks).build();
ToolUseBlock.builder().id(tu.getId()).name(tu.getName()).input(newInput)
.metadata(tu.getMetadata()).state(tu.getState())
/* content: regenerate from newInput, or drop, so that it stays consistent with the truncated input */
.build();
Environment
- AgentScope-Java Version: 2.0.4 (unchanged since 2.0.3; also on main @035487e)
- Java Version: 25
- OS: any
- Lingua principale
- Java
- Stelle
- 6.1k
- Fork
- 1.5k
- Merge medio
- 1g 10h
- PR unite (30g)
- 151
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di agentscope-ai/agentscope-java
-
[Bug]: WriteFileTool shows "Error reading file" snippet for relative paths when baseDir is setForse già presa @ShryukGrandhi l’ha presa oggi. Aperta
Difficoltà 2/5 Meno di un'ora Idoneità per principianti 86/100
agentscope-ai/agentscope-java#3917 ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug]: JevCodeReviewTest 在 Windows CI 上不稳定:2 秒预算在慢 runner 上超时Forse già presa @breezeFur l’ha presa 5 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
agentscope-ai/agentscope-java#3807 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug]: SubagentRunIdChainTest times out intermittently on windows-latest (the 10s .block() deadline has only a ~1.5x margin)Forse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
agentscope-ai/agentscope-java#3505 ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug]: ActionObservations.emitSafely swallows event-delivery exception (no message, no stack trace)Forse già presa @amyaxy l’ha presa 22 giorni fa. Apertabug
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
agentscope-ai/agentscope-java#3475 ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug]:Redis 模式下 glob 和 ls 操作被本地索引误导,无法正确发现 Redis 中实际存储的记忆文件。Forse di nuovo libera Una pull request per questa issue è stata chiusa senza essere unita. Apertaarea/harness bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
agentscope-ai/agentscope-java#3197 · 4 commenti ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di agentscope-ai/agentscope-java
Issue simili
-
[Bug] 资源包列表 与 模组/数据包/世界 列表排列顺序不一致Forse già presa @fishdry1000 l’ha presa 4 giorni fa. Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
AtlasOfLivingAustralia/species-lists#882 ·
I maintainer di solito rispondono entro 1 giorno
-
Type/Bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
ballerina-platform/ballerina-library#9458 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
winder/Universal-G-Code-Sender#3242 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
PCL-Community/PCL-CE#3767 ·
I maintainer di solito rispondono entro 1 giorno