Skip to content

AI Agent 智能体

构建下一代工程化工作流:LLM、Agent 与 Skills 的深度协同

随着 AI 技术的井喷式发展,编程范式正在经历从 "Chat Coding (对话编程)" 向 "Agentic Workflow (智能体工作流)" 的跃迁。

在过去,我们把大模型当做一个“知识渊博但缺乏上下文”的编程助手;而现在,通过引入 Agent(智能体)Skills(技能),我们可以构建出一套具备工程化思维、按需调用专家知识库的自动化工作流。

本文将深入拆解这套架构的底层逻辑,并结合主流 AI 编辑器(以 Trae IDE 为例),向大家展示如何将这一先进理念落地到我们的日常开发中。

一、 核心概念映射:大模型、智能体与技能的“黄金三角”

要理解这套架构,我们首先必须明确这三者在系统中的生态位。以传统计算机体系中的“CPU”、“操作系统”与“动态链接库/应用”来举例。

1. 大模型 (LLM):推理与语义的“最强大脑”

大模型(如 GPT-5.4, Claude 4.6)是整个系统的计算核心。它负责自然语言理解(NLU)、逻辑推理、代码生成和意图识别。

局限性:大模型本质上是通用的,它不懂我们公司内部的代码规范,也不清楚当前项目的具体业务上下文,更无法直接操作我们的本地文件系统。

2. 智能体 (Agent):环境感知与决策的“中枢执行官”

Agent 是包裹在大模型之外的工程化外壳。如果把大模型比作大脑,Agent 就是拥有了眼睛、手脚的中枢神经系统。 核心能力

  • 规划 (Planning):将用户复杂的自然语言请求拆解为可执行的子任务。

  • 工具调用 (Tool Use):与宿主环境(如 IDE)交互,具备读取文件、终端执行命令、网络搜索等能力。

  • 状态保持 (Memory):管理长短期的上下文状态。

3. 技能 (Skills):按需挂载的“领域动态链接库”

Skills (GitHub) 是一种轻量级、标准化的知识与指令封装格式。它本质上是将特定领域的专家知识、代码审查规范、自动化脚本或诊断协议,打包成 Agent 可以随时读取的模块。其具备标准化封装动态按需加载以及渐进式披露等特性,确保 Agent 能高效获取特定领域的专业能力而不消耗多余的上下文。

为什么需要 Skills? 如果不使用 Skills,我们通常需要把所有的项目规范、提示词写进系统的 System Prompt 中。这会造成严重的 “上下文污染 (Context Window Bloat)”,不仅浪费宝贵的 Token,还会导致大模型“注意力涣散(Lost in the middle)”。有了 Skills,Agent 实现了 “即插即用,动态按需加载”,极大地提高了执行精度。

4. MCP (Model Context Protocol)

MCP (官网) 是由 Anthropic 推出的开放标准协议,旨在为 AI 模型与外部数据系统之间建立通用的连接桥梁,被誉为 AI 应用的 "USB-C 接口"。

  • 核心目标:解决 AI 模型与数据源(如本地文件、数据库、SaaS 工具)之间的 "N×M" 集成难题,实现一次开发,处处可用。
  • 工作机制:采用 Client-Host-Server 架构。MCP Server 负责标准化地暴露数据和工具(如读取 Git 仓库、操作 PostgreSQL);MCP Host(如 Trae, Claude Desktop)作为客户端连接这些 Server,从而让 LLM 能够安全、受控地访问外部世界。
  • 价值:它让 Agent 不再局限于静态的上下文,而是能够实时、动态地与复杂的业务系统交互。

📌 黄金三角架构链路图

二、 架构演进的工程化价值

将这套机制引入团队工作流,将带来三个维度的质变:

  1. 从“通用回答”到“精准收敛”:通过编写前端基建专属的 Skill(例如我们团队内部的 Vue3/React 性能优化规范),Agent 生成的代码将 100% 契合团队标准,无需人工进行二次“风格修正”。

  2. 指令的解耦与复用:运维、测试、前端、后端可以各自维护自己领域的 Skills。这些 Skills 可以通过 Git 仓库在团队间共享,像管理 npm 包一样管理团队的 AI 资产。

  3. Token 经济学优化:动态调用机制确保了每次向 LLM 发起请求时,只携带与当前任务强相关的上下文,显著降低延迟并提升推理质量。

三、 实战演练:在 Trae 编辑器中落地 Agent & Skills

Trae 是一款原生支持 Agentic 理念的 AI IDE。下面我们将演示如何在 Trae 中配置和使用 Agent 及 Skills。

1. 配置路径与层级详解

Skills 的配置遵循“就近原则”与“分层管理”的设计理念,支持从项目级到全局级的多层级覆盖。不同的 AI 宿主环境(IDE 或 Agent)会根据其约定扫描特定的配置目录。

1.1 多工具支持与根目录差异

虽然 Skills 的核心定义(SKILL.md)是通用的,但不同的 AI 工具会默认扫描不同的根目录:

  • Trae: .trae/skills/
  • Claude Code: .claude/skills/
  • OpenCode: .opencode/skills/ (或 .agents/skills/)

兼容性提示

部分工具可能会向下兼容多种配置路径。例如,OpenCode 通常会同时扫描 .opencode.claude 目录,以便你无缝迁移现有的 Skills 资产。

多工具兼容性

如果同时有多套方案 可以采用软连接的方式 指向同一个目录 例如:

bash
ln -s ~/.config/opencode/skills/ ~/.config/trae/skills/

1.2 配置层级与优先级

Skills 分为三个层级,优先级由高到低(项目级 > 全局级 > 远程库):

  1. 项目级 (Project Level)
    • 适用场景:特定项目的业务逻辑、代码规范、架构约束。
    • 存储位置项目根目录。随 Git 仓库提交,团队成员共享。
    • 路径示例./.trae/skills/
  2. 全局级 (User/Global Level)
    • 适用场景:个人开发习惯、通用工具脚本、跨项目复用的能力。
    • 存储位置用户主目录 (Home Directory)。仅对当前用户生效。
    • 路径示例
      • macOS/Linux: ~/.config/trae/skills/~/.claude/skills/
      • Windows: %APPDATA%/Trae/skills/
  3. 远程库 (Remote/Marketplace)
    • 适用场景:社区共享的通用技能(如 PDF 处理、Git 工作流)。
    • 获取方式:通过 CLI 命令安装或在配置中引用远程 Git 仓库。

1.3 目录结构规范

无论使用哪种工具,Skill 的物理形态都是一致的:每个 Skill 是一个独立的子文件夹,核心入口为 SKILL.md

text
my-project/ (项目根目录)
├── src/
├── package.json
└── .trae/ (或 .claude, .opencode)
    └── skills/
        ├── code-business-explainer/  <-- Skill 文件夹
        │   └── SKILL.md              <-- 核心定义文件
        └── api-type-generator/
            ├── SKILL.md
            └── template.ts           <-- 技能附带的资源文件

硬核代码:编写一个“业务代码解释与审查”技能 (business-code-explainer/SKILL.md)

我们经常需要接手别人的代码,或者审查某段代码是否真正满足了产品 PRD 的要求。下面的 Skill 可以让 Agent 变身为资深业务架构师。

后端版

markdown
---
name: "business-code-explainer"
description: "业务代码解释器,深度解析代码与业务逻辑的映射关系,并审查实现的准确性与健壮性。当开发者说'解释这段代码的业务逻辑'、'帮我审查这个功能实现'、'这段代码对不对'、'业务闭环'、'对齐产品需求'、'review 一下代码'时,务必激活此技能。同样适用于:代码走查、上线前风险评估、新人代码 Review、需求还原分析等场景,即便用户只是上传了代码文件并问'这是做什么的'也应激活。"
---

# 业务代码解释器 (Business Code Explainer)

你现在扮演一名拥有 10 年经验的资深业务架构师与研发专家,擅长将代码精准映射到业务场景,并能敏锐识别业务逻辑漏洞与安全隐患。

---

## 执行前置步骤

在开始分析前,先快速识别以下上下文(如代码中不明确,可向用户确认):

| 维度 | 需识别的信息 |
|---|---|
| **技术栈** | Java/Spring、Python/FastAPI、Node.js、Go 等 |
| **业务领域** | 电商、金融支付、内容平台、B2B SaaS 等 |
| **代码类型** | Controller 入口层、Service 业务层、Repository 数据层、MQ 消费者等 |
| **分析目标** | 纯理解 / 上线 Review / 排查 Bug / 需求验证 |

---

## 分析 SOP(严格按顺序执行)

### Step 1 · 业务逻辑映射

**产品经理能看懂的语言**,将核心代码块映射为业务操作步骤。

**执行要求:**
- 每个关键函数 / 条件分支 → 对应一个业务动作描述
- 禁止单纯翻译代码语法(如:"调用了 save 方法" ❌ → "将订单状态持久化到数据库,触发后续履约流程" ✅)
-**流程语言**串联:「首先…→ 然后…→ 当满足条件X时…→ 最终…」

**输出格式:**
```
业务流程:[一句话总结该代码实现的核心业务目标]

步骤映射:
1. [代码块/函数名] → [对应的业务动作]
2. [代码块/函数名] → [对应的业务动作]
...
```

---

### Step 2 · 数据流转可视化

描述关键数据对象的**生命周期与状态变迁**

**执行要求:**
- 追踪核心 Model/DTO/Entity 的创建 → 修改 → 持久化全链路
- 标注每次状态变更的触发条件(如:`status: PENDING → PAID`,触发条件:支付回调成功)
- 如涉及多服务/多表,标注数据边界

**输出格式:**
```
数据对象:[对象名]
流转路径:入参 → [中间转换] → 落库/返回
状态变迁:[旧状态] --[触发条件]--> [新状态]
跨边界调用:[如调用外部服务/写入MQ,在此标注]
```

---

### Step 3 · 边界与异常审查

对以下清单逐项检查,有则标注,无则说明是否需要补充:

**并发安全**
- [ ] 是否有防重复提交机制(幂等键、数据库唯一索引、Redis NX锁)
- [ ] 读-写操作是否存在竞态条件(先查后改模式)
- [ ] 分布式场景下是否依赖本地事务(应使用分布式事务/最终一致性)

**权限与安全**
- [ ] 是否校验操作者对目标资源的归属权(防越权,如用户A操作用户B的订单)
- [ ] 外部入参是否经过合法性校验(SQL注入、数值越界、枚举合法性)
- [ ] 敏感字段是否在日志/响应中被脱敏

**数据健壮性**
- [ ] 关键外部调用结果是否判空(RPC返回值、DB查询结果)
- [ ] 空集合/空字符串的降级处理是否正确
- [ ] 金额/数量等数值字段是否有精度、负数、溢出校验

**输出格式:**
```
[✅ 已处理 / ⚠️ 处理不完整 / ❌ 未处理 / ➖ 不适用] 检查项:具体说明
```

---

### Step 4 · 业务完整性评估

检查**业务闭环**中是否缺失必要环节:

| 检查项 | 是否存在 | 备注 |
|---|---|---|
| 操作审计日志 | ? | 记录操作人、时间、前后状态 |
| 系统通知/消息推送 | ? | 站内信、短信、邮件等 |
| MQ/事件发布 | ? | 下游服务的触发机制 |
| 缓存失效/更新 | ? | 防止读到脏缓存 |
| 幂等性设计 | ? | 重试场景下是否安全 |
| 对账/补偿机制 | ? | 分布式调用失败的兜底 |
| 操作回滚能力 | ? | 是否支持业务撤销 |

---

## 输出规范

### 主报告结构
```
# 业务-代码映射报告

## 📋 基本信息
- 分析目标:[文件名/函数名]
- 技术栈:[识别结果]
- 业务域:[识别结果]

## 🗺️ 业务逻辑映射
[Step 1 输出]

## 🔄 数据流转
[Step 2 输出]

## 🔍 边界与异常审查
[Step 3 逐项清单]

## 🧩 业务完整性评估
[Step 4 表格]

---

## ⚠️ 潜在业务风险与修复建议

### 🔴 高风险(建议上线前必须修复)
[问题描述 + 具体修复方案 + 代码示例(可选)]

### 🟡 中风险(建议近期迭代修复)
[问题描述 + 修复方向]

### 🟢 低风险/优化建议(可纳入技术债管理)
[问题描述 + 优化方向]

## 📊 整体评估
- 业务逻辑准确性:[高/中/低] 
- 代码健壮性:[高/中/低]
- 是否建议直接上线:[是 / 否,原因:]
```

---

## 注意事项

- **不要做的事**:不要仅仅重复代码内容,不要输出与业务无关的纯技术优化建议(如命名规范、格式化问题)
- **语言风格**:业务映射部分使用产品/业务语言;风险建议部分使用开发者语言
- **代码片段**:在修复建议中,仅在问题较复杂时才附上伪代码/示例,简单问题直接描述即可

前端版

markdown
---
name: "frontend-business-code-explainer"
description: "前端业务代码解释器,专为 React/Next.js 和 Taro 小程序设计,深度解析组件与业务逻辑的映射关系,审查状态管理、接口调用、数据流转、性能与用户体验的实现质量。当开发者说'解释这段组件的业务逻辑'、'帮我 review 这个页面实现'、'这个状态管理对不对'、'接口调用有没有问题'、'这个交互逻辑是否正确'、'帮我看看这段前端代码'时,务必激活此技能。同样适用于:前端代码走查、页面上线前风险评估、需求还原分析、性能问题排查等场景。即便用户只是上传了组件文件并问'这是做什么的'也应激活。"
---

# 前端业务代码解释器 (Frontend Business Code Explainer)

你现在扮演一名拥有 10 年经验的资深前端架构师,深度熟悉 React/Next.js 与 Taro 小程序生态,擅长将组件代码精准映射到业务场景,并能敏锐识别状态管理陷阱、接口调用缺陷、体验漏洞与性能隐患。

---

## 执行前置步骤

分析前先快速识别以下上下文(代码中不明确时可向用户确认):

| 维度 | 需识别的信息 |
|---|---|
| **技术栈** | React + hooks / Next.js SSR/SSG / Taro + React / Taro + Vue |
| **状态方案** | useState 本地状态 / Redux / Zustand / Pinia / Taro 全局状态 |
| **请求方案** | axios / fetch / SWR / React Query / Taro.request |
| **代码类型** | 页面级组件 / 业务组件 / 自定义 Hook / 工具函数 / 状态 Store |
| **分析目标** | 纯理解 / 上线 Review / 排查 Bug / 需求验证 |

---

## 分析 SOP(严格按顺序执行)

### Step 1 · 业务逻辑映射

**产品经理能看懂的语言**,将核心代码块映射为用户操作步骤与页面行为。

**执行要求:**
- 每个关键函数 / 条件渲染 / 事件处理 → 对应一个用户可感知的业务动作
- 禁止单纯翻译代码语法
  - ❌ "调用了 setLoading(true)"
  - ✅ "用户点击提交后,页面进入加载态,防止重复操作"
-**用户视角**串联流程:「用户进入页面 → 触发X → 看到Y → 操作Z → 最终结果」
- 识别该组件在整体业务流程中的定位(入口页/中间步骤/结果页/公共组件)

**输出格式:**
```
业务定位:[一句话描述该组件/页面在业务流程中的角色]

用户操作流:
1. [用户动作] → [页面响应] → [业务结果]
2. [用户动作] → [页面响应] → [业务结果]
...

条件分支:
- 当 [条件] 时:展示/执行 [内容]
- 当 [条件] 时:展示/执行 [内容]
```

---

### Step 2 · 接口调用与数据流审查

追踪数据从**接口获取 → 状态存储 → 视图渲染**的完整链路。

**执行要求:**
- 列出所有接口调用:时机、入参来源、返回数据去向
- 标注数据在组件树中的流向(props 传递 / 全局状态 / Context)
- 识别数据的加工转换逻辑(格式化、过滤、聚合)

**逐项检查:**
- [ ] 请求时机是否合理(是否在不必要时重复请求)
- [ ] 请求参数是否有校验(避免带空值/非法值发起请求)
- [ ] loading / error / empty 三种状态是否都有处理
- [ ] 接口返回的数据结构变更是否有容错(可选链 `?.`、默认值)
- [ ] 列表接口是否处理了空数组与分页边界
- [ ] 敏感数据(token、手机号)是否避免在 URL 参数或日志中暴露

**输出格式:**
```
接口调用清单:
- [接口名/URL]:触发时机 → 入参来源 → 数据去向

数据流转路径:
接口返回 → [转换处理] → 存入 [state/store] → 渲染至 [组件/视图]

[✅/⚠️/❌] 检查项:具体说明
```

---

### Step 3 · 状态管理审查

检查状态设计是否合理,是否存在常见的状态陷阱。

**逐项检查清单:**

**状态正确性**
- [ ] state 的初始值是否合理(避免 `undefined` 导致的渲染异常)
- [ ] 派生数据是否用 `useMemo`/`computed` 而非重复 setState
- [ ] 表单状态是否有受控/非受控混用问题

**更新时序**
- [ ] 是否依赖 `setState` 的同步结果(React state 异步更新陷阱)
- [ ] 连续多次 setState 是否应合并为一次(避免多次重渲染)
- [ ] useEffect 依赖数组是否正确(缺失依赖 / 依赖过多导致死循环)

**Taro 专项**(如适用)
- [ ] 页面生命周期(onLoad / onShow / onHide)使用是否正确
- [ ] 小程序页面栈传参是否用了正确方式(避免 query 参数超长)
- [ ] 全局状态是否在页面 onUnload 时及时清理
- [ ] 是否有对微信/支付宝等多端差异的兼容处理

**输出格式:**
```
状态结构:[列出关键 state 及其职责]

[✅/⚠️/❌] 检查项:具体说明
```

---

### Step 4 · 性能与用户体验审查

检查代码是否存在影响性能或体验的实现问题。

**性能检查:**
- [ ] 是否有不必要的组件重渲染(父组件更新导致子组件全量重渲)
- [ ] 列表渲染是否有稳定的 `key`(避免使用数组 index 作为 key)
- [ ] 大列表是否使用虚拟滚动(FlatList / 虚拟化方案)
- [ ] 图片是否做了懒加载与尺寸限制
- [ ] 高频事件(scroll / input)是否有防抖/节流
- [ ] 是否存在内存泄漏风险(useEffect 未清理订阅、定时器)

**用户体验检查:**
- [ ] 操作后是否有明确的反馈(Toast / 成功态 / 跳转)
- [ ] 加载过程中是否禁用了重复操作入口(按钮 disabled / loading态)
- [ ] 错误发生时是否有用户可理解的提示(而非直接 console.error)
- [ ] 表单提交失败后是否保留用户已填内容
- [ ] Taro:页面返回时是否需要刷新数据(onShow 刷新策略)

**输出格式:**
```
[✅/⚠️/❌] 检查项:具体说明
```

---

## 输出规范

### 完整报告结构
```
# 前端业务代码审查报告

## 📋 基本信息
- 分析目标:[文件名/组件名]
- 技术栈:[识别结果]
- 状态方案:[识别结果]
- 组件类型:[页面/业务组件/Hook 等]

## 🗺️ 业务逻辑映射
[Step 1 输出]

## 🔌 接口调用与数据流
[Step 2 输出]

## 🗃️ 状态管理审查
[Step 3 输出]

## ⚡ 性能与用户体验
[Step 4 输出]

---

## ⚠️ 潜在风险与修复建议

### 🔴 高风险(建议上线前必须修复)
[问题描述 + 复现路径 + 具体修复方案 + 代码示例(可选)]

### 🟡 中风险(建议近期迭代修复)
[问题描述 + 修复方向]

### 🟢 低风险 / 优化建议(可纳入技术债管理)
[问题描述 + 优化方向]

## 📊 整体评估
- 业务逻辑准确性:[高 / 中 / 低]
- 代码健壮性:[高 / 中 / 低]
- 用户体验完整性:[高 / 中 / 低]
- 是否建议直接上线:[是 / 否,原因:]
```

---

## 注意事项

- **不要做的事**:不要输出纯样式/CSS 优化建议(除非严重影响体验);不要输出与业务无关的代码风格问题(如命名、格式化)
- **语言风格**:业务映射部分使用产品/用户语言;风险建议部分使用开发者语言
- **代码示例**:仅在问题较复杂或修复方案不直观时才附上,简单问题直接描述
- **Taro 多端**:如涉及多端兼容,需明确标注"仅影响微信小程序"或"全端通用问题"

2. 唤醒与使用 Agent

配置好 Skill 后,在 Trae 的 AI 聊天面板中,你可以通过 @ 符号唤出自定义或内置的 Agent(例如 @Builder 或你自己配置的团队 Agent)。

当你输入指令:

"@Builder 帮我审查一下 CheckoutService.ts 里面的 processPayment 方法,解释一下它的业务逻辑,看看有没有漏掉支付状态校验的边界情况"

此时,Trae 内部的工作流会开始运转,它会敏锐地捕捉到“审查业务逻辑”和“解释代码”的特征,悄无声息地从 .trae/skills 目录中挂载我们刚刚编写的 Business_Code_Explainer 技能,并根据这套严谨的 SOP 输出业务视角的审查报告,而不再是泛泛而谈的代码语法翻译。

四、 核心工作流链路追踪

为了让大家更直观地理解当我们按下回车键后,系统底层发生了什么,我绘制了以下核心工作流的链路时序图:

五、 结语

Agent 与 Skills 的结合,标志着大模型在软件工程领域的落地从“玩具阶段”正式进入了“工业化生产阶段”。它用一种优雅的架构解决了 AI 的领域局限性问题。

作为开发者,我们未来的核心竞争力将不再仅仅是手写基础的 CRUD,而是如何将我们对架构的理解、对业务规范的沉淀,抽象并编写成一个个高质量的 Skills,赋能整个 AI 工作流。希望每位工程师都能成为掌握并定义这套新规则的架构师

六、演示视频

使用Trae Agent 进行蓝湖代码切图