plan_approval_response 不会唤醒 idle teammate
Los mantenedores suelen responder en 8 días
Nadie ha tomado este issue todavía.
- #499 de @osyven — cerrado sin fusionar
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 72/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Tranquilo
- Stack tecnológico
- python
- Área
- ai, backend-api-design
Línea de trabajo
Lee el idle loop y handle_inbox_message() en s16_team_protocols/code.py y, después, reproduce el flujo de submit_plan y review_plan descrito en el issue. Se considera terminado cuando un plan_approval_response despierta al compañero de equipo, vuelve al bucle externo y le permite llamar de nuevo al LLM sin añadir un mensaje de resultado de herramienta vacío.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
问题
在 s16_team_protocols/code.py 中,teammate 的 run()进入 idle loop 后,如果收到 plan_approval_response,只会把审批结果追加到 messages,但不会跳出 idle loop。
结果是:Lead 调用 review_plan() 批准或拒绝计划后,teammate 不会立刻继续执行。它会继续等待下一条消息,除非Lead 额外发送一条普通 message。
复现流程
- Lead spawn 一个 teammate。
- teammate 调用
submit_plan。 - Lead 调用
review_plan(request_id, approve=True)。 - teammate 收到
plan_approval_response。 - teammate 将
[Plan approved] Proceed with the task.
写入messages。 - teammate 继续停留在 idle loop,不会重新调用 LLM。
原因
idle loop 中只有两种情况会跳出:
if shutdown_requested:
break
if non_protocol:
...
break
但 plan_approval_response 属于 protocol message:
if msg.get("type") in ("shutdown_request",
"plan_approval_response"):
should_stop = handle_inbox_message(name, msg, messages)
handle_inbox_message() 处理 plan_approval_response 后返回False,因此:
shutdown_requested == False
non_protocol == []
最终不会触发 break。
影响
plan_approval_response 被记录到了上下文,但没有唤醒teammate。
这会导致 plan approval 协议流卡住:
submit_plan
-> Lead review_plan approve
-> teammate receives approval
-> teammate remains idle
期望行为
收到 plan_approval_response 后,teammate 应该跳出 idle loop,回到外层 while,重新调用 LLM,让模型基于批准或拒绝结果继续行动。
可能修复
让 handle_inbox_message() 对 plan_approval_response 返回一个“需要继续执行”的信号,或者在 idle loop 中单独处理:
if msg.get("type") == "plan_approval_response":
handle_inbox_message(name, msg, messages)
should_resume = True
然后:
if should_resume:
break
同时建议避免 idle loop 跳出后继续追加空的 tool_resultuser message。当前代码在非 tool_use 响应后仍可能执行到:
messages.append({"role": "user", "content": results})
其中 results 可能是空列表。
- Lenguaje dominante
- Python
- Estrellas
- 79.5k
- Forks
- 12.7k
- Merge medio
- 7 d 17 h
- PR fusionados (30 d)
- 4
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de shareAI-lab/learn-claude-code
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
shareAI-lab/learn-claude-code#608 ·
Los mantenedores suelen responder en 8 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
shareAI-lab/learn-claude-code#583 ·
Los mantenedores suelen responder en 8 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
shareAI-lab/learn-claude-code#528 ·
Los mantenedores suelen responder en 8 días
-
s17: IDLE teammates cannot resume their own in-progress tasksPosiblemente ocupada @hichipli la tomó hace 63 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
shareAI-lab/learn-claude-code#519 ·
Los mantenedores suelen responder en 8 días
-
s09: select_relevant_memories 的 "recent" 拼接顺序与切片不合理,不是真正的最近 2k 上下文Posiblemente ocupada @siri666942 la tomó hace 80 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
shareAI-lab/learn-claude-code#517 ·
Los mantenedores suelen responder en 8 días
Todos los issues de shareAI-lab/learn-claude-code
Issues similares
-
URLValidator ignores an explicit empty scheme allowlistPosiblemente ocupada @IlyaKhalafi la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
tortoise/tortoise-orm#2393 ·
Los mantenedores suelen responder en 2 días
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
frappe/frappe_docker#2046 ·
Los mantenedores suelen responder en 1 día
-
Weekly link check failedAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
-
complete_box_iou_loss / complete_box_iou: NaN gradients for zero-height boxes, NaN for point boxesAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día
-
AXI SMU SPEC
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
tenstorrent/tt-oca-harness#3556 ·
Los mantenedores suelen responder en 1 día