Hacker News 中文摘要

RSS订阅

我的代理.md:提升LLM辅助代码质量 -- My agent.md to improve LLM-assisted code quality

文章摘要

作者在2025年首次尝试用LLM辅助编程,代码质量差且无法编译。2026年初虽能解决复杂问题,但代码仍混乱。通过使用agentic IDE反复提示“不要用魔法数字”“加注释”等,最终大幅提升代码质量,接近手写水平。

文章总结

好的,这是根据您的要求,对原文进行中文重述和精简后的版本:

标题:我的agent.md:提升LLM辅助代码质量

作者最初在2025年中尝试用LLM写代码,效果不佳,生成的代码甚至无法编译。到2026年1月再次尝试时,情况有所好转,LLM能写出复杂的数据结构并定位到晦涩的bug。然而,代码质量依然堪忧,结构混乱且缺乏注释,清理代码所耗费的时间抵消了效率提升。

2026年3月,作者开始使用支持“迭代”的智能IDE,并发现自己像在指导一位耐心但经验不足的初级程序员,不断重复“不要用魔法数字”、“加个注释”等建议。代码质量虽有提升,但过程繁琐。

Agent.md 的解决方案

作者发现,在编码会话启动时,工具会加载一个名为 agent.md 的文件并将其注入提示词中。这成为了一个完美的“微调”代码风格偏好的地方。作者将自己反复提出的建议都写入了这个文件。

作者分享了他的 agent.md 文件作为起点,其中包含以下核心规则:

  • 简洁沟通:为人类阅读的内容(注释、提交信息等)使用最少的词语,直击要点。
  • 避免空泛赞美:直接给出客观事实。
  • 消除魔法值:将重复或有意义的值提取为常量或枚举。
  • 减少缩进:避免“箭头反模式”,善用提前返回。
  • 函数名简短:不超过30个字符。
  • 用枚举替代布尔参数
  • 代码块间留空行,增加可读性。
  • 添加简洁注释,说明代码块“做什么”和“为什么”,必要时可用ASCII图。
  • 谨慎修改成员可见性:默认保持私有,修改需用户明确批准。
  • 分层抽象:底层细节封装在驱动层,对外暴露高层API。
  • 不修改无关代码:最小化变更行数。
  • 严格遵循分层边界:各层只能与直接相邻的下层通信。
  • 始终使用花括号,即使是一行if语句。
  • 遵循7条提交信息规范(如主题行50字内、使用祈使语气等)。
  • 修复bug前先写测试:先写测试并观察其失败,再写修复代码并观察测试通过。

作者强调,这个“技巧”虽然显著提升了代码质量,但并非万能药。LLM仍会“幻觉”,他仍需花精力在架构和设计上,而非代码风格。

应对“注意力稀释”

LLM存在“上下文稀释”问题,即随着上下文增长,模型会忽略中间部分的指令。作者发现两种缓解方法:

  1. 保持上下文简短,每个功能开启新会话。
  2. 当代码质量下降时,明确要求工具重新加载 agent.md

自动更新 agent.md

作者无需手动编辑文件,而是直接让智能体(agent)自己更新 agent.md 文件。

评论总结

根据评论内容,主要观点及论据总结如下:

观点一:应通过代码检查工具强制执行编码规范
- 评论1(评分:无,作者:OptionOfT)指出,许多规范应通过linting工具强制执行,例如“始终使用花括号,即使是一行if语句”和“函数名不超过30个字符”。
- 关键引用:
- "A bunch of these should be enforce with linting, that way people who still hand-craft code get the same kind of feedback"
- "Always use {}, even on a one-line 'if' statement. & Keep function names short. Less than 30 characters."

观点二:注释应简洁说明“做什么”和“为什么”,而非重复代码
- 评论1(评分:无,作者:OptionOfT)强调,注释应解释代码块的功能和原因,并举例或使用ASCII图说明系统,因为“代码本身已说明‘是什么’”。
- 关键引用:
- "Add a small, to the point, comment to explain what the block does and why. Use examples when possible."
- "The what is the code."

观点三:使用简化技术英语可减少冗长和浮夸
- 评论2(评分:无,作者:oumua_don17)推荐在AGENTS.md中使用ASD-STE100简化技术英语,认为这能有效减少或消除冗长和浮夸。
- 关键引用:
- "Just this one line in AGENTS.md has given better results to reduce if not eliminate verbosity and grandeur."
- "Always use ASD-STE100 Simplified Technical English"

平衡性说明:评论1侧重工具强制与注释原则,评论2侧重语言规范,两者均强调简洁性,但切入角度不同。无评分差异,观点间无直接冲突。