系统提示词(System Prompt)就是你给 AI 的"岗位说明书":

第 6 课:系统提示词设计


什么是系统提示词?

系统提示词(System Prompt)就是你给 AI 的"岗位说明书":

  • 你是谁(角色)
  • 你该怎么干活(工作流程)
  • 输出要求是什么(格式规范)

AI 每次开始工作前,都会先读这份"说明书",然后严格按照它来执行。

resume-generator 的系统提示词

项目里的 SYSTEM_PROMPT 很短,只有几行,但信息量很大:

code
const SYSTEM_PROMPT = `You are a professional resume writer.
Research a person and create a 1-page .docx resume.

WORKFLOW:
1. WebSearch for the person's background (LinkedIn, GitHub, company pages)
2. Create a .docx file using the docx library

OUTPUT:
- Script: agent/custom_scripts/generate_resume.js
- Resume: agent/custom_scripts/resume.docx

PAGE FIT (must be exactly 1 page):
- 0.5 inch margins, Name 24pt, Headers 12pt, Body 10pt
- 2-3 bullet points per job, ~80-100 chars each
- Max 3 job roles, 2-line summary, 2-line skills`;

我们来逐块分析。

逐块拆解

第一块:角色定义

code
You are a professional resume writer.
Research a person and create a 1-page .docx resume.

只用两句话就讲清楚了: - 你是谁:专业简历写手 - 你要做什么:搜索一个人 → 生成 1 页 Word 简历

为什么要定义角色?因为 AI 会根据角色来调整自己的"行事风格"。如果你说它是"简历写手",它会更注重简洁、专业、条理清晰。

第二块:工作流程

code
WORKFLOW:
1. WebSearch for the person's background (LinkedIn, GitHub, company pages)
2. Create a .docx file using the docx library

这里明确了两步走: 1. 先搜索(而且指明了去哪搜:LinkedIn、GitHub、公司官网) 2. 再生成文档(指明了用 docx 库)

为什么要写明工作流程?因为不写的话,AI 可能会"乱来"——比如先写一份纯文本简历,或者用 HTML 格式输出。你要的是 .docx,就得明确说。

第三块:输出路径

code
OUTPUT:
- Script: agent/custom_scripts/generate_resume.js
- Resume: agent/custom_scripts/resume.docx

精确指定了两个文件的输出位置: - AI 自己写的代码放这里 - 最终简历放这里

为什么要指定路径?因为主程序最后要检查 resume.docx 是否存在:

code
// 代码里写死了检查路径
const expectedPath = path.join(process.cwd(), 'agent', 'custom_scripts', 'resume.docx');
if (fs.existsSync(expectedPath)) {
  console.log(`📄 Resume saved to: ${expectedPath}`);
}

如果不在系统提示词里约定路径,AI 可能把文件存到别的地方,程序就找不到了。

第四块:页面排版约束

code
PAGE FIT (must be exactly 1 page):
- 0.5 inch margins, Name 24pt, Headers 12pt, Body 10pt
- 2-3 bullet points per job, ~80-100 chars each
- Max 3 job roles, 2-line summary, 2-line skills

这是最细致的部分,精确到像素级:

约束 具体值 为什么这么设
页边距 0.5 英寸 比默认的 1 英寸窄,腾出更多空间
名字字号 24pt 够醒目但不占太多空间
标题字号 12pt 区分板块但不抢名字的风头
正文字号 10pt 够小以塞入更多内容
每份工作 2-3 个要点 控制内容量
每个要点 80-100 字符 不会太长导致换行
最多工作数 3 份 1 页就那么大
个人简介 2 行 简洁
技能列表 2 行 简洁

为什么要这么精确?因为目标是"恰好 1 页"。如果 AI 自由发挥,可能写成 3 页,也可能内容太少只有半页。精确的排版约束确保输出稳定一致。

好的系统提示词 vs 差的系统提示词

code
❌ 差的系统提示词:
  "帮我生成一份简历"

  问题:
  - 什么格式?Word?PDF?纯文本?
  - 内容从哪来?编的还是搜的?
  - 多长?1页还是10页?
  - 文件存哪里?

  AI 会自己猜,结果不可预测。
code
✅ 好的系统提示词:
  角色:你是谁
  流程:先做什么,后做什么
  输出:文件存到哪里,叫什么名字
  格式:排版规格,精确到字号和间距

  AI 的行为可预测、可重复。

设计系统提示词的四个原则

原则一:角色先行

一句话告诉 AI 它是什么角色。角色决定了 AI 的"行为模式"。

code
"You are a professional resume writer."   ← 简洁专业
"You are a creative novelist."            ← 有创意有文采
"You are a strict legal counsel."         ← 严谨保守

原则二:流程要明确

用编号列出步骤,别让 AI 自己猜该先做什么。

code
WORKFLOW:
1. 先搜索
2. 再分析
3. 最后生成

原则三:输出要具体

文件名、文件路径、文件格式,全部写清楚。

code
OUTPUT:
- File: /path/to/output.docx
- Format: .docx with Arial font

原则四:约束要量化

"排版好看" → "Name 24pt, Headers 12pt, Body 10pt" "内容适中" → "Max 3 jobs, 2-3 bullets each" "不要太长" → "Must be exactly 1 page"

能量化的就量化,不要给 AI 模糊的空间。

系统提示词 vs 用户提示词

这个项目里其实有两个"提示词":

code
系统提示词(systemPrompt):
  → 永久生效的"岗位说明书"
  → 定义角色、流程、格式规范

用户提示词(prompt):
  → 单次任务的具体指令
  → "帮张三做简历" / "帮李四做简历"
code
// 系统提示词——固定不变
systemPrompt: SYSTEM_PROMPT,

// 用户提示词——每次不同
prompt: `Research "${personName}" and create a professional
         1-page resume as a .docx file.`,

打个比方: - 系统提示词 = 公司的《员工手册》 - 用户提示词 = 今天的《工单》

本课小结

  • 系统提示词是 AI 的"岗位说明书"
  • resume-generator 的提示词包含四块:角色、流程、输出路径、排版约束
  • 好的提示词要具体、量化、可执行
  • 系统提示词(固定规范)和用户提示词(具体任务)分工明确

课后练习

  1. 把 SYSTEM_PROMPT 里的 "Max 3 job roles" 改成 "Max 5 job roles",看看会不会超过 1 页
  2. 在提示词里加一句 "Include a professional headshot placeholder",看 AI 会怎么处理
  3. 试着为一个"公司调研报告生成器"写一份系统提示词,包含角色、流程、输出和格式要求

沿着当前专题继续,或返回课程目录重新整理阅读顺序。

返回课程目录