agentscope-ai / agentscope-ai/agentscope-java

[Bug]:Fail to continue Human-in-the-Loop

Đang mở
#466 5 bình luận 0 reaction 0 người được giao Xem trên GitHub
area/core/agent enhancement
Ngôn ngữ chính
Java
Star
5.6k
Fork
1.3k
Merge trung bình
4 ngày 12 giờ
Pull request đã merge (30 ngày)
77

Mô tả

**Describe the bug**

While testing the "Human-in-the-Loop" example, I encountered two issues when asking an unrelated question instead of responding to the human confirmation prompt:
1. The system still executes the pending (dangerous) tool despite no explicit user confirmation.
2. When using the Dashscope model, this scenario triggers an error.

**To Reproduce**

1. Modify the example by marking the get_time tool as a "dangerous tool" (i.e., requiring Human-in-the-Loop confirmation).
2. In the first conversation turn, ask: "What time is it now?" — this triggers the tool and pauses for human confirmation.
3. In the second turn, instead of confirming or rejecting, send an unrelated message such as: "Hello."
4. Observe that the tool is still executed, and an error occurs if the Dashscope model is in use.

Image

The memory is as follow:

```jsonl
{"id":"ec3ae4f1-1f05-4692-8033-a584fe984870","name":"User","role":"USER","content":[{"type":"text","text":"现在几点了"}],"metadata":{},"timestamp":"2026-01-07 15:35:01.258"}
{"id":"949120c2-e3b5-425a-9d1b-bfcc561e816b","name":"Assistant","role":"ASSISTANT","content":[{"type":"tool_use","id":"call_68fb4655bd26456a8fdb950c","name":"get_time","input":{},"metadata":{},"content":"{}"}],"metadata":{"_chat_usage":{"inputTokens":641,"outputTokens":11,"time":1.095,"totalTokens":652}},"timestamp":"2026-01-07 15:35:02.884"}
{"id":"2aba2d4c-1f99-4e84-9da1-3d71f6af3860","name":"User","role":"USER","content":[{"type":"text","text":"你好啊"}],"metadata":{},"timestamp":"2026-01-07 15:35:12.136"}
{"id":"97e20709-5b23-48ef-a15a-b0c200ebf6aa","name":"Assistant","role":"TOOL","content":[{"type":"tool_result","id":"call_68fb4655bd26456a8fdb950c","name":"get_time","output":[{"type":"text","text":"Current time: 2026-01-07 15:35:12"}],"metadata":{}}],"metadata":{},"timestamp":"2026-01-07 15:35:12.510"}
```

**Expected behavior**

- The system should not execute the pending tool unless the user explicitly confirms it. If the user sends an unrelated message during the Human-in-the-Loop confirmation phase (e.g., asking a different question), the agent should either continue waiting for a valid confirmation/rejection or handle the new query appropriately—without proceeding with the original tool call.
- When using the Dashscope large language model, this scenario should not trigger any error. Otherwise, the entire conversation session may become unrecoverable and unable to function correctly afterward. But this doesn't seem to be AgentScope's responsibility—it likely falls under DashScope's domain. I tried using a model from Volcengine Ark (e.g., doubao-seed-1-6-251015), and it worked without issues. From another perspective, perhaps the system should be designed to gracefully handle (or be compatible with) such scenarios instead.

**Error messages**

```text
Error: DashScope API error: <400> InternalError.Algo.InvalidParameter: An assistant message with "tool_calls" must be followed by tool messages responding to each "tool_call_id". The following tool_call_ids did not have response messages: message[3].role
```

**Environment (please complete the following information):**

- AgentScope-Java Version: 1.0.6
- Java Version: 17.0.8
- OS: macOS Tahoe(26.2)

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.