← 返回博客
Stop Asking AI to Build the Whole Feature: The Art of Focused Task Decomposition

停止要求 AI 构建整个功能:专注于任务分解的艺术

BekahHW2025年11月10日 · 4 分钟阅读

我们一直以来都误解了 AI 编程助手。

我们推崇那些“灵感编码者”的故事,津津乐道于那些交给 AI 后奇迹般完成的功能,或者是 10 倍速的 AI Agent。但现实是,如果你给 AI 助手一个模糊的提示,比如“构建用户身份验证”,它会生成数百行代码,然后你得花上一小时去调试为什么这些代码无法协同工作(这正好帮你重温了那个通用真理:永远不要自己编写身份验证系统)。

问题不在于 AI,而在于我们使用它的方式。

大任务带来的问题

当你把一个巨大的任务扔给 AI 时,本质上是在要求它成为一名资深开发者——要在单一提示词内理解你整个代码库、团队规范、业务逻辑以及架构决策。

这不现实。最新研究表明,当 AI 工具试图处理复杂的、多步对话时,其性能会显著下降。它们开始进行假设,丢失之前的上下文,并生成看起来“正确”但实际上并不符合你需求的代码。

如果你不会要求一名新入职的团队成员在第一天就重构整个身份验证系统,为什么会指望 AI 能做到呢?

解决方案:任务分解

什么是任务分解?

任务分解(也称为分解式提示)是提示工程中的一种策略,它将复杂的指令或问题拆解为更小、更具针对性的子任务。与其发布一个庞大、单一的提示词,不如提供一系列(或树状)提示词,每个提示词处理一个特定的子问题。这能让模型更可靠地集中注意力并进行推理。

分解式提示框架 (DecomP) 中,复杂任务被拆分为可以进一步分解或直接解决的简单任务。子任务可以通过单独的提示词或专门的代理来处理。

专注任务分解在实践中是什么样子的

不要让 AI 解决大问题,而是让它协助处理具体、专注的任务。以下是实践中的样子:

错误做法:“修复用户登录流程中的身份验证错误”

更好的做法

  1. “看看这个错误信息。是什么原因导致的?”
  2. “这是 auth.js 代码。需要修改什么?”
  3. “编写一个测试来验证此修复程序有效”
  4. “创建一个 Linear 问题,记录下我们发现的内容”

每一步都很小,每一步都有明确的目标,每一步都能成功。

为什么这有效

当你拆解任务时

你减轻了认知负担。 AI 不再需要同时追踪十五件不同的事情。它可以专注于你当下真正需要的那一件。

你保持了控制权。 你不再需要审查数百行生成的代码,而是审查小的、专注的变更,这些变更你是可以理解并验证的。

错误被控制在小范围内。 当出现问题时,它处于一个微小的、孤立的部分,很容易修复或重新生成。

你学得更快。 每次交互都会让你了解 AI 真正擅长什么,以及它在哪些方面需要你提供更多帮助。

三个关键类别

对于 AI 而言,并非所有的编码任务都是平等的。我将它们分为三类:

第 1 类:狭窄且直接的任务。 例如删除功能标志、为特定函数编写单元测试或生成样板代码。AI 处理这类任务非常出色,因为通常只有一个正确答案且只需极少的上下文。

第 2 类:需要上下文的特定任务。 调试某个特定错误、重构函数以符合你的模式,或优化特定查询。AI 可以做到,但你需要提供正确的上下文(展示错误、你的编码模式、相关的代码)。

第 3 类:大型、开放式任务。 “构建用户身份验证”或“添加照片上传”属于此类。这些是让人们踩坑的地方。不要直接把这些交给 AI。先将它们拆解为更小的第 1 类和第 2 类任务。

现实生活中的应用

假设你在生产环境中发现了一个错误。与其让 AI “修复这个错误”,不如这样做:

第一步: 使用 Continue CLI 捕获错误并创建一个 issue

cn -p "create an issue for this error, include stack trace"

第二步: 让 AI 帮你理解正在发生的事情:“这是错误:[粘贴错误]。最可能的原因是什么?”

第三步: 向 AI 展示具体代码:“正在失败的函数是 users.tsx 中的 onboardNewUsers。基于这个错误,应该修改哪里?”

第四步: 验证修复有效,然后请求测试:“编写一个能捕获此特定错误的测试”

四次专注的交互。四个小的胜利。错误得到了修复、记录和测试,这比试图一次性完成要快得多,而且代码质量更高,因为每一个步骤在产生时都经过了审查。

研究表明,使用 AI 工具的开发者在审查和验证代码上花费的时间往往比他们在编写上节省的时间还要多。但这只有在你要求 AI 生成需要大量审查的庞大代码块时才成立。

当你以小而专注的步骤工作时:

  • 每次审查只需几秒钟,而不是几分钟
  • 调试非常简单,因为每个部分都是孤立的
  • 你不太可能被你不理解的 AI 生成代码所淹没

真正的胜利在于势头。你可以持续前进,而不会被纠缠于 AI 的输出中。

成功的表现

当你正确地进行任务分解时,你的工作会稳步推进。每个小任务都能出色完成。与 AI 的每次交互都在增加价值,而不是制造清理工作。

当你经常练习时,你开始看到模式。那些重复的任务变得显而易见:生成问题模板、审查 PR 的一致性、更新变更日志、搭建新路由的骨架。一旦你能命名并构建这些步骤,你就可以实现自动化。

这就是 Agents(代理) 的用武之地。Continue 中的 Agents 是自定义的 AI 工作流,它们结合了提示词、规则和工具(如 MCP 等)来完成特定的、可重复的任务。它们存在于 Continue 中,可以通过 Mission Control(网页界面)以及 CLI 的 TUI 模式或无头自动化模式来执行。

优秀的工程师学会将复杂问题拆解为可管理的碎片。现在,关键在于将那些复杂问题拆解为可管理的碎片,并识别出哪些可以交给 AI。一次处理一个专注的任务。这才是你真正能够更快交付的方式。