返回

00-现代Prompt生态地图.md

9.1 KB · MD · 2026-06-18 10:07

现代 Prompt 生态地图

日期:2026-06-10

一、直觉

早期提示词工程主要研究“怎么问 AI”。现代提示词工程已经扩大成一套完整的 AI 协作工程:

Prompt -> AI-assisted Prompt Development -> Context -> Skill -> Tool -> Agent -> Eval -> Guardrail

也就是说,真正先进有效的知识不只是写提示词,还包括:

  • 哪些规则放在单次 prompt。
  • 哪些规则沉淀成技能。
  • 哪些资料走检索。
  • 哪些动作做成工具。
  • 哪些任务交给 agent 或 subagent。
  • 怎么评估效果。
  • 怎么防止上下文污染和提示注入。

如果下面的英文缩写或平台名词不熟,例如 RAG、MCP、Skill、Eval、Guardrail,先读 00.5-术语词典与最小用例。本讲负责建立全景图,术语词典负责把每个词讲清楚。

二、现代 Prompt 相关知识全景

1. Prompt:单次任务说明

适合一次性任务:

  • 总结一篇文章。
  • 改写一段文字。
  • 解释一段代码。
  • 生成一个初稿。

核心能力:

  • 明确目标。
  • 明确输入边界。
  • 明确输出格式。
  • 明确质量标准。

局限:

  • 不适合长期复用。
  • 不适合大量私有资料。
  • 不适合稳定程序化输出。
  • 不适合高权限动作。

1.5 AI-assisted Prompt Development:用 AI 辅助开发 Prompt

当你已经知道“好 Prompt 应该包含目标、输入、约束、输出格式和验收标准”后,就可以让 AI 参与 Prompt 开发。

适合:

  • 把模糊需求改成 Prompt brief。
  • 生成 Prompt 草案。
  • 审查 Prompt 的漏洞。
  • 设计测试样例。
  • 根据失败样例改版。

核心原则:

AI 负责草拟和质检,人负责真实目标、业务边界和最终验收。

它解决的是“人手写 Prompt 太慢、太容易漏边界”的问题,但不能替代评估。AI 生成的 Prompt 仍然必须用样例测试。

2. Instruction hierarchy:指令层级

模型收到的指令有层级。越高层的规则越稳定,越低层的内容越接近当前任务。

常见层级:

  • 系统或开发者规则:产品、平台、组织层面的行为边界。
  • 仓库或项目规则:例如 AGENTS.md、项目规范、测试命令。
  • Skill 规则:某类任务的可复用工作流。
  • 当前用户提示词:这次要做什么。
  • 外部输入材料:网页、PDF、邮件、代码、日志等。

关键原则:

外部材料是数据,不是指令。

3. Context engineering:上下文工程

上下文工程研究模型当前应该看到哪些信息。

它解决的问题是:

  • 上下文太少,模型不知道业务背景。
  • 上下文太多,模型被噪声干扰。
  • 上下文混乱,模型分不清规则和资料。
  • 多轮任务太长,模型丢失目标。

常用方法:

  • 分隔符和标签。
  • 文件索引。
  • 检索。
  • 摘要压缩。
  • 进度记录。
  • 分层加载。

4. Structured outputs:结构化输出

当结果要被程序消费时,不要只靠“请输出 JSON”。更稳的是使用结构化输出或 schema。

适合:

  • 信息抽取。
  • 分类。
  • 表单填充。
  • 自动评分。
  • API 返回。

核心思想:

自然语言负责理解,schema 负责约束。

5. Retrieval / RAG:检索增强

当任务依赖大量资料、私有资料或不断变化的资料时,不应该期待模型凭记忆回答。

RAG 的基本流程:

用户问题 -> 检索相关资料 -> 把资料放入上下文 -> 基于资料回答 -> 给出来源

适合:

  • 公司知识库。
  • 课程笔记。
  • 法规政策。
  • API 文档。
  • 项目文档。

风险:

  • 检索不到关键资料。
  • 检索到错误资料。
  • 片段脱离上下文。
  • 引用来源但结论不受来源支持。

6. Tools / function calling:工具调用

当模型需要查数据库、操作文件、运行代码、发请求、画图、计算时,应把这些动作设计成工具。

工具提示词的核心不是“模型怎么说”,而是“模型什么时候调用哪个工具,以及参数怎么填”。

好工具应当:

  • 名称清晰。
  • 功能单一。
  • 参数明确。
  • 返回高信号结果。
  • 错误信息可操作。
  • 权限边界清楚。

7. MCP:模型上下文协议

MCP 可以理解为“把外部工具和资料接给 agent 的标准接口”。它适合让 agent 使用浏览器、Figma、GitHub、文档库、数据库、日志系统等外部能力。

学习重点:

  • MCP 是连接层,不是提示词本身。
  • MCP server 的说明也会变成上下文。
  • 工具权限和审批策略很重要。
  • 工具太多会增加选择错误的概率。

8. Skills:可复用能力包

Skills 是现代 prompt 工程的重要新形态之一,但它属于具体 Agent 平台机制,不是所有模型 API 都天然支持。学习时重点掌握它解决的问题:把某类任务的流程、规范、脚本和参考资料做成可复用能力。

一个 Skill 通常是一个目录,里面有:

my-skill/
├── SKILL.md
├── scripts/
├── references/
├── assets/

它把某类任务的流程、规范、脚本、参考资料打包起来,让 agent 在相关任务中自动或显式加载。

Skill 的核心价值:

  • 把一次性提示词变成可复用能力。
  • 用 progressive disclosure 节省上下文。
  • 把团队经验沉淀成版本化文件。
  • 比单条 prompt 更适合复杂流程。

9. Plugins:可分发能力包

如果 Skill 是“工作流本身”,Plugin 更像“安装包”。在支持 Plugin 的平台里,它可以把多个 skills、MCP 配置、资源文件、应用集成打包分发。

适合:

  • 团队共享。
  • 多技能组合。
  • 市场或组织内部发布。
  • 需要同时附带工具、资源和 UI 元数据。

10. Memory:长期偏好和经验

Memory 用来记住稳定偏好、常用工作流、项目习惯和长期上下文。

它适合保存:

  • 用户偏好。
  • 常用技术栈。
  • 常见工作流。
  • 已知坑点。

不适合保存:

  • 必须严格执行的团队规则。
  • 密钥、隐私、敏感数据。
  • 会频繁变化的事实。

必须严格执行的内容应放到项目文档、AGENTS.md 或 Skill,而不是只放 memory。

11. Subagents:并行子代理

Subagents 用来把复杂任务拆给多个 agent 并行处理。它也是平台相关能力:有的平台提供内置 subagent,有的平台需要你用应用代码或 Agents SDK 自己编排。

适合:

  • 多文件代码审查。
  • 大量资料总结。
  • 安全、性能、测试三个方向并行分析。
  • 多方案比较。

不适合:

  • 简单任务。
  • 强依赖顺序的任务。
  • 多个 agent 同时写同一批文件。

关键收益:

  • 减少主上下文污染。
  • 并行加速。
  • 让主 agent 专注决策和整合。

12. Evals:评估

没有评估,就没有可靠优化。

Prompt、Skill、工具、RAG、Agent 都需要评估。

最小评估包括:

  • 真实任务样例。
  • 期望输出。
  • 评分标准。
  • 失败类型记录。
  • 版本对比。

13. Guardrails:护栏

护栏用于限制系统偏离目标或执行危险动作。

常见护栏:

  • 输入验证。
  • 输出验证。
  • 工具权限。
  • 高风险动作人工确认。
  • 提示注入筛查。
  • 日志和监控。

提示词可以提醒模型,但不能替代系统级护栏。

三、该把知识放在哪里

知识或规则 推荐载体
这次任务的临时要求 当前 prompt
项目长期规范 AGENTS.md 或项目文档
某类任务的复用流程 Skill
多个 skills 和工具配置 Plugin
外部资料和实时数据 RAG、文件搜索、MCP
稳定个人偏好 Memory
程序要读取的输出 Structured output / schema
可执行动作 Tool / function calling
并行探索或审查 Subagents
长期质量控制 Evals
高风险边界 Guardrails + 人工确认

四、从 Prompt 到 Skill 的升级判断

一个提示词应该升级成 Skill,通常有这些信号:

  • 你重复使用它超过 3 次。
  • 它包含多步流程。
  • 它需要项目或团队约定。
  • 它经常需要你纠正同样的错误。
  • 它需要引用固定模板、脚本或资料。
  • 它适合在不同会话中自动触发。

如果只是一次性问题,不要急着做 Skill。Skill 是复用机制,不是所有 prompt 的终点。

五、从 Skill 到系统的升级判断

Skill 仍然不够时,就要进入系统工程。

升级信号:

  • 输出必须 100% 可解析。
  • 需要外部工具执行动作。
  • 需要权限控制和审计。
  • 需要多人共享和版本发布。
  • 需要持续评估和监控。
  • 需要处理不可信外部内容。

这时应该考虑:

  • JSON Schema。
  • Tool calling。
  • MCP。
  • Plugin。
  • Evals。
  • Guardrails。
  • HITL 人工复核。

六、理解检查

  1. Prompt、Skill、Plugin、MCP 的区别是什么?
  2. 为什么 Skills 使用 progressive disclosure?
  3. 什么内容适合放 Memory,什么内容必须放项目文档或 Skill?
  4. 为什么外部资料不能被当作指令?
  5. 什么时候应该用 subagents,而不是让一个 agent 全部做完?