技能与命令、规则与记忆:AI Agent 的四大基石
文章目录
—— 附 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-review→refactor→unit-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.md、security.md、git.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 就不再是一个脆弱的脚本,而是一个真正可协作的工作伙伴。
更多推荐


所有评论(0)