feat(a2a): server-side delegation policy — role-locked coding-executor agents cannot delegate #2127

Closed
opened 2026-06-02 17:34:47 +00:00 by devops-engineer · 1 comment
Member

Defense-in-depth governance control (CTO-requested 2026-06-02).

Problem: cheap-model dev agents locked to role "Coding Executor" (Kimi 6cb8c061, MiniMax 0c96b3ab in agents-team) must NOT delegate. Prompt/role-level constraints were demonstrably bypassed — Kimi delegated to a (muted) MiniMax by going direct to its workspace_id, bypassing the PM. Need server-side capability removal, not just a prompt rule.

Requirement:

  • Add a per-workspace can_delegate capability (default true), settable via the workspace abilities/PATCH API and persisted.
  • The A2A delegation path (delegate_task / delegate_task_async, message/send) MUST reject (403 + clear error) any delegation initiated by a workspace with can_delegate=false.
  • The molecule MCP should hide/disable delegate_task + delegate_task_async for such workspaces (agent never sees the tools).
  • Keep reply_to_workspace, check_task_status, list_peers, get_workspace_info, and memory tools available (report-only).
  • Set can_delegate=false for Kimi + MiniMax.

Test: a can_delegate=false workspace’s delegate_task → 403; reply_to_workspace still works.
Acceptance: role-locked coding executors physically cannot delegate even if prompted/jailbroken.

Context: interim controls already live (roles relabeled to coding-only; PM disregards any dev-agent judgment/delegation; MiniMax mute converted to role-lock). This issue is the durable, ironclad layer. Routine SOP gate; tier = governance/infra.

**Defense-in-depth governance control (CTO-requested 2026-06-02).** **Problem:** cheap-model dev agents locked to role "Coding Executor" (Kimi `6cb8c061`, MiniMax `0c96b3ab` in agents-team) must NOT delegate. Prompt/role-level constraints were demonstrably bypassed — Kimi delegated to a (muted) MiniMax by going direct to its workspace_id, bypassing the PM. Need server-side capability removal, not just a prompt rule. **Requirement:** - Add a per-workspace `can_delegate` capability (default `true`), settable via the workspace abilities/PATCH API and persisted. - The A2A delegation path (`delegate_task` / `delegate_task_async`, `message/send`) MUST reject (403 + clear error) any delegation *initiated by* a workspace with `can_delegate=false`. - The molecule MCP should hide/disable `delegate_task` + `delegate_task_async` for such workspaces (agent never sees the tools). - Keep `reply_to_workspace`, `check_task_status`, `list_peers`, `get_workspace_info`, and memory tools available (report-only). - Set `can_delegate=false` for Kimi + MiniMax. **Test:** a `can_delegate=false` workspace’s `delegate_task` → 403; `reply_to_workspace` still works. **Acceptance:** role-locked coding executors physically cannot delegate even if prompted/jailbroken. **Context:** interim controls already live (roles relabeled to coding-only; PM disregards any dev-agent judgment/delegation; MiniMax mute converted to role-lock). This issue is the durable, ironclad layer. Routine SOP gate; tier = governance/infra.
Author
Member

Resolved by #3168 (merged). Closing as verified-fixed. — auto-cleanup via devops-engineer

Resolved by #3168 (merged). Closing as verified-fixed. — auto-cleanup via devops-engineer
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: molecule-ai/molecule-core#2127