agentscope-ai / agentscope-ai/agentscope-java

[Bug]: io.agentscope.core.agent.StreamOptions.Builder#incremental(累计模式)在 tool call 后无法正确累加内容

未关闭
#1,211 2 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
area/core/agent bug
主要语言
Java
星标
5.6k
派生
1.3k
平均合并
4 天 12 小时
30 天内合并 PR
77

描述

**Describe the bug(问题描述)**
当使用 `StreamOptions.Builder#incremental` 并将其设置为 `false`(累计模式)时,框架的行为与预期不一致。
按文档说明,累计模式应该返回“所有已累加的内容”,但实际表现为:在每次调用工具(tool call)后,之前的内容会被重置,导致历史推理内容和文本内容丢失。

---

**To Reproduce(复现步骤)**

1. 设置参数:
- `incremental = false`
2. 使用如下测试话术(触发多轮推理 + 工具调用):
"先输出一段推理内容,然后调用工具,再输出一段推理内容和文本,然后再调用工具,最后输出文本。"
3. 执行请求并观察流式输出结果

---

**Expected behavior(期望行为)**
在 `incremental = false`(累计模式)下,每次流式返回都应该包含完整的累计内容,包括:

- 之前的推理内容(reasoning / ThinkingBlock)
- 之前输出的文本内容
- 工具调用前后的所有内容

即:整个会话过程中不应丢失任何已生成内容。

---

**Actual behavior(实际行为)**

当前表现为:每次工具调用后内容被重置。

具体过程如下:

1. 模型输出第一段推理内容
→ `ThinkingBlock` 正常按累计模式返回

2. 模型调用工具,然后输出推理内容 + 文本
→ 推理内容从“工具调用之后”开始重新累计
→ 之前的推理内容丢失
→ 文本内容从此时开始累计

3. 模型再次调用工具
→ 推理内容再次被重置
→ 上一轮累计的推理内容丢失
→ 上一轮的文本内容也丢失
→ 仅从本次工具调用之后开始累计

---

**Error messages(错误信息)**
没有明确的报错信息,该问题体现在流式返回内容的行为上。

---

**Environment(环境信息)**

- AgentScope-Java Version: 1.0.11
- Java Version: 17
- OS: Windows 10

---

**Additional context(补充说明)**

根据文档描述,`incremental = false` 表示“累计模式(cumulative)”,理论上应该返回完整的历史累积内容。

但当前观察到的行为更像是:累计范围仅限于“每个 tool call 片段内部”,而不是整个流式会话。

目前不确定这是:
- 设计如此(即:按 tool call 分段累计),还是
- 实现上的问题(累计逻辑被错误重置)

希望可以得到确认或说明。

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。