问 HN:有人在尝试用不同方式将 LLM 用于编程吗?

基于规格说明 vs. 代理式/编排式编程

  • 许多人认为最大的提升来自更清晰的规格说明,而不是复杂的编排:单一意图、明确的 I/O 契约、约束和前置条件,以及渐进式澄清。
  • 一些人偏好“清空重来”的使用方式:尽量少用或不用长期记忆,以避免“上下文腐烂”和意图稀释;改用外部 Markdown/文档,让模型可以 grep。
  • “技能”(狭窄、可复用的指令和工具)被认为被低估了;“代理”主要有助于上下文管理和约束。
  • 另一些人报告称,多代理团队、基于图的工作流,以及固定角色的模型(机械层面用便宜模型,规划/审查用强模型)取得了成功,但也承认 token 成本和复杂度很高。

流状态与人的体验

  • 常见抱怨:类似聊天的提示与等待会打断流状态;用户感觉自己像在监督一个初级开发者的经理,而不是在写代码。
  • 一些人通过以下方式重新找回流状态:
    • 先做深入的规划/规格工作,然后让代理无人值守地运行,之后再审查。
    • 使用类似结对程序员的工具,由人类主导,AI 以小步增量辅助。
    • 并行运行多个任务/代理,把“编排”本身当作流状态活动。
  • 另一些人觉得在很多代理之间来回切换很耗神,并不会带来流状态。

实用工作流与支架

  • 常见模式:
    • 以 issue/PR 为中心的工作流,让 LLM 实现任务、生成计划,并通过评论反复迭代。
    • 在生成代码之前先写三层文档(哲学 → 规格 → 设计)。
    • 每个功能都有各自的“workbox”/沙箱,配合自动化分支、PR 和可部署的测试实例。
    • 具备隔离性的代理:从同一份规格分别生成代码和测试,以避免确认偏差。
  • 自定义支架覆盖终端、基于浏览器的沙箱、DAG/图引擎,以及本地 VM/容器,通常带有严格的权限和工具(例如漏洞猎杀循环、安全沙箱)。

自动补全、结对协作与编辑器集成

  • 对编辑器中心化的流程兴趣很高:行内自动补全、编辑完成、针对代码区域的多个锚定对话,以及代理在并行窗格中工作的终端。
  • 一些人认为自动补全的支架和 UX 比挤出稍微更好的模型更重要。

学习、质量与安全

  • 有人担心完全代理式编程会损害理解和学习,尤其对初级开发者;替代方案包括让 LLM 产出详细的教学文档,或作为导师/审阅者。
  • 许多人强调要用 LLM 增强人类理解(图示、摘要、解释),因为人类对代码的理解现在成了瓶颈。
  • 安全与护栏是反复出现的主题:沙箱化代理、受限工具,以及每次迭代之间的自动检查/测试。