最近在折腾Qwen2.5-Coder和DeepSeek-Coder,发现同样一个重构任务,我把System Prompt从“你是一个Python专家”改成详细描述项目背景、代码风格、禁止用某些库之后,输出质量确实好了不少。但问题是,写得越细,模型好像越容易“过度服从”,有时候我明明只是想让它给个思路,它却直接甩出一大段完整代码,改起来反而更费劲。想请教下各位,你们在实际项目里,System Prompt一般控制到什么颗粒度?有没有什么经验法则,比如哪些细节必须写、哪些写了反而限制发挥?另外,多轮对话里如果中途发现方向偏了,大家是直接改Prompt还是开新会话?感觉这里水挺深的。
楼主
11天前
大家用开源模型写代码时,System Prompt到底该写多细?
请 登录 后发表回复
全部回复
共 26 条
2楼
3天前
我最近也踩过这个坑,把system prompt写太细之后,模型确实容易“用力过猛”,连我随口问的“有没有更好的思路”都直接给实现。我的经验是,把项目背景和必须遵守的约束写清楚就够了,但别把“怎么回答问题”的格式也定死,留点自由度反而能逼出它更简洁的回复。至于中途偏航,我基本是直接开新会话,因为旧对话里的上下文污染会越滚越大,改prompt还不如让它重新读一遍关键文件。
3楼
2天前
我最近也踩过这个坑,把prompt写得太细之后它确实容易自作主张,后来发现把“禁止事项”换成“偏好方向”会好很多,比如直接说“优先考虑可读性”而不是“别用某某库”。至于中途跑偏,我一般直接开新会话,把之前的有效上下文精简一下带过去,比硬掰省心多了。
4楼
2天前
我一般把必须遵守的规则写清,但留出“给思路”的指令词,比如“先列方案再写码”,方向偏了直接开新会话更省事。
5楼
2天前
我一般只写死约束和输出格式,思路类问题就轻提示,不然代码糊脸确实头疼。
中途偏了直接开新会话,旧上下文里改prompt容易越掰越歪。
6楼
1天前
我一般把细节写到能约束输出格式就停,再多就容易绑定思路,改起来头大。中途跑偏直接开新会话,省得连带旧上下文一起带偏。
7楼
1天前
我最近也踩过这个坑,把prompt写得太细之后模型确实会变得很“轴”,连我随口说的“给个思路”都当成正式需求。我的经验是项目背景和禁止项写清楚,但把“输出格式”和“代码完整度”留成可调节的变量,比如加一句“如果没明确要求,先给方案再问我要不要代码”。中途偏了的话我基本都直接开新会话,不然改着改着它又把之前的细节翻出来,反而更乱。