docs: 更新TRA编程培训课程材料、课件与AI技能交付包

- 新增全套考试卷、评估卷、参考答案与考试培训包模板
- 修正slidev培训课件:调整模块标题、链路图缩放,替换工单示例为通用业务对象
- 修正课堂红线表述为证据红线,将小组作业调整为个人作业要求
- 新增权限、状态流转、审计日志、看板指标四类可复用业务规则块
- 整理AI工程技能交付包,迁移旧资产至客户专属交付包并统一术语
- 新增考试输出模板与TRAE使用记录文档
This commit is contained in:
smart
2026-08-08 11:00:36 +08:00
parent e7d6db93c3
commit 67837df8d0
169 changed files with 6618 additions and 2887 deletions
@@ -0,0 +1,163 @@
# 模块 10:自定义 Agent 如何调用 Skill
<div class="mt-6 text-sm">
一个成熟的 Agent 不把所有知识写进自己身上。
它负责选择合适的工作流、加载必要资产,并将结果交给下一步;Skill 继续负责具体任务的判断顺序和交付格式。
</div>
<div class="mt-8 text-sm">
```text
自定义 Agent(角色 + 工具边界)
-> 选择 Skill(任务工作流)
-> 加载 Rule / 任务上下文契约 / Checklist / Example
-> 输出结构化结论
-> 交给 Review、PR 或下一项任务
```
</div>
<!--
逐字稿:成熟 Agent 不应该把所有规则、流程和项目事实都写进默认指令。它的职责是以受控角色选择合适的 Skill,加载必要资产,并把结果结构化交给下一步。Skill 则继续负责具体任务的判断顺序和交付格式,两者的职责必须分开。
Trae 具备 runSubagent 调用自定义 Agent 的能力,且必须使用准确的 Agent 名称。这说明角色可以被显式调度;但课程不依赖学员现场建立多 Agent 团队,重点是把 Agent 作为资产入口,保持名称、职责和输出可辨识。
-->
---
# Agent、Skill 与 MCP 的本质区别
<div class="mt-5 text-xs">
| 对象 | 本质 | 负责什么 | 不负责什么 |
|---|---|---|---|
| Agent | 执行角色与权限边界 | 选择任务、调用 Skill 和工具、控制停止与交接 | 承载全部业务流程与项目事实 |
| Skill | 可复用的任务工作流 | 规定输入、判断步骤、输出与验收 | 决定谁可调用、拥有什么工具权限 |
| MCP | 外部能力接口 | 提供查询、读取、写入等工具能力 | 判断业务规则、决定任务流程 |
</div>
<div class="mt-7 grid grid-cols-3 gap-3 text-sm">
<div class="p-3 rounded-xl bg-blue-500/10 border border-blue-500/30">谁来做:Agent</div>
<div class="p-3 rounded-xl bg-emerald-500/10 border border-emerald-500/30">如何做:Skill</div>
<div class="p-3 rounded-xl bg-amber-500/10 border border-amber-500/30">能调用什么:MCP</div>
</div>
<!--
逐字稿:三者可以用三个问题区分。谁来做,是 Agent,它定义角色、工具权限和停止边界;如何做,是 Skill,它定义任务步骤、输入、输出和验收;能调用什么外部能力,是 MCP,它提供查询、读取和写入接口。MCP 不做业务判断,Skill 不决定权限,Agent 也不应承载全部项目事实。
Agent 是角色与权限边界,Skill 是任务工作流,MCP 是外部能力接口。三者组合时,不应让 MCP 承担业务判断,也不应把 Skill 复制成 Agent 的默认指令。
-->
---
# 不同信息应该放在哪里?
<div class="mt-5 text-xs">
| 信息类型 | 最合适的位置 | 原因 |
|---|---|---|
| “先取证,缺口必须暴露” | Rule / Agent 默认指令 | 多个任务都必须遵守 |
| “状态变更如何审查” | Skill | 需要多步判断与停止条件 |
| “影响分析报告长什么样” | 任务上下文契约 / Template | 下游需要固定结构 |
| “五项不可遗漏检查” | Checklist | 适合逐项核对 |
| “数据库 NOT NULL 不适用的条件” | Example / 反例 | 防止机械套用 |
| 某项目的路径、字段和日志 | 运行时输入 | 换任务或换项目会变化 |
</div>
<div class="mt-6 p-3 rounded-xl bg-amber-500/10 border border-amber-500/30 text-sm">
一份内容只应有一个权威位置;重复复制到 Agent、Skill 和任务上下文契约中,更新时一定会漂移。
</div>
<!--
逐字稿:同一份内容只能有一个权威位置。长期约束放 Rule,多步审查放 Skill,报告结构放任务上下文契约或模板,固定遗漏点放 Checklist,项目路径和字段留在运行时输入。复制到多个位置看似方便,实际会在更新时产生相互矛盾的版本。
这里回答了“为什么不是把所有内容写进自定义 Agent”。正确做法是给每种资产一个单一职责和权威来源,Agent 通过引用或选择来组合它们。
-->
---
# 上下文分层:稳定、任务与事实
<div class="mt-5 text-xs">
| 层级 | 内容 | 更新频率 | 典型落点 |
|---|---|---|---|
| 稳定层 | 角色职责、最小授权、通用安全规则 | 低 | 自定义 Agent、Rule |
| 任务层 | 事实提取、方案比较、验证设计流程 | 中 | Skill、任务上下文契约、Checklist |
| 事实层 | 当前需求、源码、diff、日志和测试结果 | 高 | 本次对话或任务输入 |
</div>
<div class="mt-6 grid grid-cols-3 gap-3 text-sm">
<div class="p-3 rounded-xl bg-blue-500/10 border border-blue-500/30">稳定层错了<br><span class="text-xs op-70">所有任务都会偏</span></div>
<div class="p-3 rounded-xl bg-emerald-500/10 border border-emerald-500/30">任务层错了<br><span class="text-xs op-70">同类任务反复偏</span></div>
<div class="p-3 rounded-xl bg-red-500/10 border border-red-500/30">事实层缺失<br><span class="text-xs op-70">当前结论必须停止</span></div>
</div>
<!--
逐字稿:上下文可以按更新频率分成三层。稳定层是角色职责和安全规则,任务层是事实提取和验证流程,事实层是当前需求、源码、diff 和日志。输出偏差时先判断问题在哪一层,而不是随机改一段长指令;事实缺失时,当前结论就应停止。
这是资产维护的关键模型。它让问题可定位:每次输出不对,先判断是 Agent 职责定义、Skill 流程、任务上下文契约还是当前事实不够,而不是随机重写一段长提示词。
-->
---
# Agent 之间只交接结构化结果
<div class="mt-5 text-xs">
```md
## 已确认事实
- <证据路径或记录>
## 交接去向
- <应调用的 Skill 或应执行的验证>
## 输入缺口
- <缺少什么,为什么不能继续>
## 不可覆盖的边界
- <权限、范围、状态或发布限制>
```
</div>
<div class="mt-6 p-3 rounded-xl bg-emerald-500/10 border border-emerald-500/30 text-sm">
交接的是可复核结论,不是把完整对话、推理过程和未经验证的猜测交给下一个 Agent。
</div>
<!--
逐字稿:Agent 之间不应交接完整对话或未验证推理,而应交接结构化结果。下一个角色需要知道哪些事实已经确认、建议下一步是什么、还缺什么输入,以及哪些权限或范围不能覆盖。即使只有一个 Agent,这种结构也能让后续 Review 和实施不必重新猜上下文。
即使不使用多 Agent,这个结构同样适用于“分析 Agent 的输出交给实施 Agent”或“实施结果交给 Review Agent”。结构化结果让后续 Agent 知道哪些是事实、哪些是建议、哪些不能继续推断。
-->
---
# Agent 与 Skill 组合的三种失效方式
<div class="mt-5 text-xs">
| 失效方式 | 表现 | 修正方向 |
|---|---|---|
| Agent 变成万能角色 | 读、改、测、发、审全都默认允许 | 按职责拆分,降低工具权限 |
| Skill 被复制进 Agent | 多份流程说明彼此不一致 | Skill 保持唯一工作流来源 |
| 交接只有自然语言总结 | 下游重新猜事实、范围和验证状态 | 使用固定输出契约 |
| 运行时事实混入资产 | 换项目仍引用旧路径、字段和权限 | 把事实移回每次任务输入 |
</div>
<div class="mt-6 p-3 rounded-xl bg-red-500/10 border border-red-500/30 text-sm">
组合的目的不是增加层数,而是让角色、工作流和事实各自保持可维护。
</div>
<!--
逐字稿:组合 Agent 和 Skill 的目标不是增加层数,而是减少重复和失控。万能 Agent 会造成越权,Skill 被复制进 Agent 会产生多份流程,纯自然语言交接会让下游重新猜事实,运行时事实混入资产会误用旧项目。只要出现这些信号,就应收缩角色和工作流设计。
提醒学员:Agent、Skill 的组合不是“堆更多配置”。如果组合后找不到哪份文件是权威来源,或者没有减少重复判断,就应当收缩设计。
-->