提示词技巧
角色、约束、Few-shot;prompting-techniques。
30 分钟
提示词技巧
Agent 的 system prompt 决定 角色、边界与输出形态。与 ai-prompt 写 Copilot 规格类似,但 Agent prompt 还要声明 可用工具、何时必须检索、何时必须拒答——否则模型会「假装调用了工具」。
学习目标
- 会写角色、约束、Few-shot 三类 Agent 提示片段
- 理解 prompting-techniques 在规划与工具选择中的作用
- 避免 prompt 泄露密钥或与工具 schema 矛盾
三类信息
1. 角色(Role)
你是 CodeRoadMap 学习助手。只根据检索到的站内文档回答。
不知道时明确说「未在知识库中找到」,禁止编造 track slug。
角色要 窄:「万能专家」会增加幻觉与越权调用。
2. 约束(Constraints)
- 语言:简体中文
- 引用:回答须带
[来源标题](path)或 chunk id - 工具:先
search_docs再answer;禁止未检索就列课程列表 - 安全:不执行用户粘贴的 shell;不输出
.env内容
与 ai-security 一致:约束写进 prompt,仍要代码层 enforce。
3. Few-shot(示例)
给 1–2 个「用户问 → 应调用的工具链 → 最终回答格式」示例,比空口说「要严谨」有效:
用户:RAG 和全文搜索区别?
→ 调用 search_docs("RAG 检索")
→ 综合 top-3 片段,小结并附链接
prompting-techniques 速查
| 技巧 | Agent 场景 | 注意 |
|---|---|---|
| Chain-of-thought | 复杂多步规划 | 勿把推理链暴露给终端用户含敏感信息 |
| ReAct | Thought → Action → Observation | 需与真实工具返回对齐 |
| 分步 prompt | 先规划 JSON,再执行 | 降低一步既规划又乱调工具 |
与 ai-coding 的衔接
写 content/课程/*/drafts/ 时,@ outline 与相邻课是 上下文;做 RAG Agent 时,分块后的讲义 才是检索上下文——prompt 里要写清「仅信检索结果」。
练习
- 为「站内 track 问答 Agent」写 10 行 system prompt(含角色 + 三条约束)
- 加一个 Few-shot:用户问 elasticsearch 分词,Agent 应先检索哪类文档
- 对比有无 Few-shot 时,模型是否仍会编造
/tracks/fake-slug
小结
角色定边界、约束定纪律、Few-shot 定行为模式——Agent prompt 是运行手册,不是聊天开场白。 下一课结构化输出,让规划与工具参数可解析。