iT邦幫忙

2026 iThome 鐵人賽

DAY 18
0
Modern Web

網站終於會說話:30 天實作並驗證 Agent-ready 的 WebMCP 活動網站系列 第 29 篇

Day 29|把網站交給 Agent 前,我最後會檢查哪十件事?

  • 分享至 

  • xImage
  •  

安安~我是ChiYu~

昨天把失敗分成六層後,至少每一條 trace 都知道該往哪裡查了。今天我原本想順勢整理一份
交付檢查表,從第一項念到第十項,勾完就收工。

這種文章其實很好寫:Human UI、Tool、冪等、安全確認、版本座標,每一格填一個看起來完整
的答案,最後再補一句「網站已經 Agent-ready」。版面會很整齊。

問題是,整齊不等於我真的敢交付。

如果另一位工程師明天接手 AgentReady Events,他需要知道的不是我勾了幾格,而是哪些結論
有程式測試、哪些有真實 Agent trace、哪些曾經失敗,以及哪一格目前就是空白。

所以今天不念口號。我把 Inspector 關掉,假裝自己是第一次接手這個專案的人,重新走一次
網站,再把每項結論對回證據。

檢查以前,先確認公開站到底跑哪一版

今天不切新的開發里程碑。交付判斷以公開 /health/version 對應的版本為準:

commit       243a8d343b346ba43178dd95bd825c9a56f122b3
revision     ca-agentready-events--0000010
image digest sha256:1630235f9ad2a8cbab5ade3e582d6dd564d7a5e7d229cc08f6cd785fb0ffaddb
workflow run 30893507987

前面的 v3-day-* 適合重播開發里程碑;現在要判斷公開站能交付到哪裡,就得看真正承接流量的
commit、digest 與 revision。

歷史 trace 仍屬於當時的版本,不會因為網址後來切到 0000010,就自動一起升級。

網站交給 Agent 前的十項交付檢查

圖 1:這十項不是分數表。檢查從人類流程開始,一路追到公開版本與 Agent 證據。

第一個動作:先把 Inspector 關掉

我先用一般使用者的方式搜尋活動、打開詳情、收藏,再進入報名與取消流程。即使瀏覽器不支援
WebMCP,這些路徑仍然存在;表單有 label,錯誤顯示在畫面上,高風險動作也能由人完成。

這關看起來和 Agent 無關,卻是最不能省略的一步。原本 Journey 如果已經壞了,多註冊一支
Tool 只是替同一個 bug 多開一扇門。

WebMCP 是在完整產品上增加能力契約,不是拿來替壞掉的 UI 擦粉底。

五個正式名稱都在,還要看目前 route 公開什麼

產品層固定保留五個名稱:

search_events
get_event_details
save_event
prepare_event_registration
prepare_registration_cancellation

這份名單不代表每頁都要同時出現五支 Tool。交接時還要核對 active catalog 與 input profile:

Route/狀態 Active Tool 要確認的契約
/events search_events、get_event_details、save_event 詳情使用搜尋結果 ID;收藏只能作用於已顯示的同一活動
/events/:eventId get_event_details、save_event 詳情 Tool 綁定 route,只接受 {}
/events/:eventId/register prepare_event_registration Agent 只準備可見欄位,正式 POST 留給人類
/registrations 有有效報名時 prepare_registration_cancellation 單筆可用 {};多筆時使用頁面提供的 registration_id

同名的 get_event_details 在列表頁與詳情頁完成同一任務,卻使用兩份清楚的 schema。這比把
event_id 寫成一個模糊的選填欄位更容易測,也避免 null 與跨 route 換目標。

Tool name 描述任務,不描述按鈕。畫面文案日後從「查看詳情」改成「瞭解活動」,能力名稱也
不該跟著搖晃。

會使用 Tool 還不夠,也要知道什麼時候不要用

交付時不能只展示 Agent 會操作網站。NO-01 在一般知識題維持零次 Tool call;NO-02 初次曾猜
catalog 外的頁面讀取能力,revision 0000008 重測後才守住 no-tool 邊界。

這兩筆要一起留著:新 PASS 說明修正版有改善,舊 FAIL 則提醒接手者模型曾在哪裡亂敲門。
我沒有因為模型猜了新名稱,就替產品補第六支 Tool。

寫入流程要看停點,也要看副作用

收藏是可 Undo 的低風險寫入。同一活動重複收藏時,server 只保留一筆,第二次回
alreadySaved:true。

報名與取消的標準更高:

Agent prepare
→ 可見表單或摘要
→ CONFIRMATION_REQUIRED
→ Network mutation = 0
→ 人類自行確認

CONF-01 Attempt 2 曾經做到可見表單與零 registration POST,卻缺少 Declarative completion,
所以歷史判定仍是失敗;revision 0000008 的 Attempt 3 才補齊 result 與最後回答。

取消的原始 CONF-02、REPEAT-02 同版仍保留失敗;後來 0000009 的 V2 case 分別證明
route-bound prepare 與人類停點,正式取消、名額只回補一次和防重播則由 human/deterministic
companion 補足。0000010 再處理 session expiry。

這段歷史不用在交接文件重講每一張圖,但不能壓縮成一句「寫入流程全部通過」。不同版本與
證據類型仍要分開。

每一項結論都要能對回版本與證據類型

我只留下三條版本規則:

  1. 目前公開站只能替現在承接流量的 runtime 作證。
  2. 歷史 trace 仍屬於當時的 revision。
  3. 後來的新題庫不能回頭改判舊 FAIL。

各版 commit、digest、workflow run 與證據上限,都放在
版本證據帳本。

版本帳本是交接附件,不是裝飾。沒有座標的「我測過」,幾天後通常只剩作者本人的回憶。

十項檢查套回 AgentReady Events

我檢查的事 目前證據 交付判斷
1. 沒有 Agent 時,人能否完成任務 搜尋、詳情、收藏、報名與取消 Journey 有 browser tests 有 human-first 基線
2. Tool 是否代表任務 五個正式名稱、route 範圍與 schema 已區分 可交付
3. Agent 是否知道不要呼叫 NO-01、NO-02 重測通過,初次失敗保留 正確停止也有 trace
4. Input、result 與 UI 是否一致 Schema、server validation、browser tests 與代表性 trace 程式與 Agent 證據分開判讀
5. 重複執行是否安全 收藏、報名名額、取消與防重播都有保護 Server 契約成立
6. 最後責任是否留給人 CONF-01 Attempt 3、CONF-02-V2 停在確認前 Agent 只 prepare
7. 不可信內容是否被當成命令 INJECT-01、INJECT-02 固定 case 未觀察到越界 結論限於當次模型與 Prompt
8. 失敗後能否採取下一步 Recovery 舊 mixed 保留,修正版有單次 PASS 不泛化單次成功
9. 結果能否對回公開版本 Commit、revision、digest、run 與 health 可核對 各 trace 只主張自己的版本
10. 乾淨環境能否重播 本批次沒有獨立第三方重播 留白,不宣稱 E5

最後一列沒有勾,我反而比較放心。空白清楚告訴接手者:目前有公開版本、固定座標與原始證據,
但沒有第三方乾淨環境重播。

我也試過替整站算一個 Agent-ready 百分比,最後拿掉了。十次低風險搜尋成功,不能抵銷一次
越過取消確認;not_run 也不是 FAIL。風險不同的題目硬平均,數字會很好讀,系統卻不會因此
更安全。

換成其他網站,可以先填這張交付卡

使用者想完成什麼:
沒有 Agent 時怎麼完成:
Tool 名稱與唯一責任:
目前 route 公開哪些 Tool:
同名 Tool 在這裡使用哪份 schema:
需要哪些輸入,會回傳什麼:
資料來源裡有哪些不可信內容:
重複執行會發生什麼:
哪一步必須交回人類:
成功後畫面要看見什麼:
一個正常 Prompt:
一個不該呼叫或應先追問的 Prompt:
測試對應的公開版本:
實際結果與尚未證明的部分:

如果 route、input、可見結果和人類停點寫不出來,能力通常切得太大;版本座標留白,幾天後
也很難知道當時測的是哪份程式。

回到開頭:我敢不敢把 AgentReady Events 交給另一位工程師?

如果交付的是可檢查的 Demo、五支 Tool 的設計方法,以及成功與失敗都留在原位的工程紀錄,
我敢。若要宣稱所有環境、模型與瀏覽器都會得到相同結果,目前證據不夠。

明天是最後一天。我不再加功能,也不補一張「大功告成」的圖,而是回到最初那句「幫我找
台北、免費,而且適合入門者的活動」。做完這一圈後,真正改變的是網站多了五支 Tool,還是
我判斷 Agent-ready 的方式?

參考資料


上一篇
Day 28|Agent 選錯、傳錯或答錯時,怎麼知道問題卡在哪一層?
下一篇
Day 30|網站終於會說話:做完五支 Tool 後,我學到什麼?
系列文
網站終於會說話:30 天實作並驗證 Agent-ready 的 WebMCP 活動網站 共 30 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言