github agentscope-ai/AgentTeams v1.2.1

5 hours ago

Highlights

What's New

  • QwenPaw 2.0 runtime unification: Migrate the Manager container from copaw 1.0.2 to QwenPaw 2.0.1 on a single venv, register projectflow/taskflow/message/filesync tools through a QwenPaw plugin instead of monkey-patching CoPawAgent, replace the physical Matrix channel overlay with the QwenPaw plugin system, read Matrix credentials directly from agent.json so the manager tools work without importing copaw at runtime, align CMS observability packages and env vars with the Worker image, inject session-file privacy policy into prompt files, set approval_level=AUTO in the agent template, bridge YOLO mode to Qwenpaw approval_level=OFF, disable the built-in QA Agent, replace start-copaw-manager.sh with start-qwenpaw-manager.sh, publish the QwenPaw Worker image as part of the stable release set, make task assignment state and Matrix notification atomic with room membership validation and m.mentions delivery, preserve m.mentions metadata in streamed/edit events, make the TeamHarness MCP delegate_task path atomic too (validate assignee room membership — strictly join, not invite — prepare → stable-txn notification → commit assigned + event_id; the initial file publish gates the notification and the assigned/eventId commit gates success, both returning a retryable failure so an idempotent retry finishes the sync instead of reporting success with stale shared storage), and migrate a legacy Worker .copaw working dir to .qwenpaw on the qwenpaw_worker startup path only (idempotent; the migration follows the target runtime — an explicitly configured copaw Worker keeps .copaw and never migrates before a switch).
  • Custom model capability overrides: AGENTTEAMS_MODEL_VISION and AGENTTEAMS_MODEL_REASONING env vars let deployments override vision and reasoning capabilities for custom models not in the built-in presets table (e.g. local multimodal models like qwen3.6-27b-fp8).

Bug Fixes

  • QwenPaw Worker runtime management: Recognize qwenpaw as a valid Worker runtime in Manager guidance and runtime-switch validation, invoke the installed agt CLI for runtime changes, and align Worker CLI help with the Controller's supported runtimes.
  • CoPaw Team Worker resolution: Resolve task assignment Matrix IDs from the Controller-owned runtime.yaml Team roster before falling back to legacy AGENTS.md, so a running Team Leader can delegate after late Team context injection without relying on a stale prompt copy.
  • CoPaw to QwenPaw Worker state migration: Restore Worker storage before creating any QwenPaw directories, migrate and verify both .copaw runtime state and .copaw.secret credentials with legacy state authoritative on conflicts, honor QwenPaw's configured secret directory (including relative paths) while rejecting targets outside persistent Worker storage, rebase migrated workspace metadata to .qwenpaw, persist migrated files before the idempotency marker, and cover a real CoPaw persistence → QwenPaw runtime switch in E2E tests. (#1131)
  • Team deletion idempotency: Verify the target user's current Matrix room membership when Tuwunel returns the ambiguous joined or banned invite error, allowing already-joined members to complete Team cleanup without suppressing real bans.
  • CoPaw Team assignment handoff: taskflow(delegate_task) sends the Worker assignment automatically with m.mentions in the Team Room (atomic pending → prepared → assigned state, stable Matrix txn_id for idempotent retries, normalize Worker aliases from the Team roster, refresh Controller-managed runtime context every minute, and reroute assignment replies from non-Team rooms to the Team Room). (#1120, #1095)
  • Docker Worker ServiceAccount token rotation: Project short-lived tokens into per-Worker Docker volumes, refresh the token file atomically without recreating running Workers, and remove the credential volume with the Worker.
  • Worker port exposure CLI: Encode --expose values as numeric ports and reject invalid or out-of-range inputs before create, update, or apply requests reach the Controller.
  • QwenPaw MCP policy startup convergence: Persist built-in plugin MCP policies before runtime desired-state reloads so a replacement QwenPaw workspace cannot retain the pre-policy interactive approval handler.
  • QwenPaw Team policy and runtime-aware acceptance: Merge Team and Worker channel-policy overrides into QwenPaw runtime.yaml, wait for public plugin/API state before integration assertions, and verify prompt/config files from the runtime location that consumes them.
  • QwenPaw 2.0 tool execution: Preserve QwenPaw's asynchronous tool-result stream while sanitizing output, and allow only the built-in TeamHarness and Workerflow MCP drivers to run without an unavailable interactive approval prompt.
  • QwenPaw package and Team storage access: Preserve referenced members' effective Team name across independent Worker reconciles, update MinIO policies without detaching active Workers, revoke access on detach, and grant Workers read-only access to centrally uploaded AgentSpec packages.
  • QwenPaw inline prompt compatibility: Project Worker identity, SOUL, and AGENTS content through runtime desired state and apply it to both the native QwenPaw workspace and the Worker root storage contract.
  • Integration failure diagnostics: Export AgentTeams container state and timestamped logs with CI artifacts, classify QwenPaw startup errors without exposing their message contents, and stop the TeamHarness shard after startup failures instead of hiding the cause behind cascading timeouts.
  • QwenPaw local startup readiness: Select and propagate the QwenPaw Worker image across install backends, then wait for the runtime-owned runtime/runtime.yaml object before creating a local Docker Worker.
  • QwenPaw 2.0 runtime compatibility: Adapt the QwenPaw Worker image, custom Matrix Channel, and native plugins to QwenPaw 2.0.1 startup and schema contracts.
  • Multimodal model image support: Add supports_multimodal and supports_image to agents.defaults in generated openclaw.json when the selected model supports image input, so QwenPaw does not strip images at the framework layer. Fixes #931.
  • Install script model env passthrough: Pass custom model override env vars to the Controller container so that AGENTTEAMS_MODEL_VISION and related settings actually reach the config generator.
  • Bridge model capability propagation: Propagate model input modalities from openclaw.json through _write_providers_json() so QwenPaw's ModelInfo receives supports_image/supports_video/supports_multimodal flags instead of relying on fail-open defaults.
  • 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)

新增功能

  • QwenPaw 2.0 运行时统一:Manager 迁移到 QwenPaw 2.0.1 和原生插件体系,正式发布 QwenPaw Worker 多架构镜像,并完善任务分配原子性、TeamHarness 委派、Matrix mention、运行时策略与 CoPaw 状态迁移。
  • 自定义模型能力覆盖:可通过 AGENTTEAMS_MODEL_VISIONAGENTTEAMS_MODEL_REASONING 为内置预设表之外的模型显式声明视觉与推理能力。

Bug 修复

  • QwenPaw Worker 运行时管理:在 Manager 指引和运行时切换校验中将 qwenpaw 识别为合法 Worker runtime,切换时调用镜像内实际安装的 agt CLI,并使 Worker CLI 帮助与 Controller 实际支持的运行时保持一致。
  • CoPaw Team Worker 解析:任务分配优先从 Controller 管理的 runtime.yaml Team roster 获取 Matrix ID,仅在旧部署缺少该 roster 时回退 AGENTS.md,避免运行中的 Team Leader 因 prompt 副本过期而无法委派任务。
  • CoPaw 到 QwenPaw Worker 状态迁移:在创建任何 QwenPaw 目录前先恢复 Worker 存储,迁移并校验 .copaw 运行时状态和 .copaw.secret 凭据,冲突时以旧 CoPaw 状态为准,遵循 QwenPaw 配置的 secret 目录(包括相对路径)并拒绝持久化 Worker 目录之外的目标,将工作区元数据改写到 .qwenpaw,先持久化迁移数据再写入幂等标记,并增加真实 CoPaw 持久化后切换 QwenPaw 的 E2E 覆盖。(#1131)
  • Team 删除幂等性:当 Tuwunel 返回含义不明确的 joined or banned 邀请错误时,核验目标用户当前的 Matrix Room 成员状态,使已加入成员能够继续完成 Team 清理,同时不吞掉真实的封禁错误。
  • CoPaw Team 任务分配交接:由 taskflow(delegate_task) 返回必须执行的 Team Room message 动作,根据 Team roster 规范化 Worker 别名,每分钟刷新 Controller 管理的运行时上下文,并将非 Team Room 中的任务分配回复重定向到 Team Room。(#1120)
  • Worker 端口暴露 CLI:将 --expose 参数编码为数值端口,并在创建、更新或应用请求到达 Controller 前拒绝无效或越界输入。
  • Manager 诊断循环:Manager 提示和 Worker 生命周期指引会停止重复执行无效果的排障命令,并以 agt get workers 不再列出目标 Worker 作为删除完成边界,避免继续循环探测 Matrix Room。(#975)

Change list / 变更列表

  • a6c98182 fix(manager): stop repeated diagnostic loops (#975)
  • fb3a40be feat(qwenpaw): adapt worker runtime to QwenPaw 2.0 (#1077)
  • ce3a4770 fix(install): skip QwenPaw pull and update dashboard default (#1115)
  • 99131d6e chore: update default dashboard version to v1.2.0 (#1118)
  • 47c8f284 chore: archive changelog for v1.2.0 (#1112)
  • 1145f796 docs: add v1.2.0 release news (#1121)
  • 00a5d20c fix(cli): encode exposed Worker ports as integers (#1123)
  • ba161a85 fix(controller): rotate Docker Worker ServiceAccount token files (#1120)
  • 2ea02740 fix(controller): enable multimodal for custom models with env override + openclaw.json injection (#1103)
  • 124f06d1 feat(manager): migrate Manager runtime from copaw to qwenpaw 2.0 (#1095)
  • 2fd9ddde fix(qwenpaw): preserve CoPaw state during runtime migration (#1131)
  • 062f1c8d fix(controller): make Team deletion invite idempotent (#1140)

Also in this window / 同期其他变更

  • Update the bundled Dashboard default to v1.2.0 and publish the v1.2.0 release news. (#1118, #1121)
  • Archive the v1.2.0 changelog before collecting the v1.2.1 release window. (#1112)

Docker Images

Multi-architecture images (amd64 + arm64):

# Embedded all-in-one (infra + controller; pulled by the installer)
docker pull higress-registry.cn-hangzhou.cr.aliyuncs.com/agentteams/agentteams-embedded:v1.2.1

# Manager (lightweight; spawned by the embedded controller)
docker pull higress-registry.cn-hangzhou.cr.aliyuncs.com/agentteams/agentteams-manager:v1.2.1

# Worker
docker pull higress-registry.cn-hangzhou.cr.aliyuncs.com/agentteams/agentteams-worker:v1.2.1

# QwenPaw Worker
docker pull higress-registry.cn-hangzhou.cr.aliyuncs.com/agentteams/agentteams-qwenpaw-worker:v1.2.1

# Controller (used standalone in k8s; bundled inside agentteams-embedded for docker installs)
docker pull higress-registry.cn-hangzhou.cr.aliyuncs.com/agentteams/agentteams-controller:v1.2.1

Quick Start

Latest stable (v1.2.1)

macOS / Linux

bash <(curl -fsSL https://raw.githubusercontent.com/agentscope-ai/AgentTeams/v1.2.1/install/agentteams-install.sh)

Windows (PowerShell 7+)

Set-ExecutionPolicy Bypass -Scope Process -Force; $wc=New-Object Net.WebClient; $wc.Encoding=[Text.Encoding]::UTF8; iex $wc.DownloadString('https://raw.githubusercontent.com/agentscope-ai/AgentTeams/v1.2.1/install/agentteams-install.ps1')

Documentation

For more details, see the installation guide.


What's Changed

New Contributors

Full Changelog: v1.2.0...v1.2.1

Don't miss a new AgentTeams release

NewReleases is sending notifications on new releases.