一句話:本卡屬 FR-188(母卡 CM-3728)。客戶管理員在平台「待核准的機器」看到的名稱是 Agent 容器的主機名,不是現場人員在首次設定頁填的顯示名稱,核准時對不上是哪一台。來源:2026-11-09 首腦在 190(主系統 1.30.2)全新安裝 Agent 1.7.4 實測。
首次設定頁填了「台北機房-檔案主機」,平台待核准列卻顯示 guidant-ai-e2e(容器主機名)。核准後名稱才會變對,所以核准的人在最需要辨認的那一刻看到的是錯的名字。原因是 Agent 註冊時送給主系統的名稱取自 socket.gethostname(),首次設定填的顯示名稱是註冊之後才另外經 agent_status 事件送;而沒有授權照前 Agent 不送事件、核准前送了也被 403 擋,所以待核准期間永遠是主機名。
_hardware_info() 的 hostname 是 socket.gethostname();首次設定的顯示名稱在 enroll_service.py:307-308 _rename(display_name),於註冊完成後才存本機並標待回報。hostname = hardware_info.get('hostname') or 'agent-<指紋前12碼>',新建時寫進 name。所以只要 Agent 註冊時 hardware_info.hostname 帶顯示名稱,主系統不用改。_hardware_info() 的 hostname 改成:本機已設定的顯示名稱(agent_name 模組或 AGENT_HOSTNAME)優先,沒有才用 socket.gethostname()。先查 agent_name 模組有沒有現成的「讀目前顯示名稱」函式,有就 reuse。_rename(display_name) 在 _register 之前生效,或把 display_name 直接傳進這次註冊的 hardware_info。選改動最小、不影響 CLI enroll 與 re-enroll 的那個,回寫說明理由。git log 確認,撞到就停下回寫。