创建时间: 2026-09-02最后更新: 2026-09-07作者: yangbo(e4d1b5bc9)
1. 动态 Prompt 的作用
上一篇介绍 Few-Shot 时,我们把示例数组直接交给了 FewShotChatMessagePromptTemplate:
fixed-few-shot.ts
1const fewShotPrompt = new FewShotChatMessagePromptTemplate({2examples,3examplePrompt,4inputVariables: [],5})
这种写法有一个很容易被忽略的特点:无论用户问什么,每次调用都会带上全部示例。
如果 Agent 只处理一种任务,这通常没有问题。但有的陪伴型 Agent 同时会收到情绪、学习、回忆等不同的问题。因此,准备示例时需要根据当前输入动态选择。
| 本轮输入 | 任务类别 | 加入 Prompt 的示例 |
|---|---|---|
| 这个组件为什么重复渲染? | coding | 编程示例 |
| 最近课程太多了,学习计划怎么安排? | learning | 学习示例 |
| 今天一直被打断,好烦。 | emotion | 情绪示例 |
| 帮我给朋友写一句祝福。 | general | 不加入示例 |
也就是说,示例数组本身可以保持不变,但每轮真正进入 Prompt 的示例要根据当前输入重新选择。这就是本篇要学习的动态 Prompt。
动态 Prompt 选择发生在模型调用之前:程序先读取本轮条件,选出合适的 Prompt 内容,再把整理好的消息交给模型。
正在验证登录状态
请稍候,验证完成后将继续显示文章内容