你讓便宜模型先改了一半程式,發現它卡住,於是把整段對話交給更強的 Claude 或 GPT 接手。直覺上,前面的進度都還在,強模型應該能「接棒衝線」;但 Handoff Tax 研究提醒:接手者可能先替一份昂貴的歷史重新買單,還會沿著前任留下的錯誤假設繼續走。
這篇專為第一次做 AI Agent 評測的讀者寫:先用白話拆開 Handoff Tax,再把它縮成同一 repo 可重跑的小型 A/B。本文提供驗收方法,不會把論文結果冒充 AlphaLab 自己重現。
先說結論:換模型不是升級按鈕,而是一次狀態搬家
🧭 記憶把手:換模型總成本=前段已花成本+接手重讀成本+後段返工成本。
- 完整 transcript 不等於完整理解:它也會帶入失敗嘗試、過期觀察與錯誤錨點。
- 壓縮摘要不一定輸:好的交接單會丟掉噪音,保留驗證過的狀態;但摘要漏掉關鍵證據也會害接手者重做。
- 最強模型從頭跑是必要控制組:沒有它,你只知道換模後成功,卻不知道是否多花錢買到更差結果。
- 方向會改變答案:弱→強是「救援」,強→弱是「收尾」;同一種交接介面不會在兩個方向都最佳。
Handoff Tax 是什麼?先把它和「換 API」分開
Handoff Tax 是 Ganz 等人在 2026 年 8 月的同名 arXiv 預印本中使用的名稱,描述低能力模型的非原生工作軌跡交給高能力模型後,品質缺口只追回一部分,卻付出額外交接成本的現象。它不是一個固定「稅率」,也不是已經跨所有模型、任務與工具成立的定律。
研究在同一個 coding-agent loop 保留 working tree,只改接手模型與介面。主實驗用 SWE-bench Verified 500 題、兩組模型、七個切換點與四種交接;每個 task/設定只跑一次。它分開報告品質回收與成本保留,不把兩者揉成單一分數。
白話比喻是搬家:working tree 是已經搬進新家的家具,transcript 是搬家過程的監視器全片,handoff artifact 則是房間清單、損壞紀錄與未完成工作。新房客通常需要清單,但不一定需要從第一秒開始重看監視器。
Handoff Tax 從哪裡來?三筆帳要分開量
① 重讀帳:相同歷史,換模型後仍可能重新計費
Agent 每輪靠 harness 再帶入指令、訊息與工具結果。Claude Code 的官方文件截至 2026 年 8 月 28 日說明:每個模型有自己的 cache,用 /model 切換後,下一輪會在沒有 cache hit 下讀完整對話。這是 Claude Code 行為,不能外推到所有平台。
OpenAI Responses API 可用 previous_response_id 串接對話,但官方文件也說,鏈上先前的輸入 token 仍計入 billing。「伺服器替你記住鏈」不等於「舊內容免費」;自建 harness 要直接讀 usage。
② 路徑帳:強模型可能先相信前任的錯誤世界觀
完整歷史同時保留線索與錯誤假設。若弱模型已誤判成資料庫 race condition,接手者可能先沿同一路徑驗證,而不是重建假設。論文的 Raw 在弱→強時品質回收有限;但「錨定」只是相符解釋,不是被單獨隔離的因果。
③ 重建帳:丟太多歷史,也可能讓接手者重做
只留 working tree 可避開 transcript 噪音,卻會丟掉已跑測試與反證。研究中弱→強偏好減少軌跡,強→弱收尾較需要前任脈絡:context 不是愈多或愈少愈好,要看接手者需要推理還是執行。

論文真正告訴我們什麼:介面、方向、任務一起決定
研究比較四種交接:Raw 傳完整軌跡;Compact-pre 由離任模型寫摘要;Compact-suf 由接手模型讀完後自己摘要;Traj-drop 只留原始任務、系統提示、working tree 與接手通知。所有組別都保留檔案修改,所以 Traj-drop 不是把進度全部清空。
最容易誤讀的地方,是把一個 Claude 結果寫成普遍定律。在論文的 Claude 弱→強組,Raw 同時比「放棄前段、強模型重新開始」更貴又更差;GPT 的 Raw 卻仍比強模型從頭跑便宜,只是追回的品質有限。Traj-drop 在兩組弱→強的品質回收最高,但成本都略高於強模型基準;Compact-pre 比較偏向省錢。到了強→弱,保留軌跡反而較有利。
研究的聊天任務與搜尋任務延伸也顯示,資訊何時出現會改變結果:如果完整需求在後段才到,強模型收尾自然更有優勢;如果前段搜尋已累積可用證據,繼承進度可能有價值。這也是為什麼你應測自己的任務,而不是直接抄論文的最佳介面。
另一篇預印本 Handoff Debt 發現帶脈絡交接能減少重新探索;它把 Raw 標成歷史證據並要求查核,和 Handoff Tax 不同。可見歷史不必然有毒,接手提示也是變因。另一項切換研究也觀察到方向會改變效果,因此 A→B 是有順序的 pair。
用同一個 repo 建立 Handoff Tax 小型 A/B
這套方法建立在 Agent=Model+Harness 的觀念上:模型是接棒的人,harness 才負責保存 repo、工具、歷史、預算與驗收。若你還沒有可重跑的 loop,可先照 AI Agent Harness 實作教學建立最小執行層。
步驟 0:先選 6~12 個「可判定完成」的任務
每題固定起始 commit、需求文字、允許工具、timeout 與驗收命令。任務要包含讀檔、改檔與測試,不能只問知識題。先寫 hidden tests 或人工 rubric,再看模型輸出;否則你會不自覺替看起來漂亮的結果改標準。
每組放進獨立 worktree/sandbox,讓 evaluator 看不到組別名稱;正式環境另加 API 重試與 secret 管理。品質設計可搭配 AI Evals 新手指南。
步驟 1:先跑兩條不換模型的基準
- Low-only:便宜模型從頭跑到停止線,建立最低成本與品質基準。
- High-only:強模型從同一 commit、同一提示、同一工具從頭跑,建立「不交接」上限。
不要只比較 low→high 和 low-only。真正要回答的是:「既然最後都用了強模型,為什麼不一開始就用?」High-only 才能讓這個問題進入數據。
步驟 2:固定切換條件,不讓人看到卡住才臨時救援
小型 smoke 可在固定 action 數切換,例如第 8 次工具呼叫。跑 Raw、Receipt、Worktree-only,加 Abort+fresh high 作重啟控制;強→弱另開獨立組,不能混進同一平均。
步驟 3:把摘要改成可查核的 Handoff Receipt
不要叫模型「總結一下」。交接單要把事實、假設與下一步分開,並讓 repo 自己當證據。下面可直接放進你的切換 hook:
你即將把任務交給另一個模型。只輸出 handoff receipt:
1. Goal:原始目標與驗收條件
2. State:目前 commit、git diff --stat、已改檔案
3. Verified:已通過的命令與精確結果
4. Refuted:已失敗假設、反證與不要重走的路
5. Unknowns:仍未驗證的假設
6. Next:下一個最小、安全、可驗證動作
不得把推測寫進 Verified;不得省略失敗測試。
Receipt 不是完整 transcript 的縮寫版,而是「接手收據」。最值錢的欄位通常不是成功紀錄,而是 Refuted:它阻止強模型把昂貴推理再花一次。若你想深入理解壓縮後重新取得脈絡的成本,可接著讀 Context Compaction 的 Reacquisition Cost。
步驟 4:每次 run 記五類數據,不只看 token
- 品質:是否通過、通過幾條 acceptance、人工救援次數。
- 時間:完整 wall time、接手後 time-to-first-action、完成時間。
- 用量:input、output、reasoning、cached input;按 provider 回傳欄位保存原值。
- 成本:每個 attempt 的實際帳務價格與日期,不把今天價目套回舊 run。
- 返工:接手後重讀檔案、重跑相同命令、撤銷前任 edit、重複失敗假設的次數。
保存 model ID、版本、effort、temperature、tool schema、cache policy 與切換點;名稱相同但 effort 不同也不是同一條件。Claude Code 的 /context 可看脈絡結構,紀錄仍以 usage/trace 為準;日常降用量可看 Claude Token 節省教學。

完整走一遍:一個登入 bug 該繼續、換模,還是重啟?
假設 low model 在第 8 次工具呼叫時已修改 refresh-token 邏輯,但測試仍失敗。它的 transcript 有大量「可能是資料庫 race」的猜測;git diff 卻顯示真正改動集中在 cookie expiry。你現在有三條路:
- Continue:若已接近預定終點、錯誤縮小、下一步明確,而且 low-only 歷史顯示它常能自行收尾,就讓原模型完成。
- Switch+Receipt:若 repo 中已有可驗證進度,但剩餘阻礙需要更強推理,先跑測試、產生 receipt,再讓 high model從同一 working tree 接手。
- Restart:若修改範圍失控、核心假設被反證、測試收據不可信,保留失敗 artifacts 供評估,但讓 high model 從原始 commit 重新開始。
最後不要問哪一條「成功過」。要比較同題配對結果:Receipt 是否在不降低通過率下,少於 Raw 的重讀與返工?Switch 的總成本是否低於 High-only?Restart 是否雖然丟掉 edit,卻更快回到可驗證路徑?只有自己的數據能給你門檻。
Continue/Switch/Restart 決策規則
- 選 Continue:目前模型仍在產生可驗證進展;阻礙是等待工具、測試或外部資料,不是推理能力。
- 選 Switch:working tree 有可信資產、receipt 能說清楚已證實與已推翻內容,而且你的 A/B 顯示接手後品質增益高於交接成本。
- 選 Restart:狀態被污染、方向錯、receipt 也無法證明哪些 edit 可保留,或 High-only 在同類題穩定更便宜。
- 選 High-first:任務失敗代價高、需求後段不會再改、過去資料顯示 low→high 很少省錢。模型路由應在任務開始前做,不要把中途切換當預設。
若你正在做自動 model router,可把這三個動作做成 policy,而不是寫死「token 超過 N 就升級」。完整路由評估方式可參考 AI Model Routing Eval;不同 coding agent 的工具與執行環境差異則可看 Claude Code vs Codex。
最常踩的 6 個坑
- 只測換模成功率:漏掉 High-only,無法判斷交接是否值得。
- 卡住才由人挑切換點:難題更常被分到 switch 組,結果帶入 selection bias。
- Raw 組保留 cache、Receipt 組清 cache:你量到的是 cache policy,不是交接介面。
- 用模型自己宣布「完成」:同一套 acceptance tests 才是共同終點。
- 每題只跑一次卻宣稱穩定:論文本身也只有每 task/設定一個 episode;小型 A/B 應把結論標成 smoke signal,變異大就加跑。
- 把美元結果當永久價格:模型、provider、cache 與 price card 會改;保留 usage,成本用 run 當日價格計算。
FAQ:Handoff Tax 與中途換模型
1. 中途換成更強模型,一定比較差嗎?
不一定。論文中所有弱→強策略都高於低能力基準,但回收幅度與成本差很多;任務資訊晚到時,強模型後段接手甚至能追回大部分品質。
2. 完整 transcript 一定比摘要安全嗎?
不是。它保留最多資訊,也保留最多噪音與失敗路徑。弱→強時,論文的 Compact-pre 常較省成本;強→弱時,Raw 保留的推理脈絡又較有價值。
3. 只傳 working tree 就等於重新開始嗎?
不等於。檔案 edit 仍在,只是對話軌跡被拿掉;真正 restart 要回到原始 commit,重新讓強模型執行。
4. Claude Code 可以在同一 session 換模型嗎?
可以。截至 2026 年 8 月 28 日,官方 Commands 文件列出 /model 可切換目前 session 的模型;但下一輪的 cache 行為與成本要依官方 prompt caching 文件一起看。
5. 先 /compact 再切模型,就能消除 Handoff Tax 嗎?
不能保證。/compact 會用摘要取代歷史,降低後續 context,但摘要生成與 cache 重建仍有成本,也可能漏掉關鍵狀態。Anthropic 建議在自然工作斷點 compact;你的 A/B 仍要直接測品質與返工。
6. GPT/OpenAI API 有一個正式的「換模交接」開關嗎?
本文不需要假設有。Responses API 提供 messages、conversation 與 previous_response_id 等狀態方式;自建 harness 可把模型、歷史與 artifact 分開控制。不要把一種 SDK 寫法當成所有 GPT 產品的統一介面。
7. 這篇論文已經被同儕審查、可以直接定標準嗎?
還不能這樣說。目前是 2026 年 8 月 25 日提交的 arXiv v1 預印本;主實驗只有兩組模型、同一 coding scaffold,且每格沒有重複 rollout。它很適合提出可測假設,不足以替每個團隊決定 policy。
8. 小團隊最小可以從哪裡開始?
先做 6 題、4 組的 smoke。跑 Low-only、High-only、Raw、Receipt;若交接落後,再加 Worktree-only 與 Restart 找原因。這不是統計證明。
給新手的 5 個重點
- Handoff Tax 是一個待測的成本—品質現象,不是固定稅率。
- 換模型總成本要加上前段、重讀與返工,不能只看接手後 token。
- High-only 是最重要的控制組;沒有它,就不知道 switch 是否多此一舉。
- 交接單要保存 Verified、Refuted 與 Next,不是寫一篇漂亮摘要。
- 最好的 policy 通常不是「永遠換模」,而是明確定義 Continue、Switch、Restart。
接著閱讀
左右滑動查看更多推薦
結語:先寫交接收據,再決定要不要換
Handoff Tax 最有用的地方,不是叫你害怕換模型,而是逼你停止把「升級」當成免費按鈕。回到開頭的公式:換模型總成本=前段已花成本+接手重讀成本+後段返工成本。今天就選一個有測試的 repo 任務,先跑 Low-only 與 High-only,再加入 Raw 和 Receipt;四組跑完,你就會第一次知道自己的模型切換究竟是路由,還是返工。
如果你想把這套驗收變成可複用的 Agent 工作流,可從 AlphaLab 的 AI 實戰課程開始,把 prompt、harness、eval 與成本收據接成同一條可回放流程。






