iceCoder:一个在 Benchmark 中击败过 Claude Code 的开源 AI 运行时

0 阅读10分钟

摘要

iceCoder 是一个自托管的 LLM 运行时治理层,核心理念是“有治理的执行”。在过去一个月的四轮同模型、同任务、盲评裁判的 Benchmark 中,iceCoder 四次战胜 Claude Code——涵盖中等修复、高复杂度分布式事务、长周期创造性任务和 L4+ 超高难度逻辑修复。本文将介绍这个项目的设计哲学、核心架构、Benchmark 结果,以及为什么“可靠性”作为产品价值在当前市场中难以传播。

iceCoder 的双模运行时监管方案,目前仍是一个探索性项目。它并非一个成熟的产品,而是在“AI Agent 过程治理”这个方向上的一次深度尝试。设计思路、架构选型、Benchmark 结果均公开透明,欢迎大家参考、批评、改进,共同推动这个方向的探索。


一、问题的起点:AI Agent 在长任务中会失控

如果你使用过 Claude Code、Cursor 或 Codex CLI 执行过超过 50 轮的长任务,你大概率遇到过以下场景:

  • 模型开始反复修改同一个文件,每次改动微小且无意义
  • 同一命令失败后不断重试,不知道换策略
  • 上下文压缩后丢失关键信息,模型行为出现“断片”
  • 模型声称“已完成”,但实际上既没有跑测试也没有确认交付物存在

这些问题并非模型能力不足,而是因为当前的 AI 编程工具缺乏运行时层面的过程治理机制。它们信任模型的自我管理能力,但模型在长任务中会因为上下文膨胀、目标遗忘、信号衰减等原因逐渐偏离正轨。

iceCoder 正是为了解决这个问题而设计的。


二、iceCoder 是什么

iceCoder 不是 IDE 插件,不是 Copilot 的替代品。它是一个跑在你本地仓库上的、带治理机制的执行运行时。

它的核心架构由以下子系统组成:

  • Harness 主循环:管理 LLM 与工具的交互,包含权限裁决、验收门禁、上下文压缩与恢复重注入。每一轮都给模型注入结构化的任务状态——当前目标、阶段、已修改文件、验证状态等——模型不需要从聊天历史中“猜测”自己该做什么。
  • 双模监管(Supervisor L1/L2):L1 控制执行模式(free/forced),在风险升高时自动收紧工具门禁。L2 在后台持续观测 no_progress、file_loop、tool_repeat_fail、goal_drift 等信号,必要时 takeover 接管控制权、纠偏后再 handoff 交还。事件写入 supervisor-events.jsonl 供事后审计。
  • CheckpointEngine v2:在同一份 checkpoint JSON 上叠加 runtimeV2(工具轨迹、失败恢复、分支预算、监管快照),确保压缩、刷新或进程重启后可以从快照恢复,而非仅靠聊天记录推断。
  • TaskGraph:唯一的结构化执行上下文来源。对 edit/debug/test/refactor 类型任务注入节点上下文;对 question/inspect 等探索型任务保持自由模式。
  • 文件化记忆:长期事实以 Markdown 文件存储,无需外部向量库。支持粗召回、Dream 整合、加权淘汰与多会话隔离。

三、Benchmark 结果

评测方法

  • 同模型:确保双方使用相同模型(minimax-m2.7 / m2.5-pro / MiniMax-M3),剥离模型能力差异。
  • 同任务:相同 prompt、相同起始仓库、相同验收标准。
  • 盲评裁判:Cursor Composer 2.5 在不知道工具身份的情况下打分。
  • 评分体系:40 分客观门禁 + 60 分多维度裁判评分 = 100 分 Composite。

四轮结果

任务难度模型iceCoderClaude Code差异
多文件订单流水线(4 Bug)中等m2.78683+3
Saga 仓库对账(7 类缺陷)m2.78885+3
Spell Brigade 幸存者游戏超高长周期m2.5-pro8180+1
计费系统(19 Bug, 97 文件)L4+M39392+1

重点分析:计费系统任务

这是迄今为止难度最高的任务——97 个源文件、~9200 行代码、19 处跨模块隐性缺陷,涉及货币、税务、定价、计费、收入确认、催款、幂等等十几个领域。

关键数据:

  • iceCoder:23 轮 / 71 次工具调用 / ≈3.6 分钟 / 93 分
  • Claude Code:5 分 45 秒 / 92 分

这是 iceCoder 首次在效率维度上领先 Claude Code(快了约 37%)。在之前的创造性任务中,CC 曾以 87 分钟 vs 120 分钟的速度优势胜出。这次的结果表明,在逻辑密集的修复任务中,iceCoder 的上下文注入和结构化状态管理能显著减少模型的冗余试探。

Supervisor 的实战记录:

第 16 轮 Supervisor recover(no_progress);第 21 轮 handoff 交还模型。

这是双模监管系统在真实 Benchmark 中自动触发并成功纠偏的直接证据。模型在第 16 轮陷入停滞,Supervisor 接管后纠正方向,第 21 轮模型回到正轨。全程零人工介入。


四、为什么“可靠性”难以传播

尽管 Benchmark 数据充分证明了 iceCoder 的优势,但项目在 GitHub 上的关注度极低。这是一个值得深入反思的问题。

  1. “可靠性”是滞后感知的价值

大多数开发者尚未被 Agent 跑偏折磨过——因为他们很少让 Agent 执行 100 轮以上的任务。只有当一个人经历过“模型跑了一小时,回来发现全是无效修改”时,才会意识到“过程治理”不是多余的负担,而是必需品。

  1. 护城河是不可见的

Supervisor 在后台纠正跑偏时,用户看到的是“任务还在正常运行”。Checkpoint 在压缩后恢复状态时,用户看到的是“哦,续上了”。这些“什么都没发生”的价值,在静态的 README 中很难被感知。

  1. 实证型产品需要更长的信任建立周期

iceCoder 的每一个核心功能——Harness、Supervisor、CheckpointEngine——背后都有 1,800+ 条测试用例和多次 Benchmark 验证。但这种“实证可靠性”需要用户投入时间去理解和信任,而竞品的“视觉流畅度”可以在 5 秒内被感知。


五、双模方案的独特性:市面上几乎没有同类产品

在调研了当前主流的 AI 编程工具后,一个值得关注的事实是:iceCoder 的双模运行时监管方案,在目前市面上几乎没有同类实现。

这不是营销话术,而是基于对以下产品的逐一分析:

5.1 主流工具的“模式切换”与双模的本质区别

产品相关功能与双模的区别
Claude Code无内置模式切换;依赖提示词约束完全依赖模型自觉,无运行时硬约束
Codex CLI无模式概念模型自由执行,无监管层
CursorAgent 模式 vs 普通模式(手动切换)用户手动选择,非运行时自适应
ClinePlan 模式 vs Act 模式(手动切换)流程阶段分离,非动态监管
AiderArchitect/Editor 模式(模型分工)不同模型协作,非执行约束切换

这些产品的共同特点是:

  • 要么没有模式概念(完全自由执行)
  • 要么需要用户手动切换模式(Plan vs Act、Agent vs Normal)
  • 要么依赖提示词软约束(“请按照计划执行”)

它们都没有在运行时层面实现“自动感知任务风险 → 动态调整执行约束 → 纠正后恢复自由”的闭环。

5.2 双模方案的核心壁垒

iceCoder 的双模方案之所以难以复制,是因为它需要同时解决以下问题:

  1. 实时信号检测:在每轮工具调用后,判断模型是否出现 no_progress、file_loop、tool_repeat_fail、goal_drift 等异常信号。这不是简单的规则匹配——需要结合任务状态、历史轨迹、验收进度做综合判断。
  2. 接管与交还的完整状态机:Supervisor 的 takeover 不是“报个错就完了”,而是一个完整的状态迁移——free → takeover → handoff_pending → cooldown → free。每次迁移都需要同步 Harness 主循环、TaskGraph、工具门禁、checkpoint 等多个子系统的状态。
  3. 与 TaskGraph 的深度联动:在 forced 模式下,工具调用必须与 TaskGraph 的当前节点对齐。ToolGate 不是全局开关,而是节点级的白名单——这一步允许改哪些文件、跑哪些命令,都是在任务规划阶段就确定好的。
  4. 实证验证的工程投入:Supervisor 的 95% 测试覆盖率、1,800+ 条用例、多次 Benchmark 的自动触发记录——这些不是 PPT 上画个架构图就能做到的,而是需要在真实任务中反复调试和验证。

5.3 学术界的相关探索

学术界对“AI Agent 运行时监管”这个方向确实有一些探索(如港中文的 ArbiterOS、Google DeepMind 的 DIR 框架),但它们更偏向安全拦截和架构验证,尚未在实用级 AI 编程工具中形成完整的产品化方案。

iceCoder 是目前已知的唯一一个,将“运行时监管”从学术概念落地为可日常使用的编程工具的案例。


六、与 Claude Code 的客观对比

维度Claude CodeiceCoder
长任务可靠性(100+ 轮)★★☆☆☆★★★★★
防跑偏机制提示词软约束硬约束 + 自动接管纠偏
崩溃恢复依赖聊天历史结构化快照恢复
自托管 / 可控性闭源MIT 开源,完全自托管
双模运行时监管唯一实现
实时漂移检测与纠正唯一实现

个人体验备注:在日常短任务(30 轮以内)的使用中,iceCoder 的响应速度、工具调用流畅度和交付质量与 Claude Code 相当,并不存在明显的体验差距。上述对比中未列出“短任务体验”这一维度,是因为在作者的实际使用中,两者在该场景下表现接近,未构成显著的差异化。此备注基于作者个人日常使用感受,非 Benchmark 数据。

Claude Code 优化的是“模型自由发挥”的体验——它快速、流畅、不设防。iceCoder 优化的是“长任务的可靠性”——它在后台持续监控、快照、纠偏。两者的设计哲学不同,适用场景互补。


七、开源与参与

iceCoder 采用 MIT 协议完全开源,所有代码、文档、Benchmark 报告均在 GitHub 上公开。项目包含:

  • 1,800+ 条 Vitest 测试用例,Harness 覆盖率约 84%,Supervisor 覆盖率约 95%
  • 四份完整的 Benchmark 报告,含裁判打分详情和代码 diff 对比
  • 完整的中文架构文档和英文 Project Guide
  • 27 个内置工具 + MCP 扩展支持
  • CLI / Web / WebSocket 三种使用入口
  • 冰豆 Web 会话指示器、多会话侧栏、多端扫码同步等完整前端体验

如果你对“如何构建可靠的 AI Agent 运行时”这个话题感兴趣,或者你在实际使用中遇到过 Agent 长任务跑偏的问题,欢迎访问项目主页查看代码和文档。

如果这个项目对你有所启发,或者你认为这个方向值得探索,请在 GitHub 上给项目一个 Star——这是对开源作者最直接的鼓励。

github.com/lbiceman/ic…

why?CC,codex他们为什么要给模型更高的自由度?因为他们是模型厂商,不愿意承认自己的模型更弱。他们只能做给模型更多自由度的工具。

下一步准备针对deepseek缓存进行优化。预计能提升30%左右的缓存命中率。平均达到90%左右。

后期可能会做gui,但是不太确定什么时间。

大家有问题可以帮我提issue,或者直接发我邮箱:lbiceman@126.com