本页判断标准

把验收交给 verifier,它跑完之后,仓库里的文件有没有被改动?

答「改了」,权限只收了一半:写了 tools,没写 disallowedTools。两处都写全,再委派一次看看。

位置、字段与权限

用子智能体,是让它拿一块单独的上下文去干一件可以独立说清的事。它适合验收、定位这类「只读、只报告」的角色。

项TraeCode 的写法写错的后果
项目位置.trae/agents/*.md放到别的目录,角色加载不到
个人位置~/.trae-cn/agents/小组的验收角色只在自己电脑上
必填字段name 与 description缺一个就定义不完整
名称约束name 只用字母、数字、连字符,不超过 50 个字符用了下划线或中文,角色识别不上
允许的工具tools: Read, Grep, Glob,逗号分隔写进 Write、Edit、Bash,智能体就能改文件
再挡一层disallowedTools: Write, Edit, Bash只写一边,权限收得不干净
模型不写 model 时用对话里当前选的模型想固定模型时行为会跟着对话变
怎么被叫到由 description 决定;也可以在提示里直接说「使用 verifier 检查这次改动」描述太笼统,该叫的时候不叫

字段不用背:写一个角色,委派一次看它有没有被叫到、有没有越权,实测一次就知道了。工具名照这几个写:Read、Grep、Glob、Write、Edit、Bash。

子智能体在三个工具里的差别

转工具时先看「限制权限」这一行:Cursor 一个 readonly: true 就够,另两家要在工具列表上写白名单。

项Claude CodeCursorTraeCode
项目位置.claude/agents/*.md.cursor/agents/*.md.trae/agents/*.md
个人位置~/.claude/agents/——~/.trae-cn/agents/
限制权限tools: Read, Grep, Glob(不写 Write、Edit、Bash)readonly: truetools: Read, Grep, Glob 加 disallowedTools: Write, Edit, Bash
模型——model: inherit 沿用当前对话的模型不写 model 时用对话里当前选的模型
名称约束————name 只能用字母、数字、连字符,不超过 50 个字符;name 与 description 必填
怎么被叫到由 description 决定;对话里也可输入 @ 点名由 description 决定由 description 决定;也可在提示里直接说「使用 verifier 检查这次改动」

示例:两个只读角色

两份都只读:一个负责验收数据范围,一个负责在动手前定位相关文件。抄的时候把 tools 与 disallowedTools 一起写全。

.trae/agents/verifier.md

改完查询、上传或检索之后,用提示「使用 verifier 检查这次改动」把验收交出去。

---
name: verifier
description: 验收数据范围。在改完查询、上传或检索之后,由对话里的 Agent 把验收委派给它。只读,不改文件。
tools: Read, Grep, Glob
disallowedTools: Write, Edit, Bash
---

用两个所属范围的账号各看一次。
当前所属范围的数据能读到。
其他所属范围的数据读不到,且与记录不存在无法从响应区分。
没有命中时返回无依据,不出现材料中没有的句子。
只报告看到的请求、SQL 或接口结果,不改代码。

.trae/agents/locate.md

动手改代码之前,先让它把「这次改动涉及哪些文件」问清楚。

---
name: locate
description: 在动手改代码前定位相关文件。由对话里的 Agent 把「这次改动涉及哪些文件」委派给它。只读,不改文件。
tools: Read, Grep, Glob
disallowedTools: Write, Edit, Bash
---

按改动的关键词搜索,列出文件与命中行。
每条给出文件路径与行号,并说明它和这次改动的关系。
不确定的条目标注「待确认」,不要猜。
不改文件,也不给改动建议。

子智能体越权或不被叫到的四种现象

子智能体的问题集中在「叫不到」和「权限没收住」两类,照下面四条对号。

现象原因修法
把数据范围只写进了 verifier.md,主对话里还是写出越界查询子智能体由 description 决定何时被叫到,并不保证每次都用得上把数据范围写进 AGENTS.md 并打开导入开关;子智能体只承担验收,不承担约束
委派给 verifier 后它动手改了文件权限只收了一半:tools 里还留着 Write、Edit 或 Bash写成 tools: Read, Grep, Glob 加 disallowedTools: Write, Edit, Bash,两处都写全
name 写成 scope_audit,角色识别不上名称约束只允许字母、数字和连字符改成 scope-audit,长度控制在 50 个字符以内
等它在合适的时候自动出现,它一直没被叫到调度靠 description 判断,写得太笼统就轮不到它在 description 里写清「在什么场景下把工作交过来」,或在提示里直接说「使用 verifier 检查这次改动」
对应知识点 这一页是 子智能体 在 TraeCode 里的落地写法。上游是子智能体(第一层 · 能力)与技能(按需加载的分工),下游是验证与门禁与钩子:写不进上下文的硬约束,用钩子挡。