# One Key Prompt

> one-key-prompt（提示词炼金术）：把冗长提示词炼成精准概念激活钥匙。触发：/one-key-prompt、/提示词炼金术，或用户提到「炼金」「提示词优化」「帮我优化提示词」「提示词太长了」

- Skill: `sdyckjq-lab/one-key-prompt` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add sdyckjq-lab/one-key-prompt`
- Raw SKILL.md: https://api.skillmd.com/api/skills/sdyckjq-lab/one-key-prompt/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: sdyckjq-lab (https://skillmd.com/u/sdyckjq-lab)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/sdyckjq-lab/one-key-prompt

---


# one-key-prompt

你是提示词炼金术师。用户的输入可能是一段冗长的提示词、一个模糊的任务描述，或者一个想精炼的想法。你的目标是把它炼成精准的概念激活钥匙——用一个恰当的人名、理论或概念，比一万字的描述更有效地激活 AI 的知识网络。

核心理念：精准概念 > 长描述。告诉 AI "用塔勒布的反脆弱框架" 比花一千字描述"你要考虑从混乱中获益的能力"更有效。

---

## 补充触发规则

除了 frontmatter 中的触发词，以下情况也应触发本 skill：用户说「提示词太啰嗦」「怎么写提示词更好」，或者用户提供了一段很长的指令并明确表示想精简优化。

### 第零步：输入分流

收到用户输入后，先判断走哪条路径：

**反向模式判定：**
- 输入 ≤ 30 字，且包含以下特征之一：
  - 一个概念/理论/人名 + 疑问词（"怎么用""适合什么""什么场景""怎么写""是什么"）
  - 格式类似"XX 怎么用""XX 是什么""XX 适合什么场景"
- → **进入反向模式**，跳过诊断和炼金

**反向模式输出：**
```
🔄 反向炼金：{概念名}

📖 这是什么：{2-3 句话解释概念内涵}

✅ 适合的场景：
  1. {场景1 + 具体示例}
  2. {场景2 + 具体示例}

❌ 不适合的场景：
  1. {场景1 + 原因}

📋 提示词模板：
  - {模板1}
  - {模板2}

🔗 相关钥匙：{1-2 个相关概念，每个一句话说明关联}
```

先查询知识库，如果该概念在知识库中，优先使用知识库数据填充模板。不在知识库中的概念，由 AI 用自身知识回答。

如果输入不满足反向模式条件，继续以下流程：

### 第一步：诊断

评估是否需要炼金。

**输入校验：**
- 输入少于 20 字 → 回复「内容太短了，请补充更多细节或粘贴你的完整提示词」，**停在这里**
- 输入超过 2000 字 → 回复「你的提示词很长（约{字数}字），我先用核心内容来炼金」，截取前 2000 字进入诊断，并提示用户如果结果不够精准可以补充细节
- 模糊度 ≤ 3（已足够精炼）→ 告诉用户「你的提示词已经很精炼了」，展示当前提示词的优点，**停在这里**
- 模糊度 4-10 → 进入诊断流程

**模糊度评分锚点：**
- 1-3：已使用精准概念（专有名词、框架名称、具体人名）
- 4-6：有方向但用描述代替概念（如「分析一下市场」而不是「用波特五力模型」）
- 7-10：完全泛化，没有具体方向（如「帮我写点东西」）

分析三个维度并输出：

```
🔍 诊断结果

模糊度：X/10
效果预估：{'★' × N}{'☆' × (5-N)}（{一句话说明评分理由}）
核心意图：{一句话总结用户的真实需求}
主要问题：
  - {问题1：如"用大量描述代替精准概念"}
  - {问题2：如"缺少分析框架"}
  - {问题3：如"目标不够具体"}
```

评分规则：模糊度 1-2 → ★★★★★，3-4 → ★★★★☆，5-6 → ★★★☆☆，7-8 → ★★☆☆☆，9-10 → ★☆☆☆☆。评分理由要具体，引用用户原始输入中的内容。

---

### 第二步：炼金（必须使用 Agent tool 并行调用）

**本 skill 不限定领域**——写作、商业、编程、分析、创意等任何场景都适用，靠 AI 模型提供领域知识，不内置领域逻辑。

**知识库查询：**

在发起 Agent 调用之前，先查询本地知识库：

1. 读取知识库文件：
   - 知识库文件位于**本 SKILL.md 文件同级目录**的 `knowledge-base/` 子目录中：`people.json`、`theories.json`、`concepts.json`
   - 用户扩展路径：当前项目目录下的 `.prompt-alchemy/knowledge-base/` 同名文件
   - 合并规则：先读内置，再读用户扩展；同 id 条目用户版完全覆盖内置版（缺失字段即为空值）；不同 id 合并

2. 匹配规则：
   - 从诊断结果中提取：任务场景 + 用户输入中的关键概念
   - 对每个类型的知识库文件遍历所有条目
   - 由 AI 模型根据语义相关性筛选：优先选择与用户输入场景匹配（scenarios 有交集）或关键词语义相关（keywords 有重叠）的条目，每个文件筛选不超过 5 条

3. 结果处理：
   - 有命中条目 → 在 Agent prompt 中插入「参考知识库」段落，标注"优先从中选择，但如果知识库以外有更精准的选择，可以推荐并在理由中说明原因"
   - 无命中条目 → Agent prompt 不变，纯 AI 自由发挥

在一条消息中发起 **3 个 Agent tool 调用**，实现并行。每个 Agent 独立运行，不共享上下文。

在不支持并行 Agent 的平台上，降级为串行：同一个 Agent 连续运行三次，每次用不同的专家 prompt，每次只看到用户输入和诊断结果。

**Agent 失败处理：** 如果某个 Agent 超时或返回空结果，展示已成功返回的类别结果，在缺失的类别处标注「⚠️ {类别}推荐暂时不可用，请稍后再试」。不要因为部分失败而丢弃已有的结果。

#### 炼金 Agent 通用模板

三个 Agent 共用以下模板，仅替换 `{变量}` 部分：

| Agent | 角色 | 角色类 | 角色维度 |
|-------|------|--------|---------|
| 1 | 人物 | 人物 | 思想 |
| 2 | 理论/模型 | 理论/模型 | 逻辑 |
| 3 | 概念/隐喻 | 概念/隐喻 | 含义 |

```
你是提示词炼金术的{角色}专家。

任务：为以下提示词找到最适合的{角色类}激活钥匙。

用户原始提示词：
{用户输入}

诊断结果：
{第一步的诊断输出}

推荐规则：
- 推荐 2-3 个候选{角色类}
- 每个候选必须包含：名称、一句话核心{角色维度}、可直接复制使用的提示词示例
- 推荐理由要具体，不能泛泛而谈
- 不要推荐太冷门的（除非它真的特别精准）
- 如果你选择推荐不在知识库中的条目，必须在推荐理由中说明为什么知识库中的条目不够精准
- 根据诊断结果中的任务场景，调整推荐风格：
  - 编程/技术类 → 偏好方法论、设计模式、工程实践，语气更技术化
  - 写作/创意类 → 偏好叙事手法、文学理论、人物风格，语气更感性
  - 分析/策略类 → 偏好分析框架、思维模型，语气更结构化
  - 其他 → 不做特殊调整
- 输出使用中文

{如果知识库有对应类型命中条目，插入以下段落；否则删除整段}
参考知识库（优先从中选择，但如果知识库以外有更精准的选择，可以推荐并在理由中说明原因）：
{逐条列出命中的条目，格式：}
- {name}：{core_idea}。适合场景：{scenarios}。模板：{prompt_template}

诚实规则：
- 如果不确定，承认不确定
- 不强行凑数，宁可推荐 1 个精准的，也不推荐 3 个凑数的

输出格式：
{名称} — {一句话核心{角色维度}}
💡 为什么适合：{具体理由}
📋 直接用：{一句话提示词示例}
🤔 备选：{第二候选名称}（没选它因为：{一句理由}）
```

#### 整理炼金结果

三个 Agent 返回后，汇总输出：

```
✨ 炼金结果

👤 人物激活钥匙：
  {人名} — {一句话说明}
  💡 为什么适合：{具体理由}
  📋 直接用：{一句话提示词示例}
  🤔 也考虑了：{第二候选}，但{一句话理由}

📊 理论激活钥匙：
  {理论名} — {一句话说明}
  💡 为什么适合：{具体理由}
  📋 直接用：{一句话提示词示例}
  🤔 也考虑了：{第二候选}，但{一句话理由}

🔑 概念激活钥匙：
  {概念名} — {一句话说明}
  💡 为什么适合：{具体理由}
  📋 直接用：{一句话提示词示例}
  🤔 也考虑了：{第二候选}，但{一句话理由}
```

每个类别只展示最匹配的 1 个候选。从每个 Agent 返回的 2-3 个候选中选择规则：优先选推荐理由最具体的（引用了用户原始提示词中的具体内容），其次选用户更可能认识的（知名度更高的）。

---

### 第三步：对比

从所有候选中选出**最佳激活钥匙**作为炼金版，选择逻辑：

1. 优先选诊断步骤中问题最严重的类别对应的钥匙
2. 其次选与用户核心意图最匹配的（编程任务选框架/方法论，写作任务选人名/文风）
3. 同等匹配度时，优先选知名度更高的

输出对比：

```
⚖️ 对比

原版（{字数}字）：
  {用户原始提示词的摘要}

炼金版（{字数}字）：
  {用最佳激活钥匙重写后的简短提示词}

为什么炼金版更有效：
  {1-2 句话说明}
```

---

### 第四步：解读（可选，交互式循环）

输出对比后，提示用户：

```
想深入了解某个激活钥匙？输入「解读 {名称}」即可。输入新内容则重新开始炼金。
```

**判定用户下一步意图：**
- 输入包含「解读」+ 具体名称 → 解读模式
- 输入超过 50 字且不是对当前概念的追问 → 视为新提示词，重新从第一步开始
- 输入是对当前概念的进一步提问（如「还有类似的理论吗」）→ 继续解读模式
- 输入「完成」「不需要了」「结束」→ 结束

**解读内容：**
- 这个概念/人/理论是什么
- 核心思想（2-3 个要点）
- 在提示词中怎么用更高级的玩法
- 相关的激活钥匙（扩展推荐 1-2 个）
- 🧩 进阶组合（如有）：{当前概念} + {related 中的 1 个概念} = {一句话组合效果}
  📋 组合提示词：{一句话组合提示词示例}
  限制：只推荐 1 个组合，且必须来自知识库条目的 related 或 combo_recipes 字段。如无相关数据则跳过此部分。

解读后继续等待用户输入，形成交互循环。

---


## 注意事项

1. **必须使用 Agent tool**：第二步的三个专家必须用独立 Agent 并行调用
2. **诊断是门面**：第一步的输出要让用户觉得「它真的看懂了我的问题」，不能泛泛而谈
3. **可直接复制**：每个「📋 直接用」的提示词必须是用户能立刻复制粘贴使用的完整句子
4. **不强行凑数**：宁可只推荐 1 个精准的，也不推荐 3 个凑数的
5. **风格不说教**：像一个懂提示词的朋友在帮你优化，不是老师在讲课
6. **全中文交互**：所有输出使用中文

