packages/core · multi-agent coordination
消除 send_message 的双路由歧义
修复 Qwen Code 多智能体消息工具中的路由歧义,避免指令静默进入错误的 Agent 寻址域,并让误填的 teammate 目标得到可执行的纠错提示。
- Issue
- #10073
- Pull Request
- #10083
- Commit
- 180bd4503c
- 所属模块
- packages/core · multi-agent coordination
技术问题
send_message 使用 `to` 寻址 teammate,使用 `task_id` 寻址后台 Agent。两个字段原本都可选,同时出现时执行路径会静默优先 `task_id`;如果把 teammate 名称误填到 `task_id`,系统也只返回普通的后台任务不存在错误。
解决方案
在 invocation 创建前增加运行时互斥校验;后台任务未命中时,复用项目已有的 teammate 名称匹配逻辑,提示规范的 `to` 写法。同时保持 provider-facing schema 和机器可读错误契约不变。
为什么这样设计
没有使用 JSON Schema `oneOf`,因为项目已经记录部分 provider 对顶层 schema 组合不兼容。把校验放在两条投递路径之前,也能保证歧义请求不会产生任何投递副作用。
验证证据
- 01
send-message 聚焦测试 23/23 通过,并保留两个问题场景先红后绿的回归证据。
- 02
歧义输入测试同时断言 INVALID_TOOL_PARAMS、后台队列为空、teammate 发送函数未调用,验证的是零副作用而不只是错误文案。
- 03
目标 lint、格式化、diff 检查、安装、构建和类型检查通过;Windows 全量 preflight 存在无关的平台与超时失败,因此不宣称全仓测试全部通过。
上游进度
- 本地验证
聚焦测试 23/23
- 自动分诊
无代码 blocker
- 正式 CI
等待 workflow 授权
- 维护者审查
尚待 Review
- 合并
尚未合并