跳到內容

主管唯讀查看團隊對話

尚未發版,提供企業版唯讀檢視頁、職員提示與後端 RPC。

企業版的有效主管或管理員,可以查看部屬負責的 AI 員工對話。條件是對方仍是有效帳號、在自己的直屬或隔級團隊內(最多八層),而且直接以操作者或擁有者綁定該員工。管理員身分本身不會跳過報告線。帳號被停權、改主管、移除綁定或被要求換密碼後,下一次請求就重新判斷;傳回內容前也會再查一次。

對話來源 看得到什麼
自己或範圍內部屬本人的登入 WebChat 使用者和員工的文字全文,唯讀;附件只列檔名與類型
通訊軟體、網站訪客、Odoo 線上客服 雙方文字都遮蔽,附件只列類型
其他人的 WebChat、未知來源、未補值舊對話、排程或任務內部對話 不列出,也不提供隱藏筆數

只回目前生效時間窗內、可見且未撤回的使用者/員工訊息。舊標題、壓縮摘要、前文摘要、隱藏輪、思考與工具步驟都不回。列表標題取自時間窗內第一則可見使用者訊息。附件沒有路徑或下載連結。既有對話紀錄、匯出、下載和續聊權限不會因此放寬。

從「我的團隊」開啟「團隊對話」,或按部屬 AI 員工旁的「看對話」。先選 AI 員工,再依部屬或對話類型篩選;外部客戶的對話會標示「已遮蔽」。頁面沒有輸入框、續聊、匯出或附件下載,文字直接呈現,不載入訊息內的連結或圖片。未安裝 AI 智慧偵測時會持續顯示姓名、地址可能漏遮的提示。

每次打開對話都會留紀錄。更換篩選、重新整理或讀取遭拒時會清除原本顯示的內容;回到視窗時重新確認團隊範圍。讀取失敗會顯示錯誤,不保留上一段對話。列表可按「載入更多」繼續往下看。

管理員可到「成員管理」的「組織設定」開關「主管檢視對話」。開啟前請先告知職員;關閉後再開啟會重新起算。旁邊的「安裝 AI 智慧偵測」連到既有個資遮蔽設定。只有伺服器確認這位職員和這位 AI 員工的對話可被主管查看時,WebChat 輸入框下方才顯示告知,員工選擇器也會出現眼睛圖示。

企業版所有帳號(含職員)都可以從側欄 設定 → 誰看過我的對話(/my/history-views)查看自己的紀錄。只列出主管透過「團隊對話」開啟你本人 WebChat 的紀錄:檢視者目前的名稱、AI 員工目前的名稱、時間與「我的 WebChat」類型。已移除的帳號或 AI 員工會顯示通用名稱,不回傳對話內容、原始對話識別、客戶對話、其他人的紀錄或稽核原始細節。管理員也不能指定查詢別人的紀錄。

關閉主管檢視、主管異動或解除綁定後,仍可查看已留下的自身紀錄。這只涵蓋專用團隊檢視入口,不代表已追蹤所有舊有管理員讀取途徑。目前只接受 team_history_viewed 且本人為 WebChat 部屬的事件;畫面狀態與未知事件不會被當成對話檢視紀錄。

按「載入更多」可繼續回溯。每次最多掃描 4 MiB/10,000 行,最多回傳 100 筆自身紀錄(頁面每次取 50 筆);當頁可能沒有符合資料,但仍可繼續讀較早頁面。不顯示全域或隱藏筆數。游標綁定本人與本機資料目錄,十分鐘後失效;Gateway 重啟或稽核快照遭變更時須重新整理。自身清單有獨立的每人每小時 300 次配額,同時最多兩個讀取;忙碌、損毀、截斷或無法讀取時顯示錯誤,不會假稱「沒有人看過」。本機稽核若已移除或封存,較早紀錄可能無法顯示。只核對掃描範圍內的鏈結,並非全檔鑑識驗證,也無法防止同一作業系統使用者直接改寫稽核檔。

[people]
manager_team_history = true

有效設定檔的企業版預設開啟。設定檔不存在、讀不到、格式錯誤或值不是布林時視為關;個人版一律關。gateway 在通道開始接訊息前把生效時間存進 users.db,讀取與設定異動時重判,並每 60 秒同步版本變化。關掉再打開會開始新時間窗,前一段不會恢復。關閉時若稽核寫入失敗,會留下持久的重設旗標;修好稽核後重新開啟也不能沿用舊時間窗。

管理員使用 users.org_settings.get 與 users.org_settings.update {manager_team_history: true|false},寫入沿用加鎖的設定儲存器。進階設定編輯器也會同步。直接改檔案則到下一次讀取或 watcher 才觀察得到;兩次觀察間完成的關/開無法偵測。關閉不會刪除原始對話。

外部對話固定套用 taiwan_strict、financial、general 與自訂規則,模型端的遮蔽總開關和來源開關不會關掉這層保護。既有遮蔽 token 只轉成占位,不查 vault、不還原。相同電話即使標點不同,在同段對話得到相同類別與編號;不同對話重新編號。發話者平台 ID 改成「客戶 n」;已驗證且仍在團隊內的有效職員可顯示姓名。

所有原始規則命中的範圍都會遮住,包括低優先權的相交部分;優先權只決定占位類別。外部文字先做 NFKC 正規化,回傳的也是正規化後文字。有附件的整行一律改成附件片段,同一行的一般文字也不回,避免巢狀或跳脫括號留下檔名、路徑尾段。格式不完整的操作確認標記則從標記起剝到訊息結尾。

原文也會套用規則,避免全形自訂關鍵字或正規化後改變的字界漏遮。原文命中會保守對到完整字素;串接結果必須等於整段正規化文字,否則整段遮蔽。編號在記憶體內使用每次新種子的固定長度摘要,分裂的大型命中不會複製多份長個資;摘要不輸出、不落地,重新整理的可見編號仍一致。

沒有安裝本機 NER 模型時仍可讀,回應帶 ner: false:只靠 regex,姓名與地址可能沒有遮住。已安裝模型的推論錯誤、逾時、安裝不完整或規則無法編譯時,整段回 masking_failed。NER 使用會傳回錯誤的 API;遮蔽 worker 即使逾時仍占用 permit,避免故障時堆出無限背景工作。遮蔽副本不存磁碟或 vault。

這是產品讀取入口的保護。直接取得主機檔案或資料庫的人仍能繞過;regex 與 NER 也無法保證找出自由文字裡每一筆個資。

已在 macOS arm64 原生流程,以固定模型版本 7ffa9a043d54d1be65afb281eddf0ffbe629385b 與 ONNX Runtime 1.24.2 跑過兩句合成中英文資料,姓名、地址、電話與 Email 得到 ner:true 的遮蔽結果。這是功能活測,不是辨識準確率評測。NER 也可能多遮普通前綴;重疊命中可能產生相鄰占位,計數是呈現片段數,不是不同人數。

方法 參數與回應
users.team_history.list 必填 agent_id;可選 report_user_id、class(own/report_webchat/external)、limit(預設 50、最多 200)、before。回 sessions、next_before、since、ner、read_only: true。
users.team_history.get 必填 session_id;limit 預設 200、最多 500。回類別、生效時間、ner、read_only: true、messages、masked_counts。
agents.callable 每筆加 manager_may_read:企業版與設定開啟、呼叫者直接為操作者以上、上方有有效主管時為真。
audit.resolve_session_digest 僅管理員;以 {digest} 把本機稽核中的 16 字元 HMAC 對回對話 ID。

訊息片段為 {t:"text",v}、{t:"mask",cat,n} 或 {t:"attachment",kind,name?};外部類沒有 name。前端自行組語系占位,並在外部類 ner: false 時顯示未安裝智慧偵測的提醒。隱藏與不存在的對話都回 session not found。

分頁把 next_before 原樣傳回;第一頁也接受 RFC3339 時間作為 before。SQL 先套範圍再分頁,同一活動時間以對話 ID 區分。一頁最多掃 10,000 個已授權候選;一段時間窗最多 20,000 則/8 MiB,超出就拒絕,不默默略過。占位編號先用整個可見時間窗算,再取要求的最新訊息。每則顯示文字在遮蔽完成後才截到 20,000 字元。

一頁暫存的標題原文合計也最多 8 MiB,太大時請降低 limit。可選篩選參數必須是字串(或省略/null);游標最多 4 KiB、部屬 ID 最多 128 bytes。發話者欄位優先用 AI 員工顯示名稱。

每次成功查看都要先完成 team_history_viewed 雜湊鏈稽核,不去重;列表與拒絕依檢視者、員工、篩選或原因每分鐘去重。稽核只放本機對話 HMAC 與計數,不放對話文字或外部平台 ID。寫不進去就回 audit_unavailable,不附內容。每人每行程查看上限 20 次/分鐘、120 次/小時,列表 300 次/小時;超過回 rate_limited 和可重試秒數。遮蔽期間若改報告線,傳回前會改成拒絕。

遮蔽計數只算選取與截斷後實際回傳的片段,編號仍依完整可見時間窗。開機時稽核失敗只封住團隊檢視,gateway 其他功能照常;修好後必須建立新時間窗。資料庫連重設旗標都寫不進去時,行程內仍保留封鎖狀態,直到能完成修復。遮蔽最多容納八個請求,等候入場最多三秒,實際 worker 維持一個。

另見用 @ 呼叫 AI 員工與安全防禦。

直接 Viewer/Operator 綁定(未發版的行為變更)

Section titled “直接 Viewer/Operator 綁定(未發版的行為變更)”

直接綁定的 Viewer、Operator 仍可正常聊天與呼叫 AI 員工。歷史紀錄改為:本人登入帳號的 WebChat 保留全文;別人的 WebChat 隱藏;外部客戶對話以獨立唯讀畫面遮蔽後顯示。直接 Owner、Admin 維持全文權限。對話檢視排除內部與無法判定歸屬的紀錄;任務執行仍依原本的任務受眾規則。

範圍包括歷史列表、全文、對話執行紀錄、對話搜尋與 CSV/XLSX 匯出。外部標題使用通用名稱;對話識別與匯出參照不帶平台原始 ID,避免 WhatsApp 電話從識別碼洩漏。外部搜尋先遮蔽再比對查詢。下載匯出檔時會重新核對目前可見內容,權限降級後不能沿用舊的原文檔。沒裝 NER 時顯示只有規則遮蔽的提示;模型安裝不完整或執行失敗則拒絕外部內容。遮蔽無法保證移除所有姓名與地址。

附件瀏覽需要主機記錄的本人 WebChat 歸屬,或原有明確的任務/審查受眾。外部與其他帳號的附件名稱、內容不能從共用封存區讀取;沒有可信歸屬的舊附件對受限讀者隱藏。知識庫文件、任務受眾與電腦工作區仍走各自權限。模型提到檔案路徑不會取得附件歸屬。

[people] bound_history_privacy = true 預設開啟,缺值、格式錯誤也維持限制。管理員可在進階設定編輯器明確設成 false,作為搬遷過渡:恢復先前直接綁定可看廣泛歷史的行為。這不會開啟主管檢視,也不改變獨立的 manager_team_history 生效時間窗。檢查綁定並通知職員後,請恢復限制。本人 WebChat 若貼入第三方資料仍是全文;刻意複製的內容與同一作業系統/Bash 讀取不在這道讀取閘門的隔離範圍。原始對話不會被改寫。

受限資料每次掃描超過 20,000 則可見使用者/助理訊息或 8 MiB,會明確拒絕。列表游標過期或程序重啟後請重新整理。匿名識別碼只負責導向,每次仍重新檢查即時綁定與主機記錄的歸屬。