# 提示词工程

本目录用于系统学习提示词工程。重点不是背模板，而是掌握一种可复用的工作方法：把对 AI 的请求写成清晰、可测试、可迭代的任务规格。

## 目录结构

- `核心课程/`：主线知识，按学习顺序阅读。
- `工具箱/`：长期复用的模板、评估清单和检查方法。
- `案例/`：具体应用场景。法律文书、合同、论文、客服等场景应放在这里，不打断主线课程。

## 学习目标

- 理解提示词工程不是“咒语”，而是任务设计、上下文管理、输出约束和评估迭代。
- 能为总结、分析、写作、代码、信息抽取、知识库问答和工具型 Agent 写出稳定提示词。
- 知道什么时候靠提示词，什么时候应该改模型、加检索、用结构化输出、用工具调用或做评估。
- 建立自己的提示词版本管理习惯：任务、输入、输出、失败样例、修改原因都要可追踪。

## 初学者怎么读

不要一开始通读所有材料。这个目录故意覆盖了从入门到工程化的完整链路，初学者应先跑通最小闭环，再回头补进阶内容。

第一轮只解决一个问题：怎样把一句模糊请求改成清楚任务。

1. 读 `核心课程/00-现代Prompt生态地图.md`，只建立全景，不要求记住所有名词。
2. 读 `核心课程/00.5-术语词典与最小用例.md` 的“速读清单”，其余术语遇到再查。
3. 读 `核心课程/01-现代提示词工程总论.md`。
4. 读 `核心课程/01.5-AI辅助Prompt开发工作流.md`。
5. 做 `练习/01-basic-prompts.md` 和 `练习/01.5-ai-assisted-prompt-development.md`。

第二轮再学习工程化能力：

1. `核心课程/02-从提示词到上下文工程.md`
2. `核心课程/05-RAG与文件检索.md`，然后做 `练习/03-mini-rag.md`
3. `核心课程/06-工具调用MCP与Agent工作流.md`
4. `核心课程/06.5-Responses API与结构化实现.md`，然后做 `练习/02-json-schema-extraction.md`
5. `核心课程/06.6-安全与Prompt Injection专题.md`，然后做 `练习/04-tool-calling-loop.md`
6. `核心课程/07-Eval自动化与回归测试.md`，然后做 `练习/05-eval-runner.md`

`03`、`04`、`08`、`09` 是进阶补强：当你开始复用流程、管理长期规则、拆多 agent 或关心上线成本时再精读。

## 推荐学习顺序

下面是完整学习顺序，不等于第一天必须全部读完。

1. `核心课程/00-现代Prompt生态地图.md`
2. `核心课程/00.5-术语词典与最小用例.md`
3. `核心课程/01-现代提示词工程总论.md`
4. `核心课程/01.5-AI辅助Prompt开发工作流.md`
5. `核心课程/02-从提示词到上下文工程.md`
6. `核心课程/03-Agent Skills与可复用能力.md`
7. `核心课程/04-指令层级与长期上下文.md`
8. `核心课程/05-RAG与文件检索.md`
9. `核心课程/06-工具调用MCP与Agent工作流.md`
10. `核心课程/06.5-Responses API与结构化实现.md`
11. `核心课程/06.6-安全与Prompt Injection专题.md`
12. `核心课程/07-Eval自动化与回归测试.md`
13. `核心课程/08-多智能体协作与Subagents.md`
14. `核心课程/09-成本延迟优化与生产监控.md`
15. `练习/README.md`
16. `工具箱/AI辅助Prompt开发模板.md`
17. `工具箱/评估清单.md`
18. `工具箱/Eval自动化模板.md`
19. `工具箱/多智能体协作模板.md`
20. `工具箱/成本延迟优化模板.md`
21. `工具箱/Prompt版本记录模板.md`
22. `工具箱/综合实战项目模板.md`
23. `工具箱/模板库.md`

如果读到某个英文缩写或平台名词觉得不清楚，先查 `核心课程/00.5-术语词典与最小用例.md`。它按“定义、什么时候用、最小例子、常见误解”解释核心术语。不要把词典当成必须背完的章节，它更像学习时随手查的索引。

## 案例材料

案例不是主线必读，适合需要处理具体文档或业务时再看。

- `案例/法律文书/长文档与法律文书提示词.md`
- `案例/法律文书/法律文书模板.md`
- `案例/法律文书/法律文书评估清单.md`
- `案例/综合实战/知识库问答Agent实战.md`
- `案例/代码助手/代码助手提示词与评估.md`
- `案例/论文阅读/论文阅读提示词与评估.md`
- `案例/客服问答/客服问答提示词与评估.md`

案例用于把主线方法迁移到不同场景。先学主线，再按自己的任务选择案例练习。

## 练习材料

- `练习/01-basic-prompts.md`
- `练习/01.5-ai-assisted-prompt-development.md`
- `练习/02-json-schema-extraction.md`
- `练习/03-mini-rag.md`
- `练习/04-tool-calling-loop.md`
- `练习/05-eval-runner.md`

## 核心原则

成熟提示词通常包含六个部分：

1. 目标：让模型知道最终要完成什么。
2. 背景：给模型必要上下文，不假设它知道你的业务。
3. 输入：清楚标出要处理的材料。
4. 约束：说明不能做什么、边界在哪里。
5. 输出格式：告诉模型用什么结构交付。
6. 验证标准：告诉模型什么算好结果。

## 工程化判断

提示词工程有边界。遇到下面情况，不应该继续只靠“把提示词写长”：

- 输出必须被程序消费：优先使用结构化输出、JSON Schema 或函数调用。
- 需要回答私有资料、长文档或不断更新的资料：优先使用检索、文件搜索或 RAG。
- 需要操作外部系统：把操作设计成权限清晰、参数可校验的工具。
- 同类任务要长期复用：沉淀成 Skill，而不是每次复制 prompt。
- 多个 Skills、MCP 配置和资源要共享：考虑打包成 Plugin。
- 任务可以并行拆解且中间过程噪声很大：考虑 Subagents。
- 是高风险任务：保留原文依据、引入人工复核、记录失败样例。
- 同一个提示词要长期复用：建立小型评估集，按版本迭代。

## 平台边界

本目录把通用方法和具体平台机制放在同一条学习线上。学习时要区分：

- 通用方法：目标、输入边界、输出格式、引用依据、评估、权限控制、人工复核。
- OpenAI API 机制：Responses API、Structured Outputs、function calling、built-in tools、Batch、Flex、Priority、prompt caching。
- Codex / Agent 平台机制：`AGENTS.md`、Skills、Plugins、Subagents、Memory。
- 跨平台协议：MCP。不同客户端支持程度、授权方式和安全策略可能不同。

不要把某个平台的名词误认为所有模型都天然支持的能力。做工程时以当前使用平台的官方文档为准。

## 整理原则

- 主线以通用能力为主：prompt、context、skill、RAG、tool、agent、eval、guardrail；平台实现内容要单独标注边界。
- 工具箱只放可跨场景复用的模板和检查方法。
- 场景化内容放入 `案例/`，例如法律文书、合同、论文、客服、代码助手。
- 某个案例中的好方法如果具备通用价值，再抽象回 `核心课程/` 或 `工具箱/`。

## 参考来源

以下笔记综合了官方文档中的稳定做法：

- OpenAI Prompt engineering: https://developers.openai.com/api/docs/guides/prompt-engineering
- OpenAI Responses API overview: https://developers.openai.com/api/reference/responses/overview
- OpenAI Structured Outputs: https://developers.openai.com/api/docs/guides/structured-outputs
- OpenAI Reasoning best practices: https://developers.openai.com/api/docs/guides/reasoning-best-practices
- OpenAI Reasoning models: https://developers.openai.com/api/docs/guides/reasoning
- OpenAI Prompt guidance: https://developers.openai.com/api/docs/guides/prompt-guidance
- OpenAI Prompt caching: https://developers.openai.com/api/docs/guides/prompt-caching
- OpenAI Latency optimization: https://developers.openai.com/api/docs/guides/latency-optimization
- OpenAI Cost optimization: https://developers.openai.com/api/docs/guides/cost-optimization
- OpenAI Production best practices: https://developers.openai.com/api/docs/guides/production-best-practices
- OpenAI Batch API: https://developers.openai.com/api/docs/guides/batch
- OpenAI Flex processing: https://developers.openai.com/api/docs/guides/flex-processing
- OpenAI Priority processing: https://developers.openai.com/api/docs/guides/priority-processing
- OpenAI Rate limits: https://developers.openai.com/api/docs/guides/rate-limits
- OpenAI Admin APIs: https://developers.openai.com/api/docs/guides/admin-apis
- OpenAI Agents observability: https://developers.openai.com/api/docs/guides/agents/integrations-observability
- OpenAI Working with evals: https://developers.openai.com/api/docs/guides/evals
- OpenAI Evaluation best practices: https://developers.openai.com/api/docs/guides/evaluation-best-practices
- OpenAI Graders: https://developers.openai.com/api/docs/guides/graders
- OpenAI Prompt optimizer: https://developers.openai.com/api/docs/guides/prompt-optimizer
- OpenAI Agent evals: https://developers.openai.com/api/docs/guides/agent-evals
- OpenAI Retrieval: https://developers.openai.com/api/docs/guides/retrieval
- OpenAI File search: https://developers.openai.com/api/docs/guides/tools-file-search
- OpenAI Function calling: https://developers.openai.com/api/docs/guides/function-calling
- OpenAI Using tools: https://developers.openai.com/api/docs/guides/tools
- OpenAI Tool search: https://developers.openai.com/api/docs/guides/tools-tool-search
- OpenAI MCP and Connectors: https://developers.openai.com/api/docs/guides/tools-connectors-mcp
- OpenAI Agents SDK: https://developers.openai.com/api/docs/guides/agents
- OpenAI Agents SDK handoffs: https://openai.github.io/openai-agents-python/handoffs/
- OpenAI Agents SDK multi-agent patterns: https://openai.github.io/openai-agents-python/multi_agent/
- OpenAI Codex Agent Skills: https://developers.openai.com/codex/skills
- OpenAI Skills API: https://developers.openai.com/api/docs/guides/tools-skills
- Anthropic Prompt engineering overview: https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/overview
- Anthropic Prompting best practices: https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices
- Anthropic Prompt caching: https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching
- Anthropic Batch processing: https://docs.anthropic.com/en/docs/build-with-claude/batch-processing
- Anthropic Define success criteria and build evaluations: https://platform.claude.com/docs/en/test-and-evaluate/develop-tests
- Anthropic Agent Skills: https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview
- Anthropic Tool use overview: https://docs.anthropic.com/en/docs/agents-and-tools/tool-use/overview
- Anthropic Effective context engineering for AI agents: https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents
- Anthropic Writing effective tools for AI agents: https://www.anthropic.com/engineering/writing-tools-for-agents
- Anthropic How we built our multi-agent research system: https://www.anthropic.com/engineering/multi-agent-research-system
- Google Gemini Prompt design strategies: https://ai.google.dev/gemini-api/docs/prompting-strategies
- Model Context Protocol docs: https://modelcontextprotocol.io/docs/getting-started/intro
- Model Context Protocol server concepts: https://modelcontextprotocol.io/docs/learn/server-concepts
- Agent Skills open specification: https://agentskills.io/specification
- Agent Skills best practices: https://agentskills.io/skill-creation/best-practices
- OWASP LLM Prompt Injection Prevention: https://cheatsheetseries.owasp.org/cheatsheets/LLM_Prompt_Injection_Prevention_Cheat_Sheet.html
