Trae AI技能创建全攻略:自动保存你的输入的提示词

📋 文章目录
点击收起/展开目录
#mermaid-svg-omemloYiitG95ZRl{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-omemloYiitG95ZRl .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-omemloYiitG95ZRl .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-omemloYiitG95ZRl .error-icon{fill:#552222;}#mermaid-svg-omemloYiitG95ZRl .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-omemloYiitG95ZRl .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-omemloYiitG95ZRl .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-omemloYiitG95ZRl .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-omemloYiitG95ZRl .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-omemloYiitG95ZRl .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-omemloYiitG95ZRl .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-omemloYiitG95ZRl .marker{fill:#333333;stroke:#333333;}#mermaid-svg-omemloYiitG95ZRl .marker.cross{stroke:#333333;}#mermaid-svg-omemloYiitG95ZRl svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-omemloYiitG95ZRl p{margin:0;}#mermaid-svg-omemloYiitG95ZRl .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-omemloYiitG95ZRl .cluster-label text{fill:#333;}#mermaid-svg-omemloYiitG95ZRl .cluster-label span{color:#333;}#mermaid-svg-omemloYiitG95ZRl .cluster-label span p{background-color:transparent;}#mermaid-svg-omemloYiitG95ZRl .label text,#mermaid-svg-omemloYiitG95ZRl span{fill:#333;color:#333;}#mermaid-svg-omemloYiitG95ZRl .node rect,#mermaid-svg-omemloYiitG95ZRl .node circle,#mermaid-svg-omemloYiitG95ZRl .node ellipse,#mermaid-svg-omemloYiitG95ZRl .node polygon,#mermaid-svg-omemloYiitG95ZRl .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-omemloYiitG95ZRl .rough-node .label text,#mermaid-svg-omemloYiitG95ZRl .node .label text,#mermaid-svg-omemloYiitG95ZRl .image-shape .label,#mermaid-svg-omemloYiitG95ZRl .icon-shape .label{text-anchor:middle;}#mermaid-svg-omemloYiitG95ZRl .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-omemloYiitG95ZRl .rough-node .label,#mermaid-svg-omemloYiitG95ZRl .node .label,#mermaid-svg-omemloYiitG95ZRl .image-shape .label,#mermaid-svg-omemloYiitG95ZRl .icon-shape .label{text-align:center;}#mermaid-svg-omemloYiitG95ZRl .node.clickable{cursor:pointer;}#mermaid-svg-omemloYiitG95ZRl .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-omemloYiitG95ZRl .arrowheadPath{fill:#333333;}#mermaid-svg-omemloYiitG95ZRl .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-omemloYiitG95ZRl .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-omemloYiitG95ZRl .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-omemloYiitG95ZRl .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-omemloYiitG95ZRl .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-omemloYiitG95ZRl .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-omemloYiitG95ZRl .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-omemloYiitG95ZRl .cluster text{fill:#333;}#mermaid-svg-omemloYiitG95ZRl .cluster span{color:#333;}#mermaid-svg-omemloYiitG95ZRl div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-omemloYiitG95ZRl .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-omemloYiitG95ZRl rect.text{fill:none;stroke-width:0;}#mermaid-svg-omemloYiitG95ZRl .icon-shape,#mermaid-svg-omemloYiitG95ZRl .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-omemloYiitG95ZRl .icon-shape p,#mermaid-svg-omemloYiitG95ZRl .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-omemloYiitG95ZRl .icon-shape rect,#mermaid-svg-omemloYiitG95ZRl .image-shape rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-omemloYiitG95ZRl .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-omemloYiitG95ZRl .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-omemloYiitG95ZRl :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
Trae AI技能创建
前置准备
核心创建
实战应用
技能概念理解
环境准备
创建技能文件
编写执行代码
配置技能参数
压缩与上传
测试与调试
优化建议
- 一、技能创建:是什么?
- 二、为什么需要自动保存技能?
- 三、如何创建自动保存技能?
- 3.1 创建技能文件结构
- 3.2 编写SKILL.md描述文件
- 3.3 编写main.py执行脚本
- 3.4 创建requirements.txt文件
- 四、技能配置与上传
- 4.1 压缩文件
- 4.2 上传到Trae AI
- 4.3 配置技能参数
- 五、测试与验证
- 六、进阶优化与建议
- 七、常见问题解答
- 八、结语与互动
一、技能创建:是什么?
在Trae AI中,技能(Skill)是扩展AI功能的核心方式。技能允许用户自定义AI的行为模式,让AI具备特定的自动化能力。通过创建技能,你可以:
技能创建的核心是三个文件:SKILL.md(技能描述)、main.py(执行代码)和requirements.txt(依赖管理)。这些文件打包后上传到Trae AI,即可扩展AI的能力边界。
文件系统
技能
TraeAI
用户
文件系统
技能
TraeAI
用户
#mermaid-svg-C8MlGWiWHRJk9qXP{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-C8MlGWiWHRJk9qXP .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-C8MlGWiWHRJk9qXP .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-C8MlGWiWHRJk9qXP .error-icon{fill:#552222;}#mermaid-svg-C8MlGWiWHRJk9qXP .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-C8MlGWiWHRJk9qXP .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-C8MlGWiWHRJk9qXP .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-C8MlGWiWHRJk9qXP .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-C8MlGWiWHRJk9qXP .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-C8MlGWiWHRJk9qXP .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-C8MlGWiWHRJk9qXP .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-C8MlGWiWHRJk9qXP .marker{fill:#333333;stroke:#333333;}#mermaid-svg-C8MlGWiWHRJk9qXP .marker.cross{stroke:#333333;}#mermaid-svg-C8MlGWiWHRJk9qXP svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-C8MlGWiWHRJk9qXP p{margin:0;}#mermaid-svg-C8MlGWiWHRJk9qXP .actor{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-C8MlGWiWHRJk9qXP text.actor>tspan{fill:black;stroke:none;}#mermaid-svg-C8MlGWiWHRJk9qXP .actor-line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#mermaid-svg-C8MlGWiWHRJk9qXP .innerArc{stroke-width:1.5;stroke-dasharray:none;}#mermaid-svg-C8MlGWiWHRJk9qXP .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#mermaid-svg-C8MlGWiWHRJk9qXP .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#mermaid-svg-C8MlGWiWHRJk9qXP #arrowhead path{fill:#333;stroke:#333;}#mermaid-svg-C8MlGWiWHRJk9qXP .sequenceNumber{fill:white;}#mermaid-svg-C8MlGWiWHRJk9qXP #sequencenumber{fill:#333;}#mermaid-svg-C8MlGWiWHRJk9qXP #crosshead path{fill:#333;stroke:#333;}#mermaid-svg-C8MlGWiWHRJk9qXP .messageText{fill:#333;stroke:none;}#mermaid-svg-C8MlGWiWHRJk9qXP .labelBox{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-C8MlGWiWHRJk9qXP .labelText,#mermaid-svg-C8MlGWiWHRJk9qXP .labelText>tspan{fill:black;stroke:none;}#mermaid-svg-C8MlGWiWHRJk9qXP .loopText,#mermaid-svg-C8MlGWiWHRJk9qXP .loopText>tspan{fill:black;stroke:none;}#mermaid-svg-C8MlGWiWHRJk9qXP .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#mermaid-svg-C8MlGWiWHRJk9qXP .note{stroke:#aaaa33;fill:#fff5ad;}#mermaid-svg-C8MlGWiWHRJk9qXP .noteText,#mermaid-svg-C8MlGWiWHRJk9qXP .noteText>tspan{fill:black;stroke:none;}#mermaid-svg-C8MlGWiWHRJk9qXP .activation0{fill:#f4f4f4;stroke:#666;}#mermaid-svg-C8MlGWiWHRJk9qXP .activation1{fill:#f4f4f4;stroke:#666;}#mermaid-svg-C8MlGWiWHRJk9qXP .activation2{fill:#f4f4f4;stroke:#666;}#mermaid-svg-C8MlGWiWHRJk9qXP .actorPopupMenu{position:absolute;}#mermaid-svg-C8MlGWiWHRJk9qXP .actorPopupMenuPanel{position:absolute;fill:#ECECFF;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#mermaid-svg-C8MlGWiWHRJk9qXP .actor-man line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-C8MlGWiWHRJk9qXP .actor-man circle,#mermaid-svg-C8MlGWiWHRJk9qXP line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;stroke-width:2px;}#mermaid-svg-C8MlGWiWHRJk9qXP :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
输入提示词
触发save_prompt
检查文件存在
文件状态
追加内容
操作结果
返回保存消息
显示保存结果
二、为什么需要自动保存技能?
在AI协作编程过程中,我们经常会产生有价值的提示词、代码片段和解决方案。然而,这些宝贵内容往往散落在对话历史中,难以追溯和复用。自动保存技能解决了以下痛点:
#mermaid-svg-GedTG2ZU1Y2dKphC{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-GedTG2ZU1Y2dKphC .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-GedTG2ZU1Y2dKphC .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-GedTG2ZU1Y2dKphC .error-icon{fill:#552222;}#mermaid-svg-GedTG2ZU1Y2dKphC .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-GedTG2ZU1Y2dKphC .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-GedTG2ZU1Y2dKphC .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-GedTG2ZU1Y2dKphC .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-GedTG2ZU1Y2dKphC .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-GedTG2ZU1Y2dKphC .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-GedTG2ZU1Y2dKphC .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-GedTG2ZU1Y2dKphC .marker{fill:#333333;stroke:#333333;}#mermaid-svg-GedTG2ZU1Y2dKphC .marker.cross{stroke:#333333;}#mermaid-svg-GedTG2ZU1Y2dKphC svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-GedTG2ZU1Y2dKphC p{margin:0;}#mermaid-svg-GedTG2ZU1Y2dKphC .pieCircle{stroke:#000000;stroke-width:2px;opacity:0.7;}#mermaid-svg-GedTG2ZU1Y2dKphC .pieOuterCircle{stroke:#000000;stroke-width:1px;fill:none;}#mermaid-svg-GedTG2ZU1Y2dKphC .pieTitleText{text-anchor:middle;font-size:25px;fill:#000000;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}#mermaid-svg-GedTG2ZU1Y2dKphC .slice{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;fill:#000000;font-size:17px;}#mermaid-svg-GedTG2ZU1Y2dKphC .legend text{fill:#000000;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:17px;}#mermaid-svg-GedTG2ZU1Y2dKphC :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
35%
25%
20%
20%
自动保存技能解决的问题
对话历史丢失
重复输入相同提示词
团队知识无法共享
最佳实践难以积累
具体价值体现:
三、如何创建自动保存技能?
3.1 创建技能文件结构
首先,在本地创建一个技能文件夹,结构如下:
save_prompt_skill/
├── SKILL.md # 技能描述文件(核心配置)
├── main.py # 技能执行代码
└── requirements.txt # Python依赖说明(可选)

3.2 编写SKILL.md描述文件
SKILL.md是技能的核心描述文件,使用YAML+Markdown格式:
—
name: save_prompt
description: 自动将输入内容追加保存到prompt提示词.md文件中
—
# save_prompt
## 命令
当用户在对话框中输入内容时,自动触发保存功能
## 使用场景
– 记录有价值的提示词和对话内容
– 自动备份AI协作过程
– 创建可复用的提示词库
– 团队知识积累和共享
## 输出解释
1. 每次触发都会将输入内容追加到指定文件
2. 自动添加时间戳和分隔符
3. 文件不存在时自动创建并初始化
4. 返回操作结果和文件状态
## 示例
**用户输入:**
帮我写一个Python快速排序算法
**技能响应:**
✅ 内容已保存到 prompt提示词.md
时间:2024–01–15 14:30:25
内容摘要:帮我写一个Python快速排序算法
关键配置说明:
- name:技能的唯一标识,使用英文小写和下划线
- description:简明扼要的技能描述
- 内容部分:详细说明技能的使用方法和预期效果
3.3 编写main.py执行脚本
main.py包含技能的核心逻辑,实现自动保存功能:
#!/usr/bin/env python3
"""
save_prompt 技能 – 自动保存输入内容到文件
"""
import os
import sys
from datetime import datetime
from pathlib import Path
def save_to_prompt_file(input_text: str) –> str:
"""
将输入文本保存到 prompt提示词.md 文件
参数:
input_text: 用户输入的文本内容
返回:
保存结果的字符串描述
"""
try:
# 定义保存路径
file_path = Path("prompt提示词.md")
# 初始化文件(如果不存在)
if not file_path.exists():
with open(file_path, "w", encoding="utf-8") as f:
f.write("# 📝 Prompt提示词库\\n\\n")
f.write("> 本文件由 save_prompt 技能自动生成和维护\\n\\n")
f.write("—\\n\\n")
# 准备追加内容(带时间戳)
timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
content_to_append = f"## ⏰ {timestamp}\\n\\n"
content_to_append += f"{input_text}\\n\\n"
content_to_append += "—\\n\\n"
# 执行追加操作
with open(file_path, "a", encoding="utf-8") as f:
f.write(content_to_append)
# 返回用户友好的成功消息
content_preview = input_text[:60] + "…" if len(input_text) > 60 else input_text
return (
f"✅ **保存成功!**\\n\\n"
f"**文件路径:** `{file_path.absolute()}`\\n"
f"**保存时间:** {timestamp}\\n"
f"**内容预览:** {content_preview}\\n\\n"
f"💡 提示:所有历史记录已安全保存,可随时查看和复用。"
)
except PermissionError:
return "❌ 权限不足:无法写入文件,请检查文件权限"
except Exception as e:
return f"❌ 保存失败:{str(e)}"
def main():
"""主函数:处理命令行参数"""
if len(sys.argv) < 2:
# 显示使用帮助
help_text = """
🛠️ save_prompt 技能使用说明
用法:
save_prompt "要保存的文本内容"
示例:
save_prompt "如何优化Python代码性能?"
功能:
将输入内容自动追加到 prompt提示词.md 文件
"""
print(help_text)
return
# 合并所有参数(支持带空格的文本)
input_text = " ".join(sys.argv[1:])
# 执行保存并输出结果
result = save_to_prompt_file(input_text)
print(result)
if __name__ == "__main__":
main()
3.4 创建requirements.txt文件
虽然本技能只使用Python标准库,但保留requirements.txt是良好的实践:
# save_prompt 技能依赖说明
# 本技能仅使用Python 3.11+标准库,无需额外安装包
# 如果需要添加依赖,格式如下:
# package_name==version
# 示例:
# requests==2.28.1
# pandas==1.5.0
四、技能配置与上传
4.1 压缩文件
将三个文件打包成ZIP格式: 
Windows系统:
macOS/Linux系统:
zip -r save_prompt.skill.zip SKILL.md main.py requirements.txt
4.2 上传到Trae AI
进入Trae AI技能创建界面,按照以下步骤操作:
#mermaid-svg-cTLFyRQuNPmUjPT3{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-cTLFyRQuNPmUjPT3 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-cTLFyRQuNPmUjPT3 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-cTLFyRQuNPmUjPT3 .error-icon{fill:#552222;}#mermaid-svg-cTLFyRQuNPmUjPT3 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-cTLFyRQuNPmUjPT3 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-cTLFyRQuNPmUjPT3 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-cTLFyRQuNPmUjPT3 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-cTLFyRQuNPmUjPT3 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-cTLFyRQuNPmUjPT3 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-cTLFyRQuNPmUjPT3 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-cTLFyRQuNPmUjPT3 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-cTLFyRQuNPmUjPT3 .marker.cross{stroke:#333333;}#mermaid-svg-cTLFyRQuNPmUjPT3 svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-cTLFyRQuNPmUjPT3 p{margin:0;}#mermaid-svg-cTLFyRQuNPmUjPT3 .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-cTLFyRQuNPmUjPT3 .cluster-label text{fill:#333;}#mermaid-svg-cTLFyRQuNPmUjPT3 .cluster-label span{color:#333;}#mermaid-svg-cTLFyRQuNPmUjPT3 .cluster-label span p{background-color:transparent;}#mermaid-svg-cTLFyRQuNPmUjPT3 .label text,#mermaid-svg-cTLFyRQuNPmUjPT3 span{fill:#333;color:#333;}#mermaid-svg-cTLFyRQuNPmUjPT3 .node rect,#mermaid-svg-cTLFyRQuNPmUjPT3 .node circle,#mermaid-svg-cTLFyRQuNPmUjPT3 .node ellipse,#mermaid-svg-cTLFyRQuNPmUjPT3 .node polygon,#mermaid-svg-cTLFyRQuNPmUjPT3 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-cTLFyRQuNPmUjPT3 .rough-node .label text,#mermaid-svg-cTLFyRQuNPmUjPT3 .node .label text,#mermaid-svg-cTLFyRQuNPmUjPT3 .image-shape .label,#mermaid-svg-cTLFyRQuNPmUjPT3 .icon-shape .label{text-anchor:middle;}#mermaid-svg-cTLFyRQuNPmUjPT3 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-cTLFyRQuNPmUjPT3 .rough-node .label,#mermaid-svg-cTLFyRQuNPmUjPT3 .node .label,#mermaid-svg-cTLFyRQuNPmUjPT3 .image-shape .label,#mermaid-svg-cTLFyRQuNPmUjPT3 .icon-shape .label{text-align:center;}#mermaid-svg-cTLFyRQuNPmUjPT3 .node.clickable{cursor:pointer;}#mermaid-svg-cTLFyRQuNPmUjPT3 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-cTLFyRQuNPmUjPT3 .arrowheadPath{fill:#333333;}#mermaid-svg-cTLFyRQuNPmUjPT3 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-cTLFyRQuNPmUjPT3 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-cTLFyRQuNPmUjPT3 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-cTLFyRQuNPmUjPT3 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-cTLFyRQuNPmUjPT3 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-cTLFyRQuNPmUjPT3 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-cTLFyRQuNPmUjPT3 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-cTLFyRQuNPmUjPT3 .cluster text{fill:#333;}#mermaid-svg-cTLFyRQuNPmUjPT3 .cluster span{color:#333;}#mermaid-svg-cTLFyRQuNPmUjPT3 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-cTLFyRQuNPmUjPT3 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-cTLFyRQuNPmUjPT3 rect.text{fill:none;stroke-width:0;}#mermaid-svg-cTLFyRQuNPmUjPT3 .icon-shape,#mermaid-svg-cTLFyRQuNPmUjPT3 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-cTLFyRQuNPmUjPT3 .icon-shape p,#mermaid-svg-cTLFyRQuNPmUjPT3 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-cTLFyRQuNPmUjPT3 .icon-shape rect,#mermaid-svg-cTLFyRQuNPmUjPT3 .image-shape rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-cTLFyRQuNPmUjPT3 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-cTLFyRQuNPmUjPT3 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-cTLFyRQuNPmUjPT3 :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
开始上传
点击上传按钮
选择 save_prompt.skill.zip
等待智能解析完成
解析成功
解析失败
配置技能参数
检查文件格式
界面操作对应文字描述:
- 全局技能(在所有项目中可用)
- 项目技能(仅在当前项目可用)

4.3 配置技能参数
在Trae AI界面中填写以下配置:
技能名称:save_prompt 描述:自动将输入内容追加保存到prompt提示词.md文件中
指令配置:
# save_prompt 技能配置
## 核心功能
自动捕获用户输入并保存到本地文件,建立可检索的提示词库。
## 触发规则
1. 用户输入任意非空内容时自动触发
2. 忽略系统命令和空输入
3. 每次保存都添加时间戳标记
## 文件管理
– 存储位置:当前工作目录下的 `prompt提示词.md`
– 文件格式:标准Markdown,兼容所有编辑器
– 存储策略:追加模式,保留完整历史
## 响应格式
✅ **保存成功提示**
文件信息 + 时间戳 + 内容摘要
❌ **错误提示**
具体错误原因 + 解决建议
## 使用示例
输入:帮我解释React Hooks的工作原理
输出:✅ 内容已保存(时间 + 路径 + 摘要)
五、测试与验证
5.1 基本功能测试

5.2 文件结构验证
检查生成的 prompt提示词.md 文件:
# 📝 Prompt提示词库
> 本文件由 save_prompt 技能自动生成和维护
—
## ⏰ 2026-02-01 10:30:25
Python列表推导式的最佳实践
—
## ⏰ 2026-02-01 10:31:10
如何配置Webpack优化打包速度?
—
## ⏰ 2026-02-01 10:32:05
机器学习模型评估的常用指标
—
5.3 技能触发测试
在Trae AI对话框中:
六、进阶优化与建议
6.1 技能功能扩展
# 扩展版本:支持分类保存
class AdvancedPromptSaver:
def __init__(self):
self.categories = {
'code': '代码相关提示词',
'design': '设计相关提示词',
'debug': '调试技巧',
'learn': '学习资源'
}
def save_with_category(self, text: str, category: str = 'general'):
"""按分类保存提示词"""
if category not in self.categories:
category = 'general'
filename = f"prompt_{category}.md"
# 保存逻辑…
6.2 性能优化建议
6.3 团队协作优化
#mermaid-svg-B7fLP2uA0QmPxmA3{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-B7fLP2uA0QmPxmA3 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-B7fLP2uA0QmPxmA3 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-B7fLP2uA0QmPxmA3 .error-icon{fill:#552222;}#mermaid-svg-B7fLP2uA0QmPxmA3 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-B7fLP2uA0QmPxmA3 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-B7fLP2uA0QmPxmA3 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-B7fLP2uA0QmPxmA3 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-B7fLP2uA0QmPxmA3 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-B7fLP2uA0QmPxmA3 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-B7fLP2uA0QmPxmA3 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-B7fLP2uA0QmPxmA3 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-B7fLP2uA0QmPxmA3 .marker.cross{stroke:#333333;}#mermaid-svg-B7fLP2uA0QmPxmA3 svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-B7fLP2uA0QmPxmA3 p{margin:0;}#mermaid-svg-B7fLP2uA0QmPxmA3 .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-B7fLP2uA0QmPxmA3 .cluster-label text{fill:#333;}#mermaid-svg-B7fLP2uA0QmPxmA3 .cluster-label span{color:#333;}#mermaid-svg-B7fLP2uA0QmPxmA3 .cluster-label span p{background-color:transparent;}#mermaid-svg-B7fLP2uA0QmPxmA3 .label text,#mermaid-svg-B7fLP2uA0QmPxmA3 span{fill:#333;color:#333;}#mermaid-svg-B7fLP2uA0QmPxmA3 .node rect,#mermaid-svg-B7fLP2uA0QmPxmA3 .node circle,#mermaid-svg-B7fLP2uA0QmPxmA3 .node ellipse,#mermaid-svg-B7fLP2uA0QmPxmA3 .node polygon,#mermaid-svg-B7fLP2uA0QmPxmA3 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-B7fLP2uA0QmPxmA3 .rough-node .label text,#mermaid-svg-B7fLP2uA0QmPxmA3 .node .label text,#mermaid-svg-B7fLP2uA0QmPxmA3 .image-shape .label,#mermaid-svg-B7fLP2uA0QmPxmA3 .icon-shape .label{text-anchor:middle;}#mermaid-svg-B7fLP2uA0QmPxmA3 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-B7fLP2uA0QmPxmA3 .rough-node .label,#mermaid-svg-B7fLP2uA0QmPxmA3 .node .label,#mermaid-svg-B7fLP2uA0QmPxmA3 .image-shape .label,#mermaid-svg-B7fLP2uA0QmPxmA3 .icon-shape .label{text-align:center;}#mermaid-svg-B7fLP2uA0QmPxmA3 .node.clickable{cursor:pointer;}#mermaid-svg-B7fLP2uA0QmPxmA3 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-B7fLP2uA0QmPxmA3 .arrowheadPath{fill:#333333;}#mermaid-svg-B7fLP2uA0QmPxmA3 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-B7fLP2uA0QmPxmA3 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-B7fLP2uA0QmPxmA3 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-B7fLP2uA0QmPxmA3 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-B7fLP2uA0QmPxmA3 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-B7fLP2uA0QmPxmA3 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-B7fLP2uA0QmPxmA3 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-B7fLP2uA0QmPxmA3 .cluster text{fill:#333;}#mermaid-svg-B7fLP2uA0QmPxmA3 .cluster span{color:#333;}#mermaid-svg-B7fLP2uA0QmPxmA3 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-B7fLP2uA0QmPxmA3 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-B7fLP2uA0QmPxmA3 rect.text{fill:none;stroke-width:0;}#mermaid-svg-B7fLP2uA0QmPxmA3 .icon-shape,#mermaid-svg-B7fLP2uA0QmPxmA3 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-B7fLP2uA0QmPxmA3 .icon-shape p,#mermaid-svg-B7fLP2uA0QmPxmA3 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-B7fLP2uA0QmPxmA3 .icon-shape rect,#mermaid-svg-B7fLP2uA0QmPxmA3 .image-shape rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-B7fLP2uA0QmPxmA3 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-B7fLP2uA0QmPxmA3 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-B7fLP2uA0QmPxmA3 :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
开发者A
共享技能配置
开发者B
开发者C
团队知识库
标准化提示词
效率提升40%
七、常见问题解答
Q1:技能没有触发怎么办?
A: 检查以下配置:
Q2:文件保存在什么位置?
A: 文件保存在当前工作目录。可以通过以下方式查看:
import os
print(f"当前目录:{os.getcwd()}")
print(f"文件路径:{os.path.join(os.getcwd(), 'prompt提示词.md')}")
Q3:如何修改保存路径?
A: 修改main.py中的file_path定义:
# 保存到指定目录
file_path = Path("/path/to/your/directory/prompt提示词.md")
# 或保存到桌面(跨平台)
from pathlib import Path
desktop = Path.home() / "Desktop"
file_path = desktop / "prompt提示词.md"
Q4:支持保存图片或文件吗?
A: 当前版本仅支持文本。如果需要保存多媒体内容,需要扩展技能功能,将文件转换为Base64编码或保存文件路径引用。
Q5:技能会影响AI响应速度吗?
A: 影响极小。保存操作是异步进行的,通常只需几毫秒,不会明显影响对话体验。
Q6:如何分享技能给团队成员?
A: 两种方式:
八、结语与互动
8.1 总结回顾
8.2 技能价值延伸
这个自动保存技能不仅解决了提示词管理的问题,更展示了一种AI协作的新范式:让AI适应你的工作流程。你可以基于这个模式,创建更多个性化技能,如:
- 代码片段管理器
- 会议纪要自动生成器
- 学习笔记整理助手
- 项目进度跟踪器
8.3 互动讨论
💬 欢迎在评论区分享你的经验:
> 转载声明:本文原创,转载请注明出处。





