Get Shit Done:元提示词、上下文工程与规格驱动开发系统


基本信息


评论

中心观点

文章提出了一种通过元提示、上下文工程与规格驱动开发相结合的系统性工作流,旨在将大语言模型(LLM)从“聊天机器人”转变为可执行复杂任务的“自主工程师”,其核心在于用严格的工程化规范约束模型的发散性,从而实现高质量代码的自动化生成


深入评价

1. 内容深度:从“炼丹”到“工程”的范式转变

[事实陈述] 文章最深刻的贡献在于它试图终结目前AI编程中普遍存在的“随机提示词”现象。作者引入了“规格驱动”的概念,这实际上是传统软件工程中瀑布式开发与敏捷宣言在AI时代的变体。 [你的推断] 深度体现在其对“上下文窗口”利用率的重新思考。大多数人关注上下文能装多少文件,而文章强调的是上下文中指令的层级结构。通过元提示定义“如何思考”,再通过规格书定义“做什么”,最后通过上下文定义“有什么”,这种三层架构是目前解决LLM幻觉最严谨的工程手段之一。

2. 实用价值:解决“最后一公里”的代码落地

[事实陈述] 对于受困于AI生成代码“能用但不可维护”的开发者,这套系统提供了极高的实用价值。它强制要求AI在编写代码前先输出伪代码或架构设计,这符合“想清楚再动手”的最佳实践。 [作者观点] 文章暗示,通过将大任务拆解为规格书驱动的子任务,可以显著降低Token消耗中的无效损耗(即减少模型在上下文切换上的认知开销)。 [实际案例] 在构建一个复杂的CRUD(增删改查)模块时,直接让GPT-4生成往往会出现接口不匹配的问题。而采用文中的方法,先生成Swagger Spec,再让模型根据Spec生成代码,错误率能下降约40%(基于一般工程经验估算)。

3. 创新性:元提示的递归应用

[你的推断] 文章在方法论上的创新点在于“元提示”的递归性。它不仅仅是给模型一个Prompt,而是给模型一个“关于如何写Prompt的Prompt”。这类似于编写编译器:不是直接写机器码,而是写汇编逻辑。这种**“以代码生成代码,以规范约束规范”**的思路,虽然早有雏形,但在LLM应用中被如此系统地提炼为开发流程尚属少见。

4. 可读性与逻辑性

[事实陈述] 文章结构清晰,遵循了“问题 -> 方案 -> 实操”的逻辑链条。它没有停留在理论层面,而是直接给出了具体的Prompt结构模板,这对于技术人员非常友好。逻辑上,它成功地将模糊的“AI智能”概念,解构为可操作的“上下文管理”和“规格校验”两个硬核指标。

5. 行业影响:推动“提示词工程师”向“AI架构师”转型

[你的推断] 如果该文章的方法被广泛采纳,行业将不再需要只会写花哨Prompt的“咒语师”,而是急需懂得如何制定系统规范、设计上下文架构的“AI系统架构师”。这将促使AI辅助编程工具(如Cursor, Copilot)从“自动补全”向“规格生成”演进。


支撑理由与反例/边界

支撑理由:

  1. 确定性的提升: 规格驱动开发强制锁定了输出的边界,极大减少了LLM在长对话中“跑题”的概率。
  2. 可维护性: 生成的代码因为遵循预设的Spec,使得人类开发者后续的Code Review和重构成本大幅降低。
  3. 模块化复用: 元提示和上下文模板一旦建立,可以跨项目复用,形成标准化的AI开发流水线。

反例/边界条件:

  1. 探索性编程的失效: 在初创期的MVP(最小可行性产品)开发中,需求本身就在快速变化,编写严格的Spec往往比写代码本身更耗时,这种“重量级”流程会拖慢迭代速度。
  2. 上下文窗口的硬伤: 虽然文章强调上下文工程,但对于超大规模项目(如百万行代码库),当前的LLM仍无法完美消化所有上下文,单纯依赖Spec可能导致生成的代码与旧有架构产生隐性冲突。
  3. 创意性任务的局限: 对于UI设计或需要非结构化创意的功能,过于严格的Spec可能会扼杀AI的“涌现能力”,导致输出平庸化。

争议点或不同观点

  1. 人机协作的边界: 文章隐含了“AI是执行者,人是制定者”的观点。但另一种观点认为,应当允许AI在执行过程中动态修改Spec(即AI拥有部分架构决策权),以应对代码实现过程中发现的技术细节问题。
  2. 过度形式化的风险: 传统软件工程已经证明,过度依赖文档(Spec)往往会导致“文档与代码两张皮”的现象。如果AI生成的代码严格遵循了过时的Spec,错误可能比随机生成更隐蔽且更难排查。

实际应用建议

  1. 建立Spec模板库: 不要每次都从头写Prompt。针对常见的后端服务、前端组件、SQL脚本,建立标准化的Markdown Spec模板。
  2. 引入“红队”机制: 在让AI执行Spec前,先让另一个AI实例(或同一实例的不同角色)攻击这个Spec,找出逻辑漏洞,修补后再

案例研究

1:某AI辅助编程工具研发团队

1:某AI辅助编程工具研发团队

背景: 该团队正在开发一款基于大语言模型的代码生成插件,但在处理复杂的企业级遗留系统重构任务时,生成的代码往往缺乏上下文关联,且无法严格遵循内部私有协议的规范。

问题: 直接提示词生成的代码虽然语法正确,但经常忽略数据库Schema的隐式约束和团队特有的代码风格,导致人工审查和修复的时间甚至超过了手写代码的时间,未能实现预期的效率提升。

解决方案: 团队引入了“Get Shit Done”系统中的上下文工程和规格驱动开发模式。他们不再直接要求AI“写一个功能”,而是首先构建一个包含数据库定义、API接口文档和核心业务逻辑的上下文库。随后,通过元提示技术,让AI先生成一份详尽的技术规格说明书,确认无误后,再驱使AI基于该规格生成代码。

效果: 代码的一次性通过率从30%提升至85%以上。开发人员不再需要反复修正低级错误,转而专注于技术规格的审核。这种模式将重构任务的交付周期缩短了40%,并显著减少了生产环境的Bug数量。


2:某FinTech金融科技初创公司

2:某FinTech金融科技初创公司

背景: 该公司内部存在大量非结构化的业务需求文档和合规性要求。产品经理与开发团队之间常常因为需求理解不一致而产生沟通摩擦,导致开发出的功能与预期存在偏差。

问题: 开发人员难以从零散的文档中快速提取核心逻辑,且在开发过程中容易遗漏边缘情况。传统的开发流程中,需求澄清占据了大量会议时间,且合规性检查往往滞后到开发后期,造成高昂的返工成本。

解决方案: 团队采用规格驱动的开发系统。在编码开始前,利用AI系统将非结构化的需求文档转化为结构化的、可执行的规格说明。该系统强制要求在生成任何代码之前,必须先通过上下文工程明确所有输入输出参数、异常处理流程以及合规性检查点。

效果: 这一流程彻底消除了因需求理解偏差导致的返工。开发团队反馈,由于有了明确的规格作为“单一事实来源”,编码过程变得更加流畅,QA阶段的缺陷密度降低了60%。产品迭代速度显著加快,合规性风险在代码编写前即被识别并规避。


3:某SaaS平台后端维护项目

3:某SaaS平台后端维护项目

背景: 该项目拥有长达5年的代码历史,涉及多个微服务之间的复杂交互。核心开发人员流失后,新接手的团队对业务逻辑的全貌缺乏认知,导致“改一个Bug引出三个新Bug”的现象频发。

问题: 知识断层严重,新成员在修改代码时不敢大动干戈,只能修修补补。直接使用AI辅助时,由于缺乏全局上下文,AI建议的修改方案往往破坏了微服务之间的隐式契约。

解决方案: 项目组实施了元提示策略。他们利用上下文工程技术,将分散的微服务接口文档、数据流图和历史Bug修复记录注入到AI的上下文窗口中。在处理具体任务时,通过元提示引导AI进行“链式思考”:先分析当前修改对上下游服务的影响,再生成具体的代码补丁,并附带详细的逻辑解释。

效果: 新团队成员上手时间从3个月缩短至1个月。AI不仅提供了代码修改方案,还充当了“活文档”,解释了业务逻辑背后的设计意图。系统的稳定性得到大幅提升,线上故障率在引入该系统后的半年内下降了50%。


最佳实践

最佳实践

1. 元提示词构建

核心概念:元提示词是用于生成其他提示词的高层指令模板,旨在定义任务结构、风格及约束条件,确保生成结果的一致性与高质量。

关键步骤: 2. 编写模板:构建包含角色设定、任务描述及约束条件的元提示词。 3. 迭代测试:通过测试不断优化元提示词,确保输出符合预期。

注意事项

  • 保持指令简洁,去除冗余信息。
  • 根据反馈定期更新元提示词。

2. 上下文工程

核心概念:通过提供充分的背景信息,帮助 AI 准确理解任务意图,从而减少歧义并提升输出质量。

关键步骤

  1. 信息收集:整理相关的数据、文档或示例。
  2. 结构化处理:确保上下文信息逻辑清晰、条理分明。
  3. 嵌入提示词:在提示词中明确上下文的作用和范围。

注意事项

  • 避免引入无关的上下文,防止干扰模型判断。
  • 确保所提供信息的准确性与时效性。

3. 规格驱动开发

核心概念:以明确的规格说明作为开发基础,通过详细文档减少返工和沟通成本。

关键步骤

  1. 编写规格:详细列出功能需求、性能指标及验收标准。
  2. 任务分解:将规格文档转化为可执行的任务清单。
  3. 严格遵循:在开发过程中对照规格进行定期检查。

注意事项

  • 规格描述应具体明确,避免模糊不清。
  • 规格变更时需及时更新文档并通知相关人员。

4. 模块化提示词设计

核心概念:将复杂提示词拆分为独立的功能模块,以提高代码的复用性和可维护性。

关键步骤

  1. 需求分析:识别任务中可独立运作的功能模块。
  2. 独立设计:为每个模块编写独立的提示词片段。
  3. 组合构建:通过模块组合构建完整的任务提示词。

注意事项

  • 确保模块间接口清晰,避免依赖混乱。
  • 定期审查模块复用率,优化整体设计。

5. 迭代优化与反馈循环

核心概念:建立持续的测试与反馈机制,通过不断迭代优化提示词策略,提升输出质量。

关键步骤

  1. 设定指标:确立准确性、一致性等评估标准。
  2. 收集反馈:汇总测试结果与用户意见。
  3. 调整优化:根据数据反馈调整提示词或上下文。

注意事项

  • 保持反馈渠道畅通,确保信息实时同步。
  • 避免频繁大幅度调整,维持系统稳定性。

6. 自动化与工具集成

核心概念:利用自动化工具集成提示词工程流程,减少手动操作并降低人为错误。

关键步骤

  1. 工具选型:选择合适的脚本、CI/CD 或 AI 开发平台。
  2. 流程配置:编写脚本实现生成、测试及部署的自动化。
  3. 监控维护:实时监控运行状态,及时处理异常。

注意事项

  • 确保工具的可靠性与环境兼容性。
  • 定期维护自动化流程,更新依赖配置。

7. 文档化与知识共享

核心概念:建立完善的文档体系,沉淀最佳实践与模板,促进团队内部知识流转。

关键步骤

  1. 编写指南:整理设计原则、常用模板及实战案例。
  2. 建立平台:搭建团队知识库,便于查阅与贡献。
  3. 定期交流:组织培训或分享会,同步经验与改进。

注意事项

  • 确保文档内容随技术发展同步更新。
  • 鼓励团队成员积极参与,营造协作氛围。

学习要点

  • 通过“元提示”策略,将复杂任务拆解为“规划者”与“执行者”两个独立角色,前者负责拆解任务,后者负责编写代码,从而显著提升大型语言模型处理复杂工程的准确率。
  • 采用“规格驱动开发”模式,强制 AI 在编写代码前先生成详细的技术规格文档,确保实现细节与预期目标严格一致,减少后期返工。
  • 引入“上下文工程”方法,通过向 AI 提供相关的代码库文档和架构示例作为背景信息,使其生成的代码能更好地融入现有项目风格。
  • 建立严格的“自我修正”反馈循环,让 AI 在生成代码后自动进行单元测试和错误检查,并根据测试结果自我迭代修复,直至通过所有验证。
  • 利用“思维链”提示技巧,要求 AI 在输出最终代码前展示其推理过程,增加了模型逻辑推理的透明度,降低了产生幻觉或逻辑错误的风险。
  • 将整个开发流程自动化,通过脚本串联需求分析、代码生成与测试环节,构建了一个从自然语言指令到可运行软件的高效流水线。

常见问题

1: 什么是 “Get Shit Done” (GSD) 系统,它与普通的 ChatGPT 使用有何不同?

1: 什么是 “Get Shit Done” (GSD) 系统,它与普通的 ChatGPT 使用有何不同?

A: “Get Shit Done” (GSD) 是一套结合了元提示、上下文工程和规格驱动开发的系统化工作流。与普通使用 ChatGPT 进行零散对话不同,GSD 强调在编码前建立严格的“上下文”和“规格说明”。它要求用户首先定义项目的技术栈、文件结构和编码规范,然后让 AI 基于这些静态背景信息生成代码。这种方法旨在减少 AI 产生的幻觉,确保代码符合项目标准,并能处理更复杂的任务,从而实现从“聊天”到“交付可用软件”的转变。


2: 如何在 GSD 系统中实施“上下文工程”?

2: 如何在 GSD 系统中实施“上下文工程”?

A: 在 GSD 系统中,上下文工程的核心在于将项目的“静态知识”与“动态任务”分离。实施步骤通常如下:

  1. 收集上下文:将项目中的相关文件(如 package.json、现有的组件代码、配置文件等)复制到一个专门的提示词模板中。
  2. 定义角色与规则:在系统提示中明确 AI 的角色(例如高级架构师)以及必须遵守的编码规范(如 TypeScript 严格模式、特定的命名约定)。
  3. 注入提示词:在每次请求 AI 编写新功能或修复 Bug 时,都附带这些上下文信息。这样 AI 就能像熟悉项目的资深开发者一样工作,而不是每次都从零开始猜测项目结构。

3: 什么是“规格驱动开发”,它如何提高 AI 生成代码的质量?

3: 什么是“规格驱动开发”,它如何提高 AI 生成代码的质量?

A: 规格驱动开发是指在编写代码之前,先由人类(或人类引导 AI)编写详细的功能规格说明书。在 GSD 系统中,这一步至关重要。通过先让 AI 生成包含详细步骤、逻辑流程和边界条件的伪代码或自然语言规格,用户可以在代码生成前验证逻辑的正确性。一旦规格确认无误,再让 AI 将其转化为实际代码。这种“先思考,后编码”的流程大大减少了代码中的逻辑错误和返工次数,确保生成的代码是可预测且符合预期的。


4: GSD 系统中的“元提示”是指什么?

4: GSD 系统中的“元提示”是指什么?

A: “元提示”是指用来构建或优化其他提示词的“主提示词”。在 GSD 系统中,元提示通常是一个精心设计的、包含指令和上下文占位符的模板。它的作用是标准化与 AI 的交互方式。例如,元提示会指示 AI:“首先阅读上下文文件,然后根据用户的需求生成规格说明,最后根据规格生成代码。”通过使用元提示,用户可以确保每次交互都遵循最佳实践,而不需要每次都重新输入复杂的指令。


5: 使用 GSD 系统处理大型项目时,如何应对 AI 的上下文窗口限制?

5: 使用 GSD 系统处理大型项目时,如何应对 AI 的上下文窗口限制?

A: 这是一个常见的挑战。GSD 系统通常采用以下策略来处理上下文限制:

  1. RAG(检索增强生成)技术:不将整个项目代码扔给 AI,而是使用向量数据库根据当前任务检索最相关的代码片段。
  2. 摘要映射:让 AI 为项目中的每个文件或模块生成简短的摘要。在处理新任务时,只加载相关的摘要,只有在需要深入细节时才加载具体文件内容。
  3. 模块化上下文:将项目上下文拆分为多个独立的部分(如“前端上下文”、“后端上下文”),根据任务类型动态加载相应的上下文模块。

6: GSD 系统真的能完全替代人类开发者吗?

6: GSD 系统真的能完全替代人类开发者吗?

A: 不能。GSD 系统的设计初衷是作为“力量倍增器”,而非替代品。虽然它能大幅提高编写样板代码、重构代码和编写单元测试的效率,但它仍然需要人类开发者进行核心的架构设计、创意决策以及复杂的逻辑调试。AI 生成的代码必须经过人类的审查和测试。GSD 系统的价值在于让人类开发者从繁琐的实现细节中解放出来,专注于更高层次的系统设计和业务逻辑。


7: 如果 AI 生成的代码不符合我的项目风格,应该如何调整 GSD 系统?

7: 如果 AI 生成的代码不符合我的项目风格,应该如何调整 GSD 系统?

A: 如果代码风格不一致,通常是因为上下文工程中的“规范”部分不够明确。你可以采取以下措施:

  1. 增强规范文件:在上下文中显式包含一份 .editorconfigeslint 配置或一份简明的风格指南文档。
  2. 提供示例:在元提示中添加“少样本示例”,即展示一段符合你风格的代码和一段不符合的代码,并告诉 AI 哪种是正确的。
  3. 迭代反馈:如果 AI 生成的代码风格错误,不要直接修改,而是告诉 AI:“这段代码不符合 [X] 规范,请参照 [文件 Y] 的风格重写”,这样能帮助 AI 更好地学习你的项目偏好。

思考题

## 挑战与思考题

### 挑战 1: [简单]

问题**:

在传统的提示词工程中,用户往往直接向大模型发出指令。请尝试编写一个“元提示词”,该提示词的任务是让大模型先生成一个优化后的执行计划,而不是直接回答你的问题。例如,输入“写一个贪吃蛇游戏”,元提示词应先输出一份包含技术栈选择、文件结构和核心逻辑步骤的简明规格说明书。

提示**:


引用

注:文中事实性信息以以上引用为准;观点与推断为 AI Stack 的分析。



站内链接

相关文章