第 9 章 编程 Agent(Coding Agents)

从补全到自主改代码 · 工作流闭环 · agentic vs agentless · 工具全景 · SWE-bench 评测 · 关键论文
检索更新:2026 年 6 月 · 工具与分数变动快,引用前请核对官方页

编程 Agent 是 Agentic LLM 落地最快、商业化最深的方向:它把 LLM 从"补全下一行"升级为"读懂仓库 → 定位 → 改多文件 → 跑测试 → 看报错 → 再改"的自主闭环。本章梳理其工作流、两条技术路线(agentic / agentless)、主流工具全景(Claude Code、Cursor、Devin、OpenHands、Aider 等)、SWE-bench 评测体系,以及奠基论文。对应 第 3 章 Agent 架构第 4 章 评测

9.1 什么是 coding agent

三层递进,区别在于自主程度反馈闭环

层级形态能否自己跑/验证代表
① 补全行内/多行代码补全(autocomplete)GitHub Copilot 补全、Cursor Tab
② 助手/Chat对话式问答 + 单次改写,人来粘贴/执行否(人在环)IDE 内 Chat、ChatGPT
Agent读仓库 + 多文件编辑 + 跑命令/测试 + 依据报错迭代(工具调用闭环)Claude Code、Devin、OpenHands、SWE-agent

本章的"coding agent"特指第 ③ 层:具备工具使用(读写文件、执行 shell/测试)、规划与反思、对仓库的感知-行动闭环

9.2 典型工作流闭环

多数 coding agent 共享一条循环,核心是 SWE-agent 提出的Agent-Computer Interface(ACI)——为 LLM 设计专门的"看代码/改代码/跑测试"动作集,让模型能稳定操作真实代码库:

①理解 issue读需求/报错 ②定位检索/AST/grep ③规划拆解/方案 ④编辑多文件 patch ⑤运行/测试build/test ⑥反思看报错→回③/④
图 9.1 coding agent 的感知-行动闭环(⑥失败则带着报错回到③/④迭代)

9.3 两条路线:agentic vs agentless

2024 年 Agentless 论文提出一个反直觉发现:把 LLM 的自主性关掉、用固定三段式流水线(定位 → 修复 → 验证),在 SWE-bench 上也能打到与复杂 agent 相当的水平——提醒大家"脚手架不是越复杂越好"。

维度Agentic(自主)Agentless(流水线)
决策LLM 自行决定下一步动作(ReAct 式)预设固定步骤,LLM 只填空
代表SWE-agent、AutoCodeRover、OpenHandsAgentless
优点灵活、能处理开放/长程任务简单、便宜、可控、可复现
缺点token 贵、易绕路/翻车、难复现遇到流水线没设计的情况就卡住

实务结论:先用最简单能解决问题的方案;需要开放探索/长程时再上完整 agent。二者常作为彼此的基线对照。

9.4 工具全景(2026)

形态分四类:IDE 扩展 / AI 原生 IDE / 命令行(CLI)/ 云端异步。很多工具横跨多类。分数与定价变动快,请以官方页为准

工具形态模型开源一句话
Claude CodeCLI(亦接 IDE)Claude(厂商)终端优先、强多文件重构,SWE-bench 长期领先之一
OpenAI CodexCLI / 云GPT(厂商)CLI 开源异步云端任务 + 终端,Terminal-Bench 强
CursorAI 原生 IDE多模型IDE 内体验与文件感知补全的标杆
WindsurfAI 原生 IDE多 + 自研 SWE-1.5Cognition 出品,Cascade 多文件上下文
Devin云端异步厂商最"自治"的一类,像把任务派给初级工程师
OpenHands云端/平台任意(BYOK)是(MIT)开源 agent 平台(原 OpenDevin),CodeAct 动作空间
SWE-agent研究/CLI任意提出 ACI;SWE-bench 官方常用脚手架(含 mini 版)
AiderCLI任意(BYOK)是(Apache-2.0)Git 原生:每次改动自动提交,历史干净
ClineIDE 扩展 / CLI任意(BYOK/本地)是(Apache-2.0)开源默认选项,支持任意模型与本地 Ollama
GitHub CopilotIDE 扩展多模型装机量最大,深度集成 GitHub/VS Code
Gemini CLICLIGeminiGoogle 的开源终端 agent
Goose · ContinueCLI / 扩展任意可扩展的开源 agent / 自托管助手
选型经验:没有单一赢家——多数资深开发者叠用 2–3 个:IDE 里 Cursor 日常编码、第二个终端跑 Claude Code 做硬重构、云端 Codex/Devin 跑后台任务。开源/BYOK(Cline、Aider、OpenHands)适合控成本或私有部署。

9.5 关键技术

9.6 评测基准

读分数的警示:脚手架/harness 与模型同样重要——同一模型换 harness 分数差很多,比较时务必看口径;② 基准已接近饱和且大量进入训练数据,存在污染风险;③ OpenAI 审计发现 Verified 中"最难未解"题里约 59% 测试用例有缺陷。结论:把任何前沿分数当方向性信号,别当精确测量。

9.7 关键论文与综述(可核实)

  1. SWE-bench: Can Language Models Resolve Real-World GitHub Issues?(Jimenez et al., ICLR 2024)— 定义了"真实 issue 改代码"评测,本领域的标尺。arXiv:2310.06770
  2. SWE-agent: Agent-Computer Interfaces Enable Automated Software Engineering(Yang et al., NeurIPS 2024)— 提出 ACI,奠定 agentic 改代码范式。arXiv:2405.15793
  3. AutoCodeRover: Autonomous Program Improvement(Zhang et al., ISSTA 2024)— AST 结构检索 + 谱系故障定位,强调"结构而非文件堆"。arXiv:2404.05427
  4. Agentless: Demystifying LLM-based Software Engineering Agents(Xia et al., 2024)— 用固定流水线挑战"复杂 agent 必要性",强基线。arXiv:2407.01489
  5. Large Language Model-Based Agents for Software Engineering: A Survey(Liu et al., 2024;TOSEM)— 从 SE 与 agent 双视角系统综述(配 Agent4SE 论文列表)。arXiv:2409.02977
  6. Agents in Software Engineering: Survey, Landscape, and Vision(Wang et al., 2024)— 感知/记忆/行动三模块框架与未来方向。arXiv:2409.09030

9.8 实践要点

逐改动审查(review each change):当前 coding agent 在长、欠规格、陌生的任务上仍会翻车——最佳实践是"每个 patch 都过一遍人眼",而非全自动放手。

把任务说清楚:一开始就给清晰的目标、约束、验收标准(最好能跑的测试);模糊需求逐回合追加会显著降低成功率与 token 效率。

成本意识:agentic 路线 token 消耗大;用 effort/任务预算控制,简单任务用 agentless 或低 effort。

← 每日新论文 下一章:面试题与求职 →