ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

AI 编程总觉得“不听话”,可能不是提示词,而是模型选错了

AI 编程总觉得“不听话”,可能不是提示词,而是模型选错了 AI 编程总觉得“不听话”可能不是提示词而是模型选错了很多人遇到 AI 编程输出不稳定时第一反应是继续打磨提示词“请认真阅读全部代码。”“不要修改无关文件。”“请一步一步思考。”“请直接给出可运行代码。”这些要求并非无效但它们解决不了一个根本问题任务需要的能力可能并不在当前模型最擅长的范围内。把模型选择理解为“谁更聪明”并不准确。实际开发中更重要的是任务路由面对不同类型的工作选择更匹配的模型、上下文长度、工具能力和验证方式。提示词是方向盘模型能力则更像发动机和底盘。底盘不适合再精细地打方向也很难稳定到达目标。模型能力、工具接口和可用性会持续变化。本文讨论的是可复用的方法而不是固定的型号排名实际使用前应以各服务当前官方文档、产品说明和你的本地测试结果为准。先判断你遇到的是提示词问题还是模型匹配问题可以用一个简单标准区分如果你已经清楚描述了目标、输入、约束和验收条件但输出仍在同类任务中反复失真那么优先怀疑任务与模型不匹配。常见症状如下。1. 能写局部函数却理解不了仓库结构模型可以补全一个排序函数也能解释单个类但让它修复跨模块问题时开始修改调用方却忽略接口定义修一个错误又引入另一个编译错误只读到当前文件忽略配置、测试和构建脚本用“看起来合理”的方式猜测项目约定。这通常不是“提示词还不够长”而是任务需要更稳定的长上下文理解、代码检索能力或工具调用闭环。2. 能解释代码却不能可靠地改代码解释是单轮生成任务修改则是约束满足任务。后者至少要求模型同时处理原有行为不能退化类型、依赖和构建配置必须一致改动范围必须受控测试需要覆盖目标行为输出必须能落回真实文件结构。如果模型总能讲清原理却经常给出无法应用的补丁问题往往在“工程执行能力”而非“知识储备”。3. 总是在关键约束上漏项例如你明确要求“只修改parser模块不改公共 API”模型仍然调整导出接口或者要求“兼容 Python 3.10”它却引入更高版本语法。这类问题可能来自提示词不够结构化也可能来自模型在多约束任务中的遵循能力不足。判断方式很简单把同一份明确任务交给不同模型观察谁更稳定地满足验收清单而不是只比较第一次回答写得是否漂亮。4. 遇到陌生库就开始“编造”模型可能给出不存在的参数、错误的 API 名称或过期用法。这里的核心风险不是代码风格而是事实可靠性。对于依赖具体框架、SDK、版本行为的任务单纯依赖模型记忆并不够。更合适的路线是选择能够配合文档检索、代码库搜索或本地执行验证的工作流并要求所有关键接口回到一手文档确认。不要按“模型品牌”选要按任务特征选一个实用的任务路由框架可以从四个维度判断。任务维度典型问题更需要关注的能力上下文规模需要理解多少文件、多少历史信息长上下文、检索、信息压缩推理约束是否涉及复杂逻辑、边界条件、状态机多步推理、约束保持、反思能力事实时效是否依赖最新文档、版本或外部数据检索、引用、文档核验执行闭环是否必须修改文件、运行测试、查看报错工具调用、命令执行、迭代修复模型本身只是工作流中的一环。对于“从需求到可合并代码”的任务工具闭环通常比单次回答的文采更重要。如果要给不同任务准备备用工具建议先记录清楚每个入口的用途、上下文限制和验收命令。可在 moli 查看当前支持工具与计费说明把它作为独立第三方服务的一个接入选择但不要因此跳过本地测试和代码审查。四类常见任务如何路由一、快速补全和样板代码优先追求速度与成本可控适合的任务包括生成数据结构定义写单元测试骨架把重复代码改写为通用函数生成 SQL、正则表达式或脚本初稿给已有函数补充注释和类型标注。这类任务通常上下文短、验收清晰。选择响应快、成本适中、代码格式稳定的模型即可不必把最复杂的模型留给每一个小改动。提示词应给出输入、输出和边界目标为现有的 UserService 补充 get_active_users 方法。 约束 1. 只修改 service 层 2. 不新增第三方依赖 3. 返回值保持为 list[User] 4. 空结果返回空列表 5. 给出对应的 pytest 测试。 验收测试应覆盖空结果、正常结果和禁用用户过滤。重点不是“请你仔细一点”而是让约束可以被检查。二、复杂 Bug 定位优先追求因果推理和证据链排查线上异常、并发问题、状态不一致、内存泄漏时不要直接要求“修复这个 Bug”。先要求模型建立证据链复述已知现象区分事实、假设和待验证项列出最可能的原因给出最小验证步骤在证据不足时明确说“不确定”。例如下面是异常日志、相关调用链和最近变更。 请不要直接给修复代码先输出 1. 已确认事实 2. 至少三个可能原因按概率排序 3. 每个原因对应的最小验证方法 4. 需要补充的日志或复现条件。 不能根据未提供的信息假设数据库、缓存或网络配置。这类任务更依赖模型保持多步推理一致性的能力但最终仍必须由日志、断点、测试和监控数据验证。模型可以缩短排查路径不能替代证据。三、大型代码库改动优先追求上下文管理与工具闭环涉及多个模块时最容易失败的方式是把需求和几个文件一次性粘进去然后要求“直接改好”。更稳妥的流程是分阶段执行定位先找入口、数据流、配置和现有测试。建模让模型说明受影响的模块、公共接口和风险点。设计先输出改动计划不立即写代码。实施按文件或按小功能单元修改。验证运行格式化、静态检查、目标测试和回归测试。审查核对变更是否越过预期边界。可以要求模型按以下格式输出计划请先分析不要修改代码。 输出内容 - 涉及文件及其职责 - 建议修改的调用链 - 可能受影响的公共接口 - 需要新增或更新的测试 - 风险与回滚点。 如果无法从现有上下文确认请列出需要读取的文件路径。当任务需要频繁读取文件、执行命令和根据报错迭代时应选择支持可靠工具协作的环境而不是只比较聊天窗口中的首次答案。四、依赖特定框架或版本优先追求可核验性例如某个前端框架的最新迁移方式云服务 SDK 的鉴权参数数据库驱动的事务行为CI 平台的配置语法安全库的推荐调用方式。这类问题最大的失败模式是“答案流畅但 API 不存在”。正确流程是让模型指出它依赖的版本假设查阅当前官方文档或项目锁定版本在最小示例中运行再迁移到正式项目把关键链接、版本号和验证命令记录到变更说明中。对于时效性强的技术问题模型输出应被视为待验证假设而不是最终事实。一个可复用的路由表团队可以先建立简单规则避免所有任务都使用同一种模型和同一种提示方式。任务类型首选策略必做验证小函数、脚本、测试骨架快速模型 清晰输入输出运行目标测试重构单个模块先分析后改动对比 diff 全量相关测试跨模块功能开发长上下文或检索 分阶段实施构建、集成测试、接口审查疑难 Bug假设驱动分析日志、复现、最小修复验证文档/API 相关问题结合一手文档版本确认 最小可运行示例安全、权限、支付等高风险改动人工主导模型辅助审查双人审查、测试、回滚方案这张表的目的不是给模型打分而是避免“拿擅长写样板代码的工具去处理系统级诊断”这种错配。提示词仍然重要但应该服务于验收模型选对之后提示词要从“命令式描述”升级为“工程契约”。一个有效任务说明通常包含五部分背景当前系统做什么相关模块在哪里。目标要新增、修复或调整什么行为。边界不能改什么兼容哪些版本是否允许新增依赖。输入证据日志、代码、测试、配置和复现步骤。验收标准如何判断完成具体要运行哪些检查。例如不要只写帮我优化这个接口。而应写目标降低 /orders 接口在大量订单数据下的查询次数。 背景当前使用 ORM接口已有集成测试。 约束不改变响应字段不修改数据库结构不引入缓存。 验收 1. 保持现有分页语义 2. 避免循环中逐条查询关联对象 3. 补充查询次数或行为层面的测试 4. 给出修改说明和潜在回归点。这类描述能同时帮助模型理解任务也让人类审查者有明确依据。三个容易被忽略的失败模式1. 把“回答质量”误认为“交付质量”一段代码看起来专业不等于它能编译、通过测试或符合项目约定。必须将评估单位从“单次回复”改为“可验证交付物”。最少检查能否应用到真实仓库是否只修改了预期文件是否通过格式化和静态检查是否覆盖目标测试是否引入无关依赖或接口变化。2. 给模型过多无关上下文上下文越长不一定越好。无关日志、过期设计文档、重复代码和未说明版本的信息会稀释真正约束。较好的做法是先由人或工具筛选材料当前报错最短复现步骤相关调用链精确版本已尝试但无效的方法预期行为对应的测试。让模型“读全仓库”之前先明确它要回答什么问题。3. 忽略数据与凭据边界无论使用哪种模型或平台都应只处理你有权处理的数据。不要把生产数据库导出、客户隐私信息、访问令牌、私钥或内部密钥粘贴到聊天窗口、公开文章或评论区。需要排查问题时可优先使用脱敏日志最小复现代码合成测试数据已撤销或无效的示例凭据仅包含接口形状的配置模板。用一周建立自己的“模型任务档案”不要相信泛化结论建立自己的小型评测集更有价值。选取 10 到 20 个真实但可脱敏的任务覆盖你常做的工作例如修复一个边界条件 Bug给已有模块补测试完成一次小型重构解读一段报错链根据文档升级一个依赖实现一个跨文件功能。每次记录四项指标记录方式一次通过率是否首次就能通过关键验证人工修订量需要改动的文件数、代码行和逻辑点交付耗时从提出任务到通过验证的总时间风险类型幻觉 API、漏改调用方、越界修改、测试缺失等经过几轮记录后你会得到适合自己项目的结论哪些任务可以快速委托哪些任务必须分阶段哪些任务需要更强的推理或工具闭环哪些任务无论用什么模型都应由人主导。结语AI 编程“不听话”时先不要急着把提示词再加长一倍。更值得问的是这个任务到底需要哪种能力模型是否拿到了足够且相关的上下文是否具备必要的检索或执行工具输出是否有明确、可运行的验收方式失败后能否根据证据迭代而不是继续猜把模型选择、任务拆分和验证闭环建立起来提示词才会真正发挥作用。它不再只是“让 AI 更听话”的话术而是工程协作中的明确接口。
返回列表