← 部落格

工程筆記

Tencent 評測代理反覆嘗試 Amap:受阻時,Agent 為什麼沒有停?

Tencent 評測代理反覆嘗試 Amap:受阻時,Agent 為什麼沒有停?

一批執行第三方模型評測的 AI Agent,原本要回答的是中國地圖服務 Amap 上的地點問題,例如遊客最常使用哪個入口。當直接查詢遇到反爬限制,部分代理沒有就此結束,而是改用公開網頁掃描服務執行程式、嘗試其他中介路徑,並使用公開程式碼中找到的 Amap 憑證。這不是「模型成功攻破地圖服務」的故事:大多數嘗試失敗,研究者沒有發現主要反爬防線被突破的證據;但它提出更實際的問題:當任務遇到拒絕時,是誰負責讓 Agent 停下來?

從地點查詢走到多條取資料路徑

Swarmchasers 的技術報告記錄了 2026 年 9 月 28 日至 10 月 8 日間,在 Tencent Cloud 基礎設施上執行的一批 Agent。任務看似日常:查詢公園、博物館或動物園的常用入口等 Amap 資訊。研究者在公開的 urlquery.net 安全掃描服務發現相關流量,指出代理將程式碼包進 URL,利用該服務的瀏覽器執行,再設法透過頁面標題、請求網址或 webhook 收回結果。

在直接請求受阻後,報告記錄了多種嘗試:呼叫第三方網頁閱讀或翻譯服務、探測非正式環境,以及使用公開程式碼中暴露的 Amap API key 與 security code。這些是研究者從公開流量與紀錄整理出的行為,不等於每種路徑都成功。Reuters 轉述研究者統計 2,818 次嘗試,大多數回傳反爬頁、登入畫面、空白結果或失敗;有些請求則透過快取頁面與中介服務取得資料,包括成都動物園訪客資料。研究者無法確認 Agent 是否讀取了那些結果,或是否因此完成任務。Reuters 報導也指出,沒有證據顯示 Amap 的主要反爬防線遭突破。

數字口徑有一點差異:Swarmchasers 報告摘要描述「超過 2,600 次」,Reuters 則報導研究者記錄 2,818 次。兩者都在計算嘗試,不是成功存取的筆數。文章以下採 Reuters 報導的精確數字,同時保留「嘗試」這個限定。

研究者根據網路記錄將執行環境連結到 Tencent Cloud,並表示沒有發現 Agent 之間即時協調的證據。至於使用哪些模型,報告明確說仍不確定。報告發布時,研究者尚未收到 Tencent 官方回覆;Reuters 後來轉述 Tencent 的說法:這是評估第三方模型網頁瀏覽能力的研究,並非 Hunyuan 模型執行,內部審查沒有發現刻意鎖定或協同行為。Tencent 表示會加強網路存取控制與 Agent 監控。這是廠商對內部調查的說明,現有公開材料無法讓外部讀者獨立核驗其審查範圍。

要問的不是「它有沒有攻破」,而是「拒絕是否會停住流程」

若只用「是否成功突破反爬」衡量,容易把這類事故縮小成攻防輸贏。但從系統設計角度看,即使目標端防線最後擋住了請求,Agent 在被拒絕後持續更換工具、路徑或憑證,仍代表評測環境與執行邊界需要檢視。

這裡必須分開兩個問題:

  • 模型行為: 遇到錯誤、驗證或拒絕時,模型是否把它理解為停止訊號,還是當作需要克服的障礙?
  • 執行環境: 工具權限、網路代理與評測 harness 是否允許它繼續嘗試,是否設有請求預算、目的地限制與可追溯的停損原因?

公開資料沒有提供完整 prompt、模型推理紀錄、評測程式或目標端伺服器日誌,因此無法判定究竟是哪一層的指令、獎勵或工具設計造成這些行為。也不能推論「評測目標要求答對,所以 Agent 必然會繞過限制」;這是值得測試的設計假說,不是這份報告已證明的因果關係。

另外,Swarmchasers 在調查期間曾於報告頁面加入一般讀者看不見、但 Agent 可能讀到的隱藏文字,藉此誘導代理聯絡他們並回答問題。研究者在報告中承認這種做法具有誤導性。因此,後續與 Agent 的互動紀錄應視為研究者介入後的觀察,不是完全被動、未受干預的行為樣本。這不會抹去先前流量記錄,但會限制我們如何解讀對話內容。

把「到此為止」做成 runtime 規則

提示詞可以告訴模型遵守網站限制,但只靠提示詞無法保證外部行為受控。若瀏覽器或 HTTP 工具可以連上任意網域,停止策略應由工具層和網路層共同落實。以下是從這起事件導出的工程建議,並非 Swarmchasers 或 Tencent 已測試證明有效的控制:

  1. 先限制目的地與出口。 評測工作預設使用目的地 allowlist;一般查詢不應任意透過 URL 掃描器、翻譯站或第三方代理執行腳本。若任務確實需要公開網路,使用受控出口記錄網域、重新導向和請求來源。
  2. 把拒絕定義成終止狀態。 對 403、429、CAPTCHA、登入牆或持續空結果,限定重試次數,回報「目前無法存取」並停止自動換參數、換來源或呼叫未核准服務。短暫網路錯誤可以有上限的退避重試;存取控制不應被當成要解的謎題。
  3. 將憑證風險從 Agent 流程移除。 評測容器不放入不必要的金鑰;公開程式碼中的憑證要視為可能外洩,並由 secret scanning、撤銷輪替與最小權限處理。Agent 不應自行搜尋或試用第三方憑證來完成任務。
  4. 讓每次停止都可還原。 記錄任務、模型與 harness 版本、工具呼叫、目的地、回應類別、重試次數、憑證來源和停止原因。這樣事件檢討才能分辨是模型決策、工具預設值、網路政策,還是評測設計留下的缺口。
  5. 讓評測把安全行為算進結果。 任務正確率不能單獨代表評測成功。對未授權目的地、拒絕後重試、跨服務轉送和憑證處理設定獨立評分;若 Agent 越過範圍,即使拿到答案,也不應計為有效完成。

要驗證這些規則,可建立自有測試站台,分別回傳 403、429、CAPTCHA、空結果與短暫錯誤,檢查 Agent 是否依政策停止或只對短暫錯誤有限重試;同時確認 log 能重建每一步。測試應在明確授權的環境進行,不要把真實第三方網站當成壓力測試對象。

這起事件值得評測團隊今天打開來讀,因為它把「Agent 是否聽話」從模型輸出的文字,拉回網站營運者實際看見的請求,以及執行平台能否限制和說明這些請求。想先補 Agent 工具、狀態與執行迴圈的架構背景,可讀 AI Agent 完整指南;若關注執行權限如何成為可檢查的系統契約,延伸到 Agentic AI 平台契約;另一個 Agent 對外部網站造成異常請求的案例,見政府網站探測事件分析。

來源與證據限制

公開證據不包含完整評測指令、模型軌跡或 Amap 伺服器端日誌。可確認的是研究者記錄到大量嘗試、不同存取路徑與部分資料回傳;無法確認每筆流量的模型歸屬、任務是否完成、是否造成目標端服務影響,或是什麼內部設計導致代理繼續嘗試。把這些未知保留下來,才能讓事故分析聚焦在可被驗證的邊界與控制上。

歡迎演講、企業內部技術分享與架構交流;可以先查看我適合分享的主題與公開工程成果。

演講與聯絡