Daily Productive Sharing 1377 - Best practices for coding with agents

Daily Productive Sharing 1377 - Best practices for coding with agents
Photo by Willian Justen de Vasconcellos / Unsplash

One helpful tip per day:)

Cursor 团队分享了如何使用 Cursor 的最佳实践,其中不少也适用于其他工具:

  1. 一个智能体“执行框架(agent harness)”由三部分组成:
    1. 指令(Instructions):用于引导智能体行为的系统提示与规则
    2. 工具(Tools):文件编辑、代码库搜索、终端执行等能力
    3. 用户消息(User messages):你的提示与追问,用于推动工作
  2. 这个框架之所以重要,是因为不同模型对同一套提示的反应会不一样。
  3. 你能做的最有影响力的改变,是先规划,再编码
  4. 规划会迫使你更清晰地思考要构建什么,并为智能体提供可努力达成的具体目标。
  5. 点击 “Save to workspace”,把计划保存到 .cursor/plans/。这会为团队生成文档,便于从中断处继续,也为未来在同一功能上工作的智能体提供上下文。
  6. 并非每个任务都需要详细计划;对快速改动或你已经重复做过很多次的任务,直接交给智能体也完全可以。
  7. 如果结果不理想,就回滚改动,把计划写得更具体、更贴近你真正想要的内容,然后再跑一遍;这往往比在一个跑偏的智能体过程中修修补补更快,也会产出更干净的结果。
  8. Cursor 的智能体有强大的搜索能力,会按需拉取上下文;当你问“认证流程”时,它会通过 grep 和语义搜索找到相关文件,即使你的提示里并没有出现完全相同的词。
  9. 保持简单:如果你知道具体文件,就直接标注;如果不知道,智能体会自己找到。塞进不相关的文件反而会让智能体误判重点。
  10. 在以下情况开始新对话:
    • 你要切换到另一个任务或功能
    • 智能体看起来迷糊,或反复犯同样的错误
    • 你已经完成了一个逻辑工作单元
  11. 经过很多轮对话与摘要后,上下文会累积噪音,智能体可能被分散注意力或跑到无关任务上;如果你感觉它的效果在下降,就该开新对话了。
  12. 开新对话时,用 @Past Chats 引用之前的工作,而不是把整段对话复制粘贴过来;智能体可以有选择地读取历史,只拉取它需要的上下文。
  13. Cursor 提供两种主要方式来定制智能体行为:用于静态上下文的 Rules(适用于每次对话),以及提供动态能力的 Skills(在相关时启用)。
  14. Rules 提供持久化指令,塑造智能体与你的代码交互的方式;可以把它理解为“始终开启的上下文”,每次对话开始时智能体都会看到。
  15. 从简单开始:只在你发现智能体反复犯同一种错误时才添加规则;在还没理解自己的模式之前,不要过度优化。
  16. 当你看到智能体犯错时,就更新规则;你甚至可以在 GitHub issue 或 PR 里 @cursor,让智能体帮你更新规则。
  17. Skills 把领域知识、工作流与脚本打包起来,供智能体在相关时调用。
  18. Skills 会在智能体判断“相关”时动态加载;这样既能保持上下文窗口干净,又能让智能体拥有专门能力。
  19. 带有 hooks 的 Skills 还能与安全工具、密钥管理器以及可观测性平台集成。
  20. 你可以贴一个设计稿,让智能体照着实现;智能体能看懂图片,并匹配布局、配色与间距。
  21. 你也可以截取报错状态或异常 UI 的截图,让智能体去排查;这往往比用文字描述更快。
  22. Commands 适合你每天会反复执行多次的工作流;把它们存成 Markdown 文件放在 .cursor/commands/,并提交到 git,这样全团队都能复用。
  23. 对所有本地改动,打开 Source Control 面板并运行 Agent Review,对照主分支查看差异。
  24. 对于重要改动,可以让智能体生成架构图;例如提示:“用 Mermaid 画一张展示我们认证系统数据流的图,包含 OAuth 提供商、会话管理与 token 刷新。”
  25. 我们发现:让多个模型同时尝试同一个问题,再挑选最佳结果,会显著提升最终输出质量,尤其对更难的任务。
  26. 在下拉菜单中选择多个模型,提交提示,然后并排比较结果;Cursor 也会建议它认为最好的方案。
  27. 云端智能体很适合处理那些你本来会写进 todo list 的任务:
    • 工作中顺手记下的 bug 修复
    • 对近期代码改动的重构
    • 为现有代码生成测试
    • 文档更新
  28. 与其凭感觉猜修复方案,不如用 Debug Mode:
  29. 生成多个可能原因的假设
  30. 为代码自动插入日志
  31. 让你复现 bug 并收集运行时数据
  32. 分析真实行为以定位根因
  33. 基于证据做有针对性的修复
  34. 关键在于提供足够详细的复现上下文;你描述得越具体,智能体添加的监测与日志就越有用。
  35. 智能体的成功率会随着指令更具体而显著提升;对比“给 auth.ts 加测试”与“参照 tests/ 的模式,为 auth.ts 写一个覆盖 logout 边界情况的测试用例,并避免使用 mocks”。

如果你喜欢的话,不妨直接订阅这份电子报 ⬇️