探索更确定性的 AI 辅助代码生成方法

发布: (2026年5月2日 GMT+8 06:15)
4 分钟阅读
原文: Dev.to

Source: Dev.to

引言

AI 编码代理的表现出乎意料地好。在小型项目中,你可以让它们添加功能、修复 bug,甚至编写测试——它们往往能成功。然而,随着项目规模的扩大,问题开始显现。我的经验是,问题不在于模型的能力,而在于 提示不稳定性

大多数编码代理会动态构建提示,使用:

  • 聊天历史
  • 代码库的部分内容
  • 内部启发式规则

由于最终的提示并非完全受你控制,同一请求可能产生不同的输出,代码库中意想不到的地方会出现更改,行为也变得更难以推理。在小项目中这还能应付,但难以扩展。

确定性提示

我尝试将提示视作源代码来处理,而不是依赖动态构建的提示:

  • 提示是显式的
  • 提示是可复用的
  • 提示可以由其他提示组合而成
  • 提示构建是确定性的
  • 提示是唯一的真相来源,而不是生成的代码

这将工作流从“与代理聊天”转变为更接近系统架构设计的方式。

SVI 工具

为了探索确定性提示,我构建了一个小工具,叫 SVI。SVI 能根据结构化规范文件(.svi,采用类 Markdown 格式)生成源代码。

核心思路

  • 每个 .svi 文件定义如何生成特定的源文件。
  • 提示可以导入并复用其他提示。
  • 最终提示以完全受控且可预测的方式构建。
  • 与典型的编码代理不同,SVI 不依赖聊天历史或隐式上下文。

示例 .svi 文件

# Destination File
hello.js

# Output
function hello()

# Options
ProgrammingLanguage=Node.js
Active=True

# Prompt
Create a function that prints "Hello World", and call this function

使用以下命令生成代码:

svi run

输出由基于该规范的 LLM 生成。

实际收益

  • 可预测的结果 – 你确切知道是哪条提示生成了哪个文件。
  • 可复用性 – 提示可以在项目之间共享和组合。
  • 降低模型需求 – 更小、更确定的提示让你可以使用更便宜甚至免费的模型;你可以根据所用 LLM 调整提示的大小和复杂度。

局限性

  • 需要更多前期结构化工作。
  • 灵活性不如自由形式的提示。
  • 工作流从交互式转为更声明式。

对于大型项目而言,这些权衡是值得的,因为 AI 编码代理在规模化时更易于控制。

结论

AI 编码代理功能强大,但其当前的设计使其在大型代码库中难以管理。将提示视为确定性、可复用的规范——SVI 工具即是一个示例——提供了一种更可控的替代方案。

GitHub 仓库:

0 浏览
Back to Blog

相关文章

阅读更多 »

模型越智能,节省越多。

神话:更智能的模型会让插件变得多余。自从 WOZCODE 推出以来,许多 Claude Code 高级用户低声说插件的优势将会消失。