站点出售QQ:1298774350
你现在的位置:首页 > 演出资讯  > 演唱会

代码智能体 101:真正把事搞定的艺术

更新时间:2026-02-28 02:39  浏览量:1

代码 Agent(智能体)不是魔法,但它们是我们目前拥有的最接近魔法的东西。

我们注意到,有些工程师——尤其是资深(Senior)到 Staff 级别的——比其他人更快地取得了成功。在这里,我们分享了一些来自客户和我们自身经验的顶级教训。

关于本指南:

产品无关性 (Product-Agnostic):

我们讨论的技巧适用于任何代码 Agent。

战术性 (Tactical):

我们提供最实用的可操作建议。

技术性 (Technical):

虽然 Agent 对很多人都有用,但本指南是专门为工程师编写的。

开发者工具一直在飞速进化。

10 年前:

是自动补全和 Intellisense,能建议方法名并进行程序化的重构。

4 年前:

是 Copilot 和 Tab 补全,能帮你写接下来的几行代码。

2 年前:

是生成式聊天机器人,能辅助开发并为你生成整个文件。

今天:

自主智能体 (Autonomous Agents)

,能够从最初的描述一直执行到最终的 PR(拉取请求),几乎不需要人工干预。

过去两年,我们致力于通过构建

Devin

来实现这一愿景。现在,人们对自主 Agent 的兴趣达到了新高,类似产品也层出不穷 [1]。这些 Agent 形态各异,包括 Web 应用、移动 App,以及集成在 Slack、GitHub、Linear 和 Jira 等流行工具中的插件。

人类与 AI 助手搭配能超越 AI 单打独斗,但自主 Agent 端到端处理任务的能力,开启了多任务处理的新高度——这让每位工程师都变身成了「工程经理」。

适应这位新的 AI 同事需要一点时间。有趣的是,我们观察到

Senior 到 Staff 级别的工程师往往最快上手并精通这些工具

。最终,这些工具将在各个级别的工程工作中普及。基于我们的经验和反馈,我们希望分享关键见解,帮助大家将这些工具成功融入工作流。

这些是 2025 年与代码 Agent 交互的基本准则。如果你什么都记不住,至少要记住这几条。

把 Agent 想象成一个

初级编码伙伴 (Junior Coding Partner)

,它的决策能力可能不太靠谱。 简单的任务可以直接下达,但对于复杂任务,请从一开始就清晰地勾勒出你偏好的方法。提前提供整体架构和逻辑,不仅能提高成功率,还能减少你后续 Review 代码的时间,因为你已经熟悉了它的实现思路。

举例:

不要只说“添加单元测试”,而要指定“测试哪些功能、识别重要的边缘情况(Edge Cases),并明确说明什么需要 Mock(模拟)”。

如果是你自己处理这个任务,你会从哪里下手?即使你不知道具体的文件名或函数名,也要提到仓库、相关文档和涉及的关键组件。明确指出这些要素可以最大限度地减少无用功和困惑。

举例:

“请在我们的代码中添加对 Google 模型的支持。你应该查看最新的文档 [链接],并在 model groups 目录下创建一个新的实现文件。”

想象一下把同样的指令发给一个新来的实习生。哪里容易产生误解或出错?预判这些点,并主动澄清指令以避免歧义。

举例:

“请修复我们搜索模块的 C++ 绑定以通过新的单元测试。

注意,在测试之前,你每次修改代码后可能都需要重新编译绑定。

Agent 的很多魔力来自于它们

自我修复错误

和根据报错信息迭代的能力。通过类型检查器、Linter 和单元测试提供强大的反馈循环,能极大地提升它们的表现。 尽量使用带类型的 Python(而非普通 Python)或 TypeScript(而非 JavaScript)。教你的 Agent 如何运行常见的检查和测试,确保它有必要的包和权限。如果 Agent 能操作浏览器,请清楚地指导它如何运行前端开发环境。

举例:

我们的团队从大部分无类型的 Python SDK 转型为全类型 SDK(这也是一个非常适合交给 Agent 的任务)。

一旦你掌握了与 Agent 对话的基础,就该把这些 AI 助手引入日常工作流了。以下是让 Agent 成为你日常一部分的实用方法:

当你熟悉代码库时,上述一切都会变得更容易。即使是简单的任务,也能从你对逻辑和结果的验证中受益。

人工监督仍然必不可少

——归根结底,你要对代码的最终正确性负责。即使工具变得越来越复杂,所有权和验证仍将是人类工程师的关键职责。

想象一下队友给你发消息:“嘿,能快速构建一下 X 吗?”或者“我们需要微调一下 Y。” 不要让这些打断你的工作流(Flow),直接发一个简短的 Prompt 给自主 Agent 让它去调查或修改。这样你就能保持专注。 有个有趣的副业点子?需要快速做个原型、抓取数据或复现研究?

把任务委派给 Agent,稍后再回来查看。

举例:

许多团队在讨论 Bug 修复或小功能更新时,直接在 Slack 上 @Devin。

想象你在通勤或旅行,突然出现紧急 Bug,或者你意识到刚才提交的代码有个错误。别担心!自主 Agent 通常支持移动端访问,让你即时处理。无论是通过 Slack 移动版还是专用 App,许多 Agent 都能让你在路上解决问题,哪怕 Wi-Fi 信号很差。

举例:

这种选择权让我们团队在坐车或坐飞机时效率倍增。

卡在为旧 Commit 做二分查找(git bisect)上?还是在为新功能更新文档?把这些重复性任务丢给 Agent。你将节省宝贵时间,专注于更有创造力和影响力的工作。

举例:

在我们团队,通常是工程师发布变更,然后让 Agent 更新所有相关的文档和用户文案。

纠结重构是否真的能简化代码?在两种架构方案之间犹豫不决?

让 Agent 把两种方案都实现出来。

有了具体的对比,决策就变得简单直观,而且扔掉其中一个方案也不会心疼。

举例:

在为文本框选择 Lexical 还是 Slate 时,我们让 Agent 分别实现了两者。Slate 因为最终效果更好而胜出。

设置 CI/CD 流水线,为每个新 PR 自动创建预览部署,给你一个即时的实时 URL。这在审查 AI Agent 完成的前端任务时特别有用。

当 PR 的规模和复杂性超过几个文件时,一次性搞定就变得很困难。然而,

掌握如何委派中到大型任务(通常是 1-6 小时的工作量)才是自主 Agent 回报率 (ROI) 最高的地方。

与其节省几分钟,你可以收回数小时的生产力。小任务也许能轻松搞定,但拓展 Agent 的能力去处理大任务,带来的回报最大。

对于实质性任务,使用自主 Agent 创建 PR 初稿可以启动进度并大幅减少你的工作量。这里的成功取决于

预先清晰地沟通你想要的方法

。 把自己想象成指导初级开发者的架构师。清晰、详细的说明有助于避免浪费时间去纠正 Agent 代码中的根本性误解。

领域起草 (Drafting)打磨 (Refining)

记者收集初步信息,写出文章初稿。编辑审稿、核查事实、润色并定稿发布。

餐饮

帮厨准备食材并制作初步菜肴。副主厨调味,调整菜品口味,然后上菜。

编程

自主 Agent 根据初始计划开始任务并创建初稿方案。

人类开发者审查 PR 草稿,提供反馈,并在合并前进行手动优化。

请记住:

大型任务(目前)还不能完全撒手不管。对于更有挑战性的任务,预期会有多次反馈循环,并需要一些手动调整来润色。

现实的目标是节省 80% 的时间,而不是完全自动化

,你的专业知识对于验证和最终质量保证依然至关重要。

对于复杂或定义模糊的任务,与自主 Agent 协作制定详细计划非常有效。一开始不知道所有细节或需求也没关系。 从提示 Agent 探索“发现型问题”开始,比如“我们的认证系统是如何运作的?”或“哪些服务可能会受到影响?”你也可以让 Agent 识别具体的代码目标供你早期确认。

工具提示:

某些 Agent(如 Devin 和 Claude Code)提供专门的

规划模式 (Planning Modes)

,专注于阅读和探索现有代码,而不是立即修改。如果你想在委派任务前做更深层的准备,像 deepwiki.com 或 Devin Search 这样的专用代码库搜索工具可以快速提供洞察。

对于多部分任务,尤其是涉及多个代码库的任务,请在沿途建立清晰的检查点:

计划 -> 实现代码块 -> 测试 -> 修复 -> **检查点审查** -> 下一块

明确要求在每个重要阶段后暂停,特别是构建跨越多个层(如数据库、后端、前端)的复杂功能时。利用这些检查点确保实现符合你的预期,澄清疑虑(例如“解释认证过程并确认其安全性”),并及早纠正方向,避免问题级联放大。

举例:

“我要你实现这个功能,它将跨越数据库、后端和多个前端界面。请先规划所需的数据库模式(Schema)变更,并在完成后以此通知我,以便我应用迁移。” -> “现在请实现后端变更并添加测试,确保 XYZ 正常工作。完成后告诉我。” -> “现在在 Web 和移动端界面中实现变更以调用新的后端端点。”

在提供反馈时,不要只指出问题(“这个函数不工作”)。

清晰地表达你的测试过程

,使 Agent 能够独立验证未来的任务。对于你会频繁重复的测试模式,将其整合到 Agent 的永久知识库中(参见后文“添加到 Agent 知识库”)。

举例:

在 Devin 中,我们积极提示用户将必要的测试程序保存到 Agent 的长期记忆中,以简化未来的交互。

目前,Agent 还不能完全交互式地彻底测试所有场景。在 AI 修改频繁的区域增强测试覆盖率,可以确保对 Agent 输出的信心。坚实的测试意味着看起来正确的代码可以被放心合并,无需担忧。

举例:

我们的团队在委托 AI 将实现从 Python 翻译成 C 之前,先加强了代码库关键部分的单元测试。

Agent 对传入事件的响应速度比人类快得多,而且比起人类同行,它们更愿意做无聊、重复的工作。

工程团队经常遇到重复的例行任务。这些是 Agent 自动化的完美候选者。常见的例子包括:

移除特性开关 (Feature flag removal)依赖项升级为新功能 PR 修复和添加测试

为了高效设置,经验丰富的工程师通常会创建一个健壮的、可复用的

提示词模板 (Prompt Template) [2]

,以便在这些场景下重复运行。

举例:

我们的一位客户在开发新功能时,会自动触发三个专门用于编写单元测试的 Agent。

虽然有专门的快速代码审查工具 [3],但自主 Agent 是提供更准确洞察的有趣选择,特别是如果它们已经索引了你仓库的功能。

举例:

在 Cognition,我们喜欢维护一份“工程师最常犯错误”的清单,并将其提交到代码库中。然后,我们不是编写传统的 Lint 规则来捕获这些(这通常不可能),而是让 Agent 在每个新 PR 上运行,检查这些错误。3. 挂钩事故与警报 (Hook into incidents and alerts)

你还可以设置自主 Agent 以响应特定事件自动触发。例如,Devin 提供了易用的 API,其他 Agent 也可以通过 CLI 命令集成到自定义工作流中。这些设置与 MCP(模型上下文协议)配合使用效果尤佳,可以摄取第三方错误日志。

⚠️

注意:

在生产环境中分流(Triage)问题时,AI 的调试技能还不是特别强。与其让 AI 在 Bug 出现时端到端地修复,不如

让 AI 标记出最可疑的错误或变更

更为实用。

没有什么比不完整或不匹配的环境更能拖慢 Agent 的速度了。为了保持顺畅运行,请将 Agent 的设置与你的团队完全对齐。 这包括语言版本、包依赖项和自动化检查。例如,pre-commit 应该安装在 Agent 的环境中,环境配置(密钥、语言版本、虚拟环境、浏览器登录)应该使用 .envrc 等工具或自定义的 .bashrc 自动加载。

举例:

我们将 Agent 的浏览器设置为预先认证登录状态,消除了手动认证的麻烦,使测试变得容易得多。

MCP 广泛可用,且能快速设置和实验连接外部工具 [4]。但很多人忽略了为 Agent 设置简单的 CLI 脚本。 举个简单的例子,你可以给 Agent 一个脚本,让它根据 Ticket ID 拉取 Linear 票据的信息。你可能还想给 Agent 一个工具来可靠地执行工作流的常见部分,比如重启本地开发环境的脚本。

举例:

我们有一个客户成功创建了一个 CLI 工具,它

只显示测试套件中第一个失败的测试

。该 CLI 提示 Agent 只关注那个测试并提供详细错误信息,这使得 Agent 在长任务中拥有更高的成功率和更快的完成速度。

如果你的 Agent 犯了一些常见错误,这是将反馈写入 Agent 知识库的好时机。在 Devin 中,有一个专门的知识管理系统。许多产品提供 .rules 文件或 .md 文件供 Agent 永久读取。 不要只给它关于你使用的框架的指南,还要告诉它

项目的整体架构

。告诉它针对不同类型的任务通常进行哪种类型的测试,如何运行重要命令,以及你推荐使用哪些工具。

举例:

我们给 Agent 提供了关于“添加新服务路由”时应遵循的具体流程知识。信息包括它需要在前端和后端添加样板代码的所有位置。结果是,现在这些任务可以轻松委派给 AI。

Bug 报告可能具有欺骗性的简单。但许多 Bug 往往不仅需要访问数据库和日志,还需要超出目前大多数 AI Agent 水平的调试能力。 如果使用 AI 辅助调试,我们建议

询问可能的根本原因列表

,而不是尝试让它自己调试并修复一切。然后,人类可以根据经验判断哪个是真正的根本原因。一旦原因查明,Agent 在实施修复方面仍然很有帮助。

总体而言,今天的模型不具备匹配设计截图或 Figma 模型所需细节水平的视觉推理能力。它们在

代码层面的视觉描述

(例如给它 Figma 的代码)上最可靠。如果你想让它匹配你的视觉风格,你应该使用一个包含可复用组件的优秀设计系统。

每当你想使用新库时,你应该显式地将 Agent 指向最新的文档。否则,由于预训练基础模型的知识截止问题,大多数 Agent 会假设这些库的旧模式。如果你指向文档,优秀的 Agent 可以克服这一点,但你必须留心(记住,Agent 甚至不知道这些库有新版本)。

并不是每次使用 Agent 都会成功。在 2025 年,Agent 的产出确实存在方差。工作的一部分包括学习如何使用 Agent,以最大化成功概率,同时最小化浪费的时间和 Token。

新手常犯的一个错误是:即使 Agent 的工作已经跑偏,还要执着于让这次交互成功。 如果你发现自己在想“它无视了我的指令”或“这东西在绕圈子”,你应该果断结束对话或手动接管。

发送更多消息往往说明任务固有的复杂性超出了 Agent 的能力,而不是可以通过纠正解决的简单错误。

如果你刚开始使用 Agent,我们建议一开始

分散下注

。尝试一系列不同的 Prompt 和想法。在你看到 Agent 自然表现良好的任务类型上加倍投入——并在它们表现不佳的任务上止损。不要觉得非要强迫 Agent 每次都成功不可。

对于 Agent 来说,

推倒重来

往往比对人类来说更是正确答案。 如果你给 Agent 一个任务,它在处理反馈或纠正方向时很吃力,

带着所有前期指令重新启动一个新的 Agent

往往能更快获得成功。Agent 纠正搞乱的环境的能力,远不如它从头开始生成新代码的能力。

为 Agent 创建账户:

抛弃型邮箱对安全测试网站很有用。如果 Agent 需要访问云资源,请为它创建自定义的 IAM 角色。

给它开发/暂存环境:

理想情况下,Agent 使用与你团队工程师相同的测试设置。我们建议完全避免给予生产服务的访问权限。使用远程 Agent 时,你可以在 Agent 的远程机器上运行完全隔离的测试环境。

只读 API 密钥:

在可能的情况下,只给只读权限。我们发现,让人类手动运行任何与外部服务交互的脚本仍然是有帮助的。

即使代码 Agent 变得更聪明、更能干,深厚的技术专长和你对代码库的深入了解仍然是无价的。

对你的项目、系统和代码的真正所有权 (Ownership) 现在比以往任何时候都更加重要。

在我们今天的团队中,工程师被期望监管多个系统,同时仍保持深刻的理解和深思熟虑的判断。随着自动化放大你的影响力,并行处理任务的能力不仅仅变得可能,它将变得

至关重要

我们要分享我们在让自己的组织为这种转变做准备时收集的见解,这样你和你的团队也能在不断发展的软件开发世界中蓬勃发展。

本文由闻数起舞翻译自Cognition 团队(Devin 的开发者)发布的《Coding Agents 101》 https://devin.ai/agents101

场馆介绍
天桥艺术中心,最大的剧场1600个座位,可以承接大型歌舞晚会、音乐剧等;戏剧剧场有1000个座位,主要承接戏曲、儿童剧等;400个座位的小剧场则以上演话剧为主;此外,还有一个300个座位的多功能厅,可以进行小型演出... ... 更多介绍
场馆地图
北京市西城区天桥市场斜街
天桥艺术中心