Auditing and Data Protection
Read the audit log, turn on PII masking and blocked words on an Agent's「防護」(Protection) tab, decide how long records are kept, and know where company data actually sits.
- What you get
- You can answer "who did what to which Agent, and when", and you can stop content that should never leave before it goes anywhere.
Once you are live, legal and security will ask two things above all: can we trace an incident, and can sensitive data leak. This chapter is the answer to both.
Before you start
- You are signed in as an administrator. 「稽核紀錄」(Audit Log) is administrator-only.
- Set up everything in this chapter before you open the platform to the whole company. Changing it once the crowd has arrived does not backfill earlier records.
- This chapter covers the settings on the console screens. For the contractual terms on where data is stored, see your service agreement.
Step 1 · Read the audit log
Click「稽核紀錄」(Audit Log) on the left; the title reads「稽核紀錄 Audit Log」, subtitled「設定變更、發布、資料存取與每次 Agent 使用的完整軌跡」(a complete trail of setting changes, publishing, data access, and every use of an Agent).
Records are only ever added, never rewritten. Events are grouped by date, and each row reads, left to right: time, event label, subject, by the person who acted, and a summary.
The row of buttons at the top is a set of quick filters:「全部事件」(All events),「Agent 使用」(Agent usage),「發布」(Publish),「用量攔截」(Usage blocked),「權限拒絕」(Permission denied),「登入拒絕」(Sign-in denied),「資料來源」(Data sources),「推送已送達」(Push delivered),「推送被拒絕」(Push rejected),「任務執行」(Task run),「CSV 匯入資料集」(CSV dataset import),「規則執行」(Rule run),「Pack 安裝」(Pack installed),「Pack 卸載」(Pack uninstalled).
The ones most often looked up for governance:
| Event label | When it appears |
|---|---|
| 「Agent 使用」(Agent usage) | Every time someone uses an Agent |
| 「用量攔截」(Usage blocked) | The monthly cap was hit in block mode (see Chapter 11) |
| 「權限拒絕」(Permission denied) | Someone tried to use an Agent they have no access to |
| 「發布 Agent」(Publish),「取消發布」(Unpublish),「刪除 Agent」(Delete) | Lifecycle changes to an assistant |
| 「推送已送達」(Push delivered),「推送被拒絕」(Push rejected) | An Agent sent a message to staff unprompted |
| 「登入成功」(Sign-in succeeded),「登入拒絕」(Sign-in denied) | Identity-related |
| 「Pack 安裝」(Pack installed),「Pack 卸載」(Pack uninstalled) | Changes in the App Center (see Chapter 10) |
Below that is an input box reading「輸入登入錯誤 Reference ID」(Enter a sign-in error Reference ID). When an employee fails to sign in, all they are shown is a random string — no reason is revealed, and that is deliberate. Ask the employee to send you a screenshot of that string, paste it into this box, and click「查詢」(Look up) to find the real cause.
Event types not covered by the filter buttons are still recorded, and「全部事件」(All events) finds them.
Step 2 · Turn on PII masking and blocked words
Go to「Agent 管理」(Agent Management) → open that Agent →「防護」(Protection) tab. There are only two settings here, and both carry weight.
「PII 遮罩」(PII masking) is a switch, described as「送進模型前自動遮罩 Email / 台灣手機 / 身分證 / 信用卡號」(automatically mask email addresses, Taiwan mobile numbers, ID numbers, and credit card numbers before they reach the model).
Once on, those four kinds of data in an employee’s input are replaced with a marker before it is sent — for example 〔EMAIL已遮罩〕, 〔TW手機已遮罩〕, 〔身分證已遮罩〕, 〔信用卡已遮罩〕. The model receives the masked version.
Turn it on for every Agent open to the whole company. The side effect: if an Agent’s job is handling customer contact details, masking makes it useless — leave it off for that one and narrow the risk with the blocked words below plus group restrictions.
「封鎖詞」(Blocked words) is a comma-separated input, labelled「封鎖詞(逗號分隔;輸入含這些詞會被擋下、不送模型)」(blocked words, comma-separated; input containing them is stopped and never sent to the model), with「機密, 內部專案代號」(confidential, internal project codename) as the example.
Input that matches is stopped in full, and the employee sees something like「輸入包含被封鎖的詞:「薪資」」(your input contains a blocked word). Good candidates: unannounced project codenames, acquisition names, unreleased product names.
Bad candidates are words used in everyday work. Make「薪資」(salary) a blocked word and you have scrapped your HR assistant.
Click「儲存設定」(Save settings) at the top when you are done. If the page header shows「⚠ 已部署的 Runtime 仍在使用舊設定,重新部署後變更才會生效」(The deployed Runtime is still using the old settings; changes take effect after redeployment), click「🔄 套用新設定並重啟」(Apply the new settings and restart) — an Agent already connected to Discord / LINE / Slack must have this clicked, or the new protection settings never reach that channel.
Step 3 · Decide how long and how detailed audit records are
Go to the same Agent’s「用量 / 稽核」(Usage / Audit) tab and the「稽核政策 Audit Policy」block at the very bottom. Two settings:
「記錄使用者輸入摘要」(Record a summary of user input) — a switch, described as「稽核紀錄中保留每次輸入的前 120 字」(keep the first 120 characters of each input in the audit log).
- On: audit rows show what the employee actually asked. Convenient for investigations, but it also means employee questions live in the audit log.
- Off: only “who used which Agent when” is kept, with no record of what was asked.
Companies with strict privacy requirements usually turn it off. Turning it off only affects future records; what has already been kept is not cleared.
「保留天數 Retention」 — 180 days by default. Events older than that are dropped and actually deleted when queried.
Raise it if compliance requires it (365, for example). Lowering it deserves care: once records are deleted, they do not come back.
Click「儲存設定」(Save settings).
Step 4 · Know where the data lives
Here it is in plain terms, so you can answer legal and staff:
Company data stays inside your own Office Power environment. The knowledge base files you upload, the datasets you create, the employee directory, and the audit log all live in the same environment, and none of it is copied elsewhere just so you can read a report.
A mounted cloud folder is read, not moved. When you mount a Google Drive folder, what Office Power builds is an index; click「卸載」(Unmount) or delete the knowledge base and the source folder is entirely unaffected — the confirmation message for deleting a knowledge base says exactly that.
What reaches the model is the masked version. PII masking happens before sending, not as a repair afterwards.
No credentials are left in the audit log. The various tokens and keys you paste in are obscured before anything is written to the audit log.
Records are not permanent. 180 days by default, decided by the retention setting in the previous step.
Staff cannot see the console. A regular employee’s left-hand menu holds only「對話」(Chat),「我的看板」(My Board), and「Nova App」; 「用量與費用」(Usage & Cost) and「稽核紀錄」(Audit Log) show「需要管理員權限」(Administrator access required) even if the address is typed in directly.
Step 5 · Take access back when you need to
Three ways to take it back, with different effects:
| What you do | Effect |
|---|---|
| Click「取消發布」(Unpublish) or disable the Agent | That Agent stops working for everyone immediately, including channels already connected |
| Click「停用」(Deactivate) on someone in「員工名錄」(Employee Directory) | All of their channel bindings stop immediately, with no unbinding one by one |
| Deselect a knowledge base on an Agent’s「資料來源」(Data Sources) tab | That Agent can no longer look anything up in that knowledge base |
One thing to be honest about: taking access back takes back new access, not conversations that already happened. After a knowledge base is un-granted, what was already read earlier in the same conversation thread is still in its context. To verify that access really is gone, start a new conversation thread and ask something you have not asked before.
How you know it worked
- Say something to an Agent in「對話」(Chat), go back to「稽核紀錄」(Audit Log), click「重新整理」(Refresh), and an「Agent 使用」(Agent usage) entry appears at the top with
byset to you. - On a test Agent’s「防護」(Protection) tab, set a blocked word only you would ever use and save it (and click「🔄 套用新設定並重啟」, Apply the new settings and restart, if it is deployed).
- Go back to「對話」(Chat) and send a sentence containing that word — it is stopped, and the message mentions that the input contains a blocked word.
- Turn on「PII 遮罩」(PII masking), paste a mobile number into the chat, and the Agent’s reply shows that what it received was
〔TW手機已遮罩〕. - 「保留天數 Retention」on the「用量 / 稽核」(Usage / Audit) tab holds the number you set.
- Sign in with a non-administrator account: there is no「Admin」section on the left, and opening the audit log address directly shows only「需要管理員權限」(Administrator access required).
Common problems
| Symptom | Cause / fix |
|---|---|
| 「稽核紀錄」(Audit Log) shows「需要管理員權限」(Administrator access required) | This page is administrator-only. |
| Old events have disappeared | Anything past that Agent’s「保留天數 Retention」(180 days by default) is dropped and deleted. Raise the number to keep them longer — but what is already deleted cannot be recovered. |
| Audit rows do not show what the employee asked | That Agent’s「記錄使用者輸入摘要」(Record a summary of user input) is off. Turning it on affects only future records. |
| An event label appears as a string of English code | That event type has no Chinese label yet and is not among the filter buttons. 「全部事件」(All events) finds it. |
| Blocked words work in browser chat but not in Discord | That Agent is deployed to an outside channel; after changing settings, click「🔄 套用新設定並重啟」(Apply the new settings and restart) in the page header. |
| PII masking is on, but mobile numbers still appear in the Agent’s answers | Masking works mainly before input reaches the model. Masking on the reply side applies to chat through the platform; for stricter handling, add that kind of data to the blocked words as well. |
| The Agent is nearly unusable after setting blocked words | The blocked words are too everyday. Keep them to proper nouns that must not leak, not ordinary business vocabulary. |
| An employee’s sign-in failed and they are not told why | That is deliberate. Ask them for the Reference ID on their screen, paste it into the lookup box at the bottom of the audit page, and click「查詢」(Look up). |
| A knowledge base was un-granted but the Agent still recites its contents | The context of that conversation thread is still there. Start a new thread and check again. |
| You want to withdraw all of one Agent’s access at once | Click「取消發布」(Unpublish). It stops working for everyone on every channel immediately, all settings are kept, and you can publish it again later. |