标签 allowed-tools 下的文章

agent 字段

建议

  • 如果需要严格的权限限制,使用 agent 指定子代理和 context:fork;
  • allowed-tools 配置不能限制工具的使用。

核心结论

  1. agent 字段只有配合 context: fork 才会生效
  2. context: fork:Skill 在主 agent 上下文执行,继承主 agent 全部工具,agentallowed-tools 字段被忽略
  3. context: fork:Skill 在独立子代理执行,agent 字段生效,限制工具集为该 agent 类型的固有工具
  4. agent 优先于 allowed-tools:当同时指定时,agent 类型决定工具集,allowed-tools 无法扩展

测试不具有 context: fork

name: test-agent-tools
description: 测试 agent 字段和 allowed-tools 的优先级关系
version: 1.0.0
agent: Bash
allowed-tools: Bash, Read
user-invocable: true 
  • 结果:所有工具都可用(Bash、Read、Task、Write)
  • 结论:agent 字段被忽略,Skill 在主 agent 上下文执行,继承全部工具

测试具有 context: fork

name: test-agent-tools description: 测试 agent 字段和 allowed-tools 的优先级关系 version: 1.0.0 agent: Bash allowed-tools: Bash, Read user-invocable: true context: fork 
  • 结果:只有 Bash 工具可用,Read、Task、Write 都不可用
  • 结论:agent: Bash 生效,限制工具集为 Bash agent 的工具

测试结果汇总

配置BashReadWrite
context: fork
context: fork

修正

  • Task 不属于工具

配置工具列表

  1. 使用 /agent
  2. 选择对应的子代理
  3. Edit agent
  4. Edit tools
  5. 勾选对应工具

具体测试文件如下

claude.zip


📌 转载信息
原作者:
robot_jackson
转载时间:
2026/1/19 18:04:03