FR-166 · 需求索引 · 本頁由 build 掃資料夾生成

FR-166 Agent 獨立作業主控台(離線登入、獨立掃描、網路除錯、斷線續傳)

已開卡待派(母卡 CM-3109、子卡 CM-3110~3150;41 張 9 批)

狀態:詳見下方 文件 2 份 handoff 3 份

FR-166 一頁看完

§1

🔴 先看哪一份

你想知道 看這份 性質
做出來畫面長什麼樣、實際點點看(十二幕互動雛形:上方「跟著走」有四條流程一步一步帶;按鈕都能按,掃描會跑進度、網路除錯勾項目會即時算噪音) 互動雛形 雛形
為什麼要做、登入五種模式比較與三層定案、D1~D22、§13 死結推演與既有機制對照、§14 全量工作清單(五階段、可砍性、最小可出貨) 討論稿 討論
主控台殼、入場券、救援碼怎麼做的(本案直接沿用) FR-157 design §5.1 前作設計
派工骨架與八支 connector FR-056 design 前作設計
每個決策為什麼、開工改哪些檔、哪張卡哪一批 design.md(§6 拆卡表;底表 handoff/cards.py) 設計
§2

結論

老闆 2026-10-26 提出:Agent 要能在主系統離線時獨立作業——直接打網址登入、不經任務手動掃描、網路連線除錯、斷線不停工復線補傳、多據點各自作業報告回總部;資安上不能變跳板。

已定(2026-10-26):登入分三層——安裝時強制設的本機管理員 local-admin(永不過期)、主系統授權的離線操作者(本人在線時設離線密碼、有到期日)、主系統入場券跳轉(在線首選);救援碼保留。「誰能登入」與「能掃誰」是兩道門:掃描範圍由主系統下發的清冊決定、不看身分,從未同步過的 Agent 只准 local-admin 登入查主系統連線、掃描一律拒。離線超過 30 天離線操作者登入與獨立掃描一併停用。Agent 不起 Postgres,本機狀態收進既有 SQLite。安裝與升級腳本強制設 local-admin 密碼。多據點靠 Agent 名稱,不加據點欄位。

2026-10-26 再裁:掃描目標仍限清冊、八支工具全開、ZAP 網址解析後過清冊(D3);結果落主系統新表「Agent 自主執行紀錄」(D4);網路除錯=本機儀表板九卡+十項診斷全進第一版、結果頁是路徑圖+判讀卡(D5);除錯目標四類、未同步只准主系統/閘道/DNS(D6);離線續傳走 Agent outbox+主系統終態冪等(D7);8444 白名單安裝時設底線、主系統只能收緊(D9);不包 tcpdump 等九項(D10);主控台可重啟 Agent、主系統可經心跳要求重啟(D14);派工 Agent 離線 7 天自動收尾(D15)。

全案重新檢視(§13):18 條死結推演、15 條新情境、既有機制逐項實查(推翻四處前稿說法:Nmap 執行主機已過清冊、主系統沒有派工逾時、結果回報只對 cancelled 冪等、Agent 沒有 migration 機制)、開發規範與八支資安規則逐條對照(兩條例外要登記:SR-08.2 逐項回結果、SR-04.9 內網直連)。

2026-10-26 三裁:D16 Agent 本機 DB 最小版本表;LDAP 納入——有現成(jedi-iam)但三個洞未修(失敗不計鎖定、加密預設無、憑證預設不驗),Agent 接 LDAP 三選一(同步/自設/不接,D17),憑證改「首次信任、之後釘住」拿掉勾選框(D18,推翻 CM-2239),目錄連線段抽成零相依 jedi-ldap 讓主系統、Agent、未來 AD 群組對應三方共用(D19);資安例外兩條照三條件登記。

§14 全量工作清單:37 工項、約 50 卡、五階段(P0 地基/P1 進得去/P2 能做事/P3 接回主系統/P4 LDAP 與收尾),每項標可砍性與砍了斷什麼;最小可出貨組合約 28 卡;每階段結束都是可出貨狀態。PM 2026-10-26 裁全做。

2026-10-26 看過雛形後補裁(D20~D22):除錯噪音以「這次總連線數」計,執行前算給使用者看、超過 10 次或含中高項目跳確認,埠一次上限 5、連線隔 1 秒;主控台檔案頁維持 FR-157 的租戶層、授權頁寫明「勾了=看得到整台」、專案層另開 FR;安裝題目只把證據檔儲存位置搬進主控台「服務與重啟」頁,重新註冊與升級留 CLI。畫面用字:來源一律「Agent 手動」、「身分來源」改叫「LDAP 設定」、總覽只放當下、狀態燈與資訊分開。

像但不做:Agent 端新增使用者、Agent 之間同步、Agent 起 Postgres、離線放寬清冊、tcpdump;多因子屬太龐大明確不做(決策者可反對)。

§3

📊 總進度

棒 卡 做什麼 狀態
立案 — 登記+需求複述對齊 ✅ 2026-10-26
討論 — 討論稿 v5+十二幕互動雛形(決策者兩輪審完,給老闆與 PM 看)+§13 全案重新檢視+§14 全量工作清單 🟡 2026-10-26 D1~D22 全裁,§14 等 PM 分階段
設計 — design.md(D1~D22、現況接入點、41 張卡 9 批、端到端驗收) ✅ 2026-10-26 PM 裁全做
開卡 CM-3109 母卡+41 子卡一次建完(CM-3110~3150)、工作坊五欄齊、Repo 欄 agent/fe/jedi-packages/test ✅ 2026-10-26
批 1 CM-3110/3111/3112/3113 jedi-ldap 套件、Agent DB 版本機制、套件兩張表、FE console 殼 ✅ 2026-10-27 工作坊整晚自動跑
批 2~15 CM-3114~3168 59 張實作卡(登入三層、八支工具手動執行、網路除錯、outbox 續傳、LDAP 三選一、主站頁面、SPEC 與手冊) ✅ 2026-10-28 決策者確認 Done
延伸 CM-3170~3179 決策者手測追加:離線天數租戶設定、AD 登入、密碼提醒、閒置登出、https、名稱雙向同步 ✅ 2026-10-28 手測通過 Done
追加 CM-3180~3198 執行紀錄併入主系統、history 路由、報告線上預覽(含 HTML sandbox)、D23 離線權限同主系統、弱點立即檢查、儲存只剩內建 ✅ 2026-10-28 手測通過 Done
收尾 — 卡全 Done、出貨基線重產(4c927ece4)、手冊與 SPEC 補到現況、SUMMARY、analysis、memory ✅ 2026-10-28 首腦第 7 棒
§4

需求討論紀錄

  • 2026-10-26 老闆:Agent 離線時要能手動觸發掃描與其他功能;多據點(高雄、台南、日本、新加坡)各裝一台、報告回傳台北;要有 ping/traceroute 等網路除錯工具。
  • 2026-10-26 決策者:除錯動作要讓使用者勾選,有些公司會對這類動作跳告警;要注意不能被當跳板或駭客工具;登入方式提供幾種業界常見模式比較。
  • 2026-10-26 決策者確認首腦的白話複述無不同步。
  • 2026-10-26 決策者問「C 模式斷線怎麼登」「斷線前沒人設過密碼怎麼辦」「業界有這種 Agent 可登入的設計嗎」→ 首腦補業界對照(Nessus scanner/FortiGate/UniFi 皆安裝時建本機 admin);決策者裁三層登入。
  • 2026-10-26 決策者問「是不是乾脆 Agent 也起 Postgres」→ 首腦實查本機狀態後建議不起;決策者裁不起(D11)。
  • 2026-10-26 決策者裁:都沒同步過就預設沒完成設定、拒絕用工具、只准 local-admin 查連線(D12);離線超過 30 天掃描也停(D2)。
  • 2026-10-26 首腦盤點三十餘條使用情境,七條改設計(未同步狀態、離線判定遲滯、重註冊清本機、升級補設密碼、Nmap 執行主機與 ZAP 網址也過清冊、被拒與連不到分開、並發上限)併入討論稿 v2。
  • 2026-10-26 決策者:「據點不需要呀,不就是 Agent Name 就好」→ D8 裁不做據點欄位,靠 Agent 名稱。
  • 2026-10-26 決策者:除 D6、D10 其他照建議;第二期的這次就做除非太龐大;「看自己這台」做成 UI;問 tcpdump → 裁不包;問「有 UI 嗎、知道斷在哪嗎、安裝時連不通怎麼辦」→ 路徑圖+判讀卡、D6 補未同步三項;加重啟功能,並糾正首腦「從主系統發動=跳轉進主控台按」→ D14;白名單從主系統同步、安裝時設底線 → D9。
  • 2026-10-26 決策者:「整個重新分析,死結、沒想到的情境、既有機制、不重複造輪子、開發與資安規範」「要仔細不要省 token」「都你這邊做完才不會有遺漏」→ §13 落地,推翻前稿四處、新增 D15/D16。
  • 2026-10-26 決策者:「LDAP 老闆會要,有現成的對不對,順便檢查有沒有缺漏」「要讓他選同步還是自己設,各區可能不同」「CM-2239 說不勾的是憑證嗎?使用者不會有憑證,要嘛自動信任,太工程師了」「變例外會造成漏洞嗎」→ D17 三選一、D18 釘住推翻 CM-2239、例外三條件。
  • 2026-10-26 決策者看十二幕雛形兩輪:「七天完成不重要,只要當下」「狀態燈混了資訊,不是燈」「全勾不就一堆,不算攻擊嗎」「本機手動分不出什麼本機」「身分來源就叫 LDAP 設定」「檔案是不是有權限問題」「安裝的題目能不能搬 UI」→ 雛形改兩輪;D20 噪音總量、D21 檔案權限維持租戶層、D22 儲存設定搬 UI。
  • 2026-10-26 決策者:「抽出來是可以被復用的嗎?要可以復用才有意義,輪子不要一直重造」「先用最嚴謹的設計看有多少工,再跟 PM 討論分階段或剔除;切階段切內容要分清楚,不能戰線太長沒辦法銜接」→ D19 抽 jedi-ldap;§14 全量工作清單。
§5

文件

以下全部由 build 掃資料夾產生,新增檔案重 build 即自動出現。標題連結指向渲染後的 HTML,md 連向源檔。

需求與討論

文件 類型 標題 最後更新
discussion / md 需求討論稿 主系統不在,Agent 也要能自己站著 2026-10-28

設計

文件 類型 標題 最後更新
design / md 設計 主系統斷線,現場照樣能登入、能掃、能查線路,連回來自動補傳 2026-10-28

交接與收口時間軸(handoff/,3 份)

由新到舊。每份是某一棒次交接當下的完整現況快照,看某個時間點「當時知道什麼」請從這裡進。

日期 文件 標題
2026-10-28 FR-166-STATE / md FR-166 Agent 獨立作業主控台 — STATE(living,只描述此刻)
2026-10-28 FR-166-LOG / md FR-166 Agent 獨立作業主控台 — LOG(append-only,每棒一 block)
2026-10-28 2026-10-28-FR-166-SUMMARY / md FR-166 Agent 獨立作業主控台 — 收尾總結(2026-10-28)

資產子資料夾(無文件,不建頁):prototype/(5 個檔)