agentscope-ai / agentscope-ai/QwenPaw

[Bug]: 调用多个子agent执行任务时,多次陷入死循环

Aperta
#6,927 1 commento 0 reazioni 2 assegnatari Rivendicata da @XiuShenAl Vedi su GitHub
bug
Lingua principale
TypeScript
Stelle
35k
Fork
3.1k
Merge medio
1g 13h
PR unite (30g)
228

Descrizione

## QwenPaw Version

2.1 beta3,Windows11

## Description

调用多子agent执行任务时,多次陷入死循环。

## Steps to Reproduce

The user is saying ALL negotiation memos (not just A律所) need updating too, since the DATA.md changes affect the optimal item comparisons in every memo.

Let me check which memos reference 1.2 and A律所's pricing:

对,A律所 1.2 全面翻盘后,其他 6 家的[NEG-MEMO]里涉及 1.2 [OPTIMAL]项对比的部分全变了。先看哪些家受影响。

The grep only found hits in the A律所 memo itself (which was already regenerated). The other memos don't directly reference "排除A律所异常值" or "[AMT][OPTIMAL]" because they focus on their own firm's position.

But the issue is deeper: when other firms' memos discuss 1.2, they compare to the market leader. Previously the market leader was F律所 at [AMT]. Now it's A律所 at [AMT]. So sections like:
- "您在 1.2 的价格 vs [OPTIMAL]价格的差距"
- "[OPTIMAL]项总览中 1.2 各项"
- Cross-references to A律所's 1.2 pricing

All need to be checked. Let me search more broadly for 1.2 references in all memos.

The search pattern might not match because the .docx files don't use grep_search well. Let me try reading the md files. But wait, only A律所 has an .md file - the others are only .docx.

Let me extract the 1.2-related sections from each docx using python.

旧的建议只有 docx,需逐份提取 1.2 相关内容来看。

响应

Now I can see the full picture. Here are all the affected memos and their 1.2 sections:

**B律所:**
- T14R2: "1.2 [SOLO-ENGAGE]F律所(28.5 万全包)" → should be A律所 [AMT]

**G律所:**
- P5: "1.2 [LEGAL-SVC] 39 万居中" — this is factual and OK (just describes G律所's own price)
- P36: Section content needs checking
- T1R2: "[AMT] vs [OPTIMAL] [AMT](+[PCT])" → should be "vs [OPTIMAL] [AMT](A律所)" — gap is now much larger (+[PCT])

**F律所:**
- T1R2: "第 1/7 | 无([OPTIMAL])" → should be "第 2/7" since A律所 is now optimal at [AMT]
- T15R3: "接受 [AMT] + 锁定[DATA-EXPORT]上限" — needs review
- T19R1: "三个标的均为[OPTIMAL]或并列[OPTIMAL]" → 1.2 is no longer optimal for F律所

**D律所:**
- T1R2: "[AMT] vs [OPTIMAL] [AMT](+[PCT])" → should be "vs [OPTIMAL] [AMT]" — gap becomes +[PCT]
- T14R1: "[MODULE-TOTAL] >[AMT]" → needs review

**E律所:**
- T1R2: "[AMT] vs [OPTIMAL] [AMT](+[PCT])" → should be "vs [OPTIMAL] [AMT]"

**C律所:**
- T2R4: "1.2 [RANGE-QUOTE]锁定为[FIXED-PRICE]" — needs review
- T14R1-R2: Decision scenarios need updating
- T27R3: Cross-standard exchange discussion

All these memos need updating. The optimal 1.2 reference changed from F律所 [AMT] to A律所 [AMT], which means:
- Gap percentages are much larger for most firms
- F律所 is no longer "[OPTIMAL]" in 1.2
- The bargaining leverage shifts dramatically

The best approach is to regenerate all 6 remaining memos using subagents in parallel. Let me use batch spawn.

Actually, let me think about this. The negotiation memos are complex documents with many cross-references. The DATA.md has been updated. If I spawn subagents using the shuyun-negotiation-memo skill, they should pick up the updated DATA.md and generate correct memos.

Let me do a batch spawn for all 6 firms.

6 份都受影响——「[OPTIMAL] [AMT](F律所)」需全部改为「[OPTIMAL] [AMT](A律所)」,差距比例全部翻盘。批量重新生成。

The batch mode requires 'task' as the key, not inside each item. Let me check the format. The docs say: "Each dict must contain a `task` key; optional keys: `fork`, `timeout`, `allowed_tools`, `skills`". But I put `task` inside each dict. Let me try again.

Actually looking at the error, it says `'task' is a required property` - but it seems to be expecting `task` at the top level as well? Let me look at the tool signature again:

```
"batch": {"anyOf": [{"items": {"type": "object"}, "type": "array"}, {"type": "string"}], "default": null, "description": "List of task specs for batch mode. When provided, ``task`` must be an empty string. Each dict must contain a ``task`` key; ..."},
"task": {"description": "Description of the sub-task. This becomes the sole user message in the subagent's conversation. Always required by the signature; pass an empty string when using ``batch``.", "type": "string"},
```

So when using batch mode, `task` must be an empty string. And each item in batch must have a `task` key. Let me fix this.

Good, 3 tasks submitted. Let me submit the remaining 3 (D律所, E律所, C律所) and then wait for all 6 to complete.

B律所/G律所/F律所已提交。继续提交D律所/E律所/C律所。

6 tasks submitted. Let me wait 60 seconds and then check.

6 份全部提交。等 60 秒后轮询。

Can't use timeout with redirect. Let me just wait a bit and check without sleep.

Still running. Let me check all 6 and wait longer.

Wait 30+ seconds then check all 6.

Still running. Let me wait another 30+ seconds.

Doom loop: agent stuck after 4 consecutive repetitions

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

No source file or test is named. Start by reproducing the multiple-subagent batch-spawn workflow described in the issue on QwenPaw 2.1 beta3 with Windows 11, then inspect the execution and waiting logs around the repeated polling steps. Done means the multi-agent task completes without entering the reported repetition loop.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
python
Ambito
ai, tooling
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Tranquilla
Chiarezza
Da chiarire
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.