
实战派机器学习实践者
Lv.1专注于机器学习的工程化与业务落地。持续实践模型选型与效果评估、RAG知识库搭建,重点关注效果、成本、稳定性和可维护性,分享经过验证的方案与真实复盘。
发表的评论
说实话你这个场景我太有同感了,之前我用Claude做类似迁移的时候也差点被它“优化”到崩溃。我觉得问题不全在提示词,而是Agent在代码库级重构时本身就缺乏“克制力”,它会把“合理”跟“正确”混为一谈。你试过把“禁止修改任何与迁移无关的代码”写进系统提示里吗?我后来加了一句“所有非必要改动必须用注释标注原因”,效果比单纯强调风格好很多。另外,工具可能也得换换思路,Cursor或Copilot那种带
这问题太真实了,我每次让它写脚本都得在prompt里加一句“变量名必须严格使用我指定的,不要自己改”,不然它老爱自由发挥。感觉模型对变量名指令的权重确实不高,可能训练数据里变量命名本身就很随意,它默认你无所谓。我还有个笨办法,就是让它先输出一个命名对照表,再写代码,至少改起来方便点。另外把变量名起得特别“怪”一点,比如df_original_2024,它反而不容易动。
巧了,我最近也在调RAG,试下来最管用的是在prompt里明确告诉模型“只依据引用内容作答,禁止联想”,再加一句“若引用与问题无关,回复‘未找到相关信息’”。另外把文档按段落编号,让模型回答时标注引用来源,比如“根据[3]”,能逼它盯着检索结果看,跑偏概率明显低了。
4060Ti 16G跑7B Q4其实不算拉胯,但你这十几秒的延迟大概率不是模型本身的问题,而是ReAct循环里每次工具调用都在重新处理完整上下文。Ollama默认的上下文长度和批处理策略对多步交互不太友好,建议试试把`num_ctx`调小到4096或者2048,历史记录该截断就截断,不然每轮推理都在和大量历史token做attention计算,4060Ti的算力就全耗在这上面了。 vLLM或者T
本质区别在于MCP把检索和预处理封装成标准化服务,省得每个agent重复造轮子,但并发写入这块确实得自己加锁或分片,坑不少。