背景
Parent: #273
依赖:#274 #275
SubAgent 运行必须严格受控,不能出现“子代理权限高于父代理”或“绕过安全层”。
目标
引入 CapabilityToken 与继承式权限模型,确保每个 WorkerRuntime 在最小权限下执行。
范围
- CapabilityToken 模型
- 绑定:task_id、agent_id、ttl
- 限制项:tool allowlist、path allowlist、网络策略、写权限等级
- token 不可提升权限(only subset of parent)
- 权限检查接入
- WorkerRuntime 每次 tool 调用必须携带 token
- PermissionEngine / WorkspaceSandbox 校验 token 与 action
- 失败返回标准拒绝错误(含 reason)
- 路径与工作区隔离
- 子代理默认在受限 workdir(建议 task/worktree 子目录)
- 阻断路径逃逸(traversal/symlink)
- 审计与追踪
- 记录 capability 决策日志(allow/deny)
- 日志包含 task_id、tool、reason
非目标
验收标准
- 子代理工具/路径权限严格受 token 限制
- 子代理无法请求超出父代理权限的操作
- 拒绝路径有清晰错误与审计记录
测试矩阵
- allowlist 命中/未命中
- 路径越界、symlink、traversal
- 权限继承与不可提升
- token 过期/篡改
- denied 事件与错误格式
Refs
背景
Parent: #273
依赖:#274 #275
SubAgent 运行必须严格受控,不能出现“子代理权限高于父代理”或“绕过安全层”。
目标
引入
CapabilityToken与继承式权限模型,确保每个 WorkerRuntime 在最小权限下执行。范围
非目标
验收标准
测试矩阵
Refs