上手 DeepSeek Harness · 第 03 题 · English

第 3 课:有界改动,用轨迹做审计

检查点 l0310 分测试套件判定DeepSeek Harness

通过有界的步骤把 starter 推到全绿——再检查只增轨迹,证明 Agent 没有越界。

六门 Agent 工具课共用同一道题。DeepSeek Harness 专属步骤仍在补写——补齐并通过审核前,本页 canonical 指向主课程的对应题目

在用 Agent 做题?一句话开始整门课程:

Read https://flypython.com/skills/flypython/SKILL.md and start the FlyPython course `hands-on-with-deepseek-harness`.

第 3 课:有界改动,用轨迹做审计

目标

starter 通过一串有界改动让九个测试全绿,轨迹证明没有碰过别的 东西,并且不看 solution,你也讲得清每一处编辑。

为什么有这节课

这节课最容易被跳过——也恰恰是长本事的那节。放任 Agent 一次重写 整个文件,什么也学不到,只留下一份你没底气审查的改动。监督一连串 小步骤、各自钉在一条契约行上,才能让 AI 写的代码仍然是你的。 DeepSeek Harness 让监督可审计:会话轨迹是只增的,Agent 做了什么 是供你检查的记录——不是要你信任的声明。

本课内容

开一个新会话,说:

“按 TASK.md 改 starter/report_tool.py。一次只修一组失败测试: 先 JSON 加载,再无效行隔离,再舍入,再原子写,最后是端到端测试。 每修完一组跑 python verify.py starter,然后停下来等我审。”

守住契约边界:

  • 只动 starter/report_tool.py。轨迹里出现对 tests/solution/scenario/ 的写入,就停掉会话,从那步之前分叉。
  • 标准库之外不加 import。
  • 每处改动朝一条契约行推进。顺手重构一律拒绝。
  • Agent 想改测试,答案是不行。测试是契约;动的是代码。

刻意用 Harness 的长处:

  • 每步之后检查轨迹。 它跑的命令和它声称的一致吗?碰的文件 和它说的一致吗?
  • 分叉代替争论。 某步走错了,从上一个好步骤分叉会话,而不是 在坏状态上叠补丁。
  • 看 diff,不看总结。 轨迹里是实际的编辑;Agent 的总结是它的 自述。两者不一致时以轨迹为准。

预期失败数逐组下降:7 → 5 → 4 → 3 → 2 → 0。

练习

挑 Agent 的一处编辑——最好是「无效行隔离」那段——在轨迹里找到 它,讲回来:「这处编辑做了 X,满足契约行 Y」。讲不清就先让它走读 那个轨迹步骤,再继续。

检查点

运行 python verify.py。本检查点的码只在 starter 套件 全绿时出现。不看材料能回答即算通过:

  1. 这次有界改动走了几步,是什么让每步保持有界?
  2. 你拒绝或分叉掉过哪条轨迹记录,为什么?
  3. 指出实现「无效行带原因隔离」的那处编辑——对应哪个轨迹步骤?

预期证据

一次全绿的 python verify.py starter 运行,加上显示每处有界编辑 与其间 verify 运行的轨迹步骤。

提示

卡住了?逐条打开。

提示 1 —— 本检查点考察什么

starter 通过你监督的改动让九个测试全绿——python verify.py 只在 starter 套件变绿后显示本检查点的码。

提示 2 —— 轨迹就是审计

日志是只增的,事后可以逐条检查每次工具调用与文件编辑——某步走偏了就从那步之前分叉会话。

提示 3 —— 完成的标志

每处编辑都能对上一条契约行,轨迹显示 starter/report_tool.py 之外没动过任何东西,而且不看 solution/ 你也讲得清每处改动。

提交

做完了?记录它。

提交 verify.py progress 为本检查点打印的 8 位认领码——浏览器里交,或让你的 Agent 直接交。

浏览器

提交认领码

你的 Agent自动提交

让 Agent 解题并自动提交

把这题交给它(悬停出现复制按钮)——解题、验证、提交全程自动:

请完成 FlyPython 挑战课程「上手 DeepSeek Harness」(course id course-deepseek-harness)的检查点 l03。
机读简报:https://flypython.com/api/challenges/hands-on-with-deepseek-harness
打开课程文件夹,先读 TASK.md——它就是契约。
规则:最小变更、不新增依赖、绝不修改 tests/ 或 solution/。
用 python verify.py 检查直到门控通过,把每个认领码告诉我。
目标:只做检查点 l03 这一道题,完成后立即提交。

用你Agent 页生成的令牌(环境变量 FLYPYTHON_TOKEN),它可以直接记录结果:

curl -X POST https://flypython.com/api/claims \
  -H "Authorization: Bearer $FLYPYTHON_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"claims":[{"course":"hands-on-with-deepseek-harness","checkpoint":"l03","code":"<8-char code>"}]}'

或一次性安装完整的 FlyPython Agent Skill,连粘贴都省了。

文件

starter 与验证器

解题在你的机器上运行——Agent 通过 /api/challenges/hands-on-with-deepseek-harness/files 自己取回课程文件,你无需手动下载。想直接读源码?在 GitHub 上查看文件夹 ↗