编程代理如何理解你的代码(以及如何为它们编写代码)

HN Vibe Coding Practices 2026-07-24T23:19:04.997869

第一篇:为代理编写代码——代理如何通过字符串搜索导航你的仓库,以及如何编写它们能真正找到、解析并信任的代码

2025 年初,我们创立 Modem 时,深信 AI 编程是真实的,它会大幅加速软件开发,而传统的产品流程将成为执行的新瓶颈。

为了朝着那个未来迈进,我们从第一天起就用 AI 代码生成工具来构建 Modem——当时 Sonnet 3.7 还是最领先的编程模型。一年后,Modem 成了一款有付费用户的真实产品:36 万行 TypeScript 应用代码,外加 32 万行测试代码,其中 99.9% 由大语言模型(LLM)生成。

让 Modem 拥有一个可运行的代码库并不容易。我们需要不断试验、试错,并持续投入,学习如何与代理式代码生成(agentic codegen)高效协作。在这个系列博客“为代理编写代码”(Writing Code for Agents)中,我们将分享一路走来积累的一些经验。

本篇是系列的第一部分,主要讨论如何编写代码,让代理能更高效地导航、解析和读取:你选的名字、定义的类型、以及把解释放在哪里。这些建议不是凭空猜测;在我们的测试中,遵循本指南的技巧后,代理花在代码检索上的 token 数和交互次数更少,bug 检出率更高,自信给出错误答案的频率也明显降低。

但要理解这一切为何可能,我们得先弄明白:代理到底是怎么搜索代码的?

代理如何搜索代码(剧透:其实就是文本搜索)

你的编程代理经常搜索仓库中的代码。举个例子:想给某个函数改名?Claude Code、Codex、OpenCode 等工具都会搜索你的代码,找出所有需要更新的对该函数的引用。

实际发生的事情比你想象的要简单得多:Claude Code 只不过运行了 grep(或者它的更快亲戚 ripgrep,简称 rg)来快速翻查你的代码,找到匹配的文本引用。代理读取返回的结果,如果上下文不够,就会继续扫描代码,直到拿到所需的全部信息。

查看原文