提示词编写技巧
适用节点:LLM、Agent、Question Classifier。提示词质量直接决定 Agent 效果的上限,值得反复打磨。
System Prompt 与 User Prompt 的分工
| System Prompt | User Prompt | |
|---|---|---|
| 写什么 | 角色设定、行为准则、输出格式、合规红线 | 本次的具体任务 + 插入的变量 |
| 特点 | 稳定不变,不支持删除 | 每轮变化,支持多条 User/Assistant 消息 |
常见错误:把所有内容堆在 User Prompt 里。正确做法是把「不变的规则」放 System Prompt,把「变化的输入」放 User Prompt。
System Prompt 四段式模板
【角色】你是{谁},服务于{什么场景}。
【任务】你的职责是{做什么},不做{什么}。
【规则】
1. {输出语言/语气/长度要求}
2. {业务规则}
3. {合规红线,见下文}
【输出格式】{格式要求,如"分点作答,不超过200字"}金融场景必写的合规约束
面向客户的 Agent,System Prompt 中必须包含以下护栏 (依据见 合规要求):
合规红线(任何情况下不得违反):
1. 不提供任何买入/卖出建议、目标价或收益预测
2. 用中立、描述性语言解释指标,如"RSI高于70通常被视为超买区间",
禁止"RSI高于70,建议卖出"这类动作性表述
3. 禁止"必涨""稳赚""保证收益"等承诺性词语
4. 用户要求投资建议时,礼貌拒绝并转向知识科普
5. 回答结尾固定附上:"以上内容仅供参考,不构成任何投资建议。"技巧:用 ✅/❌ 对照示例教模型说话,比抽象规则有效得多:
- ✅ "MACD 出现金叉,历史上常与价格上行阶段相关"
- ❌ "MACD 金叉 → 建议买入"
让输出稳定可控的技巧
- 给格式就给例子:要求 JSON 输出时,在提示词里贴一个完整的示例 JSON;更稳的方式是直接用 LLM 节点的结构化输出功能 (JSON Schema 约束),而不是靠提示词
- 约束长度和结构:"用 3 个要点回答,每点不超过 50 字" 比 "简洁回答" 有效
- 上下文变量要显式引用:提示词中引用了上下文就必须插入对应变量,否则平台会报错"请在提示中填写上下文变量"
- 少样本 (Few-shot):在 User/Assistant 消息对里放 1~3 组问答示例,能显著提升分类、抽取类任务的准确率
- 记忆窗口不要开太大:开启记忆功能时,记忆窗口设为够用的最小值 (如 5~10 轮),窗口过大既费 token 又容易被历史消息带偏
Question Classifier 的分类描述写法
分类器的效果取决于每个分类的描述写得是否可区分:
- 每个分类给出清晰的边界和 2~3 个典型例句
- 分类之间避免语义重叠;必设一个"其他/闲聊"兜底分类
- 示例:
账户功能类:与开户、入金、订单状态、平台功能相关。例:"怎么入金?" "订单为什么没成交?"行情资讯类:询问行情数据、公司新闻、财报信息。例:"腾讯今天涨了多少?"其他:以上都不属于时走此分类
迭代方法:改一点,测一次
- 用试运行固定同一组测试输入 (正常问 / 边界问 / 越界问至少各一条)
- 每次只改提示词的一个地方,试运行对比效果
- 出现 bad case 时,把 bad case 变成提示词里的 ❌ 示例
- 上线后定期回看真实对话,持续补充规则