前言¶
在 DeepSeek Harness(DSH)裏跑智能體時,宿主進程會加載多個插件,並經由 fetch、模型流、工具調用等路徑把數據發到網絡。單靠日誌或抓包,很難在同一界面裏看到「誰發起的、發往哪裏、屬於哪類目的地、有沒有被攔截」,也不便於對照官方域名與第三方出口。
下面介紹社區插件 dsh-egress-audit(維護者 Lqba-dx):在 Harness 內提供只讀審計面板,彙總最近約一小時的出網觀測,不代替防火牆,也不改寫任何請求。
這是什麼¶
dsh-egress-audit 是 DSH 的只讀「數據外發」審計面板插件。它回答三類問題:Harness 與已加載插件把數據發往何處、發送的是哪一類內容(含啓發式標記)、相關調用是否被攔截。
面板入口在 設置 → 數據外發。數據通過 Harness 的 webServer 以只讀 GET /dsh-egress/snapshot.json 提供給前端;純 CLI、沒有 webServer 的環境不會激活該插件。
倉庫與說明見 GitHub,社區目錄頁:skillhub.cn/plugins/Lqba-dx/dsh-egress-audit。DSH 生態以「一切皆插件」爲思路;SkillHub 等目錄爲社區站點,與 DeepSeek / 幻方無官方從屬關係。
當前 package 版本爲 0.2.0,許可證 MIT。
核心功能¶
觀測範圍¶
插件在宿主進程內掛鉤(均爲透傳,不改變行爲),並訂閱語義事件,主要包括:
globalThis.fetch:記錄 URL、方法、發起方、狀態碼;原樣調用原函數,不讀、不改響應體。net.Socket#connect:兜底覆蓋不經過fetch的 TCP(例如直接走 undici);需 DSH 自帶運行時 Node ≥ 22.3 且能用到process.getBuiltinModule,否則連接層兜底自動跳過,其餘功能仍可用。- 模型流
llm/stream、工具調用tools/pre-execute/tools/post-execute。
每個目的地會給出分級(官方已知 / 本機 / 外部第三方 / 疑似僞裝)和可解釋標記,例如形近字域名、夾帶官方名、形近官方域名、直接用 IP、局域網、明文傳輸、非常規端口等。
數據保留與隱私邊界¶
- 在內存中保留最近 1 小時 的記錄,經
/dsh-egress/snapshot.json只讀提供。 - 不發起插件自身的網絡請求;不寫磁盤;不讀歷史、配置或憑證;不保存請求/響應正文,也不保存
Authorization等頭。 - 不攔截、不改寫、不重試、不延遲流量。面板上的「隱藏」僅收起展示行,記錄與計數不變。
運行前提¶
| 前提 | 說明 |
|---|---|
| DSH 自帶運行時(Node ≥ 22.3) | 連接層兜底依賴內置模塊 API |
webServer 服務 |
面板數據來源 |
settings.section 槽位 |
由 dsh-web-app 提供,桌面端與 Web 端均可 |
安裝與啓用¶
官方 README 給出兩種方式,不要自行拼接未在文檔出現的 CLI 命令。
- 從插件市場安裝(具體入口以你使用的 DSH 發行版與市場爲準)。
- 在本機已有插件源碼目錄時,對該目錄執行插件安裝(
install_bundle,參數爲該目錄的絕對路徑)。
裝好後 profile 會記一條 link:<安裝目錄>。若用本地目錄安裝,該目錄不能刪;移動目錄後需要重新安裝一次。
卸載:在插件管理裏移除 dsh-egress-audit 即可。插件不寫持久化審計狀態;瀏覽器 localStorage 裏僅保留你點過「隱藏」的行。
典型用法¶
- 按上文方式安裝並確保當前環境有
webServer與設置頁槽位。 - 打開 DSH 設置 → 數據外發,查看目的地列表、分級與可疑標記,以及被攔截的調用(若有)。
- 需要程序化查看快照時,對運行中的 Harness Web 服務發起只讀 GET(路徑固定爲
/dsh-egress/snapshot.json),用於自檢或對接你自己的監控腳本——仍須在同一 Harness 實例、且插件已加載的前提下。
安裝插件前,建議通讀 倉庫源碼 與 MIT 許可證;插件以當前 DSH 進程權限運行,審計能力依賴對出口 API 的只讀包裝。
適用場景與已知盲區¶
適合:在開發或調試 DSH 智能體時,快速覈對「這一會話裏宿主和插件究竟連了哪些主機」;對照官方/本機/第三方分級,排查疑似僞裝域名或非常規端口。
不適合當作:唯一的安全邊界或合規審計系統——記錄有啓發式誤差,且覆蓋範圍有限。
README 列出的盲區包括:
- MCP 子進程、Web Worker 及其他子進程:鉤子在宿主進程內,進不去別的進程。
- 走 CONNECT 代理時,連接層往往只能看到代理地址,真實目的地依賴上層語義事件。
- 「是否含對話內容」爲啓發式(模型調用後約 8 秒窗口 + 請求體大小),可能誤標或漏標。
- 插件歸因靠調用棧;棧中無包信息時顯示爲
unknown或運行時包名。
實現上僅對上述兩處出口做 Symbol.for 冪等包裝,卸載時經 ctx.effect 清理還原;除 cordis.patch.yml 外無額外構建腳本(package.json 中無 scripts)。
結尾¶
dsh-egress-audit 把 Harness 宿主側的出網行爲收進一塊只讀面板:透傳掛鉤、不落盤敏感正文、不碰你自己的流量策略。若你正在 DSH 裏疊插件並關心「數據發去哪」,可從設置頁直接查看,或結合 snapshot.json 做二次集成。
- 目錄頁:https://www.skillhub.cn/plugins/Lqba-dx/dsh-egress-audit
- GitHub:https://github.com/Lqba-dx/dsh-egress-audit