--- 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]]