<!-- title: 同模42到78：代码自主体脚手架实测 -->

自主代码智能体这一轮洗牌，胜负手已经换地方了。把六个前沿模型塞进同一套 agent 脚手架跑 SWE-bench Verified，最高与最低只差不到 1 分；但把同一个模型塞进不同脚手架，分数能从 42% 一路拉到 78%。换句话说，2026 年的代码自主体战场，模型军备基本封顶，真正决定一个 agent 能不能修掉真实 issue 的，是它外面那层"脚手架"——agent loop、工具编排、错误恢复、上下文管理与重试逻辑。本文以 Devin、Claude Code、OpenHands、SWE-agent、Aider 五个最具代表性的实战形态为样本，拆解它们的脚手架差异，并直面一个尴尬现实：benchmark 高分不等于生产环境好用，工具调用在生产里仍有 12–18% 的失败率，METR 甚至报告经验开发者用 agent 反而更慢。

## 五栈代码自主体多维对比

| 维度 | Devin | Claude Code | OpenHands | SWE-agent | Aider |
|------|-------|-------------|-----------|-----------|-------|
| 脚手架形态 | 全自主远程机 | 人在回路 CLI | 事件总线 + 容器 | 极简 ACI 研究基线 | 编辑格式 + git 原生 |
| 自主度 | 高（端到端） | 中高（可托管可介入） | 中（可插拔） | 中（研究向） | 低（配对编程） |
| SWE-bench Verified 量级 | 自报领先区间 | Claude 系 65–72% 区间 | 开源 SOTA 级 | 经典基线/教学 | 非该赛道主力 |
| 成本模型 | 按 ACU 时长计费 | 订阅 + token | 自托管算力 | 自托管算力 | 订阅 + token |
| 最佳场景 | 隔离的长任务 | 日常工程协作 | 自建/定制 | 研究、复现 | 高频小改、可控提交 |

## 一、为什么模型不再分化：六模不到 1 分

2026 年最值得记住的一个数据点来自第三方评测：把六个前沿大模型塞进同一套 agent 脚手架跑 SWE-bench Verified，最高分与最低分的差距压缩到 0.8 分以内。这个结果并不意外——SWE-bench Verified 是 500 条人工过滤的真实 GitHub issue，考验的不是单次推理的灵光，而是"读代码—定位—改—跑测试—回滚—再改"的长链路稳定性。一旦链路拉长，单步推理的微小差距被脚手架的容错机制抹平，模型之间的分化自然收窄。

这意味着选型逻辑要倒过来：过去是"先选最强模型，再配 agent"，现在是"先定脚手架，再塞任意一个够用的模型"。榜单上 Claude 系 agent 普遍落在 65–72% 区间，部分自报已破 80%，但当你把同一模型换一套 harness，波动比换模型大一个数量级。模型是地基，脚手架是结构，结构定生死。

## 二、Devin：全自主远程机的脚手架税

Devin（Cognition）把自主度推到最极端：一个隔离的云沙箱，自带浏览器、终端、编辑器，给一个任务就放手跑。它的脚手架核心是"远程机 + 持久上下文 + 可记忆的 knowledge 机制"——前者保证环境干净可复现，后者让 agent 跨会话积累项目知识，避免每次从零摸索。

代价同样明显。最早的 13.86% 争议（被指任务挑选与人工介入比例不透明）奠定了"自报数字打折看"的行业习惯；按 ACU（agent compute unit）时长计费的模型，让长任务成本不可预测；而完全自主意味着错误恢复全靠脚手架自己，一旦钻进死胡同，没有人在回路及时拽一把。Devin 适合隔离的、可验收的长任务（如"把某依赖从 v2 升到 v3 并修掉所有破坏性变更"），不适合需要频繁对齐语义的协作场景。

```python
# Devin 脚手架的关键不是模型，是"远程机 + knowledge"的耦合
session = devin.create_session(clone_url, base_commit)
session.teach("测试用 pytest 跑，CI 在 .github/workflows/ci.yml")  # 跨会话记忆
pr = session.assign("修复 issue #421，跑通测试后开 PR")  # 端到端自主
```

## 三、Claude Code：人在回路 CLI 的密度优势

Claude Code 走的是另一条路：它不假装是"远程同事"，而是一个常驻终端、随时可打断的 CLI。脚手架的差异化在两个工具——`TodoWrite` 强制 agent 把模糊目标拆成可勾选的待办，`Task`（子 agent）把大上下文隔离成若干小窗口，避免主线被搜索结果淹没。这种"高密度人在回路"的设计，让模型推理能力被脚手架放大，而不是被上下文噪声稀释。

它的实战甜区是日常工程协作：在真实仓库里改一批文件、跑测试、根据报错迭代。SWE-bench 上 Claude 系 agent 的强势，很大程度来自这套脚手架而非裸模型——这也是"同模 42→78"现象最直接的注脚。短板是自主度受限于会话长度与打断频率，超长任务仍需要人工分段验收。

```python
# Claude Code 风格：显式 todo + 子 agent 隔离上下文
todos = TodoWrite(["定位回归测试", "复现失败", "改源码", "跑全量测试"])
fix = Task(prompt="在 tests/ 下找到与 issue 相关的失败用例", isolation=True)
```

## 四、OpenHands：事件总线的可塑性

OpenHands（前身 OpenDevin）是开源阵营里脚手架最"工程化"的一个。它的核心抽象是 event stream——所有动作（读文件、跑命令、改代码）都作为事件流入总线，`AgentController` 在事件层做编排、限速、错误恢复与回放。这个设计的好处是可插拔：换模型、换工具、换编排策略都不必动主干，因此成为自建/定制 agent 的首选底座。

可塑性也是它的双刃剑。开箱即用的默认配置未必跑得过商业产品的精调 harness，要榨出 SOTA 级分数，需要团队自己在事件总线上做 retry、context compaction、tool routing 的调参。它的价值不在"开箱最高分"，而在"你可以把同模 42% 的脚手架，亲手改成 78%"。对有能力维护 agent 平台的团队，这是最划算的起点。

```python
# OpenHands 事件总线：动作即事件，编排与模型解耦
controller = AgentController(event_stream, agent, max_iterations=200)
controller.run(user_message)  # 所有 action/observation 经总线，可重放与熔断
```

## 五、SWE-agent：极简 ACI 的研究基线

SWE-agent（Princeton）的价值不在分数，而在它定义了"agent-computer interface"（ACI）这个概念：给模型的工具不是 shell 全集，而是一组精心设计、反馈友好、难以误用的命令（如 `find_file`、`search_dir`、`open` + 行号滚动）。它的论点是——agent 失败往往不是模型蠢，而是工具的反馈让模型无法自我纠正。好的 ACI 让模型"看得见自己错在哪"。

这套 100 行级别的 mini-SWE-agent 能在 Verified 上做到 70%+ 区间，恰恰证明了脚手架的杠杆：极简但反馈清晰的 ACI，胜过臃肿的工具集。SWE-agent 适合做研究基线、教学样本、以及"我想搞清楚 agent 到底卡在哪一步"的诊断工具。

## 六、Aider：编辑格式与 git 原生的反潮流

Aider 是五个里最"不自主"的，反而因此最稳。它的脚手架差异在两处：一是编辑格式（edit format）——从 whole-file、udiff 到 search-replace block，针对不同模型选最不容易改崩的格式；二是 git 原生——每一次改动自动 commit，可回滚、可审计、可 diff。它不追求端到端修 issue，而追求"每一次提交都干净可信"。

在 SWE-bench 这条赛道上 Aider 不是主力，但在真实开发者的高频小改场景里，它的可靠性远高于更激进的 agent。当你需要的不是"放手让它跑"，而是"它改的每一行我都看得见、随时能退"，Aider 的脚手架哲学就是答案。

```python
# Aider 的 search-replace block：显式锚点，避免改崩
# <<<<<<< SEARCH
def old_func():
    return None
=======
def new_func():
    return compute()
>>>>>>> REPLACE
```

## 七、脚手架四柱：42 到 78 的来源

把上面五家的共性抽出来，代码自主体的脚手架可以归为四根柱子，"同模 42→78"的全部秘密都在这里：

1. **工具编排**：工具多≠好。塞满即瞎，召回即失真。好的脚手架按阶段暴露工具，而非一次性全给。
2. **错误恢复**：测试挂了不是终点，是信号。脚手架要把报错结构化喂回模型，而不是让它"乱投医"。
3. **上下文管理**：长任务里上下文是会爆的。子 agent、摘要、遗忘策略决定了 agent 能跑多深而不塌。
4. **重试逻辑**：幂等的、带退避的、有预算上限的重试，是生产与 demo 的分水岭。

```python
# 脚手架四柱的极简 agent loop（伪码）
while not done and steps < budget:
    obs = run_tools(plan)            # 1. 工具编排：按阶段调度
    if obs.failed:
        obs = recover(obs.error)     # 2. 错误恢复：结构化反馈
    ctx = compact(ctx)               # 3. 上下文管理：防爆炸
    if retryable(obs):
        plan = retry_with_backoff()  # 4. 重试逻辑：幂等+退避
```

## 八、benchmark 到生产的落差

最后必须泼一盆冷水。SWE-bench Verified 是干净房间评测：任务定义清晰、测试可验、环境可控。生产环境完全是另一回事——有第三方报告指出生产 agent 的工具调用失败率高达 12–18%，远高于 benchmark 暗示的水平。原因包括工具签名漂移、鉴权过期、网络抖动、上下游服务版本不一致，这些 benchmark 根本不覆盖。

更刺眼的是 METR 的反证：在经验开发者熟悉的任务上，使用 agent 反而比手写更慢。这并不否定 agent，而是提醒——benchmark 分数衡量的是"在结构化任务上的天花板"，而真实工程的价值在于"在非结构化干扰下的可用性"。脚手架的真正功夫，是在那 12–18% 的失败里把 agent 拽回正轨。

## 自主代码智能体脚手架工作流

```mermaid
flowchart TD
    A[真实 Issue / 任务] --> B{脚手架核心}
    B --> C[Agent Loop 编排]
    C --> D1[工具调度 按阶段]
    C --> D2[上下文管理 子agent/压缩]
    C --> D3[错误恢复 结构化反馈]
    C --> D4[重试逻辑 退避+预算]
    D1 --> E[沙箱执行: 跑测试]
    D2 --> E
    D3 --> E
    D4 --> E
    E --> F{测试通过?}
    F -- 否 --> D3
    F -- 是 --> G[开 PR / Commit]
    G --> H[人在回路验收]
    H --> I[合入]

    style B fill:#fef3c7
    style F fill:#fee2e2
    style G fill:#dcfce7
```

## 推荐方案：按场景押脚手架

- **隔离长任务、可端到端验收**：押 Devin 式全自主远程机，但要接受 ACU 计费不可控，搭配明确验收门。
- **日常工程协作、高频小到中型改动**：押 Claude Code 式人在回路 CLI，TodoWrite + 子 agent 是放大器，自主度与可控性最平衡。
- **要自建平台、深度定制编排**：押 OpenHands 事件总线，把 42% 的默认 harness 亲手改成 78%，长期回报最高。
- **做研究、复现、教学、诊断**：押 SWE-agent，ACI 是理解 agent 失败模式的最佳透镜。
- **高频小改、要求每次提交可审计**：押 Aider，编辑格式 + git 原生，稳过激进。

一句话收口：2026 年别再问"哪个模型做 agent 最强"，要问"我的脚手架四柱够不够硬"。模型齐平之后，脚手架才是代码自主体真正的护城河与税单。

## 参考来源

1. [Agent Scaffolding Beats Model Upgrades: 42% to 78% on SWE-Bench — Particula](https://particula.tech/blog/agent-scaffolding-beats-model-upgrades-swe-bench) — 六前沿模型 SWE-bench Verified 差距<0.8 分、同模换脚手架 42%→78% 的核心数据来源
2. [SWE-bench Leaderboards（官方）](https://www.swebench.com/) — SWE-bench / Verified 官方榜单，含 mini-SWE-agent 100 行代码 74% 量级
3. [AI Coding Agent Showdown 2026: Devin, OpenHands, Aider, Cline, Codex, Claude Code — BirJob](https://www.birjob.com/blog/ai-coding-agents-2026) — 六家 agent 起源、SWE-bench-Verified vs 真实 PR 落差、METR 反证的综合分析
4. [Agent Token Cost Economics 2026 — AgentMarketCap](https://agentmarketcap.ai/blog/2026/04/23/agent-token-cost-economics-2026) — Claude Code / Cursor / Devin / Copilot 四种定价架构与每任务成本拆解
5. [Agent Tool Call Failures in Production 2026 — AgentMarketCap](https://agentmarketcap.ai/blog/2026/04/10/agent-tool-call-retry-failure-mode-handling-production-2026) — 生产环境工具调用 12–18% 失败率与 benchmark 干净房评测的落差

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
