本卡屬 FR-077(母卡 CM-PARENT),第 1 棒:agent 身分與註冊(jedi monorepo 的 jedi-remote-agent)。只掃不修

這一棒在做什麼(白話)

我們發一支程式(agent)給客戶裝在他自己的機房裡。這支程式開機後要先跟雲端「報到」——證明「我是合法的 agent、我屬於哪個客戶」,之後才能定期撥回來問有沒有工作。這一棒掃的就是報到與身分證明這一段:拿什麼東西報到、雲端怎麼驗、驗過之後發什麼給它、它下次怎麼證明還是同一台。

claude-security plugin 掃 42 個檔並產出報告。只找問題、不修問題。

為什麼切這一塊

身分是另外兩棒的前提——不先確定「誰能證明自己是 agent」,談「agent 能拿到什麼」沒有意義。所以這棒先跑,它的發現會影響 R2/R3 的判讀。

範圍取法是按業務模組垂直切:從 route 一路到 repository 的完整路徑都在同一棒(api/ 的路由表 → app/service/ 三支管理服務 → domain/remote_agent/infra/remote_agent/),加上 common/agent_auth/ 的五支密碼學原語與 plugin.py 的注入契約。不按 DDD 分層水平切——權限漏洞活在層與層的接縫上,只給 route 或只給 service 兩邊都看不出來。

出問題會怎樣:能假冒 agent 註冊,就能進到某個租戶的 agent 池;能接手別台的身分,就能收走本該給它的派工(含派工 payload 內的解密參數與憑證)。

重點看什麼

這些是首腦讀過全部程式碼後認為最容易出事的地方。是思考起點不是檢查清單——工具不會照這個走,寫在這裡是給你(runner)掃完後自己追的方向。FR-076 的 L2 那條 HIGH 就是 runner 照卡片重點人工追出來的,工具當時只找到 LOW。

已知背景