AI Agent 学习笔记(一):Prompt 工程,让大模型听话

AI Agent 学习笔记(一):Prompt 工程,让大模型听话
JieAI Agent 学习笔记(一):Prompt 工程,让大模型听话
上一篇我们认识了 Agent。这篇开始学第一块砖:Prompt(提示词)。学完你会明白:为什么同样一个模型,有人用得像个专家,有人用起来像个杠精。
一. Prompt 是什么
Prompt 就是你发给大模型的所有文字,包括指令、问题、背景信息、示例、格式要求等。
大模型的能力上限是固定的,但能不能发挥出来,全靠 Prompt。就像同一个员工,拿到一份写清楚的“工作说明书”和拿到一句“你看着办”,产出天差地别。
Prompt 工程(提示词工程)就是研究:怎么组织文字,让模型稳定、准确地输出我们想要的结果。
二. 先搞懂 messages 的结构
调用大模型 API 时,消息是一个数组,最常见的三种角色:
| role | 含义 | 谁写的 | 例子 |
|---|---|---|---|
system |
系统提示词:定义模型的身份、规则、能力边界 | 开发者 | “你是一个严谨的数学老师” |
user |
用户消息:本轮要解决的问题 | 用户 | “请解这道题:3x+2=11” |
assistant |
模型回复(历史对话) | 模型 | “x=3” |
1 | messages = [ |
初学者最容易犯的错:把所有要求全塞进 user 消息。正确做法是——身份和长期规则放 system,临时任务放 user。
三. 写好 Prompt 的四条黄金法则
3.1 法则一:角色设定(Role)
先告诉模型“你是谁”,它就会按照这个角色的语言风格和知识范围来回答。
1 | ❌ 差:请帮我检查这段代码有没有问题。 |
3.2 法则二:指令要具体、可执行
模糊的指令得到模糊的结果。把“好一点”“详细一点”翻译成可量化的要求。
| 模糊指令 | 具体指令 |
|---|---|
| 写个介绍 | 写 3 段、每段不超过 60 字、开头点明主题 |
| 解释一下 | 先给一句话定义,再举 1 个生活例子,最后总结要点 |
| 翻译一下 | 翻译成英文,保留 Markdown 格式,术语加粗 |
3.3 法则三:给示例(Few-shot)
模型是“模仿大师”。给它 1~3 个输入输出示例,它就知道你要什么格式。
1 | 请把用户评论分类为:好评 / 中评 / 差评。只输出分类结果。 |
3.4 法则四:规定输出格式
尤其是做 Agent 开发,模型输出要被程序解析,格式必须稳定。最常用的是 JSON:
1 | 请把下面这段新闻提取成 JSON,字段如下: |
四. 进阶技巧:思维链(CoT)
复杂问题直接问,模型容易“跳步出错”。思维链(Chain of Thought) 就是让模型把推理过程一步步写出来。
4.1 两种触发方式
1 | 方式一:直接要求(零样本 CoT) |
4.2 在 Agent 里的用法:让模型“先想再说”
很多 Agent 框架在 Prompt 里会写这样的规则:
1 | 你的工作方式是: |
这样模型就不会一上来乱答,而是像人一样“想清楚再做”。(ReAct 论文中的经典模式,后面 Tool 篇还会细讲。)
五. 结构化输出:让程序能稳定解析
做 Agent 时,模型输出要给代码用,所以JSON 格式比 Markdown 更可靠。
5.1 用 API 强制 JSON 输出
OpenAI 兼容接口支持 response_format:
1 | from openai import OpenAI |
5.2 解析失败时的兜底
模型偶尔会多输出几个字,解析要容错:
1 | import json |
六. 提示词模板化(工程化的关键)
真实项目中,Prompt 不是手打的,而是模板 + 变量拼出来的。
1 | SYSTEM_PROMPT_TEMPLATE = """你是一位{role}。 |
注意:Python 的
.format()遇到 Prompt 里的大括号(比如 JSON 示例)会报错,可以用{{转义成字面大括号,或者改用 f-string / 占位符替换(replace),更省心的是用string.Template或 Jinja2。
七. 一套可以直接抄的 Agent 系统提示词模板
1 | # 角色 |
八. 常见错误清单
| 错误 | 后果 | 正确做法 |
|---|---|---|
| Prompt 太短太模糊 | 输出不可控 | 写清角色、任务、格式 |
| 要求互相矛盾 | 模型随机应变 | 规则去重、排序 |
| 一次问太多问题 | 回答漏项 | 拆成多轮或列出清单 |
| 没有给示例 | 格式跑偏 | Few-shot 给 1~3 个例子 |
| 用词歧义 | 理解偏差 | 用具体数字、明确动词 |
| 格式要求写在最后一句 | 模型容易忽略 | 单独一段强调,或用 response_format |
| 中文夹英文标点 | 解析出错 | 统一中文标点或显式说明 |
九. 小结与作业
小结
- Prompt 决定模型能力的发挥;身份放 system,任务放 user;
- 四条黄金法则:角色设定、指令具体、给示例、规定格式;
- 复杂问题用思维链(CoT)让模型逐步推理;
- Agent 项目里要用模板管理 Prompt,用 JSON 结构化输出。
作业
- 写一个“Python 导师”系统提示词,要求它:先给思路、再给代码、最后布置练习;
- 用 Few-shot 让模型把句子分成“事实 / 观点 / 行动”三类,并输出 JSON;
- 把 5.1 的模板改成用
replace占位符实现,避免花括号冲突。
下一篇:Memory 记忆——让 Agent 记住聊过什么、知道什么。








