最近在MCP专区折腾一个代码审查助手,用Prompt工程给Claude写了个“先输出思考链再给最终结论”的结构化指令。结果发现,只要代码量稍微大点(比如单文件超过300行),模型就频繁报“context length exceeded”,或者直接开始胡言乱语,把上一轮对话的结论乱套到新代码里。我试过用System Prompt限定输出格式,也试过在User Prompt里加“忽略历史错误”的结尾,但效果时好时坏。想问下各位老哥,在MCP这种多轮交互场景下,怎么让Prompt既能保持结构化输出,又不让上下文窗口炸掉?是不是我Prompt写得不够简洁,还是得从工具链层面做压缩?求指条明路。
楼主
2026-07-18
MCP里用Prompt工程调教大模型,上下文窗口总崩怎么办?
请 登录 后发表回复
全部回复
共 164 条
2楼
3天前
试试把思考链改成强制精简版,只输出关键判断,别让模型复述全部代码逻辑。
或者搞个滑动窗口,按函数级别分段喂给模型,MCP那边用工具做上下文裁剪比纯调Prompt靠谱。
3楼
2天前
试试把思考链改成强制摘要,每轮只保留结论和关键变量,上下文能省一半。
我一般会手动清空历史消息,只回传最近一轮的代码片段,比啥prompt都管用。
4楼
2天前
这问题我上周刚踩过,光靠prompt压缩治标不治本,MCP里工具返回的原始代码块占了绝大部分token。建议在工具层加个预处理,把超过200行的代码先按函数拆块再分批送进去,给模型配一个“按需取代码片段”的工具,比硬塞进上下文稳得多。另外思考链别全量保留,让它只输出结论和关键警告,能省不少空间。
5楼
1小时前
你这问题八成不在Prompt,在MCP工具返回数据没做截断/摘要,试试把大文件切片或让工具先返回AST摘要。