agentscope-ai / agentscope-ai/QwenPaw

[Question]: assistant stuck showing only “Thinking” after tool_result until later user turns (thinking-only step, no visible text)

オープン
#4,367 コメント 3 件 リアクション 0 件 担当者 1 名 @qbc2016 が担当を希望しています GitHub で見る
question
主要言語
Python
スター
34.9k
フォーク
3.1k
平均マージ
1日 15時間
マージ済み PR(30日)
225

説明

### Summary

When chatting via the **Console** channel, several consecutive **user** messages appear to show only **Thinking** (reasoning stream) without a user-visible **answer**, until a later message finally receives a normal **text** reply.

Persisted session state shows **assistant** messages whose `content` is **`thinking` only** (no `text` block) immediately **after** a **`tool_result`** following **`memory_search`** (and similar tool chains). Earlier user turns never get a closing **`text`** answer in memory until the user sends another message or the model eventually emits **`thinking` + `text`**.

This looks like an interaction between **ReAct iteration boundaries**, **thinking/reasoning vs `content` streaming**, and **Console UX**, not `filter_thinking` on IM channels (we use `filter_thinking: false` on console).

### Environment

- **QwenPaw**: `1.1.4.post2`
- **Channel**: Console (direct HTTP/UI to pod)
- **Backend LLM**: e.g. **vLLM**, model **`qwen3.5:9b`** (thinking-capable stack)
- **OS**: Linux container (Debian-based image), supervised app on `:18789`

### Steps to reproduce

1. Start a **new** chat session on Console.
2. Send short trivial prompts (e.g. `"1"`, `"111"`, `"12345"`) or any prompt that triggers **`memory_search`** early (assistant often emits short text like “Searching memory for relevant context…” plus **`tool_use`**).
3. Observe the UI: after **`tool_result`**, the next assistant segment may show **only Thinking** with **no final visible reply text** for that user turn.
4. Inspect persisted session file under `workspaces//sessions/*.json` → `agent.memory.content`.

### Expected behavior

After every **`tool_result`**, the next assistant step should include **at least one user-visible `text`** fragment (even a one-line summary), or the Console should not treat **thinking-only** assistant chunks as the sole visible outcome for that user message.

### Actual behavior

- Session memory can contain sequences like:
- `user` → `assistant` (`text` + `tool_use`) → `system` (`tool_result`) → **`assistant` (`thinking` only, no `text`)** → next `user` …
- Logs may still show `console stream done: ... has_response=True` for those turns, while the **stored** transcript lacks a closing **`text`** answer for the first user message(s).

### Evidence (sanitized)

Image

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。