提示词与上下文工程
入门章解决“怎么开口”,这一章解决“怎么把开口变成可复用的工程能力”。
你将学会
- 用「四要素」写出一次到位的提示;
- 掌握几种结构化提示技巧;
- 理解上下文、学会管理它;
- 把反复出现的要求沉淀成项目指令文件;
- 知道提示词、Skills、Agents 各自该在什么时候用。
前置知识
Vibe Coding 入门教程(提示词 / Skills / Agents 一节)。
一、提示词的四个要素
一份好提示,四件事说清:
text
目标:给支出列表加“按分类筛选”,支持多选
上下文:相关文件是 src/list.tsx;当前只有“全部”视图
约束:只改列表相关文件,不新增依赖
完成标准:选中分类后列表即时过滤;清除后恢复全部缺哪个,AI 就在哪个地方替你瞎猜。这四个要素也是后面所有模板的底座。
二、结构化提示技巧
| 技巧 | 怎么做 | 适合 |
|---|---|---|
| 分步骤 | 把任务拆成 1/2/3 让它按序做 | 多步改动 |
| 少样本 | 给 1~2 个“输入→输出”示例 | 格式/风格要求高 |
| 先计划 | 明确要求“先给计划,别写代码” | 大改动 |
| 指定输出格式 | 要 diff / 要表格 / 要 JSON | 便于核对 |
| 让它反问 | “列出你还不确定的问题来问我” | 需求模糊 |
三、上下文是什么、怎么管
上下文 = AI 这次对话能“记住”的内容。它有三个特点:有限、会变长、越长越乱。
管理策略:
- 一个任务一个会话:做完就换(
/clear或新会话),别让旧话题污染新任务; - 该清就清:上下文太长时用压缩命令,或干脆带摘要重开;
- 给准确的料:用 @ 引用具体文件,而不是让它猜;
- 把常驻信息外置:项目约定放进项目指令文件,每次自动读,不占你打字的功夫。
四、项目指令文件(AGENTS.md)深挖
它和提示词最大的区别是:写一次,AI 每次会话自动读。
- 放哪:仓库根目录
AGENTS.md(跨工具通用);Claude Code 也可用CLAUDE.md;monorepo 里子目录再放一份,就近优先; - 写什么:项目概览、标准命令、目录约定、修改约束;
- 怎么来:多数工具支持
/init生成草稿再改; - 模板:见Vibe Coding 入门教程,完整工程模板见从 0 到 1 实战。
五、Skills 与 Agents
- Skill:把反复出现的多步流程写成文件,用到才加载。判断标准只有一条——它是不是你重复干的事。 完整讲解、常见技能推荐与「怎么写一个 Skill」见技能库。
- Agent / 子代理:能自主完成多步工作;适合只读研究、并行推进、隔离长任务。
三者分工一句话:指令文件定规矩,提示词说清这一次,Skills 沉淀老手艺,Agents 负责跑腿和并行。
六、反面清单
- ❌ “帮我优化一下代码”——没有目标、范围、完成标准;
- ❌ 一次给十个不相关的任务;
- ❌ 长会话里东拉西扯,最后 AI 忘了最初的约束;
- ❌ 把该沉淀的规矩每次都重打一遍,而不是写进指令文件;
- ❌ 不看上下文就让它改,改完也不核对。
动手练习
- 把一条模糊需求改写成「四要素」提示,并实际发给 AI 对比效果。
- 在项目里加一个
AGENTS.md,写清三条项目约定,观察后续会话是否自动遵守。 - 为一个你重复干过的流程,写一份最小 Skill 文件。
检查点
- 能用四要素写出一次到位的提示;
- 能说出提示词、Skills、项目指令文件三者的加载时机差异;
- 能在上下文变乱时做出“清空 / 压缩 / 换会话”的正确选择。
常见问题
Q:提示词是不是越长越好? 不是。准确比长更重要——目标、范围、完成标准说清即可,堆无关背景只会稀释重点。
Q:为什么 AI 用着用着就“忘事”了? 上下文满了或太乱。换会话、带摘要重开,并把常驻规矩放进项目指令文件。