多 agent 系统里有个长期没解决的问题:把任务委派给子 agent 时,该给它开多大权限?
开大了,它可能读到不该读的文件、调用不该调的工具;开小了,它又干不完活。现有系统提供的是工具控制和执行环境隔离,但没有回答一个更基本的问题:这个子任务到底需要哪些资源 。
#结果和轨迹都不够
一个自然的想法是看结果:任务成功了,权限大概给对了。
但论文指出,任务结果和执行轨迹提供的监督信号都很有限。一个子 agent 越权读了敏感文件,任务照样可以成功;轨迹顺畅也不代表授权边界合理,它可能刚好没碰到需要越权的那一步。
所以「权限给得对不对」这件事,需要一种额外的监督信号。
#Skill 文件其实是权限标注
论文的观察很朴素:Agent Skills 描述的是流程:每一步用哪个工具、读写哪些文件、做哪些操作。
这些内容平时被当作「怎么做」的说明书,但对授权来说,它恰好写清了「需要碰什么」。一个写着「读取客户邮件、打开财务模型、生成工作簿」的 Skill,已经隐含了它所需的文件集合和工具集合。
#方法:从 Skill 合成任务,用轨迹训练
图:第一步从 SKILL.md 与脚本合成任务和 SOP,第二步让 agent 在环境里执行并记录 rollout,第三步由 judge 筛选出验证过的轨迹。来源:原论文。
做法分三步:
- 从 Skills 合成任务和分步流程,让每个子任务对应明确的步骤序列。
- 在交互环境里通过子 agent 委派真实执行,记录完整轨迹。
- 用验证过的轨迹构造训练数据,同时训练任务执行和授权判断。
关键在第三步:验证过的轨迹既能教模型怎么完成任务,也能教它判断某一步需要什么权限。
#结果
在 ClawArena-Team 上,用 Qwen3.5-35B-A3B 做基座:
- 工具权限精度提升 13.4 个百分点
- 工作区权限精度提升 24.1 个百分点
- 整体任务成功率提升 11.6 个百分点
工作区权限的提升幅度明显大于工具权限,说明「该访问哪些文件」比「该调用哪个工具」更难猜,也更能从 Skill 的结构里受益。
在 Terminal-Bench 2.1 和 SkillsBench 上,方法与现有 agent 数据合成方案持平,没有牺牲通用能力。
#结语
写 SKILL.md 的时候,其实是在写一张权限申请单。以前没人拿它当申请单用,是因为权限通常由平台在运行时猜测或由人手工配置。这篇的做法是把这层信息显式化,再训练模型自己判断。
