## Bug 详情 Agent Team 在 CoStrict 环境下可能出现子代理无法执行、完成后主代理持续 Idle、shutdown 后 TeamDelete 被阻塞,以及 TeamCreate 参数错误时抛出 name.replace 深层异常。 ## 根因 - Team teammate 默认模型路径未复用普通 subagent 的 CoStrict 继承逻辑,未配置 teammateDefaultModel 时会回退到 CoStrict 不可用的 claude-opus-4-6。 - in-process teammate 的 AsyncLocalStorage 上下文可能影响 team lead 的 inbox polling 身份判断。 - SendMessage 收到字符串形式的 shutdown_response JSON 时按普通消息转发,未进入 shutdown approval 分支。 - ExecuteExtraTool 调用 deferred tool 前未执行目标工具 validateInput,错误参数会绕过入口校验进入目标工具内部。 ## 修复方案 - 将 teammate 模型解析集中到 teammateModel,并在 CoStrict 默认场景继承 leader model。 - 抽出 inbox poller 身份判断,基于 AppState 识别 team lead polling。 - 兼容字符串 JSON 协议响应,将 shutdown_response / plan_approval_response 路由到结构化处理逻辑。 - ExecuteExtraTool 在权限检查和实际执行前调用目标工具 validateInput。 ## 变更要点 - 新增 teammate 模型解析和 CoStrict 继承测试。 - 新增 inbox poller identity helper 和 in-process 上下文回归测试。 - 新增 SendMessage 字符串 shutdown_response 回归测试。 - 新增 ExecuteExtraTool 目标工具校验回归测试。 ## 自测 - bun test packages/builtin-tools/src/tools/ExecuteTool/__tests__/ExecuteTool.test.ts - bun test packages/builtin-tools/src/tools/SendMessageTool/__tests__/udsRecipientSanitization.test.ts src/utils/swarm/__tests__/teammateModel.test.ts src/hooks/__tests__/useInboxPoller.test.ts - bunx biome check 相关变更文件 - 变更文件相关 tsc 过滤检查无输出 |
||
|---|---|---|
| .. | ||
| src | ||
| package.json | ||
| tsconfig.json | ||