生产工作流的可观测性:执行记录和数据追踪
介绍如何为 AI 工作流实现审计日志,追踪数据使用和执行过程。对治理和问题排查有帮助。
完整中文译文
假设某个贷款审批 AI Agent 在上个季度的生产环境中运行,它调取了一位客户的财务记录,并拒绝了贷款申请。几个月后,监管机构询问拒绝原因,却没有人能够回答,因为系统中没有留下模型看到了什么、做出了什么决定的记录。
传统审计日志是为确定性软件设计的:相同的输入始终会产生相同的输出。AI 工作流打破了这一假设,因为它涉及非确定性模型、多步骤工具调用,以及每次运行时都可能发生变化的数据访问。
下面介绍 AI 审计轨迹应该记录哪些内容,以及如何实现它。
什么是 AI 审计轨迹?
AI 审计轨迹是一份结构化、按时间排序且防篡改的记录,涵盖 AI 系统执行的每一项操作。它应该足够详细,以便事后完整重建任何一次执行过程。审计轨迹会记录输入、输出,以及每个步骤接触过的数据,让审计人员即使在几个月后,也能在不依赖工作流开发工程师的情况下,重现当时发生的一切。
大多数团队已经在收集日志,但很少有团队会收集完整的 AI 审计轨迹,以回答审计人员的问题,而不仅仅是满足调试需求。两者的区别可以归结为三个层次,每一层记录同一次执行中不同粒度的信息。
工作流执行日志
工作流层面的记录包括 Run ID、workflow ID、触发器、开始与结束时间戳,以及最终状态。它回答的是运行了什么、何时运行。单凭这些信息,只能证明某次执行确实发生过,却无法说明其中涉及了哪些数据。
节点层会记录每个步骤读取或写入了哪些数据、数据来自哪个系统,以及涉及哪些字段。在审计轨迹中,AI 治理专家和监管机构最关注的正是这一层。它能够说明受保护的信息——例如 PHI、支付详情和财务记录——是否进入了处理流水线,以及这些信息流向了哪里。
面向 LLM 工作流的 AI 审计轨迹必须记录调用本身,而不能只记录调用结果。它需要捕获用户 prompt、返回的响应、模型及其版本、temperature、token 数量,以及模型触发的所有工具调用。缺少这些记录,你只能证明模型运行过,却无法解释它为什么会产生特定输出。
AI 审计轨迹、可观测性与监控
虽然审计轨迹、可观测性和监控彼此相关,但它们各自服务于不同的目的。下面来看看它们之间的区别:
监控可以发现服务中断,可观测性可以解释延迟激增,但只有审计轨迹能够告诉监管机构:模型在拒绝申请之前读取了哪些记录。对于高风险操作,将自动生成的记录与人工监督结合起来,能够同时向审计人员提供机器日志和人工签字确认。
在生产级 AI 系统中,将审计轨迹与可观测性混为一谈是一个常见错误。两者共用一些底层基础设施,例如 trace、span 和结构化事件,但它们面向的受众并不相同。可观测性告诉你 Agent 当前是否健康;审计轨迹则用于证明某个 Agent 在六个月前做出了什么决定。对 10% 的 trace 进行采样,可能足以分析延迟;但如果你必须为之辩护的那次决策恰好位于被丢弃的 90% 中,这些采样就毫无用处。
AI 审计轨迹必须记录什么?
一份实用的字段规范会按照不同层级组织采集内容。每一层在保留期限和隐私方面承担的权重都不同,分别对应不同的治理计划。工具与集成层最容易被团队忽略,但它恰恰是审计轨迹与现实世界发生交汇的地方:如果系统记录了某项决策,却没有记录该决策触发的退款,那么这份决策记录的意义就非常有限。
一份可靠的审计轨迹主要应记录以下层级:
真正决定 AI 审计轨迹软件能否经受审查,而不是仅仅让日志看起来很详尽的,是下面三个设计决策。
记录保留多长时间,是一项合规决策。欧盟《AI 法案》要求高风险系统的提供商将自动生成的日志保留至少六个月;HIPAA 和美国国税局的相关要求通常会将保留期限推至大约七年。面向金融服务和医疗健康行业的 AI 审计轨迹解决方案面临最严格的要求,通常需要在多年期数据保留机制之上,再叠加能够显示篡改痕迹的存储。应当按层级设置保留期限——执行元数据可以比原始 prompt 保留得更久,因为后者带来的隐私风险最高。
Prompt 和响应是记录中信息最丰富的部分,同时也是最敏感的部分。原样保存它们有助于调查,却也可能捕获你无权保留的 PII 或 PHI。在敏感字段进入长期存储之前,应对其进行脱敏或哈希处理;同时还要记录你删除了哪些内容,让审计人员知道这些缺口是有意为之。
随着模型和节点不断演进,你的日志 schema 也会发生变化。从第一个版本开始就应当对其进行版本管理。审计人员在阅读一条两年前的记录时,需要知道它由哪个 schema 生成。否则,字段含义可能发生偏移,整条审计轨迹也会因此失去权威性。
如何在 n8n 中实现 AI 审计轨迹
n8n 是一个工作流自动化平台,基于可视化的节点图构建,同时支持确定性执行和 Agent 式执行。每次运行都会自动生成结构化记录,包括 workflow ID、run ID、节点级输入与输出、时间戳和错误状态,无须添加额外的 instrumentation。这意味着 AI 审计轨迹日志是平台默认具备的能力,而不是需要单独维护的另一套系统。
你可以自行托管 n8n,让敏感的 prompt 和响应数据始终留在自己的基础设施中。这影响的不只是数据主权和安全性。由于 n8n 的源代码可用且具备扩展能力,你可以控制日志 schema、添加自定义节点,并将记录精确发送到合规技术栈所要求的位置。这种定制能力是封闭式 AI 审计轨迹工具很少能够提供的。
默认构建审计就绪的 AI 工作流
每次 n8n 执行都会自动记录 run ID、节点级 I/O 和时间戳,无须额外添加 instrumentation。
用于实现审计轨迹的 n8n 关键功能
下面是 n8n 提供的几项关键审计轨迹能力:
- 以执行日志作为默认基础: 每次运行都会自动记录节点级输入、输出、run ID 和时间戳。你可以通过 Execution Data 或 Code 节点附加业务标识符。
- 通过错误工作流捕获失败: Error Trigger 节点会捕获所有失败的运行,并将其转入专用的错误工作流。
- 导出到你自己的技术栈: n8n 的所有自托管版本层级都支持通过 OpenTelemetry 跟踪工作流和节点执行,这意味着你可以将日志存储在独立且受保护的系统中。
在 Enterprise 方案中,日志流可以将 n8n 实例内部发生的更多事件实时转发到你的日志工具;基于角色的访问控制则用于决定谁可以读取执行数据——这正是审计人员希望在数据记录之外同时看到的访问记录。
n8n 支持执行数据脱敏(Enterprise 功能),可以隐藏输入和输出 payload,同时保留状态、时间等元数据。它还提供可配置的数据清理机制,因此即使团队已经清除了原始 prompt,也可以继续长期保留轻量级元数据。通过这种简洁的方式,你既能满足较长的数据保留期限要求,又不必囤积每次运行中最敏感的内容。
将审计轨迹视为架构的一部分
AI 审计轨迹是一项架构决策。如果等到监管机构提出要求后才仓促补上,你就只能从那些原本并非为保存审计证据而设计的日志中重建证据。如果从一开始就将其构建到执行层中,记录便会自动生成。
n8n 默认生成这套基础记录,包括执行日志、run ID 和节点级 I/O。它提供清晰的导出路径,以及 Enterprise 级审计和访问控制。你的团队可以自动生成并保留详尽且能够显示篡改痕迹的审计轨迹,让审计人员和工程师能够立即查看决策、失败记录及执行路径。
将审计轨迹接入生产环境
从 n8n Cloud 开始,然后查看执行文档和工作流模板,即可着手实践。
n8n 用户拥有各种各样的背景、经验水平和兴趣。我们一直希望在博客文章中重点介绍不同的用户及其项目。如果你正在使用 n8n,并愿意为社区带来启发,欢迎联系我们 💌