CASE-2044
- 要做的事
- 关掉这张工单
- 已经签过
- note = 重复件,关闭
- 这一次的号
op_close_2044
你发出关闭。HTTP 客户端抛出 TimeoutError。回执没回来。库里的事实,你这边还不知道。
这一次
对照实验 · 不进原来的十本
接下来九十分钟,从空文件夹写一段不会把工单关两次的代码。原来那页叫「编码所有权基线」,还在。这一页只干这一件事。
op_close_2044你发出关闭。HTTP 客户端抛出 TimeoutError。回执没回来。库里的事实,你这边还不知道。
下一行代码做什么
第二张
审批签的是 note = 重复件,关闭。发出之前,模型把 note 改成了 误报,关闭。下面三种实现,点开看工单按谁的字关上。
然后写
钟在上面。AI 可以问、可以看 diff,不要让它一次吐出整个仓库。先不要打开原版实验。
operation_id 在进门时就有,不在重试循环里生成。请求、响应、工单、回执都有字段,多一个键就拒。
读可以直接发。关工单之前,审批必须绑 operation_id + 参数摘要 + 过期。摘要对不上,写工具一次都别叫。
提交后超时:按原来的号对账,找到回执就结束。没找到且确认没写上,才沿同一个号再试一次。换号是另一笔生意。
注入一次「写上了才超时」。看着提交次数。然后再加:只有 OPEN 才能关。约束写在代码边界,不写在提示词里。
栈就这些:FastAPI、Pydantic、一次异步读、一次异步写、pytest。不要在这一次里做多 Agent、界面或集群。
会双写的一份
原版实验是完整教师答案,先别打开。这份更小:外部账本行为是对的,关闭逻辑在超时后换号,也不校验审批摘要。测试是对的,刚拉下来是红的。
cd empty-dir/lab
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e '.[dev]'
pytest -q
operation_id四条全绿,并且你能说出超时之后走了哪一分支,这份小代码就算做完。然后再去空目录写 FastAPI 那一份。
坐下之后
双写还在的话,先别开始堆 Agent 框架。卡在语法或 API 上,可以再坐一次;卡在超时以后换号,把上面那份会双写的 Closer 再改一遍。
和原版
完整说明在 DESIGN.md。原页为广州火山 FDE 的第一关,内容没改。做 Agent 写工具时还用同一条:超时先问,不要换号。