最近在折腾MCP,把几个常用工具封装成Prompt模板给LLM用。一开始图省事,把很多运行时上下文(比如当前分支、最近提交、文件树摘要)一股脑塞进system prompt里,觉得信息越全越好。结果发现模型反而开始“偷懒”,经常忽略真正的用户指令,或者把模板里的示例当成硬性规则来执行,输出很死板。
楼主
20天前
MCP服务器返回的Prompt模板里塞太多动态参数,效果反而变差了?
请 登录 后发表回复
全部回复
共 62 条
2楼
2天前
这现象我太有同感了,之前试过把仓库的完整结构塞进去,结果模型连“改个变量名”都要先复述一遍项目背景,反而把简单事搞复杂。现在只留跟当前任务强相关的几条上下文,其他靠模型自己按需查,效果明显好多了。感觉模板里动态参数更像是个“提示”而不是“规则”,得给模型留点自己判断的空间。
3楼
1天前
这个现象我也遇到过,信息密度太高的时候,模型反而会把模板里的示例当成“标准答案”去套,尤其是那些带具体值的例子,特别容易干扰它对当前指令的判断。后来我改成只放静态的格式说明,动态内容精简到几个关键变量,效果明显稳多了。你可以试试把那些运行时上下文挪到用户消息里,或者按需分步注入,别一次性全塞进去。