提示词系统是五层框架中最底层的知识资产层,负责提示词的存储、迭代、格式转换与生命周期管理。它与 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

操作指南:端到端工作流

以下流程图展示了一条提示词从创建到最终交付的完整生命周期:

快速开始

对于首次使用者,建议按以下最小步骤操作:

  1. 浏览现有提示词:访问 提示词云端表格 了解现有资产
  2. 转换现有 Excel:将 .xlsx 文件放入 prompt_excel/,运行 python3 main.py 选择交互式转换
  3. 查看导出结果:在 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

  1. 文件名正则约束为 ^\(\d+,\d+\)_.+\.md$ 。

  2. 参见 build_text_record() 函数中的标题截断逻辑。

  3. 参见互转规范第3节“文件内容规范(强约束)”。

                                                                                                                          下一章:技能系统

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐