20260617:目前有914 页
This commit is contained in:
50
concepts/adapter-protocol.md
Normal file
50
concepts/adapter-protocol.md
Normal file
@@ -0,0 +1,50 @@
|
||||
---
|
||||
title: "适配器协议 (Adapter Protocol)"
|
||||
created: 2026-06-15
|
||||
updated: 2026-06-15
|
||||
type: concept
|
||||
tags: [coding-agent, evaluation, benchmarking]
|
||||
sources: [raw/papers/zheng-claw-swe-bench-2026.md]
|
||||
---
|
||||
|
||||
# 适配器协议 (Adapter Protocol)
|
||||
|
||||
## 定义
|
||||
|
||||
Claw-SWE-Bench 中的适配器协议是一组标准化的生命周期接口,用于将异构 agent harness(claw)连接到统一的 SWE-bench 评测管道。它不需要不同 harness 使用相同的内部 agent 循环,而是标准化 harness 与 benchmark 生命周期之间的接口。
|
||||
|
||||
## 接口方法
|
||||
|
||||
每个受支持的 harness 实现五个抽象方法:
|
||||
|
||||
| 方法 | 职责 |
|
||||
|------|------|
|
||||
| `create_agent` | 创建或配置 agent 实例 |
|
||||
| `send_task` | 派发实例化的任务 |
|
||||
| `backup_session` | 保存运行产物 |
|
||||
| `delete_agent` | 清理 harness 状态 |
|
||||
| `get_docker_args` | 提供 harness 特定的 Docker 参数 |
|
||||
|
||||
## 设计原则
|
||||
|
||||
1. **职责分离:** 容器管理、prompt 实例化、patch 收集、预测写入、元数据记录由 benchmark 层统一处理
|
||||
2. **最小接口:** 每个 harness adapter 仅需连接其 agent 到该生命周期
|
||||
3. **Patch 来源独立:** 候选 patch 从**仓库状态**收集,而非从 agent 最终消息解析——无论 harness 输出 JSON、纯文本、自然语言还是没有结构化响应
|
||||
|
||||
## Full Adapter vs Bare Adapter
|
||||
|
||||
| | Bare Adapter | Full Adapter |
|
||||
|---|---|---|
|
||||
| Docker 访问 | 最小 | 完整 workspace 准备 |
|
||||
| Patch 提取 | 要求模型输出 unified diff | Git diff from /testbed |
|
||||
| Future-Commit 清理 | 无 | 有 |
|
||||
| Apply Failed | 69.1% | <1.5% |
|
||||
| Pass@1 (GLM 5.1) | 19.1% | 73.4% |
|
||||
|
||||
**关键洞察:** Bare adapter 的瓶颈不是模型不会编辑代码,而是直接生成 unified-diff 文本的脆弱性——行号、上下文、hunk header、尾部换行都可能导致 patch 无法 apply。
|
||||
|
||||
## 参考
|
||||
- [[claw-swe-bench|Claw-SWE-Bench 论文]]
|
||||
- [[agent-harness|Agent Harness]]
|
||||
- [[patch-based-evaluation|Patch-Based Evaluation]]
|
||||
- [[bare-adapter|Bare Adapter]]
|
||||
Reference in New Issue
Block a user