diff --git a/changelog/current.md b/changelog/current.md index b50bbc4cc..00f8f505c 100644 --- a/changelog/current.md +++ b/changelog/current.md @@ -20,6 +20,7 @@ Record release-facing changes here before the next release. **Bug Fixes** - **Worker storage sync I/O amplification**: Upload changed workspace files once per successful watermark, keep jq 1.7 fallback pulls alive, and limit embedded Controller mirrors to control-plane configuration. Concurrent Worker creation and large unknown workspace paths retain their existing persistence semantics without repeated whole-workspace mirrors. ([#1110](https://github.com/agentscope-ai/AgentTeams/pull/1110)) +- **Manager diagnostic loops**: Manager prompts and Worker lifecycle guidance stop repeated no-op troubleshooting commands and treat a missing Worker in `agt get workers` as the deletion boundary instead of looping on Matrix room probes. ([#975](https://github.com/agentscope-ai/AgentTeams/pull/975)) - **CoPaw Team routing and workspace projection**: Route Team Leader assignments to the Team Room, including localpart mentions, and project Worker prompts, skills, tool configuration, and Matrix settings into CoPaw's default workspace. ([#1060](https://github.com/agentscope-ai/AgentTeams/pull/1060), [9074def](https://github.com/agentscope-ai/AgentTeams/commit/9074def3), [973e291](https://github.com/agentscope-ai/AgentTeams/commit/973e291), [92c8145](https://github.com/agentscope-ai/AgentTeams/commit/92c8145)) - **Team room and Worker lifecycle convergence**: Keep referenced Worker CRs protected, enforce required Team roles, remove Manager from regular Team Worker personal rooms, and restore standalone membership when a Worker leaves a Team. ([d96f1ed](https://github.com/agentscope-ai/AgentTeams/commit/d96f1ed), [43545c2](https://github.com/agentscope-ai/AgentTeams/commit/43545c2), [b5b0add](https://github.com/agentscope-ai/AgentTeams/commit/b5b0add), [a5d6435](https://github.com/agentscope-ai/AgentTeams/commit/a5d6435)) - **Pre-v1.2 installer compatibility**: Select the legacy environment contract and storage prefix for v1.1.2 images while keeping the canonical AgentTeams contract for v1.2.0 and newer images. Custom version input such as `1.2.0.beta.1` is normalized to the published tag form. ([#1079](https://github.com/agentscope-ai/AgentTeams/pull/1079), [#1100](https://github.com/agentscope-ai/AgentTeams/pull/1100)) @@ -40,6 +41,7 @@ Record release-facing changes here before the next release. **Bug 修复** - **Worker 存储同步 I/O 放大**:基于成功 watermark 只上传变化文件,保持 jq 1.7 fallback pull 存活,并将 embedded Controller mirror 限定为控制面配置。并发创建 Worker 和未知工作目录仍保持原有持久化语义,不再反复执行全量 workspace mirror。([#1110](https://github.com/agentscope-ai/AgentTeams/pull/1110)) +- **Manager 诊断循环**:Manager 提示和 Worker 生命周期指引会停止重复执行无效果的排障命令,并以 `agt get workers` 不再列出目标 Worker 作为删除完成边界,避免继续循环探测 Matrix Room。([#975](https://github.com/agentscope-ai/AgentTeams/pull/975)) - **CoPaw Team 路由与 workspace 投影**:将 Team Leader 分配(包括 localpart mention)路由到 Team Room,并把 Worker prompt、skills、工具配置和 Matrix 设置投影到 CoPaw 默认 workspace。([#1060](https://github.com/agentscope-ai/AgentTeams/pull/1060), [9074def](https://github.com/agentscope-ai/AgentTeams/commit/9074def3), [973e291](https://github.com/agentscope-ai/AgentTeams/commit/973e291), [92c8145](https://github.com/agentscope-ai/AgentTeams/commit/92c8145)) - **Team Room 与 Worker 生命周期收敛**:保护被引用的 Worker CR,强制校验 Team 必填角色,将 Manager 移出普通 Team Worker 的个人房间,并在 Worker 离开 Team 后恢复 standalone 成员关系。([d96f1ed](https://github.com/agentscope-ai/AgentTeams/commit/d96f1ed), [43545c2](https://github.com/agentscope-ai/AgentTeams/commit/43545c2), [b5b0add](https://github.com/agentscope-ai/AgentTeams/commit/b5b0add), [a5d6435](https://github.com/agentscope-ai/AgentTeams/commit/a5d6435)) - **v1.2 之前镜像的安装兼容**:v1.1.2 镜像使用旧环境变量契约和存储前缀,v1.2.0 及更新镜像使用 AgentTeams 契约;`1.2.0.beta.1` 等自定义输入会规范化为已发布的 Tag 格式。([#1079](https://github.com/agentscope-ai/AgentTeams/pull/1079), [#1100](https://github.com/agentscope-ai/AgentTeams/pull/1100)) @@ -76,6 +78,7 @@ Record release-facing changes here before the next release. - `7ba2efba` docs: update AgentLoop link in Chinese README (#1108) - `5aec8d96` docs: update AgentLoop link in English README (#1109) - `45fd4db2` fix: remove Worker storage sync I/O amplification (#1110) +- `90c9fd4f` fix(manager): stop repeated diagnostic loops (#975) **Also in this window / 同期其他变更** diff --git a/manager/agent/AGENTS.md b/manager/agent/AGENTS.md index 3a87f4e8b..9ff063c83 100644 --- a/manager/agent/AGENTS.md +++ b/manager/agent/AGENTS.md @@ -57,6 +57,8 @@ When `YOLO_ON`: the admin has delegated full authority to you and is **unreachab - **NO_REPLY is a standalone complete response** — never append it to a message with content, or the content is silently dropped - **Noisy @mentions cause infinite loops** — if your message doesn't require the recipient to *do* something, don't @mention them (no thanks, confirmations, farewells) - **Mirror loop safeguard** — if 2+ rounds of @mentions exchanged with no new task/question/decision, stop replying immediately +- **Diagnostic loop safeguard** — never run the same troubleshooting command more than twice in one turn. If a command returns no output, the same output, or a malformed/partial command error twice, stop running tools and report the current confirmed state plus the unresolved uncertainty. +- **Worker deletion is complete when `agt get workers` no longer lists it** — do not keep probing Matrix rooms with `copaw channels list` or ad hoc room cleanup after deletion. Matrix room remnants visible in a client can be cache/history; tell the admin the Worker is gone and, if needed, leave the stale room from the client UI. - **Never run heartbeat from a Worker message** — heartbeat polls come from the OpenClaw runtime, not from Workers. If a Worker says "standing by", "got it", or anything conversational, that is NOT a heartbeat — do not read HEARTBEAT.md or run any checklist in response - **Worker 30-minute timeout** — Workers may be processing complex tasks; don't assume unresponsive too early - **Host files need explicit authorization** — never scan/search/read host files without admin permission diff --git a/manager/agent/copaw-manager-agent/AGENTS.md b/manager/agent/copaw-manager-agent/AGENTS.md index 910c05490..73f100cdc 100644 --- a/manager/agent/copaw-manager-agent/AGENTS.md +++ b/manager/agent/copaw-manager-agent/AGENTS.md @@ -58,6 +58,8 @@ When `YOLO_ON`: the admin has delegated full authority to you and is **unreachab - **NO_REPLY is a standalone complete response** — never append it to a message with content, or the content is silently dropped - **Noisy @mentions cause infinite loops** — if your message doesn't require the recipient to *do* something, don't @mention them (no thanks, confirmations, farewells) - **Mirror loop safeguard** — if 2+ rounds of @mentions exchanged with no new task/question/decision, stop replying immediately +- **Diagnostic loop safeguard** — never run the same troubleshooting command more than twice in one turn. If a command returns no output, the same output, or a malformed/partial command error twice, stop running tools and report the current confirmed state plus the unresolved uncertainty. +- **Worker deletion is complete when `agt get workers` no longer lists it** — do not keep probing Matrix rooms with `copaw channels list` or ad hoc room cleanup after deletion. Matrix room remnants visible in a client can be cache/history; tell the admin the Worker is gone and, if needed, leave the stale room from the client UI. - **Never run heartbeat from a Worker message** — heartbeat polls come from the CoPaw runtime, not from Workers. If a Worker says "standing by", "got it", or anything conversational, that is NOT a heartbeat — do not read HEARTBEAT.md or run any checklist in response - **Worker 30-minute timeout** — Workers may be processing complex tasks; don't assume unresponsive too early - **Host files need explicit authorization** — never scan/search/read host files without admin permission diff --git a/manager/agent/skills/worker-management/SKILL.md b/manager/agent/skills/worker-management/SKILL.md index c8ab815e6..ed2d53ecd 100644 --- a/manager/agent/skills/worker-management/SKILL.md +++ b/manager/agent/skills/worker-management/SKILL.md @@ -59,6 +59,7 @@ agt create worker --name --no-wait \ - **`file-sync`, `task-progress`, `project-participation` are default skills** — always included, cannot be removed - **Use `agentteams-find-worker` only for Nacos-backed market imports or Worker discovery during task assignment** — generic Worker creation and lifecycle changes stay in this skill - **Peer mentions cause loops if not briefed** — after enabling, explicitly tell Workers to only @mention peers for blocking info, never for acknowledgments +- **Stop repeated diagnostics** — if the same lifecycle/status command returns empty, identical, or malformed output twice, stop and report what is known. Do not keep retrying `copaw channels list` or similar room probes after Worker deletion. - **Always notify Workers to `file-sync` after writing files they need** — the 5-minute periodic sync is fallback only - **Workers are stateless** — all state is in centralized storage. Reset = recreate config files - **Matrix accounts persist in Tuwunel** (cannot be deleted via API) — reuse same username on reset diff --git a/manager/agent/skills/worker-management/references/lifecycle.md b/manager/agent/skills/worker-management/references/lifecycle.md index 58f04743f..652a87d50 100644 --- a/manager/agent/skills/worker-management/references/lifecycle.md +++ b/manager/agent/skills/worker-management/references/lifecycle.md @@ -22,6 +22,18 @@ bash /opt/agentteams/agent/skills/worker-management/scripts/lifecycle-worker.sh bash /opt/agentteams/agent/skills/worker-management/scripts/lifecycle-worker.sh --action delete --worker ``` +## Delete Completion Boundary + +After a delete, verify with one `agt get workers` or `agt get workers -o json`. +If the target Worker is absent, the deletion task is complete. Do not continue +probing Matrix room lists or trying ad hoc room cleanup commands. A room that is +still visible in Element/Matrix after the Worker is gone is usually client +history or cache; tell the admin to leave/hide it from the client UI if needed. + +If verification is inconclusive, retry the same diagnostic command at most once. +After two empty, identical, or malformed results, stop running tools and report +the confirmed state instead of continuing a loop. + ## start vs create | Situation | Command |