Appearance
DeepSeek V4 Agent提示词设计实践:从架构原理到落地清单
拿旧规矩套新模型,当然别扭。
一套在 GPT 或 Claude 上调得好好的提示词,原样搬到 DeepSeek V4,效果忽好忽坏。问题不在提示词烂,在于 V4 跟你以前用的那些模型不是一种东西。
一、V4 不是 R1,也不是 V3
DeepSeek V4 是一个混合模型:一个模型,两种模式。
| 维度 | 老 R1(推理) | 老 V3(聊天) | DeepSeek V4 |
|---|---|---|---|
| 形态 | 独立推理模型 | 独立聊天模型 | 一个模型,双模式 |
| 思考链 | 强制思考 | 不思考 | thinking/non-thinking 可切 |
| system 提示 | 官方建议别用 | 可以用 | ✅ 可以用 |
| few-shot | 官方建议别用 | 可以用 | ✅ 可以用 |
关键坑:网上很多"DeepSeek 提示词技巧"讲的是老 R1的规则——"不要用 system prompt""不要给示例""温度设 0.6"。这些对 V4 不成立。
二、三个架构特性决定提示词写法
① 混合压缩注意力
V4 能塞 100万 token,靠 CSA(约4倍压缩)和 HCA(约128倍压缩)交替使用。只花 V3 的 27% 算力、10% 显存。
原则:关键指令放在有明显边界的位置,长背景用"任务三明治"——指令→大段上下文→再贴一次指令。
② Engram 条件记忆
读入时就给内容建索引,按相关性精准取,不平均用力。
原则:结构化标题、关键词、清晰小节,帮它建好索引。
③ 稀疏 top-k 选择 + 前缀缓存
闪电索引器只挑相关性最高的块算。API 无状态,带前缀缓存。
原则:把红线放进独立带标签的块;稳定的 system/示例放最前面吃缓存。
三、思考模式下调温度是白调
DeepSeek 官方文档白纸黑字:思考模式下,temperature、top_p、presence_penalty、frequency_penalty 全部无效。
控制"想多深"靠 reasoning_effort:
python
response = client.chat.completions.create(
model="deepseek-v4-pro",
messages=[{"role": "user", "content": "..."}],
reasoning_effort="high", # high(默认) 或 max
extra_body={"thinking": {"type": "enabled"}},
)铁律:
- 思考模式 → 别碰温度,调 reasoning_effort 和提示词
- 非思考模式 → 按官方温度表设温度
四、参数速查
| 参数 | 作用 | 说明 |
|---|---|---|
| thinking | 开/关思考模式 | {"type":"enabled"} 默认 |
| reasoning_effort | 思考深度 | high(默认)/max |
| temperature | 随机性,默认1.0 | 思考模式无效 |
| top_p | 核采样,默认1.0 | 思考模式无效 |
| frequency_penalty | 抗重复 | ⚠️ 已废弃 |
| max_tokens | 输出上限 | JSON模式一定要设高 |
非思考模式温度表:
| 用途 | 温度 |
|---|---|
| 代码/数学 | 0.0 |
| 数据分析 | 1.0 |
| 通用对话 | 1.3 |
| 翻译 | 1.3 |
| 创意写作 | 1.5 |
五、V4 通用提示骨架
<角色>
你是:[一句话身份]
</角色>
<目标>
[一句话最终要什么]
</目标>
<输入>
[数据/代码/背景]
</输入>
<任务>
1. 需要做:[...]
2. 不需要做:[...]
</任务>
<输出要求>
- 格式:[表格/JSON/Markdown]
- 约束:[字数/语气]
- 示例:[合法例子]
</输出要求>
<规则>
- 禁止:[...]
- 信息不足时:先提问,不要猜
</规则>针对 V4 的三处适配:
- 硬约束单独拎进
<规则>框 - 思考模式下删掉"请你一步步思考"
- JSON 模式必须出现"json"词 + 示例 schema
六、Agent 提示词专属规矩
杀手锏:交错思考跨轮保留
V4 相比上一代最大的改动——工具调用之间的推理历史跨用户消息边界保留,完整思维链贯穿所有轮。适合长跑型 Agent。
最容易踩的 400
有工具调用的轮,必须回传 reasoning_content 到后续所有请求。把「推理块 + 工具调用 + 工具结果」当原子事务一起存。
标准 Agent Loop
python
while True:
resp = client.chat.completions.create(...)
msg = resp.choices[0].message
messages.append(msg) # 含 reasoning_content 一起 append
if not msg.tool_calls:
break
for call in msg.tool_calls:
result = run_tool(call)
messages.append({"role": "tool", "tool_call_id": call.id, "content": result})防幻觉护栏
- 开官方 strict mode(
strict: true+ beta 域名) - 工具白名单
- 破坏性操作要人工确认
- 提示词用正向 framing
七、上下文工程:1M 窗口也不能乱塞
更大的上下文窗口,不消除上下文管理问题,只是让你能往后拖。
- 工具结果清理:旧的、能重新取的结果用
[已清理]占位 - 压缩要趁早:60-70% 窗口就触发压缩
- 结构化笔记:让 agent 把状态写进外部 NOTES.md
- 工具宁少勿多:19 个好工具胜过 46 个
八、12 项落地清单
| # | 行动 |
|---|---|
| 1 | 先确认资料讲的是 V4 还是 R1 |
| 2 | 想清楚开不开思考模式 |
| 3 | 思考模式不调温度 |
| 4 | 非思考按官方温度表设温度 |
| 5 | 用框把角色/输入/规则/输出隔开 |
| 6 | 长背景用"任务三明治" |
| 7 | 删掉"一步步思考" |
| 8 | JSON 输出带"json"词 + schema |
| 9 | 工具调用轮回传 reasoning_content |
| 10 | 先开 strict mode,再叠自校验 |
| 11 | 长跑 agent 做上下文工程 |
| 12 | 工具宁少勿多 |
关键词:DeepSeek V4, Agent, 提示词, 上下文工程, thinking mode
