编程智能体(Coding Agents)擅长编写 Swift,但无法完成任务
我花了几个月的时间,在真实的 Swift 和 Xcode 任务上测试 AI 编程智能体。我没有使用简单的演示 Demo,而是给它们分配了带有构建目标(build targets)和测试的真实任务。
初稿通常表现良好。一个能力出众的模型编写出的代码看起来是正确的。类型匹配,视图逻辑合理。如果编写 Swift 是唯一的问题,那么这些工具就已经大功告成了。
真正的问题发生在初稿之后。那是“看起来写完了的代码”与“真正正确的代码”之间的鸿沟。
像 Claude Code 或 Codex 这样的现代工具能很好地处理编译错误。它们不会交给你无法构建的代码。真正的失败在于那些编译器无法察觉的问题。
这些失败浪费了我的时间:
• 意图不匹配:代码可以编译,测试也能通过。然而,行为却是错误的。智能体只盯着测试通过的“绿灯”,而不是你的实际目标。它没有办法校验意图。
• 并发竞态:代码构建过程很干净,但存在数据竞态(data races)。这些问题只会在运行时出现。智能体看到构建成功就继续下一步了。修复这些问题通常需要重新设计,而智能体无法做到这一点。
• 回归循环:智能体修复了一个 Bug,却又引入了另一个。在修复第二个 Bug 时,它又撤销了第一个修复。它陷入了一个在两种错误状态之间来回摆动的循环。它缺乏对之前失败情况的记忆。
• 架构拙劣:智能体编写的代码与框架相悖。它忽略了你的应用结构。它在临时脚本中或许可行,但在真实的工程代码库中却会失败。
这些并非语言本身的问题。模型懂得 Swift。它缺失的是编译器看不见的东西。它不知道结果是否符合你的意图,也不知道结构是否专业。
这将成本从 Token 转移到了注意力上。如果一个智能体需要你每隔几轮就盯着它看,那它并没有帮你节省工作量,而是将“编写”转化为了“监督”。
我正在通过改变模型周围的循环逻辑来改进结果。我专注于智能体检查和记忆的内容。
这与你的经验相符吗?当你在 Apple 平台上运行智能体时,哪里会出问题?是意图不匹配、运行时竞态,还是其他原因?
Source: https://dev.to/jbrackin/coding-agents-are-good-at-writing-swift-theyre-bad-at-finishing-it-md3
Optional learning community: https://t.me/GyaanSetuAi
