AI 审计日志
Tabular Editor 3 企业版,包括试用许可证,会在你的电脑上本地记录 AI Assistant 和 MCP 服务器 的活动日志。记录内容包括:
- 请求了哪些权限,以及这些请求得到了怎样的回应
- 运行了哪些工具,以及每个工具如何结束
- 任何由 AI Assistant 或 MCP 代理运行,或提交运行的 C# Script 的全文
日志位置
除非管理员把它移到了别处,否则日志会写入:
%LocalAppData%\TabularEditor3\AI\audit
在 工具 > 偏好 > AI 功能 中,或在 工具 > MCP 服务器... 对话框中,点击 打开审计文件夹 即可打开该文件夹。该文件夹会在写入第一条记录时创建,其中每个 UTC 日期对应一个 ai-audit-<date>.jsonl 文件,保存的脚本位于 scripts\\<date> 下。
记录了什么
每一行都是一个 JSON 对象,并且每条记录都以相同的字段开头:
| 字段 | 内容 |
|---|---|
ts |
发生时间,UTC,精确到毫秒 |
event |
此记录的类型,取值见下表 |
surface |
AI 助手使用 chat,通过 MCP 服务器连接的外部代理使用 mcp |
sessionId |
该操作所属的对话或 MCP 会话。若两者都不属于,则不包含该字段 |
model |
当时打开的语义模型名称。未打开模型时不存在该字段 |
user |
Windows 账户名称 |
通用字段之后的字段取决于事件类型:
event |
在以下情况下写入 | 包含内容 |
|---|---|---|
consent |
请求某项权限 | 资源、访问级别、它是一次性授权还是持续授权、你是批准还是拒绝,以及授权时长 |
tool_call |
工具运行时 | 工具名称、其所需的权限,格式为 Resource:Access、结束方式、耗时多少毫秒、其参数名称,以及这些参数值的总大小,以字节为单位 |
script |
AI Assistant 或 MCP 代理运行某个 C# Script,或提交该脚本以供运行 | 工具、状态、结果、已保存副本的路径、其 SHA-256 哈希,以及它对模型做出的更改次数 |
turn |
一次聊天轮次结束时 | 提供方、模型名称、端点主机、结果、轮次编号以及 Token 数量,包括缓存量和计费量 |
config |
AI 配置变更 | 提供方、模型名称和端点主机 |
mcp_server |
MCP 服务器启动或停止 | 端口、是否需要访问令牌,以及在启动时为五类资源分别授予的权限 |
mcp_session |
智能体连接或断开连接 | 客户端名称和版本,以及协商确定的 MCP 协议版本 |
tool_call 记录会以下列结果之一结束:
okerrordenied:未授予它所需的权限,或被管理员策略阻止。只有mcp记录会使用此结果;在 AI Assistant 中,以这种方式被阻止的工具最终会以error结束cancelled:你中止了本轮操作,或客户端在工具完成前已断开连接
脚本会完整保存
每个脚本都会原样保存为 scripts\\<date> 下的 .csx 文件,而 script 记录中只包含该文件的路径和 SHA-256 哈希值。可使用该哈希值验证文件是否与实际运行的脚本一致。编译失败的脚本不会被保存。
绝不会记录的内容
- 你的提示词文本和助手的回复内容
- 来自你的模型的任何值(
tool_call只记录参数名称及其总大小) - API 密钥和访问令牌
保留期
超过 30 天的日志文件和 scripts\\<date> 文件夹,会在每次 Tabular Editor 会话中、写入第一条记录之前运行的一次清理过程中删除。管理员可以更改保留期限,或保留全部内容。参见 策略。
策略
以下两项均需企业版的策略,用于控制日志:
| 值 | 类型 | 作用 |
|---|---|---|
AiAuditLogPath |
路径 | 将日志写入另一个文件夹,以便集中收集,例如指向网络共享的 UNC 路径。该路径必须是绝对路径;相对路径会被忽略,并改用默认文件夹 |
AiAuditLogRetentionDays |
数值,0 到 3650 | 保留天数。 0 表示全部保留。默认值为 30 |
重定向日志时,也会一并移动已保存的脚本。由于日志是使用已登录用户的 Windows 帐户写入的,因此该帐户必须对重定向后的文件夹具有写入权限。文件名不包含用户名或计算机名,因此要为每个用户单独创建文件夹。如 %USERNAME% 之类的环境变量仅会在 REG_EXPAND_SZ 值中展开;管理模板写入的是 REG_SZ,因此会按原样使用。
如果日志无法写入(例如网络共享不可达),Tabular Editor 会在该会话的应用程序日志中写入一条信息记录,并且不会记录后续失败。 AI 助手和 MCP 服务器仍会继续工作。