删掉角色声明,从文件第一行开始说话
把“你是一个资深DevOps工程师,请解析以下配置文件”这一整行彻底删除,一个字都不要留。DeepSeek-R1 一旦看到首句是角色定义,就会自动加载预设知识库,把timeout: 30当成教学案例,开始讲解“YAML 中冒号后需加空格”这类基础规则。
正确的做法是直接粘贴配置片段开头三行,例如:
api_version: v1这一步必须做到位:开头不能有任何引导语、说明句或空行,【第一行必须是实际配置内容】。
timeout: 30
retry_policy:
用报错日志锚定解析目标
方法一:粘贴真实报错堆栈的最后一行,比如:requests.exceptions.Timeout: HTTPConnectionPool(host='api.example.com', port=80): Read timed out. (read timeout=5),然后紧接着附上你的配置片段。
方法二:明确写出你刚改过的代码行以及它失败时的表现,例如:“我把httpx.AsyncClient(timeout=5.0)改成timeout=30后,接口仍然超时——但配置文件里 timeout: 30,说明设定没有被正确读取。”
模型对日志文本的敏感度远高于自然语言描述,它会立刻锁定“timeout 字段未被读取”这个路径,而不是泛泛讲解缩进规则。
锁死修改边界,只动指定字段
第一步:明确写出“只允许修改以下 2 处”: • 第 2 行的 timeout 值(当前为 30,需改为 60)• 第 5 行的 max_retries 值(当前为 3,需改为 5) 第二步:加上硬性约束:“其余所有行不得增删空格、缩进、注释,保留原始引号风格(单引号/双引号/无引号)。” 第三步:注明拒绝项:“不接受重写整个配置结构、不添加新字段、不转成 JSON 格式。” 【若配置中第 2 行是 timeout: 30,你就必须写‘第 2 行’,不能写成‘timeout 所在行’】——模糊定位会让模型自由发挥,它可能把第 7 行的 connect_timeout 也一并修改。
