—— 附 Trae IDE 实操指南

一篇讲透 AI Agent 架构中最容易混淆的四组概念,并以字节跳动 Trae IDE 为实战载体,手把手带你落地配置。


在这里插入图片描述

引言:为什么你的 AI 总是"教不会"?

做 AI 编程的朋友,几乎都踩过同一个坑:

  • 调试时明明教会了 AI 某个偏好,下一轮对话它就忘了;
  • 跑长周期任务时,AI 在第 10 步突然不知道前 9 步干了什么;
  • 你写了一大段 System Prompt,结果 AI 该犯的错一个没少。

这不是模型的 bug,是架构设计的问题。

2026 年,AI Agent 正式进入工程化落地阶段。以字节跳动推出的 Trae IDE(The Real AI Engineer)为代表,国内 AI 编程工具已经形成了成熟的四大核心能力体系:

维度 回答的问题 对应概念 Trae 中的实现
能力(What can it do?) AI 能做什么?怎么做? 技能(Skills)+ 命令(Commands) .trae/skills/ + Builder/SOLO 模式
约束(What should it be?) AI 应该是什么样?记住什么? 规则(Rules)+ 记忆(Memory) .trae/rules/ + 自动/手动记忆

今天,我们就把这四大基石一次讲透,并在每个章节附上 Trae IDE 的实操配置方法


一、技能(Skills):AI 的"肌肉记忆"

1.1 什么是技能?

技能是预定义的、可复用的原子化能力单元。 它不是临时的 Prompt,而是一套经过验证的标准化工作流程。

一个形象的类比:

如果 AI 是一个新入职的实习生,技能就是你给他的 SOP(标准操作手册)。他不需要每次都从零思考"怎么做代码审查",只需要翻开手册,按步骤执行。

1.2 技能的核心特征

  • 按需加载:不是所有技能都塞进上下文。AI 根据当前任务判断是否需要加载某个 Skill,避免上下文污染。
  • 可组合:复杂任务可以串联多个 Skill。比如"重构"= code-reviewrefactorunit-test-gen
  • 可进化:技能不是一成不变的。通过记忆系统的反馈,技能可以持续迭代优化。

1.3 🛠️ Trae 实操:创建你的第一个 Skill

Trae 于 2026 年 1 月正式上线 Skills 功能。在 Trae 中,一个 Skill 的物理形态是一个名为 SKILL.md 的 Markdown 文件,存放在项目根目录下的 .trae/skills/ 路径中。

目录结构
your-project/
├── .trae/
│   ├── rules/              # 规则(下一节讲)
│   └── skills/             # 技能目录
│       ├── code-review/
│       │   └── SKILL.md    # 代码审查技能
│       ├── api-design/
│       │   ├── SKILL.md    # API 设计技能
│       │   ├── prompts/    # (可选)提示词模板
│       │   ├── references/ # (可选)参考文档
│       │   └── scripts/    # (可选)可执行脚本
│       └── unit-test-gen/
│           └── SKILL.md    # 单元测试生成技能
├── src/
└── package.json
SKILL.md 编写示例
# 代码审查技能 (Code Review)

## 触发条件
当用户要求审查代码、提交 PR、或使用 /review 命令时自动激活。

## 执行步骤
1. 检查代码风格是否符合项目 .eslintrc / .prettierrc 配置
2. 识别潜在的安全漏洞(SQL注入、XSS、硬编码密钥等)
3. 评估性能瓶颈(N+1查询、内存泄漏、不必要的重渲染)
4. 检查测试覆盖率是否达标(≥80%)
5. 检查是否有未处理的 Promise rejection
6. 输出结构化审查报告

## 输出格式
| 严重级别 | 文件 | 行号 | 问题描述 | 修复建议 |
|---------|------|------|---------|---------|
| 🔴 Critical | ... | ... | ... | ... |
| 🟡 Warning | ... | ... | ... | ... |
| 🔵 Info | ... | ... | ... | ... |

## 约束
- 不修改代码,只输出审查意见
- 每个问题必须附带修复建议
- 优先级排序:安全 > 性能 > 风格
三种安装方式
方式 操作 适用场景
手动部署 在项目根目录创建 .trae/skills/skill-name/SKILL.md 自定义项目级技能
社区导入 从 Trae 官方社区或 GitHub 下载 Skill 文件夹,放入 .trae/skills/ 复用社区优质技能
SOLO 模式创建 在 SOLO 窗口中对话式创建,Trae 自动生成 SKILL.md 快速原型
使用方式

在 Trae 的 Builder 模式Chat 模式中,当你的提问与某个 Skill 的触发条件匹配时,Trae 会自动加载对应技能。你也可以在对话中显式引用:

请按照 code-review 技能审查 src/auth/ 目录下的所有文件

💡 核心理念:技能实现了"上下文的渐进加载"——只在需要时才把专业知识注入 AI 的工作记忆,减少噪音、降低成本。


二、命令(Commands):AI 的"条件反射"

2.1 什么是命令?

命令是用户发出的明确意图信号,用于触发 AI 的特定行为。 它是人机交互的"快捷键"。

2.2 命令与技能的关系

很多人会混淆命令和技能。一句话区分:

命令是"触发器",技能是"执行体"。 命令告诉 AI “做什么”,技能告诉 AI “怎么做”。

用户输入: "帮我审查 src/auth.ts"
         ↓
    [意图识别] → 匹配到 code-review 技能
         ↓
    [技能加载] → 加载 .trae/skills/code-review/SKILL.md
         ↓
    [执行引擎] → 按 SKILL.md 定义的步骤执行
         ↓
    [输出]     → 结构化审查报告

2.3 🛠️ Trae 实操:命令体系全景

Trae 的命令体系分布在多个交互入口:

① 模式切换(最核心的"命令")
模式 快捷键/入口 定位 适用场景
Chat 模式 Ctrl+U 调出 AI 侧栏 问答式交互 代码解释、方案讨论、知识问答
Builder 模式 AI 侧栏切换 自主执行式 从零搭建项目、批量修改、复杂重构
SOLO 模式 独立窗口 全自主智能体 长周期任务、多步骤工作流
② 上下文引用命令

在对话框中使用 @ 符号引用上下文:

@file:src/auth/login.ts      # 引用特定文件
@folder:src/components/       # 引用整个目录
@code:第15-30行               # 引用选中代码片段
@web:React 19 新特性          # 联网搜索
@skill:code-review            # 显式调用技能
③ 内联命令(Inline Chat)

选中代码后按 Ctrl+I,弹出内联对话框,直接对选中代码下达指令:

选中一段代码 → Ctrl+I → 输入"重构为函数式风格" → 直接生成 diff
④ Git Commit 命令

在源代码管理面板,点击提交框右侧的下拉图标 → 配置提交信息生成规则,Trae 会自动在 .trae/rules/ 下生成 git-commit-message.md 规则文件,之后每次提交都会按规则自动生成规范的 commit message。

2.4 命令设计的最佳实践

# 好的命令设计原则
原则一: 动词优先,语义明确
  ✅ "重构这个组件为函数式风格"
  ❌ "帮我处理一下这个文件"

原则二: 提供充分上下文
  ✅ "@file:src/api/user.ts 按照 @skill:api-design 重新设计接口"
  ❌ "改一下接口"

原则三: 明确输出期望
  ✅ "输出 diff 格式,不要解释"
  ❌ "改完给我看看"

三、规则(Rules):AI 的"宪法"

3.1 什么是规则?

规则是不可变的、始终生效的行为约束。 它不关心"做什么任务",只关心"无论做什么,都必须遵守什么"。

一个类比:

如果技能是"操作手册",那规则就是"公司制度"。操作手册告诉你怎么完成具体工作,公司制度告诉你哪些红线绝对不能碰——无论你做什么工作。

3.2 规则 vs 技能:最容易混淆的一组

对比维度 规则(Rules) 技能(Skills)
生效方式 始终生效,被动约束 按需加载,主动执行
内容性质 “不可以做什么” / “必须怎样” “怎么做某件事”
触发方式 无需触发,自动应用 由任务类型或显式引用触发
上下文开销 始终占用(但通常很短) 不用时零开销
类比 交通法规 驾驶教程

⚠️ 黄金法则:如果一条约束"无论做什么任务都必须遵守",它就是规则,不是技能。把规则错当技能,等于给安全留了后门。

3.3 🛠️ Trae 实操:规则配置全攻略

Trae 的规则系统分为两个层级,配置路径和生效范围各不相同:

层级一:个人规则(User Rules)
  • 存储路径~/.trae/rules/user_rules.md(全局目录)
  • 生效范围:对你所有项目生效
  • 配置入口:AI 侧栏 → AI 功能管理(齿轮图标)→ 规则 → 个人规则 → 编辑

典型内容:

# 个人规则 (user_rules.md)

## 语言与交互
- Please always reply to me in Chinese.
- 代码注释使用英文,对话交流使用中文。
- 回答要简洁专业,避免冗余解释。

## 编码偏好
- 优先使用函数式编程风格,避免不必要的 class。
- 变量命名使用 camelCase,常量使用 UPPER_SNAKE_CASE。
- 每个函数不超过 30 行,超过则拆分。
- 禁止使用 any 类型(TypeScript 项目)。

## 输出格式
- 代码修改以 diff 格式展示。
- 每次修改后简要说明改动原因(不超过3句话)。
层级二:项目规则(Project Rules)
  • 存储路径:项目根目录 .trae/rules/project_rules.md(或任意 .md 文件)
  • 生效范围:仅当前项目生效
  • 配置入口:AI 侧栏 → AI 功能管理 → 规则 → 项目规则 → 编辑
  • 团队协作.trae/rules/ 目录应提交到 Git,团队共享

典型内容:

# 项目规则 (project_rules.md)

## 项目概述
这是一个基于 React 18 + TypeScript + Vite 的电商前端项目。
使用 pnpm 作为包管理器,Zustand 作为状态管理。

## 技术栈约束
- React 组件必须使用函数式组件 + Hooks,禁止 class 组件。
- 状态管理统一使用 Zustand,禁止引入 Redux / MobX。
- HTTP 请求统一使用 src/utils/request.ts 封装的 axios 实例。
- 样式方案使用 Tailwind CSS,禁止内联 style 和 CSS Modules。

## 目录规范
- 页面组件放在 src/pages/
- 通用组件放在 src/components/
- 自定义 Hook 放在 src/hooks/
- API 接口定义放在 src/api/

## 安全规则(不可覆盖)
- 禁止在前端代码中硬编码任何密钥、Token。
- 所有用户输入必须经过 sanitize 处理后再渲染。
- 禁止使用 dangerouslySetInnerHTML,除非经过 DOMPurify 过滤。

## Git 规范
- commit message 格式:type(scope): description
- type 可选值:feat / fix / refactor / docs / test / chore
- 每次提交前必须通过 ESLint 检查
规则优先级(从高到低)
用户当前输入指令
    ↓
自定义智能体的提示词
    ↓
个人规则 (user_rules.md)
    ↓
项目规则 (project_rules.md)

⚠️ 避坑提醒:如果个人规则和项目规则冲突,个人规则优先级更高。团队协作时,建议个人规则只放"语言偏好"等无争议内容,把技术规范全部放在项目规则中。

规则编写的 5 个避坑要点
❌ 错误做法 ✅ 正确做法 原因
使用"可能"“尽量”“建议” 使用"必须"“禁止”“始终” 模糊词会降低规则权重
一个文件写 500 行 每个规则文件控制在 200 行以内 过长会被模型截断或忽略
把技能流程写成规则 规则只写约束,流程放 Skill 职责混淆导致两边都不生效
规则中引用不存在的文件路径 写清楚相对于项目根目录的路径 路径错误会导致规则无法关联
所有规则堆在一个文件 按主题拆分:naming.mdsecurity.mdgit.md 模块化管理,按需加载

四、记忆(Memory):AI 的"海马体"

4.1 为什么 Agent 需要记忆?

大模型的上下文窗口本质上是短期记忆。一旦超出窗口或开启新对话,就必然"遗忘"。

没有记忆系统的 Agent,就像一个只有 7 秒记忆的金鱼——每次对话都是"初次见面"。

4.2 记忆 vs 规则:一对黄金搭档

对比维度 规则(Rules) 记忆(Memory)
来源 人工编写,显式配置 AI 自动提取 / 用户主动告知
性质 静态的、确定性的约束 动态的、概率性的经验
更新频率 低频,手动维护 高频,持续积累
类比 刻在石头上的法律 写在笔记本上的经验
规则说:"用户偏好使用 Vim 键位"        ← 静态规则
记忆说:"用户在 7月15日 提到正在学 Emacs,
        但主要工作流仍然是 Vim"         ← 动态记忆

协同结果:AI 默认使用 Vim 风格建议,
         但在用户明确讨论 Emacs 时,
         能理解上下文并给出恰当回应。

4.3 🛠️ Trae 实操:记忆功能全解

Trae 的记忆系统分为两种生成方式两个作用域

生成方式
方式 触发条件 示例
自动记忆 AI 在对话中识别到重复的个性化需求时,自动沉淀 你连续 3 次要求"用中文注释",AI 自动记住
手动记忆 用户在对话中显式要求 AI 记住 “请记住:我的项目部署在阿里云 ECS 上,IP 是 xxx”
作用域
类型 说明 存储位置
全局记忆 跨项目生效,记住你的个人偏好 本机 ~/.trae/ 目录下
项目记忆 仅当前项目生效,记住项目上下文 与项目关联,存储在本机
实操演示

场景 1:让 AI 自动记住你的偏好

# 在 Trae Chat 中对话:

你:帮我写一个用户列表组件
AI:(生成代码,使用 class 组件)

你:我说过很多次了,用函数式组件!
AI:好的,已重新生成。

(此时 Trae 会自动将"用户偏好函数式组件"沉淀为记忆)

# 下一次新对话:
你:帮我写一个订单详情组件
AI:(直接生成函数式组件)✅ 记忆生效

场景 2:手动写入关键信息

你:请记住以下项目信息:
    - 数据库:PostgreSQL 15,部署在 RDS 上
    - 缓存:Redis 7,用于 session 和热点数据
    - 消息队列:RabbitMQ,用于异步通知
    - 部署环境:staging / production 两套

AI:已记住。后续涉及数据库、缓存、消息队列的操作,
    我会基于这些信息进行方案设计。

场景 3:查看和管理记忆

操作路径:AI 侧栏 → AI 功能管理 → 记忆

你可以:
✅ 查看所有已存储的记忆条目(按时间倒序)
✅ 手动删除过时或错误的记忆
✅ 导出记忆(换电脑时迁移)
✅ 导入记忆(恢复备份)
记忆管理的避坑指南
问题 原因 解决方案
C 盘空间被占满 记忆缓存默认存储在用户目录 修改 Trae 记忆存储路径到 D 盘
项目改名后记忆丢失 记忆与项目路径绑定 改名前导出记忆,改名后重新导入
换电脑后记忆没了 记忆存储在本机 使用导出/导入功能迁移
AI 记住了错误信息 自动记忆可能误判 定期审查记忆列表,手动删除错误条目

五、四大基石的协同:一个完整的 Trae 实战故事

让我们用一个真实场景,把四大基石在 Trae 中串起来:

场景:开发者让 Trae 帮忙重构一个认证模块

┌─────────────────────────────────────────────────────────┐
│  Step 1 ─ 命令触发                                       │
│                                                         │
│  在 Builder 模式中输入:                                  │
│  "重构 src/auth/ 目录,迁移到 OAuth 2.0"                 │
│                                                         │
│  → Trae 识别意图,准备加载相关技能                         │
├─────────────────────────────────────────────────────────┤
│  Step 2 ─ 技能加载                                       │
│                                                         │
│  自动匹配并加载:                                        │
│  • .trae/skills/refactor/SKILL.md                       │
│  • .trae/skills/security-audit/SKILL.md                 │
│                                                         │
│  → AI 获得了"怎么重构"和"怎么审计安全"的完整 SOP           │
├─────────────────────────────────────────────────────────┤
│  Step 3 ─ 规则约束(始终生效,无需触发)                    │
│                                                         │
│  项目规则 (.trae/rules/project_rules.md):               │
│  • 使用 TypeScript strict 模式                           │
│  • 状态管理使用 Zustand                                  │
│  • 禁止硬编码密钥                                       │
│                                                         │
│  个人规则 (~/.trae/rules/user_rules.md):                │
│  • 使用函数式风格                                       │
│  • 中文回复                                            │
│                                                         │
│  → 无论怎么重构,这些红线不能碰                            │
├─────────────────────────────────────────────────────────┤
│  Step 4 ─ 记忆检索                                       │
│                                                         │
│  项目记忆:                                              │
│  • "数据库是 PostgreSQL 15,部署在 RDS"                  │
│  • "Redis 7 用于 session 存储"                          │
│                                                         │
│  全局记忆:                                              │
│  • "用户偏好函数式编程,不喜欢 class"                     │
│  • "上周用户提到团队计划迁移到 OAuth 2.0"                 │
│                                                         │
│  → 重构方案会保留 Redis 依赖,使用函数式风格,             │
│    并考虑 OAuth 2.0 的迁移方向                           │
├─────────────────────────────────────────────────────────┤
│  Step 5 ─ 执行与反馈                                     │
│                                                         │
│  Trae 输出重构方案(diff 格式)                           │
│  → 用户确认 → 执行修改                                  │
│  → 本次交互的关键决策被写入项目记忆                        │
│  → 如果发现新的项目约束,提示用户更新项目规则               │
└─────────────────────────────────────────────────────────┘

四大基石,缺一不可:

没有技能 → AI 不知道"怎么做",输出质量不稳定
没有命令 → 用户不知道"怎么触发",交互效率低下
没有规则 → AI 不知道"边界在哪",可能犯致命错误
没有记忆 → AI 不知道"之前发生了什么",每次都是陌生人

六、Trae 配置速查表

为了方便日常使用,这里整理一份完整的配置速查表:

文件结构总览

~/.trae/                          # 全局配置(个人级)
├── rules/
│   └── user_rules.md             # 个人规则
└── memory/                       # 全局记忆存储

your-project/                     # 项目根目录
├── .trae/                        # 项目配置(团队级,提交 Git)
│   ├── rules/
│   │   ├── project_rules.md      # 项目规则(主文件)
│   │   ├── security.md           # 安全规则(拆分文件)
│   │   └── git-commit-message.md # Git 提交规范
│   └── skills/
│       ├── code-review/
│       │   └── SKILL.md
│       ├── api-design/
│       │   └── SKILL.md
│       └── unit-test-gen/
│           └── SKILL.md
├── src/
└── package.json

快捷键速查

快捷键 功能 对应概念
Ctrl+U 打开/关闭 AI 侧栏 命令入口
Ctrl+I 内联对话(对选中代码操作) 命令
Ctrl+L 打开 Chat 面板 命令入口
@ 引用文件/目录/代码/技能 命令(上下文注入)
Ctrl+Shift+P → “Trae” 命令面板 命令

配置优先级总览

┌────────────────────────────────────────────┐
│  优先级从高到低:                            │
│                                            │
│  1. 用户当前对话中的指令                      │
│  2. 自定义智能体(Agent)的提示词             │
│  3. 个人规则 (~/.trae/rules/user_rules.md)  │
│  4. 项目规则 (.trae/rules/project_rules.md) │
│  5. 技能 (.trae/skills/*/SKILL.md)         │
│  6. 记忆(自动/手动沉淀的经验)               │
│  7. 模型默认行为                            │
└────────────────────────────────────────────┘

七、2026 年的趋势:从"手动配置"到"自主进化"

站在 2026 年年中回望,以 Trae 为代表的 AI IDE 正在经历一场范式转移:

维度 2024 年 2026 年(Trae 现状)
技能 人工编写 Prompt SKILL.md 标准化 + 社区共享 + SOLO 模式自动生成
命令 固定菜单 自然语言意图理解 + @ 引用 + 多模式切换
规则 手动维护一份大文件 分层规则(个人/项目)+ 模块化拆分 + Git 协作
记忆 无 / 简单上下文 自动记忆 + 手动记忆 + 导入导出 + 跨项目/全局分离

最值得关注的一个趋势是 “记忆即基础设施”(Memory as Infrastructure)

记忆不再是一个可选的"附加功能",而是 Agent 系统的核心基础设施。就像数据库之于 Web 应用,记忆系统之于 AI Agent,正在成为同等重要的存在。


结语

回到最初的问题:为什么你的 AI 总是"教不会"?

因为你试图用一段 Prompt 同时承载技能、命令、规则和记忆四个维度的信息。这就像试图用一张便利贴写完整本员工手册——不是便利贴不好,是它不该承担这个重量。

在 Trae 中的正确做法是:

你想做的事 应该配置什么 在哪里配置
让 AI 永远遵守某些规范 规则 .trae/rules/
让 AI 学会某个复杂流程 技能 .trae/skills/
让 AI 记住你的偏好和项目信息 记忆 对话中告知 / AI 功能管理
高效触发 AI 执行任务 命令 快捷键 / @ 引用 / 模式切换

当这四个维度各司其职、协同工作时,AI 就不再是一个脆弱的脚本,而是一个真正可协作的工作伙伴

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐