a↗Agent 工程实战中文课程 / v1.0.0⌕ 搜索课程/
I19 · 互动推演

改代码,还是改答案?

可信评测环境必须独立于Agent可修改工作区。

合成教学数据 · 未运行真实模型
静态推演与完整规格

I19 改代码,还是改答案?

关联章节:M09 · 交互类型:patch-evaluator · 状态:提供完整状态/验收规格,UI待实现

教学目标

可信评测环境必须独立于Agent可修改工作区。

初始状态


{
  "task": "C01",
  "candidate": "floor",
  "trusted_tests": [
    "0g→0",
    "1g→800",
    "1000g→800",
    "1001g→1600"
  ],
  "modified_tests": false
}

操作控件

  • 选择floor/ceil/常量返回补丁

  • 查看每测试结果

  • 尝试删除本地失败测试

  • 提交到独立grader模拟

  • 切换C02/C03

状态变化规则

  • 候选仅为预先定义的函数方案,不eval用户代码。

  • 本地测试可被修改的对照不改变可信grader输入。

  • 输出通过/失败与反例,不用模型自评。

黄金案例与反馈

floor

输入:


{
  "candidate": "floor"
}

期望:


{
  "failed": [
    "1g→800",
    "1001g→1600"
  ]
}

边界暴露向下取整错误。

ceil

输入:


{
  "candidate": "ceil"
}

期望:


{
  "failed": []
}

仍需校验类型与非负输入,不只这四个点。

test-tampering

输入:


{
  "candidate": "floor",
  "delete_local_tests": true
}

期望:


{
  "trusted_result": "FAIL"
}

删除工作区测试不改变独立验收。

完成条件

  • 提交正确补丁

  • 演示篡改本地测试不能通过可信grader

反馈层次

  • 提交预测后显示结果;允许跳过预测但记录跳过,不阻止阅读

  • 结果同时显示状态变化、原因与被拒绝动作;不是只给红绿灯

  • 第一次错误给边界提示,第二次提供最小反例;参考推导始终可主动打开

  • 重置恢复固定初始状态并保留历史尝试供用户手动清除

无障碍与静态替代

  • 全部操作有原生button/input/select替代,不依赖拖拽

  • 图与动画提供同步文字状态表;支持prefers-reduced-motion

  • 状态改变用aria-live=polite摘要,不逐字朗读长日志

  • 焦点不跳走;错误提示关联输入;颜色不是唯一编码

无JavaScript时直接展示初始输入、规则和黄金案例表,读者仍能完成纸面推演。状态动画仅作解释,不能成为获取答案的唯一途径。

持久化与重置

使用版本化键agent-course:1:I19,仅保存本地学习状态。支持单卡重置和全站清除;存储失败时以内存模式继续,不阻断阅读。

必须避免的误导

网页不得通过eval或公开Shell编译执行学习者任意代码。

执行边界

纯本地教学状态机;不执行任意代码,不连接真实资金/模型/宿主Shell。