AI Agent学习笔记(1):速通AI Agent流程

使用AI Agent是未来程序开发中一个非常重要的帮手,特别对于一个过渡期的我,一方面是拥抱变化的具体方式,另一方面是通过此方式对程序与人交互思路进行学习。然而,Agent作为一个经验尚浅的初级程序员,很多时候如果使用LLM初级使用的方式来去做,那么不仅达不到目的,反而会出现更多麻烦。

日常与基础应用

Prompt核心原则:与Agent高效沟通

指令要具体:不要只说Do what, 更要说how to do

把Agent作为一个经验尚浅的初级程序员,判断不一定总是靠谱。

对于复杂任务,一开始要给Agent设定好整体架构和核心逻辑。

例如:“我要测试XX功能,哪些边界情况是重点,以及是否需要或者如何进行模拟”

指明起点:告诉Agent从哪儿下手

首先清楚具体的文件或函数名,最基础的也得告诉它相关的代码库、参考文档或关键组件。明确这些起点,能够最大程度避免Agent做无用功。

例如:请为我们的代码库增加对 Google 模型的支持。你可以先去阅读最新的官方文档 [链接],然后在 model_groups 目录下创建一个新的实现文件。

防御性提示:预判Agent可能犯的错

中级驾驭任务

让Agent完成第一版草稿

对于一项大工程,让自主Agent先生成一个 PR 初稿,可以极大地推动项目进展,并显著减轻你的工作负担。成功的关键在于,你必须在一开始就清晰地传达你期望的实现思路。把自己想象成一位架构师,正在指导几位初级开发人员。你给出的蓝图越清晰、指令越详尽,就越能避免后续花费大量时间去纠正Agent在根本方向上的错误。

切记,大型任务(目前)还无法完全“放养”。 你需要为更复杂的任务预留出多轮反馈的时间,并准备好在最后阶段亲自动手进行一些精修。一个现实的期望是节省大约 80% 的时间,而非实现 100% 的自动化。你的专业知识,在验证和确保最终交付质量上,依然无可替代。

与Agent共同制定实施方案

对于那些需求复杂或定义模糊的任务,与Agent合作,先共同制定一份详尽的实施计划(或产品需求文档 PRD),会非常有效。一开始不清楚所有细节是很正常的。你可以先让Agent帮你做一些探索性的工作,比如提问:“我们的认证系统是怎么工作的?”或“这次改动可能会影响哪些服务?”你也可以让它帮你找出相关的核心代码,供你早期确认,确保方向正确。

某些Agent(如 Devin 和 Claude Code)提供了专门的“规划模式”,专注于阅读和理解现有代码,而非立即动手修改。如果你希望在委派任务前做更充分的准备,也可以借助像 deepwiki.com 或 Devin Search 这样的专业代码库搜索工具,它们能帮你快速摸清代码库的底细。

为复杂任务设立“检查点”

对于多步骤、跨模块、甚至跨代码库的复杂任务,一定要在流程中设置清晰的“检查点”:

规划 → 实现模块A → 测试 → 修复 → 检查点A审查 → 实现模块B …

在每个重要阶段完成后,明确要求Agent暂停并等待你的确认。特别是对于那些横跨数据库、后端、前端等多层的复杂功能,利用这些检查点来确保每一步的实现都符合你的预期,澄清疑问(例如:“向我解释一下你实现的认证流程,并确认它是安全的”),并及早纠正偏差,避免问题滚雪球式地扩大。

  • 例如: “我需要你实现一个功能,它会涉及数据库、后端和多个前端界面。第一步,请先规划好数据库的表结构变更,完成后告诉我,我来执行数据库迁移。” -> “很好。第二步,请实现后端的逻辑,并添加单元测试确保 XYZ 功能正常。完成后告诉我。” -> “最后,请在我们的 Web 和移动端界面上完成修改,调用新的后端接口。”

教会Agent如何自行验证

在给出反馈时,不要只说“这个函数有问题”,而是要清晰地告诉它你是如何测试并发现这个问题的。这样,Agent就能学会你的验证方法,并在未来的任务中自行检查。对于那些你会反复用到的测试模式,最好将其固化到Agent的永久知识库中(参见“扩展Agent的知识库”)。

  • 例如: 在 Devin 中,我们会有意识地引导用户将核心的测试流程保存到Agent的长期记忆里,以简化未来的交互。

在 AI 频繁修改的代码区域,用更全面的测试来“兜底”

目前,Agent还无法像人一样,通过交互式操作来全面测试所有应用场景。因此,在那些主要由 AI 修改和维护的代码区域,大幅提升单元测试和集成测试的覆盖率,是你信心的保证。有了扎实的自动化测试作为安全网,那些“看起来正确”的代码才能被你放心地合并入库。

  • 例如: 在让我们团队的 AI 将一段核心代码从 Python 翻译成 C++ 之前,我们首先花了些时间,极大地增强了那部分代码的单元测试。

Advanced:自动化与深度定制

打造自动化工作流:让Agent主动工作

为Agent处理枯燥、重复工作是节省我们时间最好的方式。

为最重复的工作创建自动化模板

比如移除过期的功能开关,升级各类依赖库,为新功能的PR补充或修复测试。

这些任务正是自动化Agent的完美用武之地。通常,可以由一位经验丰富的工程师,为这类场景创建一个健壮、可复用的提示词模板(在 Devin 中,我们称之为“剧本”),之后便可一键触发,反复执行。

例如: 我们的一位客户,就设置了自动化流程:每当有新功能开发完成,系统会自动触发三个独立的Agent,分头为新代码编写单元测试。

实现智能化的代码审查和规范执行

虽然市面上已经有快速代码审查的工具,例如CodeRabbit或者Greptile,但是AI Agent能够深入理解代码库的功能,因此它提出的审查意见可能更加精准。

定制化与性能提升:释放Agent全部潜力

统一开发环境,确保流畅运行

一个不完整或不匹配的开发环境,是拖慢Agent效率的最大元凶。为了让Agent流畅工作,请确保它的运行环境与你团队成员的开发环境完全一致,包括语言版本、包依赖、自动化检查工具等。

例如,pre-commit 这类工具应该预装在Agent的环境中,而各类配置(如密钥、语言版本、虚拟环境、浏览器登录状态)最好能通过 .envrc 或自定义 .bashrc 等方式自动加载。

  • 例如: 我们为Agent的浏览器预设了已登录的账户状态,这不仅省去了每次手动登录的麻烦,也让端到端测试变得异常简单。

构建自定义工具,为Agent“赋能”

许多平台都支持将Agent与外部工具连接(在 Devin 中,这类功能被称为 MCPs)。但很多人忽略了另一个简单有效的方法:为Agent编写一些自定义的命令行(CLI)小工具。比如,你可以给它一个脚本,只需输入工单 ID 就能拉取该工单的详细信息。或者,为它提供一个能一键重启本地开发环境的工具,让它在搞乱环境后能自行恢复。

  • 例如: 我们有个客户的成功经验值得借鉴:他们创建了一个 CLI 工具,这个工具在运行测试套件后,只显示第一个失败的测试用例及其详细错误信息。这使得Agent能高度专注于解决当前这一个问题,极大地提升了它在处理长任务时的成功率和完成速度。

扩展Agent的知识库,沉淀团队规范

如果Agent反复犯同样的错误,这正是一个绝佳的机会,将你的反馈固化到它的永久知识库中。在 Devin 里,有专门的知识管理系统;其他产品也可能通过 .rules 或 .md 文件来让Agent“学习”。不要只告诉它某个框架的使用方法,更要告诉它你项目的整体架构、不同类型任务的通用测试策略、常用命令的运行方式,以及你推荐使用的工具。

  • 例如: 我们为Agent提供了一份详细的“服务路由添加指南”,其中包含了在添加一条新路由时,需要在前端和后端哪些位置添加样板代码的全部信息。现在,这类任务已可以被轻松地委派给 AI。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注