提示词系统是五层框架中最底层的知识资产层,负责提示词的存储、迭代、格式转换与生命周期管理。它与 Skill System 形成能力梯度:提示词是原子级指令片段,Skill 是经过结构化封装的可复用能力单元。本文档覆盖提示词库的架构设计、数据模型、转换工具链以及从提示词到 Skill 的演进路径。
架构总览
提示词系统的核心设计决策是以云端表格为唯一真实源,本地仓库仅作为入口索引和格式转换工具的宿主。这消除了多格式同步的歧义:所有提示词的创建、编辑、版本迭代都在 Google Sheets 中完成,本地工具按需将表格内容导出为 Markdown、JSONL 或 Excel 等目标格式。
数据模型:三维提示词矩阵
提示词在云端表格中组织为一个三维矩阵结构,这是理解整个转换管线的关键。三个维度分别是:
| 维度 | 表格映射 | 含义 | 示例 |
|---|---|---|---|
| 分类 | 工作表 | 提示词的领域或用途类别 | 元提示词、系统提示词、编程提示词 |
| 横轴(列) | 版本迭代 | 同一提示词的演化过程 | 1a → 1b → 1c |
| 纵轴(行) | 提示词实例 | 不同的独立提示词 | 提示词1、提示词2、... |
每个单元格即是一条完整的提示词文本。当转换工具将 Excel 导出到文件系统时,这个三维矩阵被展平为目录结构:
prompt_docs/prompt_docs_YYYY_MMDD_HHMMSS/ └── prompts/ ├── (1)元提示词/ │ ├── (1,1)_生成提示词的提示词.md # row=1, col=1 (版本1) │ ├── (1,2)_优化版.md # row=1, col=2 (版本2) │ ├── (2,1)_角色扮演生成.md # row=2, col=1 │ └── index.md # 自动生成的分类索引 ├── (2)系统提示词/ │ ├── (1,1)_AI系统级提示词.md │ └── index.md └── index.json # 全局结构化索引文件命名规范(行,列)_标题.md中的(行,列)元组充当跨介质主键——它确保 Excel 单元格与文件系统之间建立可逆的双向映射关系。标题部分仅用于提升人读可读性,回写 Excel 时会被忽略 。
提示词分类体系
云端表格中的每个工作表代表一个提示词类别。当前定义的分类如下:
| 工作表名称 | 分类定位 | 典型用途 |
|---|---|---|
| 元提示词 | 关于提示词的提示词 | 生成、优化、评审其他提示词的元指令 |
| 系统提示词 | AI 系统级配置 | 定义 AI 的角色、行为边界和输出格式 |
| 编程提示词 | 代码与工程 | 编程任务、代码审查、架构设计 |
| 用户提示词 | 端到端场景 | 面向最终用户的具体任务指令 |
这个分类体系的设计遵循“元→系统→领域→场景”的抽象层级,与 Problem Solving Framework 中的目标-约束-对象分层相对应。值得注意的是,提示词分类是扁平的(非层级),刻意避免了过度分类导致的检索摩擦。
格式转换工具链:Prompts Library Converter
tools/prompts-library/是提示词系统的核心基础设施,它提供五种双向转换模式,以main.py作为统一入口进行调度。转换工具的设计遵循一个关键原则:内容纯净性——每个.md文件只包含单元格的原始文本,不允许附加 Markdown 标题、代码围栏、版本历史或时间戳等元信息。
五种转换模式
| 模式 | 命令 | 输入 → 输出 | 核心逻辑 |
|---|---|---|---|
| Excel → Docs | --mode excel2docs | .xlsx→ Markdown 目录 | 每个非空单元格生成(r,c)_标题.md |
| Docs → Excel | --mode docs2excel | Markdown 目录 →.xlsx | 解析文件名回写单元格位置 |
| Docs → JSONL | --mode docs2jsonl | Markdown 目录 →.jsonl | 扫描prompts/子目录提取结构化记录 |
| JSONL → Excel | --mode jsonl2excel | .jsonl→.xlsx | 单元格存储{"title":"...","content":"..."}JSON 对象 |
| Excel(JSONL) → JSONL | --mode jsonl_excel2jsonl | JSONL 格式.xlsx→ JSONL 目录 | 自动检测内部 JSONL 格式,按工作表拆分输出 |
JSONL 数据格式
JSONL 是提示词系统的中间交换格式,每行一个 JSON 对象,承载完整的元信息:
{ "category_id": 2, "category": "元提示词", "row": 1, "col": 1, "title": "生成提示词的提示词", "content": "你是一个提示词工程专家..." }字段中category_id和category标识分类,row/col保持与 Excel 矩阵的位置对应,title截断至 80 字符,content保留完整文本。当 JSONL 转换回 Excel 时,单元格仅保留title和content两个字段 。
工具使用方式
安装依赖后,你可以通过交互式或命令行两种方式使用转换器:
# 安装依赖 cd tools/prompts-library python3 -m pip install -r requirements.txt # 交互式选择(推荐首次使用) python3 main.py # 指定模式和路径(CI/自动化场景) python3 main.py --select "prompt_excel/example.xlsx" --mode excel2docs # 非交互执行(跳过所有提示) python3 main.py --select "prompt_excel/example.xlsx" --mode excel2docs --non-interactive工具会自动检测 Excel 文件是否为内部 JSONL 格式(通过检查单元格内容是否以{开头且包含title/content字段),并据此选择正确的转换路径。
💡
prompt_jsonl/目录是生成物,已在.gitignore中忽略。切勿手动编辑或提交该目录。如需对 JSONL 数据进行版本控制,应将其导出至仓库外或通过 CI 管道管理。
输入输出目录约定
| 目录 | 角色 | 是否提交 Git |
|---|---|---|
prompt_excel/ | Excel 源文件输入目录 | ✅ 是 |
prompt_docs/ | Markdown 文档输入/输出目录 | ✅ 是 |
prompt_jsonl/ | JSONL 输出目录 | ❌ 否(已 gitignore) |
行分类与内容路由
转换工具在处理 Excel 行时执行智能行分类,将不同类型的内容路由到不同的输出位置。这是内容纯净性原则的体现——提示词文件中只保留纯内容,元信息由自动化工具生成到专用文档中。
这种分类机制确保了提示词库输出的关注点分离:纯提示词内容进入prompts/目录供直接使用,辅助信息(工具链接、钱包地址)归档到docs/目录供参考,广告/占位等噪声则被自动过滤。
提示词到 Skill 的演进路径
提示词系统并非孤立存在——它是能力抽象层级中的原子层。当提示词积累到一定复杂度,需要结构化的触发条件、边界约束和质量保障时,就应将其封装为 Skill。这是五层框架中从“知识资产”到“可执行能力”的关键跃迁。
两者的本质区别可以用下表概括:
| 维度 | 提示词 | Skill |
|---|---|---|
| 结构 | 单个文本片段 | SKILL.md+references/+scripts/+assets/ |
| 激活机制 | 手动粘贴/引用 | YAML frontmatter 声明 + 触发关键词自动匹配 |
| 边界定义 | 无显式边界 | When to Use+Not For / Boundaries强制声明 |
| 质量保障 | 人工评审 | Quality Gate 检查清单 +validate-skill.sh自动化验证 |
| 可复用性 | 低(依赖上下文) | 高(自包含,含示例和验收标准) |
| 演进方向 | → 被封装为 Skill 的一部分 | → 嵌入 Engineering Loop |
💡:判断何时将提示词升级为 Skill 的经验法则:当同一条提示词被跨项目复用超过 3 次,或需要超过 3 个条件语句来描述其使用边界时,就该封装为 Skill。详细的 Skill 规范参见 Auto-Skill Meta-Skill。
操作指南:端到端工作流
以下流程图展示了一条提示词从创建到最终交付的完整生命周期:
快速开始
对于首次使用者,建议按以下最小步骤操作:
- 浏览现有提示词:访问 提示词云端表格 了解现有资产
- 转换现有 Excel:将
.xlsx文件放入prompt_excel/,运行python3 main.py选择交互式转换 - 查看导出结果:在
prompt_docs/中浏览生成的 Markdown 文档目录结构
设计决策与取舍
提示词系统的架构选择反映了几个关键的设计哲学:
内容纯净性优先。提示词.md文件只保留单元格的原始文本,末尾追加一个换行。不包含 Markdown 标题、分隔线、代码围栏、版本历史或时间戳。所有元信息(统计、导航、版本矩阵)由自动化工具生成到index.md和index.json中。这避免了元信息造成的噪声与二义性,使提示词文件可以被直接复制、拼接或用于模型训练 。
以(行,列)作为跨介质主键。行列坐标是 Excel 和文件系统之间唯一可靠的映射标识。文件夹名与工作表名的映射以index.json为准,直接根据文件夹名反向还原可能因净化规则(空格替换为下划线、特殊字符移除)而出现偏差。
云端表格为唯一真实源。本地不创建提示词文件——所有创建和编辑操作在云端表格中完成,本地仅存放转换工具和入口索引。这彻底消除了多端同步冲突的可能性。
约束与维护规则
在操作提示词系统时,需要遵守以下规则:
允许的操作:
- 更新
prompts/README.md中的链接和说明- 同步云端表格的结构变化到文档
- 在
tools/prompts-library/中修改转换逻辑(需先阅读main.py和对应脚本)- 新增依赖(必须同步更新
requirements.txt)
禁止的操作:
- 在本地
prompts/目录中创建提示词文件(应添加到云端表格)- 删除
prompts/README.md- 在任何目录中写入敏感信息(密钥、Token、个人路径)
- 提交生成目录、缓存和临时导出
- 手动编辑
prompt_jsonl/中的生成物
修改后的验证:修改转换工具后,至少运行python3 main.py --help确认入口正常。如改动影响仓库文档或链接,还需在仓库根目录运行make test。
延伸阅读
理解提示词系统后,建议按以下顺序继续深入五层框架的其他层级:
- Skill System— 当提示词需要结构化封装时,学习如何将原子提示词升级为可复用的 Skill
- Engineering Loop— 了解 Skill 如何嵌入开发流程,形成人机协作的工程闭环
- Auto-Skill Meta-Skill— 掌握自动从文档/API/代码中提取并生成 Skill 的元技能
- Prompts Library Converter— 深入了解格式转换工具的技术实现细节
- Quality Gates— 理解贯穿所有层级的质量保障机制
Footnotes
文件名正则约束为
^\(\d+,\d+\)_.+\.md$。参见
build_text_record()函数中的标题截断逻辑。参见互转规范第3节“文件内容规范(强约束)”。
下一章:技能系统