Skip to content

feat(subagent): 接入 CapabilityToken 与继承式权限隔离 #276

Description

@Cai-Tang-www

背景

Parent: #273
依赖:#274 #275

SubAgent 运行必须严格受控,不能出现“子代理权限高于父代理”或“绕过安全层”。

目标

引入 CapabilityToken 与继承式权限模型,确保每个 WorkerRuntime 在最小权限下执行。

范围

  1. CapabilityToken 模型
  • 绑定:task_id、agent_id、ttl
  • 限制项:tool allowlist、path allowlist、网络策略、写权限等级
  • token 不可提升权限(only subset of parent)
  1. 权限检查接入
  • WorkerRuntime 每次 tool 调用必须携带 token
  • PermissionEngine / WorkspaceSandbox 校验 token 与 action
  • 失败返回标准拒绝错误(含 reason)
  1. 路径与工作区隔离
  • 子代理默认在受限 workdir(建议 task/worktree 子目录)
  • 阻断路径逃逸(traversal/symlink)
  1. 审计与追踪
  • 记录 capability 决策日志(allow/deny)
  • 日志包含 task_id、tool、reason

非目标

  • 不做远程多租户鉴权
  • 不做 UI 审批流程

验收标准

  • 子代理工具/路径权限严格受 token 限制
  • 子代理无法请求超出父代理权限的操作
  • 拒绝路径有清晰错误与审计记录

测试矩阵

  • allowlist 命中/未命中
  • 路径越界、symlink、traversal
  • 权限继承与不可提升
  • token 过期/篡改
  • denied 事件与错误格式

Refs

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions